/* === Fixed Wrapper === */
.event-popup {
  display: none !important;
  position: fixed;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 9999;
  pointer-events: auto;
}

.event {
text-align:center}

/* === Slide Container === */
.popup-slide {
display: none !important;
  width: 600px;
  max-width: 100vw;
  background: white;
  border: 2px solid #273143;
  border-radius: 25px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  transition: transform 0.5s ease;
  transform: translateX(0);
  position: relative;
 margin-left: auto;
  margin-right: auto;
}

/* === Slide Out - Leaves 25px visible === */
.event-popup.hidden .popup-slide {
  transform: translateX(calc(-100% + 25px));
  cursor: pointer;
}

/* === Popup Content === */
.popup-content {
  padding: 25px;
  box-sizing: border-box;
}

.popup-content h3 {
  text-align: center;
  font-size: 1.5rem;
  color: #273143;
Line-height:1.2;
Margin-bottom: 1rem
}

@media screen and (max-width: 768px) {
 .popup-content h3 {
  text-align: center;
  font-size: 1.2rem;
  color: #273143;
Line-height:1.2
}
}

.popup-content p {
  font-size: 15px;
  line-height: 1.4;
  color: #273143;
  margin-bottom: 0rem;
Margin-top:0rem;
Line-height:1
}

/* === Contact Form Container === */
.event-contact-form {
  margin-top: 0.5rem;
}

/* === Toggle Button (Arrow) === */
.popup-toggle {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
  background: white;
  border: 2px solid #273143;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 0;
  transition: background 0.3s ease;
}

.popup-toggle:hover {
  background-color: #f2f2f2;
}

/* === Arrow Icon Flip === */
.arrow-icon {
  transform: rotate(0deg);
  transition: transform 0.3s ease;
}

.event-popup.hidden .arrow-icon {
  transform: rotate(180deg);
}

/* === Responsive Styles === */
@media screen and (max-width: 768px) {
  .popup-slide {
    width: 90vw;
  }

  .event-popup.hidden .popup-slide {
    transform: translateX(calc(-90vw + 25px));
  }

  .popup-content {
    padding: 1.5rem;
  }

  .popup-toggle {
    width: 25px;
    height: 25px;
  }

  .arrow-icon {
    width: 24px;
    height: 24px;
  }
}





/* General Styling */

html {
    width:100%
}

html, body {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* verhindert horizontales Scrollen */
}

body {
    font-family: 'Lato', sans-serif;
    background-color: #f7c2cf;
    overflow-y: scroll; /* Enables vertical scrolling */
      font-family: 'Lato', sans-serif;
    -webkit-text-size-adjust: 100%; /* Prevents text scaling issues on iOS */
    -webkit-font-smoothing: antialiased; /* Fixes font rendering in Safari */
    text-rendering: optimizeLegibility; /* Better readability */
}

body::-webkit-scrollbar {
    display: none;
}

::selection {
    background: #ffffff;
    color: #273143;
}

#container {
    padding-bottom: 250px; /* Adjust this based on footer height */
}

.one-pager {
    display: block;
    width: 100%;
}

#main-content {
    margin: 0 auto;
    height:100%
}

/* Wrapper für zentrierten Inhalt */
.wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    
}

table {
    width: 100%;
    border-collapse: collapse;
}

td {
    padding: 5px 10px;
}


@media screen and (max-width: 768px) {
table {
    text-align: left
}  
}





/* Sections General */

section {
    width: 100%;
    box-sizing: border-box;
    border-radius: 50px 50px 0 0; /* Rounded top corners */
    position: relative;
    z-index: 1;
}

section:not(:first-child) {
    margin-top: -35px !important;
    z-index: 2 !important;
    border-radius: 50px 50px 0 0;
}

@media screen and (max-width: 768px) {
section:not(:first-child) {
margin-top: -35px !important;
z-index: 2 !important;
border-radius: 35px 35px 35px 35px;
}
}




/* Fonts */

p {
    font-size:30px;
    color: #273143;
    font-family: 'Lato', sans-serif;
    font-weight:400;
    line-height: 1.3;
     -webkit-text-size-adjust: 100%; /* Prevents font zoom issues on iOS */
    -webkit-font-smoothing: antialiased; /* Improves font rendering */
    text-rendering: optimizeLegibility;
}

h2 {
    font-size:70px;
    font-family: 'Anton', sans-serif;
    font-weight:500;
    text-align:left;
    color: #273143;
     -webkit-text-size-adjust: 100%; /* Prevents font zoom issues on iOS */
    -webkit-font-smoothing: antialiased; /* Improves font rendering */
    text-rendering: optimizeLegibility;
}

h3 {
    font-size:30px;
    font-family: 'Anton', sans-serif;
    color: #273143;
     -webkit-text-size-adjust: 100%; /* Prevents font zoom issues on iOS */
    -webkit-font-smoothing: antialiased; /* Improves font rendering */
    text-rendering: optimizeLegibility;
}

h4 {
    font-size:25px !important;
    font-family: 'Anton', sans-serif;
    color: #273143;
    font-weight: 200;
     -webkit-text-size-adjust: 100%; /* Prevents font zoom issues on iOS */
    -webkit-font-smoothing: antialiased; /* Improves font rendering */
    text-rendering: optimizeLegibility;
    margin: 0;
}

li {
    font-size:25px;
    color: #273143;
    font-family: 'Lato', sans-serif;
    font-weight:400;
    line-height: 1.2;
     -webkit-text-size-adjust: 100%; /* Prevents font zoom issues on iOS */
    -webkit-font-smoothing: antialiased; /* Improves font rendering */
    text-rendering: optimizeLegibility;
}

@media screen and (max-width: 768px) {
    p {
    font-size:17px
}
    
    h2 {
        font-size:40px;
        text-align:center
    }
    
    td h4 {
        font-size:15px !important;
        text-align: left
    }
    
    td {
        padding-right:0px;
        padding-left:0px
    }
}
    
        
@media only screen and (max-width: 900px) and (orientation: landscape) {
  p {
    font-size:18px
}
  
h2 {
    font-size:50px;
}

h3 {
    font-size:25px;
    font-weight:500
}
    
td h4 {
        font-size:15px !important;
        text-align: left
    }
    
td {
        padding:0
    }
    
   li {
    font-size:18px
}
}





/* SVG Weiche */

.svg-background-right {
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 254.56 254.5"><style>.st0{fill:none;stroke:%23FFFFFF;stroke-width:50;stroke-miterlimit:10;}</style><path class="st0" d="M25.06,254.5C25.06,127.75,127.81,25,254.56,25"/></svg>') no-repeat right;
    background-size: contain;
}

.svg-background-flip {
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 254.56 254.5"><style>.st0{fill:none;stroke:%23FFFFFF;stroke-width:50;stroke-miterlimit:10;}</style><g transform="rotate(270,127.28,127.25) scale(1.0)"><path class="st0" d="M25.06,254.5C25.06,127.75,127.81,25,254.56,25"/></g></svg>') no-repeat right;
    background-size: contain;
}

.svg-background-flip-mirrored {
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 254.56 254.5"><style>.st0{fill:none;stroke:%23FFFFFF;stroke-width:50;stroke-miterlimit:10;}</style><g transform="scale(-1) translate(-254.56,0)"><path class="st0" d="M25.06,254.5C25.06,127.75,127.81,25,254.56,25"/></g></svg>') no-repeat right;
    background-size: contain;
}






/* Site Header */
.site-header {
    width: 100%;
    display: flex;
    justify-content: center;
    position: fixed;
    top: 25px; /* Slight gap from the top */
    left: 0;
    z-index: 1000;
    transition: all 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {
  .site-header {
    width: 100%;
    display: flex;
    justify-content: center;
    position: fixed;
    top: 25px; /* Slight gap from the top */
    left: 0;
    z-index: 1000;
}
}


/* Navigation Bar */
.nav-container {
    width: 90%;
    background-color: #273143;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 5px;
    border-radius: 25px;
    transition: all 0.3s ease-in-out;
}

.scrolled .nav-container {
    background-color: rgba(255, 255, 255, 0.5); /* White with transparency */
    border: 2px solid #273143; /* Border with original navbar color */
    padding: 5px 5px;
    backdrop-filter: blur(5px); /* Optional: Adds a subtle blur effect */
}


/* Right Side (Membership + Hamburger) */
.nav-right {
    display: flex;
    align-items: center;
    gap: 10px; /* Space between button and hamburger */
}


/* Left Side (Logo) */
.logo svg {
max-height: 100px;
margin-left: 10px;
padding: 5px;
min-width: 80px;
transition: fill 0.3s ease-in-out;
}

.scrolled .logo svg {
    fill: rgba(39, 49, 67, 1) !important; /* Change on scroll */
}


/* Membership Button */
.membership-button {
    background-color: white;
    color: rgba(235, 81, 64); /* Red Text */
    border: 0px solid rgba(235, 81, 64);
    padding: 10px 15px;
    border-radius: 25px;
    font-size: 20px;
    font-weight: bold;
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease-in-out;
    white-space: nowrap;
    height:50px;
    display:flex;
    align-items: center;
    justify-content: space-between;
}

.membership-button:hover {
    background-color: rgba(235, 81, 64);
    color: white;
}

.scrolled .membership-button {
    background-color: transparent; /* Transparent background */
    color: #273143; /* Text takes navbar color */
    border: 2px solid #273143; /* Border matches navbar */
}

@media screen and (max-width: 768px) {
    .membership-button {
    font-size: 15px;
}
}


/* Hamburger Menu*/
.hamburger-menu {
    width: 50px;
    height: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: white;
    border: 0px solid rgba(235, 81, 64); /* Same as membership button */
    border-radius: 25px;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease-in-out;
    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);
}

.scrolled .hamburger-menu {
    background: transparent;
    border: 2px solid #273143;
}


/* Hamburger Bars */
.hamburger-menu .bar {
    width: 25px;
    height: 3px;
    background: rgba(235, 81, 64);
    border-radius: 5px;
    transition: all 0.3s ease-in-out;
}

.hamburger-menu .bar:not(:last-child) {
    margin-bottom: 5px;
}

.hamburger-menu.active .bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.hamburger-menu.active .bar:nth-child(2) {
    opacity: 0; /* Hide middle bar */
}

.hamburger-menu.active .bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.scrolled .hamburger-menu .bar {
    background: #273143; /* Ensures bars remain visible */
}


/* Dropdown Navigation */
.mobile-nav {
    position: absolute;
    top: 70px; /* Space below nav bar */
    left: 0; /* Align to left */
    width: 100%; /* Same as .nav-container */
    background: #273143;/* Same color as navbar */
    display: none;
    flex-direction: column;
    border-radius: 25px; /* Match navbar's rounded corners */
    padding: 10px 20px;
}

.scrolled .mobile-nav {
   background-color: rgba(255, 255, 255, 0.5); /* White with transparency */
    border: 2px solid #273143; /* Border with original navbar color */
    padding: 5px 5px;
    backdrop-filter: blur(5px); /* Optional: Adds a subtle blur effect */
}

@media screen and (max-width: 768px) {
    .mobile-nav {
        left: 50%;
        transform: translateX(-50%);
    }
}





.mobile-nav.active {
    display: flex;
}

.nav-links {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left; /* Ensure left alignment */
    transition: background 0.3s ease-in-out, border 0.3s ease-in-out;
}

.nav-links li {
    padding: 10px 0;
}

.nav-links a {
    text-decoration: none;
    color: white;
    font-size: 25px;
    font-family: 'Anton', sans-serif;
    font-weight: 500;
    display: block;
    padding: 5px 10px;
    transition: color 0.3s ease-in-out;
}

.nav-links a:hover {
    color: rgba(235, 81, 64); /* Keep text white on hover */
}

.scrolled .nav-links a {
    color: #273143; /* Changes text color */
}


@media only screen and (max-width: 900px) and (orientation: landscape) {
  .nav-links li {
    padding: 0;
}
}




/* Section: Start */

.start {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px 20px 0 0;
}

.full .logo-container {
    position:absolute;
    bottom:15%;
    left:5%;
    width:45%
}
.start-image {
    position: relative;
    width: 100%;
    height: 100vh;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    z-index: 0; /* NEW */
}


.video-placeholder {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}


.start-image > *:not(video) {
    z-index: 1;
}

.marquee-container {
    position: absolute;
    top: 15%;
    width: 100%;
    overflow: hidden;
    z-index: 20;
    pointer-events: none;
}

.marquee-track {
    display: flex;
    width: fit-content;
    animation: marquee-loop 80s linear infinite;
}

.marquee-content {
    display: flex;
    white-space: nowrap;
}

.marquee-content span {
    font-size: 2rem;
    color: white;
    font-family: 'Anton', sans-serif;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
}
@keyframes marquee-loop {
    0% {
        transform: translateX(0%);
    }
    100% {
        transform: translateX(-50%);
    }
}


@media screen and (max-width: 768px) {
  .marquee-content span {
    font-size: 1.5rem;
}
}





@media screen and (max-width: 768px) {
  .full .logo-container {
    width:65%;
        bottom:15%;
}
}

@media only screen and (max-width: 900px) and (orientation: landscape) {
  .full .logo-container {
    width:35%;
        bottom:15%;
}
}

.info-box {
  position: fixed;
  top: 40%;
  right: 2%;
  transform: translateY(-50%) rotate(5deg);
  background-color: white;
  z-index: 1000;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
    border: 3px solid #273143;
}

a .info-box:hover {
  background-color: rgba(255,255,255,0.8);

}


.info-box p {
  font-family: 'Anton', sans-serif;
  font-size: 35px;
  margin: 0;
  padding: 15px; /* Optional: for better text fit inside */
    color: #273143;
}

/* Responsive Style */
@media screen and (max-width: 768px) {
  .info-box {
top: 25%;
right: 5%;
transform: translateX(-50%);
width: 35%;
transform: rotate(5deg);
      border: 1px solid #273143;
}

  .info-box p {
    font-size: 18px;
    padding: 5px;
  }
}

@media only screen and (max-width: 900px) and (orientation: landscape) {
    
      .info-box {
    top: 30%;
  }
    
 .info-box p {
    font-size: 25px;
    padding: 10px;
  }
}






/* Scroll Down */

.scroll-down {
    position: absolute;
    bottom: 15%;
    right: 20px;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: right;
    cursor: pointer;
    transition: transform 0.3s ease-in-out;
}

.scroll-down img {
    width: 100%;
    height: auto;
    transform: rotate(-90deg);
    color:white
}

.scroll-down:hover {
    transform: translateY(5px);
}

@media screen and (max-width: 768px) {
 .scroll-down {
    position: absolute;
    bottom: 15%; /* Places the arrow near the bottom */
    right: 2%;
}
    .scroll-down img {
    width: 50%;
    height: auto;
}
}

@media only screen and (max-width: 900px) and (orientation: landscape) {
   .scroll-down {
    bottom: 10%;
}
    .scroll-down img {
    width: 80%;
}
}





/* General Section Styles */

.title {
    width: 100%;
    text-align: left;
    margin-bottom: 50px;
}

.image {
    width: 50%;
}

.image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 25px;
}

.content-row {
    display: flex;
    flex-direction: row; /* Text on left, Image on right */
    justify-content: space-between;
    align-items: flex-start; /* Ensures top alignment */
    width: 100%;
    gap: 100px;
}

.text-container {
    width: 50%;
    text-align: left;
    padding:0
}

.text-container p {
    margin-bottom: 15px;
}

.content-row .text-container {
    align-self: flex-start
}

.text-box-row {
    display: flex;
    justify-content: space-between;
    gap: 50px;
    margin-top: 50px;
}

.text-box {
    flex: 1; /* Equal width */
    background-color: white; /* Light background */
    padding: 50px;
    border-radius: 25px;
    text-align: center;
}

.text-box img {
    flex: 1; /* Equal width */
    width:40%;
     margin-bottom:25px
}

.text-box p {
    color: #333;
     font-size: 25px;
    line-height: 1.3
}

.text-box h3 {
    margin-bottom: 20px;
    font-size: 30px;
    color: #273143;
}



@media screen and (max-width: 768px) {
    
    .title {
    margin-bottom: 50px;
}
    .content-row {
        flex-direction: column; /* Stacks elements on small screens */
        align-items: center; /* Centers content */
        gap: 10px;
    }
     .text-container, .image {
        width: 100%;
        text-align: center;
    }
    .text-box-row {
    gap: 20px
}
    
    .text-box h3 {
    line-height: 1.4
}
}








/* Section: Vision / Weiche / Who are we */

.weiche {
    width: 100%;
}

.weiche-content {
    display: flex;
    flex-direction: column;
    align-items:center;
    width: 100%;
    padding: 0px 90px;
    gap: 50px;
}

.weiche-content:first-child {
    padding: 90px 90px 125px 90px;
    border-radius: 50px 50px 0 0
}

.weiche-content:first-child {
    padding: 55px 90px 125px 90px;
    border-radius: 50px 50px 0 0
}

.weiche-content .text-box-row {
    display: flex;
    justify-content: space-between;
    gap: 50px; /* Space between columns */
    margin-top: 50px;
}

.weiche-content .text-box {
    flex: 1; /* Equal width */
    background-color: white; /* Light background */
    padding: 50px;
    border-radius: 25px;
    text-align: center;
}

.weiche-content .text-box img {
    flex: 1; /* Equal width */
    width:30%;
     margin-bottom:25px
}

.weiche-content .text-box p {
    color: #333;
    line-height: 1.4;
    font-size:17px
}

.weiche-content .text-box h3 {
    margin-bottom: 20px;
    font-size: 25px;
    color: #273143;
}



@media screen and (max-width: 768px) {
    .weiche-content {
        padding: 30px;
        gap: 15px;
    }
    .weiche-content:first-child {
        padding: 35px 35px 90px 35px;
        border-radius: 50px 50px 0 0
}
    .weiche-content .text-box-row {
        gap: 20px
}
    
    .weiche-content .text-box img {

     margin-bottom:0px
}
 
    .text-box-row {
        flex-direction: column; /* Stacks elements on small screens */
        align-items: center; /* Centers content */
}
    .center {
        align-items: center !important;
}
}

 @media only screen and (max-width: 900px) and (orientation: landscape) {
 .weiche-content .text-box-row {
    gap: 10px;
}
} 


.inner-container {
    width:90%;
    overflow:hidden;
    border-radius: 25px;
    padding:50px;
    box-sizing: border-box
}

.inner-container-full-width {
    width:90%;
    overflow:hidden;
    border-radius: 25px;
    padding:0;
    margin-top:50px
}

.inner-container .title {
    padding-top:25px
}

@media screen and (max-width: 768px) {
.inner-container-full-width {
    width:90%;
}
.inner-container {
    padding:35px 35px 50px 35px 
}
}


/* Section: Weiche USP */

.image-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.image {
    flex: 1;
    max-width: 100% !important;
    text-align: center;
}

.image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 25px;
}

@media screen and (max-width: 768px) {
.image-row {
    flex-direction: column;
}
}







/* Lok-Viertel */

.standort-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: 100%;
    padding: 90px;
    border-radius: 90px 50px 0 0 
}

.inner-box {
    width: 100%;
    border-radius: 15px;
    text-align: center;
}

.inner-box-image {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 25px;
}

.inner-box-image img {
    opacity: 1;
    width:100vw
}

.standort-container .title {
    display: flex;
    justify-content: left;
    align-items: center;
    width: 100%;
    margin-bottom: 50px;
}

.standort-container .text {
    width: 100%;
    text-align: center;
    margin-top: 20px;
    padding: 20px 0;
}

.standort-container .text h2 {
    font-size:50px;
    line-height: 1.3;
    margin:0 auto
}

@media screen and (max-width: 768px) {
    .standort-container {
        padding: 0px;
    }
    .inner-box {
        width: 90%;
         padding-top:50px;
         padding-bottom: 60px
    }
    .standort-container .text h2 {
        font-weight:500;
        font-size:25px
    }
}

 @media only screen and (max-width: 900px) and (orientation: landscape) {
 .standort-container .text h2 {
    font-size:30px;
}
} 



/* Lok-Viertel > Hard Facts List on Lok-Viertel Image */

.hard-facts-list {
    position: absolute;
    bottom: 2%;
    left: 2%;
     color:white !important;
    padding: 15px;
    border-radius: 10px;
    list-style: none;
    text-align: left;
    font-weight: bold;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.hard-facts-list li {
    margin: 5px 0;
    background: white;
    color: rgba(235, 81, 64);
    border-radius: 25px;
    font-family: 'Anton', sans-serif;
    font-size: 60px;
    padding: 15px;
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
}

@media screen and (max-width: 768px) {
    
    .hard-facts-list {
    display:none;
    padding: 0
}
    
   .hard-facts-list li {
    font-size: 25px;
       font-weight:300;
}
}


 @media only screen and (max-width: 900px) and (orientation: landscape) {
 .hard-facts-list li {
    font-size: 40px;
    padding: 15px;
}
} 


/* Lok-Viertel - CTA */

.cta-button-container {
    width: auto;
    text-align: center;
    margin-top: 20px;
}

.cta-button {
    background-color: rgba(235, 81, 64);
    color: white; /* Red Text */
    border: 0px solid rgba(235, 81, 64);
    padding: 10px 15px;
    border-radius: 25px;
    font-size: 20px;
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease-in-out;
    white-space: nowrap;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}

@keyframes vibrate {
    0% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    50% { transform: translateX(2px); }
    75% { transform: translateX(-2px); }
    100% { transform: translateX(2px); }
}

.cta-button:hover {
    background-color: rgba(235, 81, 64, 0.9);
    color: white;
    animation: vibrate 0.5s linear infinite;
}



/* Lok-Viertel - Accordion */

.accordion-container {
    width: 90%;
    margin: 0 auto;
    padding: 50px 0 90px 0;
}

.accordion-item {
    margin-bottom: 10px;
    border-radius: 25px; /* Ensures smooth rounded edges */
    overflow: hidden; /* Prevents gaps between header and content */
}

.accordion-header {
    width: 100%;
    background-color: rgba(235, 81, 64);
    color: white;
    padding: 10px 25px;
    font-size: 18px;
    text-align: left;
    border: none;
    cursor: pointer;
    outline: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background 0.3s ease-in-out;
    border-radius: 25px 25px 0 0; /* Rounded top corners */
}

.accordion-header h3 {
    color:white
}

.accordion-content {
    height: 0;
    background-color: rgba(235, 81, 64);
    overflow: hidden;
    transition: height 0.3s ease-in-out;
    border-radius: 0 0 25px 25px; /* Rounded bottom corners */
    padding: 0px;
}

.accordion-content p {
    color:white
}

.accordion-inner {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding:25px
}

.accordion-image {
    width:50%
}

.accordion-image img {
    width: 100%; /* Adjust image size */
    height: auto;
    display: block;
    border-radius: 10px; /* Rounded edges for images */
}

.accordion-text {
    flex: 1; /* Allows text to take remaining space */
    color: white;
    font-size: 15px;
    padding: 0;
}

.accordion-item.active {
    border-radius: 25px; /* Keeps corners rounded when open */
}

.accordion-arrow {
    width: 50px;
    height: 50px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease-in-out;
    position: relative;
}

.accordion-arrow::before {
    content: "";
    width: 15px;
    height: 15px;
    border-left: 4px solid rgba(235, 81, 64);
    border-bottom: 4px solid rgba(235, 81, 64);
    transform: rotate(-45deg);
    display: inline-block;
    position: absolute;
}

.accordion-item.active .accordion-arrow {
    transform: rotate(180deg);
}

@media screen and (max-width: 768px) {
    .accordion-inner {
        flex-direction: column;
    }
    .accordion-image {
        width:100%
    }
    .accordion-image img {
        width: 100%;
    }
    .accordion-header h3 {
        font-weight:500 !important;
        font-size:23px      
    }
}





/* Projekt / Architektur / b_solution */

.project-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0px 50px 50px 0px;
    text-align: center;
}

.project-content:last-child {
    padding: 0px 50px 90px 0px;
}

@media screen and (max-width: 768px) {
    .project-content {
    padding: 0px 0 15px 0;
}
    
    .project-content:last-child {
    padding: 0px 0px 15px 0px;
}
}

.gallery-left-text-right {
    display: flex;
    flex-direction: row; /* Keeps gallery and text side by side */
    align-items: flex-start; /* Aligns both elements at the top */
    justify-content: space-between; /* Ensures even spacing */
    width: 100%;
    gap: 100px; /* Adds spacing between gallery and text */
}

@media screen and (max-width: 768px) {
    .gallery-left-text-right {
    flex-direction: column;
}
}

.gallery-container {
    width: 50%;
    overflow:hidden;
    display: flex;
    justify-content: center;
    flex-direction: row
}

/* CTA b_solution */
.cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 15px 30px;
    background-color: #273143;
    color: #ffffff;
    text-decoration: none;
    border: 2px solid #273143; /* Adds border (same as background color) */
    border-radius: 25px;
    transition: background 0.3s ease-in-out, color 0.3s ease-in-out, border 0.3s ease-in-out;
    
    font-family: "Anton", sans-serif;
    font-size: 40px;
    line-height: 1.2;

    max-width: 300px;
    min-width: 200px;
    min-height: 70px;
    white-space: nowrap;
    position: relative;
    overflow: hidden;
}

.cta-button:hover {
    background-color: transparent; /* Removes background */
    color: #273143; /* Changes text color to match border */
    border: 2px solid #273143; /* Ensures border remains */
}

@media screen and (max-width: 768px) {
    .gallery-container, .text-container {
        width: 100%;
        padding: 0;
    }

    .cta-button-container {
        text-align: center;
    }
    .cta-button {
    font-size: 25px;
        font-weight:normal
}
}






/* Swiper.js */

.swiper-container {
    width: 100%;
}

.swiper-slide img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.swiper-button-next, .swiper-button-prev {
    width: 60px !important; /* Increased size */
    height: 60px !important;
    background: none !important; /* Remove Swiper default styling */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.swiper-button-next img,
.swiper-button-prev img {
    width: 100%; /* Ensures the image fills the container */
    height: auto;
}

.swiper-button-prev {
    left: -80px; /* Move arrow further left */
    right: -80px; /* Move arrow further right */
}

.swiper-button-next::after, 
.swiper-button-prev::after {
    content: none !important;
}

@media screen and (max-width: 768px) {
    .swiper-button-prev {
        left: 10px;
    }
    .swiper-button-next {
        right: 10px;
    }
}



/* Finanzierung */

.finanzierung {
    margin: 0 auto;
    padding:90px;
}

.finanzierung .text-box-row {
    padding-bottom:50px;
    margin:0 auto;
    gap: 50px
}

.finanzierung p {
    font-size: 20px;
    line-height: 1.3;
}

@media screen and (max-width: 768px) {
    
    .finanzierung {
    margin: 0 auto;
    padding: 35px 35px 90px 35px;

}
    .finanzierung .text-box-row {
    gap: 25px;
    padding-bottom:0px;
}
    
    .finanzierung p {
    font-size: 17px;
}
}


 @media only screen and (max-width: 900px) and (orientation: landscape) {
.finanzierung .text-box-row {
    padding-bottom:50px;
    margin:0 auto;
    gap: 10px
}
} 




/* Zeitplan */

.image-container img {
    max-width: 100%; /* Ensure responsiveness */
    height: auto;
    display: block;
    margin: 0 auto;
}





/* Footer */
.hidden-footer {
    position: fixed;
    bottom: 0px; /* Moves the footer out of view initially */
    left: 0;
    width: 100%;
    background-color: white;
    color: rgba(235, 81, 64);
    padding: 20px;
    text-align: center;
    transition: transform 0.4s ease-in-out, opacity 0.3s ease-in-out;
    transform: translateY(100%); /* Ensure it's hidden */
    opacity: 0;
    z-index: 100; /* Ensure it's above other elements */
    border-radius: 50px 50px 0 0
}

.show-footer {
    transform: translateY(0); /* Slide up */
    opacity: 1;
}

.footer-container {
    display: flex;
    justify-content: space-between; /* Evenly distribute items */
    align-items: center; /* Center vertically */
    flex-direction: row;
    flex-wrap: wrap; /* Ensure responsiveness */
    padding: 20px;
    z-index: 100;
    background: white;
}

@media screen and (max-width: 768px) {
   .footer-container {
    flex-direction: column;
       padding: 5px;
}
}

.footer-left {
    flex: 1; /* Allows resizing */
    display: flex;
    justify-content: flex-start; /* Aligns to the left */
}

.footer-logo {
    max-width: 200px; /* Adjust as needed */
}

.footer-center {
    flex: 1.5; /* Takes up slightly more space */
    display: flex;
    justify-content: center; /* Centers content */
    align-items: center
}

.partner-logos {
    display: flex;
    align-items: center; /* Vertically centers the logos */
    justify-content: center; /* Centers them horizontally */
    gap: 30px; /* Adds spacing between logos */
    flex-wrap: wrap; /* Ensures they wrap on smaller screens */
}

.partner-logos img {
    max-width: 100px;
    object-fit: contain;
    filter:grayscale(1)
}

.footer-right {
    flex: 1; /* Allows resizing */
    display: flex;
    justify-content: flex-end; /* Aligns to the right */
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 20px; /* Adds spacing between links */
    text-align: right;
}

.footer-links a {
    color: rgba(235, 81, 64);
    text-decoration: none;
    font-size: 25px;
    font-family: 'Anton', sans-serif
}

.footer-links a:hover {
    color: rgba(235, 81, 64, 0.5);
}

@media screen and (max-width: 768px) {
    /* Footer Left: Logo */
.footer-left {
    justify-content: center
}
    .footer-logo {
    max-width: 150px; /* Adjust as needed */
}
 .partner-logos {
    gap:10px;
     margin-top:25px
}   
    
    .partner-logos img {
    max-width: 50px;
    object-fit: contain;
    filter:grayscale(1)
}
    
     .footer-right {
    margin-top:25px
}
    .footer-links {
        flex-direction:row; 
    text-align: center;
}
    .footer-links a {
    font-size: 15px;
}
}






/* Back to Top Button */
.back-to-top {
    position: fixed;
     display: block;
    text-align: center;
    margin-top: 20px;
    z-index:99;
    bottom: 20px;
    right: 20px;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
    opacity: 0; /* Initially hidden */
    visibility: hidden; /* Hides the button completely */
}

.back-to-top img {
    width: 100%;
    height: auto;
    color:white;
    transform: rotate(90deg)
}

.back-to-top:hover {
    transform: translateY(-5px);
}

.back-to-top.show {
    opacity: 1;
    visibility: visible;
}

@media screen and (max-width: 768px) {
.back-to-top {
    bottom: 40px;
    right: 5px;
    width: 40px;
    height: 40px;
}
}





/* Contact Form */
.contact {
    width: 100%;
    padding: 90px;
    background-color: #f7c2cf;
    text-align: center;
    border-radius: 25px 25px 0 0;
}

.contact-container {
    max-width: 70vw;
    margin: 0 auto;
}

.contact-container h2 {
    text-align: center;
    margin-bottom:50px
}

.name-container {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    max-width: 600px;
    margin: 0 auto;
}

.contact input[type="text"],
.contact input[type="email"],
.contact input[type="tel"],
.contact input[type="url"],
.contact textarea {
    width: 100%;
    max-width: 600px;
    padding: 12px;
    border: 2px solid #273143;
    border-radius: 20px;
    font-size: 16px;
    box-sizing: border-box;
    transition: border-color 0.3s ease-in-out;
}

.name-container input {
    width: 100%;
}

.contact input:focus,
.contact textarea:focus {
    border-color: #273143;
    outline: none;
}
.contact input[type="submit"] {
    display: block;  /* Ensures it behaves like a block element */
    margin: 25px auto 0;  /* Centers the button horizontally */
    padding: 12px 20px;  /* Ensures good clickability */
    background-color: rgba(235, 81, 64);  /* Soft pink */
    color: white;  
    border: none;  
    border-radius: 20px;  /* Rounded button for a modern look */
    font-family: 'Lato', sans-serif;
    font-weight:normal;
    font-size: 16px;
    cursor: pointer;  
    transition: background 0.3s ease-in-out;
}

.quiz-container {
    margin-bottom: 25px;  /* Creates the desired padding above submit */
}

.contact input[type="submit"]:hover {
    background-color: rgba(230, 170, 185, 1);  /* Slightly darker shade for interactivity */
}

.quiz-container {
    align-items: center;
    text-align: center;
}

.quiz-container label {
    font-size: 16px;
    font-weight: bold;
    margin-top:1.5rem;
    width:100%;
}

.contact
.checkbox-container {
    display: flex;
    align-items: center; /* Vertically aligns checkbox and label */
    max-width: 600px; /* Same width as other inputs */
    width: 100%;
    margin: 0 auto;
    gap: 10px; /* Space between checkbox and label */
}



.wpcf7 input[type="checkbox"] {
    appearance: none; /* Removes default styling */
    width: 24px; /* Adjust size */
    height: 24px;
    border-radius: 50%; /* Makes it round */
    border: 2px solid #273143; /* Default border color */
    background-color: white; /* Background color */
    cursor: pointer;
    flex-shrink: 0; /* Prevents shrinking in flex container */
    transition: background 0.3s ease-in-out, border 0.3s ease-in-out;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right:25px
}


.wpcf7 input[type="checkbox"]:checked {
    background-color: #273143; /* Blue background */
    border-color: #273143; /* Blue border */
}


.wpcf7 input[type="checkbox"]:checked::after {
    content: ""; /* No checkmark */
}
.contact
.wpcf7-list-item label {
    display: inline-flex;
    gap:1rem;
    border: 0px solid rgba(235, 81, 64);
    border-radius: 25px;
    font-size: 1rem;
    font-weight: bold;
    color: #273143;
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
    margin-top:0rem;
    padding:0
}

.checkbox-container label {
    font-size: 16px; /* Smaller text */
    font-weight:bold;
    color: #273143; /* Text color */
    display: flex;
    align-items: center; /* Ensures text is vertically centered */
    flex-grow: 1; /* Allows label to take up available space */
    line-height: 1.2; /* Improves spacing */
    text-align: left
}

.wpcf7-list-item {
    display: flex;
    align-items: center; /* Ensures checkbox and text align */
    margin: 0;
    gap: 10px; /* Space between checkbox and text */
}

.cf7-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 1;
  transition: opacity 0.5s ease;
}

.cf7-popup {
  background-color: white;
  padding: 3rem 4rem;
  border: 2px solid #EB5140;
  border-radius: 25px;
  color: #EB5140;
  font-size: 2.5rem;
  font-family: 'Anton', sans-serif;
  text-align: center;
  max-width: 90%;
  box-sizing: border-box;
}

.wpcf7-response-output {
  display: none !important;
}

/* Responsive font size */
@media (max-width: 768px) {
  .cf7-popup {
    font-size: 1.5rem;
    padding: 1rem 2rem;
  }
}



@media (max-width: 768px) {
    
    .contact {
        padding:90px 25px 90px 25px
        
    }
    .contact-container {
    max-width: 100vw;
}
    
    .contact .checkbox-container {
margin-top: 1rem;
}
}

 @media only screen and (max-width: 900px) and (orientation: landscape) {
.quiz-container {
        margin-top: 0rem;
    }
     
     .contact .checkbox-container {
    margin-top: 1rem;
}
} 







/* Impressum */

.impressum {
    background-color: #f7c2cf;
    width: 100%;
    height: 100%;
    padding: 200px 150px 100px 100px
}

.impressum h1 {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 20px;
    text-align: center;
}

.impressum-content {
    font-size: 1rem;
    line-height: 1.6;
    color: #273143;
}

.impressum-content a {
    color: #273143;
    font-weight: bold;
}

.impressum-content a:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    #main-content {
        width: 100%;
        padding: 0px;
    }

    .impressum {
        padding: 20px;
    }

    .impressum h1 {
        font-size: 1.5rem;
    }

    .impressum-content {
        padding-top:100px;
        font-size: 0.95rem;
    }
}




/* BIG Screens */

@media screen and (min-width: 2200px) {
    p {
        font-size:32px
    }
    .half-content:first-child {
padding: 50px 150px 90px 150px;
}
    .half-content .text-box-row {
margin-top: 100px;
width: 70%;
}
    
    .cta-button {
font-weight: 500;
}
    
    .zeitplan .image-container img {
        width:70%
    }
    
    .full-no-image-content .text-box-row {
width: 70%;
}
    
    .full-box-in-box .text h2 {
width: 70%;
}
    
    .image-row {
width: 80%;
margin: auto;
}
    
    .gallery-left-text-below {
gap: 100px;
}
    
.text-container p {
margin-bottom: 0;
}
    
    .content-row {
gap: 100px;
}

    
}






/* Anmeldung */


.anmeldung-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction:column;
    height:100%
}


.anmeldung {
    background-color: white;
    width: 100%;
    min-height: 100vh;
    padding: 2rem 2rem;
    text-align: center;
}

.anmeldung h1,
.anmeldung h2 {
    font-size: 4rem;
    margin-bottom: 2rem;
    text-align: center;
    color:rgba(235, 81, 64)
}

.anmeldung p {
    font-size: 2rem;
    line-height: 0;
    margin:0;
    padding:0
}

.anmeldung p.infotext {
    font-size: 1.5rem;
    line-height:1.2;
    margin-bottom: 3rem
}

.anmeldung-content {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(235, 81, 64);
}

.anmeldung-content a {
    color: rgba(235, 81, 64);
    font-weight: bold;
}

.anmeldung-content a:hover {
    text-decoration: underline;
}

.anmeldung-container {
    max-width: 75vw;
    margin: 0 auto;
}

.logo-anmeldung {
    width:150px;
    left:50%;
    transform: translateX(-50%);
    margin-bottom:3rem
}



@media (max-width: 900px) {
    
    .anmeldung {
    padding: 1rem 1rem;
    }

    .anmeldung h1,
.anmeldung h2 {
    font-size: 2rem;
    margin-bottom: 2rem;
    text-align: center;
    color:rgba(235, 81, 64)
}
    
    .anmeldung-container {
    max-width: 100vw;
}
    
    .logo-anmeldung {
    width:100px;
}
    
     .anmeldung p.infotext {
    font-size: 1.1rem;
    line-height:1;
    margin-bottom: 3rem
}
}





.name-container-anmeldung {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin: 0 auto;
}

.anmeldung input[type="text"],
.anmeldung input[type="email"],
.anmeldung input[type="tel"],
.anmeldung input[type="url"],
.anmeldung textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid rgba(235, 81, 64);
    border-radius: 25px;
    font-size: 2rem;
    box-sizing: border-box;
    transition: border-color 0.3s ease-in-out;
    background-color: transparent; /* 👈 makes background transparent */
    color: #273143; /* ensure text remains readable */
}

.anmeldung input::placeholder,
.anmeldung textarea::placeholder {
    font-family: 'Lato', sans-serif;
    color: lightgrey; /* your desired placeholder color */
    font-size: 2rem; /* adjust as needed */
    opacity: 1; /* ensure full visibility */
}

.anmeldung label {
    display: block;
    margin-bottom: 1.5rem; /* Abstand nach unten */
}

.name-container-anmeldung label {
    margin-bottom: 1.5rem; /* kein zusätzlicher Abstand innerhalb des Name-Containers */
}


.wpcf7-not-valid-tip {
color: #273143;
margin-top: 1rem;
font-size:1rem;
}


.name-container-anmeldung input {
    width: 100%;
}

.anmeldung input:focus,
.anmeldung textarea:focus {
    border: 3px solid rgba(235, 81, 64);
    outline: none;
}

.anmeldung input[type="submit"] {
    display: block;
    margin: 25px auto 0;
    padding: 1rem 1.5rem;
    background-color: rgba(235, 81, 64);
    color: white;
    font-family: 'Lato', sans-serif;
    font-weight:normal;
    border: none;
    border-radius: 25px;
    font-size: 1.5rem;
    cursor: pointer;
    transition: background 0.3s ease-in-out;
}

.anmeldung input[type="submit"]:hover {
    background-color: rgba(230, 170, 185, 1);
}



@media (max-width: 900px) {
    
    .name-container-anmeldung label {
    margin-bottom: 1rem; /* kein zusätzlicher Abstand innerhalb des Name-Containers */
}
    
    .anmeldung input[type="text"],
.anmeldung input[type="email"],
.anmeldung input[type="tel"],
.anmeldung input[type="url"],
.anmeldung textarea {
    font-size: 1rem;
}
    
    .anmeldung input::placeholder,
.anmeldung textarea::placeholder {
    font-size: 1rem;
}
    
    .anmeldung input:focus,
.anmeldung textarea:focus {
    border: 2px solid rgba(235, 81, 64);
    outline: none;
}
    
    .anmeldung input[type="submit"] {
    margin: 0 auto 0;
}
}






/* Spam */

.quiz-container {
    margin-top:25px;
    margin-bottom: 25px;
    align-items: center;
    text-align: center;
}

.quiz-container label {
    font-size: 1rem;
    font-weight: bold;
    margin-bottom: 5px;
    width: 100%;
}


@media (max-width: 900px) {
    
.quiz-container {
    margin-bottom: 0px;
    margin-top: 2rem
}
}



/* Datenschutz */

.anmeldung
.checkbox-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    gap: 10px;
    max-width:100%
}

.anmeldung
.wpcf7 input[type="checkbox"] {
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid rgba(235, 81, 64);
    background-color: white;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.3s ease-in-out, border 0.3s ease-in-out;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 25px;
}

.anmeldung
.wpcf7 input[type="checkbox"]:checked {
    background-color: rgba(235, 81, 64);
    border-color: rgba(235, 81, 64);
}

.anmeldung
.checkbox-container /* Make each label look like a button */
.wpcf7-list-item label {
    display: flex;
    gap:0rem;
    border: 0px solid rgba(235, 81, 64);
    border-radius: 25px;
    font-size: 1.5rem;
    color: #273143;
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
    margin-top:1rem;
    padding:0
}

.anmeldung
.checkbox-container 
.wpcf7-list-item label:hover {
    background-color: white;
    color:rgba(235, 81, 64)
}

.wpcf7 input[type="checkbox"]:checked::after {
    content: "";
}

.checkbox-container label {
    font-size: 1rem;
    color: #273143;
    display: flex;
    align-items: center;
    flex-grow: 1;
    line-height: 1.2;
    text-align: left;
}

@media (max-width: 900px) {
    
.anmeldung
.checkbox-container /* Make each label look like a button */
.wpcf7-list-item label {
    font-size: 1rem;
}

}






/* Personenanzahl */

.anmeldung select {
    width: 100%;
    margin-bottom:1.5rem;
    padding: 12px 20px;
    border: 1px solid rgba(235, 81, 64);
    border-radius: 25px;
    font-size: 2rem;
    background-color: transparent;
    color: lightgrey;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L7 7L13 1' stroke='%23EB5140' stroke-width='2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.5rem center;
    background-size: 1rem;
    cursor: pointer;
    transition: border-color 0.3s ease;
}

.anmeldung select:focus {
    border: 2px solid rgba(235, 81, 64);
    outline: none;
}

@media (max-width: 900px) {
    
 .anmeldung select {
    padding: 12px 20px;
    border-radius: 25px;
    font-size: 1rem;
}
}





/* Wohnungsgrößen */

.wpcf7 input[type="radio"] {
    display: none;
}

.radio-inline-group {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: nowrap;
  margin-bottom: 1.5rem;
}

.radio-inline-group .radio-label {
  font-size: 2rem;
  color: rgba(235, 81, 64);
  white-space: nowrap;
  display: flex;
  align-items: center;
  margin-right: 10px;
  height: 100%;
}

.radio-options {
  display: flex;
  gap: 10px;
  align-items: center; /* ✅ stellt vertikale Zentrierung der Buttons sicher */
}

.radio-options label {
    margin-bottom:0
}





/* Optional p inside label container */
.radio-label p {
    color: rgba(235, 81, 64);
    margin: 0;
}

.wpcf7-form-control.wpcf7-radio {
  display: flex;
  gap: 10px 20px;
  align-items: center; /* ✅ aligns radio button labels vertically */
  margin: 0; /* 👈 remove margin that breaks vertical alignment */
  padding: 0;
}

.radio-inline-group .wpcf7-form-control.wpcf7-radio {
  display: flex;
  gap: 10px 20px;
  align-items: center; /* ✅ aligns radio button labels vertically */
  margin: 0; /* 👈 remove margin that breaks vertical alignment */
  padding: 0;
    flex-wrap: wrap
}



/* Styled button-like labels */
.wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 25px 25px;
    border: 1px solid rgba(235, 81, 64);
    border-radius: 25px;
    font-size: 2rem;
    color: rgba(235, 81, 64);
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
    margin-top: 0;
    min-width: 100px;
    
}

.anmeldung
.wpcf7-list-item label:hover {
    background-color: rgba(235, 81, 64);
    color: white;
}

/* ✅ Modern checked state using :has() (supported in latest Chrome, Safari, Edge) */
.wpcf7-list-item label:has(input[type="radio"]:checked) {
    background-color: rgba(235, 81, 64);
    color: white;
    border-color: rgba(235, 81, 64);
}

.wpcf7-list-item input[type="radio"]:checked ~ * {
    background-color: rgba(235, 81, 64);
    color: white;
    border-color: rgba(235, 81, 64);
}



@media (max-width: 900px) {
    
/* Styled button-like labels */
.wpcf7-list-item label {
    font-size: 1rem;
    min-width: 0px;
}
    
    .radio-inline-group {
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
    
    
.radio-inline-group .radio-label {
 margin-bottom:1rem
}
    
    .anmeldung p {
    font-size: 1rem;
}
}





.event-form-wrapper {
  /* Optional: global styling */
}

.event-form-wrapper .name-container-anmeldung-event {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
}

.event-form-wrapper .name-container-anmeldung-event label {
  flex: 1 1 45%;
}

.event-form-wrapper label,
.event-form-wrapper .quiz-container,
.event-form-wrapper .radio-inline-group,
.event-form-wrapper .checkbox-container {
  display: block;
}

.event-form-wrapper input[type="text"],
.event-form-wrapper input[type="email"],
.event-form-wrapper textarea {
  width: 100%;
  padding: 12px;
  font-size: 1rem;
  border-radius: 25px;
  border: 1px solid #273143;
  box-sizing: border-box;
}

.event-form-wrapper input::placeholder,
.event-form-wrapper textarea::placeholder {
  color: #999;
  font-size: 1rem;
}


.event-form-wrapper .radio-inline-group .radio-label {
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.event-form-wrapper .radio-options .radio-option {
  margin-right: 1rem;
}

.event-form-wrapper .acceptance-option {
  display: block;
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

.event-form-wrapper .submit-container {
  margin-top: 0.5rem;
Text-align:center
}

.event-form-wrapper .event-submit {
  background-color: #273143;
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  cursor: pointer;
  border-radius: 5px;
  transition: background 0.3s ease;
}

.event-form-wrapper .event-submit:hover {
  background-color: #3a4b5b;
}


/* List item container */
.event-form-wrapper .wpcf7-list-item {
  display: inline-block;
  margin: 0 0.5rem 1rem 0;
}

/* Label styling inside list items */
.event-form-wrapper .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border: 1px solid #273143;
  border-radius: 25px;
  font-size: 1rem;
  color: #273143;
  background-color: transparent;
  cursor: pointer;
  transition: all 0.3s ease;
}

/* Hover effect */
.event-form-wrapper .wpcf7-list-item label:hover {
  background-color: #273143;
  color: white;
}

/* Checked state (modern browser support with :has()) */
.event-form-wrapper .wpcf7-list-item label:has(input:checked) {
  background-color: #273143;
  color: white;
  border-color: #273143;
}

/* Optional: visually hide radio/checkbox inputs */
.event-form-wrapper .wpcf7-list-item input[type="radio"],
.event-form-wrapper .wpcf7-list-item input[type="checkbox"] {
  display: none;
}

.event-form-wrapper .radio-label p {
  font-size: 1rem;
  color: #273143;
  margin: 0;
  padding: 0;
  line-height: 1.4;
Margin-top:1rem
}


/* Container */
.event-form-wrapper .checkbox-container {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  margin-top: 0.5rem;
  gap: 0.75rem;
}

/* List item layout */
.event-form-wrapper .wpcf7-list-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

/* Checkbox style */
.event-form-wrapper input[type="checkbox"] {
  appearance: none;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  border-radius: 50%;
  border: 2px solid #273143;
  background-color: white;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

/* Checked state */
.event-form-wrapper input[type="checkbox"]:checked {
  background-color: #273143;
  border-color: #273143;
}

/* Optional checkmark */
.event-form-wrapper input[type="checkbox"]:checked::after {
  content: "✔";
  font-size: 0.8rem;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

/* Label text */
.event-form-wrapper .acceptance-option {
  font-size: 0.9rem;
  color: #273143;
  line-height: 1.4;
}

.event-form-wrapper .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border: 1px solid #273143;
  border-radius: 25px;
  font-size: 1rem;
  color: #273143;
  cursor: pointer;
  transition: all 0.3s ease;
}

.event-form-wrapper .wpcf7-list-item input[type="radio"]:checked ~ * {
  background-color: #273143;
  color: white;
  border-color: #273143;
}

.event-form-wrapper .wpcf7-not-valid-tip {
color: rgba(235, 81, 64);
margin-top: 0.5rem;
font-size: 1rem;
}

.event-form-wrapper .quiz-container {
margin-top: 20px;
margin-bottom: 20px;
align-items: center;
text-align: center;
}

.event-form-wrapper .radio-inline-group {
display: flex;
align-items: center;
gap: 20px;
flex-wrap: nowrap;
margin-bottom: 0rem;
Margin-top: 1rem;
}

.event-form-wrapper ..quiz-container label {
margin-top: 1rem;
}

.event-form-wrapper .wpcf7-list-item {
display: inline-block;
margin: 0 0 0 0;
}

.event-form-wrapper .event-submit {
background-color: #273143;
color: white;
padding: 0.75rem 1.5rem;
border: none;
cursor: pointer;
border-radius: 5px;
transition: background 0.3s ease;
font-size: 20px;
text-align: center;
}

@media (max-width: 900px) {
    
.event-form-wrapper .wpcf7-list-item label {

font-size: 1rem;
}

.event-form-wrapper .checkbox-container .wpcf7-list-item label {

font-size: 0.7rem;
}

.event-form-wrapper .radio-inline-group {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
margin-top:0
}

}


/* Target label inside .checkbox-container only */
.event-form-wrapper .checkbox-container label {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  cursor: default;
}

.event-form-wrapper .checkbox-container label input[type="checkbox"] {
  pointer-events: auto;
  cursor: pointer;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #273143;
  background-color: white;
  position: relative;
  flex-shrink: 0;
  transition: background 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

/* Checkmark styling */
.event-form-wrapper .checkbox-container label input[type="checkbox"]:checked::after {
  content: "";
  font-size: 0.8rem;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0;
}

/* Reset inherited font from label */
.event-form-wrapper .checkbox-container label span {
  font-size: 0.9rem;
  color: #273143;
  line-height: 1.4;
  margin-left: 1rem;
  user-select: none;
}

.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d;
opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
display: contents;
Display:none
}

@media screen and (max-width: 768px) {
 .event-form-wrapper .checkbox-container {
margin-top: 0;
}

.popup-content p {
margin-bottom: 0rem;
Margin-top:0
}

.event-form-wrapper .quiz-container {
margin-top: 0;
margin-bottom: 0;
}

.popup-content h3 {
margin-bottom:0.5rem
}

.wpcf7 input[type="checkbox"] {
margin-right: 0px;
}

.quiz-container label {
Margin-top:0.5rem
}

.event-form-wrapper .radio-inline-group {
gap: 0px;
}

}


/* Forum */

#af-wrapper {
width: 90% !important;
margin: 0 auto !important;
padding-top: 100px !important;
}

/* ==========================
   Weiche eG – Forum Login / Register Notice
========================== */

#af-wrapper .notices-panel {
  width: 100%;
  margin: 40px auto;
  display: flex;
  justify-content: center;
Background-color:transparent;
Border:0
}

#af-wrapper .notices-panel .notice {
  background: #ffffff;
  border: 0;
  border-radius: 25px;
  padding: 25px 35px;
  max-width: 800px;
  text-align: center;

  font-family: 'Lato', sans-serif;
  font-size: 22px;
  line-height: 1.3;
  color: #273143;

  box-shadow: 0
}

/* Remove default underline styling */
#af-wrapper .notices-panel .notice u {
  text-decoration: none;
}

/* Login / Register links */
#af-wrapper .notices-panel .notice a {
  font-family: 'Anton', sans-serif;
  font-size: 24px;
  color: rgb(235, 81, 64);
  text-decoration: none;
  padding: 6px 14px;
  border-radius: 20px;
  transition: all 0.25s ease;
  display: inline-block;
}

/* Hover effect – Weiche style */
#af-wrapper .notices-panel .notice a:hover {
  background-color: #273143;
  color: #ffffff;
  transform: translateY(-1px);
}

/* Optional: visually separate Login / Register */
#af-wrapper .notices-panel .notice a.login-link {
  margin-right: 8px;
}

#af-wrapper .notices-panel .notice a.register-link {
  margin-left: 8px;
}

#af-wrapper .notice a {
color: rgb(235, 81, 64) !important;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  #af-wrapper .notices-panel .notice {
    font-size: 16px;
    padding: 18px 22px;
  }

  #af-wrapper .notices-panel .notice a {
    font-size: 18px;
    margin-top: 6px;
color: rgb(235, 81, 64);
  }
}

#af-wrapper .main-title {
font-size: 40px;
Color: #273143 !important;
font-family: 'Anton', sans-serif;
}

#af-wrapper #forum-navigation a, #af-wrapper #forum-navigation-mobile a {
font-weight: 700 !important;
}


#af-wrapper #forum-breadcrumbs {
padding: 10px 8px;
}