/*
Theme Name: Twenty Twenty-Five Child
Description: Child Theme von Twenty Twenty-Five für individuelle Anpassungen, ohne das Parent-Theme direkt zu verändern.
Author: 
Template: twentytwentyfive
Version: 1.3.0
Text Domain: twentytwentyfive-child
*/

/* Eigene Styles unterhalb dieser Zeile ergänzen.
   Block-Themes laden Styles primär über theme.json,
   diese Datei ist hier vor allem für den Theme-Header
   und punktuelle CSS-Ergänzungen gedacht. */

   /* Seitentemplate 
   .wp-site-blocks {
      max-width: 1200px;
      margin: auto;
      padding: 0 25px;
   }*/

   @media (min-width: 992px) {
      .content-row--bg, .content-row {
         margin-bottom: 10rem;
      }
   }

   html {
      overflow-x: hidden;
      max-width: 100vw;
   }

   body {
      padding-top: 0;
      padding-bottom: 0;
      overflow-x: hidden;
      max-width: 100vw;
   }


   /* Typographie */
   .bucket-container h3,
   h2,
   h3 {
      margin: 10px 0 15px 0 !important;
   }

   /* Schriftgrößen – überschreibt die Theme-Vorgaben aus theme.json
      (Standard-Fließtextgröße dort: var(--wp--preset--font-size--large), ca. 22px).
      Weitere Elemente (h1–h6 etc.) hier nach demselben Muster ergänzen. */
   p {
      font-size: 16px !important;
   }


   /* Reservierungen */
   @media (min-width: 1400px) {
      .bucket-parent-container {
         display: grid;
         grid-gap: 2rem;
         grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr));
         margin-top: 50px;
      }
   }

   @media (max-width: 1399px) {
      .bucket-parent-container {
         display: grid;
         grid-gap: 1rem;
         grid-template-columns: repeat(auto-fit, minmax(min(350px, 100%), 1fr));
         margin-top: 50px;
      }
   }

   .bucket-container {
      background: #fff;
      padding: 25px;
   }

   .bucket-container hr {
      border: 1px dashed #BDBDBD;
      margin: 20px 0;
   }

   .bucket-container ul {
      padding-inline-start: 0;
   }

   .bucket-container ul li {
      list-style-type: none;
      display: -webkit-flex;
      display: -ms-flex;
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      margin-bottom: 15px;
   }

   body ul li {
      color: #29292e;
   }

   .bucket-container ul li svg {
      width: 20px;
      height: 19px;
      flex-shrink: 0;
      margin-right: 10px;
   }

   @media screen and (max-width: 768px) {
      h3, 
      .h3, 
      .section-title h3,
      .price {
         font-size: 3rem !important;
      }

      h3.headline--h4 {
         font-size: 1.5rem !important;
      }
   }

   .price {
      font-family: "Nunito";
      font-style: normal;
      font-weight: 900;
      font-size: 50px;
   }

   .bucket-container .text-small p {
      font-size: 12px;
      margin-top: 2rem !important;
      color: #828282 !important;
      font-style: italic;
   }

   .bucket-bottom {
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      flex-direction: column;
   }

   label.special-offer {
      background: #efb303;
      color: #fff;
      text-transform: uppercase;
      font-size: 11px;
      padding: 5px 15px 3px 15px;
      margin-bottom: 0;
      font-weight: bold;
      letter-spacing: 1px;
   }


   /* Button */
   .button, 
   .btn-primary, 
   .checkout-button {
      font-family: "Nunito";
      font-style: normal;
      font-weight: 800;
      padding: 20px 35px 20px 35px;
      border-radius: 40px;
      background-color: #1e8fd6 !important;
      color: #ffffff !important;
      transition: all .18s ease-in-out;
      min-width: max-content;
      width: auto;
      max-width: 250px;
   }

   .btn-primary::after, 
   .button::after {
      text-decoration: none;
   }

   .button:hover,
   .btn-primary:hover, 
   .checkout-button:hover {
      background-color: #1a7dbb !important;
      color: #ffffff !important;
   }


   /* Programm */
   @media (min-width: 768px) {
      .ticket-parent-container {
         grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
         display: flex;
display: -webkit-flex;
display: -ms-flex;
         align-items: center;
         margin-top: 50px;
         background: #1e8fd6;
         width: 100%;
         position: relative;
         justify-content:space-between;
-ms-flex-pack:justify;
      }

      .ticket-img img {
         height: 600px;
         max-height: 600px;
         width: 100%;
         aspect-ratio: 1 / 1;
      }

      .event-info {
         aspect-ratio: 4/3;
         height: 100%;
         max-width: 50%;
      }
   }

   @media (max-width: 767px) {
      .ticket-parent-container {
         display: flex;
display: -webkit-flex;
display: -ms-flex;
         flex-direction: column;
         align-items: center;
         margin-top: 50px;
         background: #1e8fd6;
         width: 100%;
      }

      .ticket-parent-container img {
         max-height: 350px;
         width: 100%;
      }

      .ticket-parent-container .ticket-img {
         width: 100%;
      }

      .datetime {
         margin-bottom: 0 !important;
      }
   }

   .ticket-img, .ticket-info {
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      width: fit-content;
      height: 100%;
      vertical-align: middle;
   }

   .ticket-img img {
      object-fit: cover !important;
      object-position: top;
   }

   .event-info {
      background: #1e8fd6;
      display: -webkit-flex;
      display: -ms-flex;
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      align-content: center;
      -ms-flex-line-pack: center;
      align-items: center;
      -ms-flex-align: center;
   }

   .event-info--content {
      padding: 40px 25px;
   }

   .event-info--content h3, 
   .event-info--content p, 
   .event-info--content table {
      color: #fff !important;
   }

   .datetime {
      display: inline-flex;
      align-items: center;
      -ms-flex-align: center;
      margin-bottom: 2rem;
      margin-top: 0.5rem;
   }

   .datetime .date {
      margin-right: 30px;
   }

   .datetime .date,
   .datetime .time {
      display: inline-flex;
      align-items:flex-start;
-ms-flex-align:start;
      -ms-flex-align: start;
      flex-direction: row;
      align-content: space-between;
      line-height: 150%;
   }

   .datetime svg {
      height: 20px;
      margin-right: 10px;
      fill: #fff;
   }

   /* Header */
   header.wp-block-template-part {
      position: absolute;
      left: 0;
      right: 0;
      width: auto;
      margin: 0 25px;
      box-sizing: border-box;
   }

   header.wp-block-template-part .wp-block-group {
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      align-content:flex-start;
-ms-flex-line-pack:start;
      align-items:flex-start;
-ms-flex-align:start;
      justify-content:space-between;
-ms-flex-pack:justify;
width: 100%;
   }

   @media (max-width:767px){
      header.wp-block-template-part img {
         width: 250px;
      }

      .wp-block-site-logo {
         display: block !important;
         max-width: 150px;
      }

      .wp-block-image.size-medium img {
         max-width: 100px;
         width: 100%;
         height: auto;
      }

      .wp-block-template-part {
         margin: 0 !important;
      }
   }

   @media (min-width:768px){
      header.wp-block-template-part img {
         width: 450px;
      }
   }

   /* sponsoren */
   .partner-sponsoren {
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      display: -webkit-flex;
      display: -ms-flex;
      flex-direction: row;
      align-items: center;
      -ms-flex-align: center;
      flex-wrap: wrap;
      -ms-flex-wrap: wrap;
   }

   @media (max-width: 991px) {
      .partner-sponsoren {
         gap: 3rem;
      }
   }

   @media (max-width: 991px) {
      .partner-sponsoren .wp-block-image.size-full {
         width: fit-content;
         max-width: 75px;
         height: 40px;
      }
   }

   @media (min-width: 992px) {
      .partner-sponsoren .wp-block-image.size-full {
         width: fit-content;
         max-width: 100px;
         height: 50px;
      }
   }

   .partner-sponsoren .wp-block-image.size-full img {
      width: 100%;
      height: 100% !important;
      object-fit: contain;
   }

   .widget img {
      max-width: 100%;
      height: auto !important;
   }

   @media (min-width: 992px) {
      .partner-sponsoren {
         gap: 4rem;
      }
   }

   /* Footer */
   footer.wp-block-template-part {
      width: 100%;
      max-width: 100vw;
   }

   footer figure.wp-block-gallery.has-nested-images {
      align-items: normal;
      gap: 4rem;
   }

   @media (min-width: 600px) {
      .wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image) {
         width: calc(10% - var(--wp--style--unstable-gallery-gap, 16px) * .875);
      }
   }

   @media (max-width: 767px) {
      .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
         margin: 0;
         width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) / 2);
      }

      footer figure.wp-block-gallery.has-nested-images {
         align-items: normal;
         gap: 2rem;
      }
   }

   /* accordion */
   .faq-accordion {
      cursor: pointer;
      width: 100%;
      transition: 0.4s;
      border: none;
      display: -webkit-flex;
      display: -ms-flex;
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      align-content: center;
      -ms-flex-line-pack: center;
      justify-content: flex-start;
      -ms-flex-pack: start;
      align-items: center;
      -ms-flex-align: center;
      margin-top: 15px;
      outline: none;
      background-color: transparent;
      color: #1c282c;
      text-align: left;
      padding-left: 0;
   }

   .accordion > .arrow-accordion, .faq-accordion > .arrow-accordion {
      margin-left: 0;
      transform: rotate(180deg);
      margin-right: 7px;
   }

   .faq-accordion {
      width: 100%;
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      align-items: center;
      gap: 18px;
      background: none;
      border: none;
      text-align: left;
      cursor: pointer;
      font: inherit;
      font-weight: 700;
   }

   .arrow-accordion {
      flex-shrink: 0;
      width: 22px;
      height: 22px;
      display: flex;
display: -webkit-flex;
display: -ms-flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.3s ease;
   }

   .accordion-tab.is-open .arrow-accordion {
      transform: rotate(45deg);
   }

   .panel {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease;
   }

   .accordion-tab h3.headline--h4 {
      font-size: 18px;
      font-family: 'Nunito';
      color: #111111;
      margin-bottom: 9px !important;
   }

  /* @media screen and (max-width: 992px) {
      .accordion-tab h3.headline--h4 {
         font-size: 1.5rem;
      }
   }*/

   /* Jobs */
   ul.jobs {
      /*margin-left: 30px;*/
      margin-top: -15px;
   }

   .content-row--info-jobs .vc_col-has-fill p {
      padding-bottom: 10px;
   }

/* =============================================
   Galerie – nativer WP [gallery]-Shortcode
   ============================================= */

.gallery {
   display: grid !important;
   grid-template-columns: repeat(3, 1fr) !important;
   grid-auto-rows: 260px;
   gap: 12px !important;
   margin: 0 !important;
}

.gallery-item {
   margin: 0 !important;
   padding: 0 !important;
   width: auto !important;
   overflow: hidden;
}

.gallery-icon {
   height: 100%;
}

.gallery-icon a,
.gallery-icon img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform 0.4s ease;
}

.gallery-item:hover .gallery-icon img {
   transform: scale(1.05);
}

/* Jedes 2. Item höher – visuelles Highlight */
.gallery-item:nth-child(2),
.gallery-item:nth-child(8) {
   grid-row: span 2;
}

/* Tablet: 2 Spalten */
@media (max-width: 1024px) {
   .gallery {
      grid-template-columns: repeat(2, 1fr) !important;
      grid-auto-rows: 220px;
   }

   .gallery-item:nth-child(2),
   .gallery-item:nth-child(8) {
      grid-row: span 2;
   }
}

/* Mobil: 1 Spalte */
@media (max-width: 640px) {
   .gallery {
      grid-template-columns: 1fr !important;
      grid-auto-rows: auto;
   }

   .gallery-item,
   .gallery-item:nth-child(2),
   .gallery-item:nth-child(8) {
      grid-row: span 1;
      aspect-ratio: 4 / 3;
   }
}

/* owb-galerie Template-Part (für spätere Nutzung) */
.owb-galerie__grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   grid-auto-rows: 260px;
   gap: 12px;
}

.owb-galerie__item {
   overflow: hidden;
}

.owb-galerie__item img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block;
   transition: transform 0.4s ease;
}

@media (max-width: 1024px) {
   .owb-galerie__grid {
      grid-template-columns: repeat(2, 1fr);
   }
}

@media (max-width: 640px) {
   .owb-galerie__grid {
      grid-template-columns: 1fr;
      grid-auto-rows: auto;
   }
}

/* =============================================
   Lightbox
   ============================================= */

body.owb-lightbox-open {
   overflow: hidden;
}

#owb-lightbox {
   display: none;
   position: fixed;
   inset: 0;
   z-index: 99999;
   align-items: center;
   justify-content: center;
}

#owb-lightbox.is-open {
   display: flex;
}

.owb-lightbox__overlay {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.88);
   cursor: pointer;
}

.owb-lightbox__content {
   position: relative;
   z-index: 1;
   display: flex;
   align-items: center;
   justify-content: center;
}

.owb-lightbox__img {
   max-width: 90vw;
   max-height: 88vh;
   object-fit: contain;
   display: block;
   border-radius: 3px;
}

.owb-lightbox__close {
   position: absolute;
   top: -44px;
   right: -4px;
   background: none;
   border: none;
   color: #fff;
   font-size: 2.4rem;
   line-height: 1;
   cursor: pointer;
   padding: 4px 10px;
   opacity: 0.85;
   transition: opacity 0.2s;
}

.owb-lightbox__close:hover {
   opacity: 1;
}

/* Intro */
.content-row--intro {
   margin-top: -10%;
   z-index: 10;
   position: relative;
}