:root {
  --roboto-condensed: "RobotoCondensed-Regular";
}

.kinoinfosV3 {
    width: 1600px;
    max-width: 1600px;
    color: var(--text-color);
    margin-left: auto;
    margin-right: auto;
}

.kinoinfosV3Wrapper {
    width: 100vW;
    min-height: 100vh; 
    /* background-image: url('https://ticket-static.b-cdn.net/all/auditorium-2584269_1920.jpg'); */
    background-image: url('https://ticket-static.b-cdn.net/all/theater-8921521_1920.jpg');
    background-size: cover;     
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.wptiV3-outerWrapper {
    background-color: rgba(0,0,0,.812);
}

.wptiV3-pageHeading {
    font-family: var(--roboto-condensed) !important;
    font-weight: 700;
    margin-left: 30px;
    margin-bottom: 20px;
    padding-top: 20px;
}

/* WP TI MovieList V2 Plugin Styles - Using WordPress Global Variables */
.wptiV3-movies-container {
    /* max-width: 1200px; */
    margin: 0 auto;
    padding: 30px;
    font-family: var(--roboto-regular), Arial, sans-serif;
    color: var(--text-color);
}

.wptiV3-movie-row {
    display: flex;
    /* margin-bottom: 65px; */
    /* background: var(--dark-card-backgroundcolor); */
    /* border-radius: 12px; */
    overflow: visible;
    /* box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); */
    color: var(--text-color);
    min-height: 320px;
    align-items: stretch;
    /* border: 1px solid var(--border-tab-color); */
    position: relative;
}

.wptiV3-movie-row .row-genres {
    position: absolute;
    top: -10px;
    left: 500px;
    right: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    z-index: 10;
}

.wptiv3-row-divider {
     margin-top: 40px; 
     margin-bottom: 29px;
     width:100%
}

.wptiv3-row-divider hr {
     margin-left: auto; 
     margin-right: auto; 
     width: 100%; 
     color: var(--text-color);
}

/* Poster Section - Fixed size */
.wptiV3-poster-section {
    flex: 0 0 235px;
    position: relative;
    height: 332px;
    margin-right: 15px;
    align-self: flex-start;
    margin-bottom: 16px;
}

.wptiV3-grid-fsk {
    display: none;
}

.wptiV3-poster-container {
    position: relative;
    width: 235px;
    height: 332px;
    overflow: visible;
    /* border-radius: 8px; */
}

.wptiV3-poster-link {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.wptiV3-poster {
    width: 100%;
    height: 100%;
    /* object-fit: cover; */
    display: block;
    /* border-radius: 8px; */
    /* transition: transform 0.2s ease; */
}

.wptiV3-poster-link:hover .wptiV3-poster {
    /* transform: scale(1.02); */
}

.wptiV3-poster-placeholder {
    width: 100%;
    height: 100%;
    background: var(--darker-gray-color);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--disabled-color);
    font-size: var(--text-xs);
    font-family: var(--roboto-regular);
    /* border-radius: 8px; */
}

/* Version Badges - positioned on edge */
.wptiV3-version-badges {
    position: absolute;
    top: 8px;
    right: -10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 10;
    width: 33px;
    height: 30px;
}

.wptiV3-version-badge {
    padding: 4px 4px;
    /* border-radius: 4px; */
    font-size: 23px;
    /* font-family: var(--roboto-bold); */
    font-family: "Roboto Condensed", sans serif;
    text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    line-height: 25px;
    font-weight: 700;
}

/* Swapped colors: 2D gets the orange/red color, 3D gets the teal color */
.wptiV3-version-badge.wptiV3-2d {
    background: var(--ticket-color-hover);
    /* Orange/red color */
    color: var(--white-color);
}

.wptiV3-version-badge.wptiV3-3d {
    background: var(--ticket-color);
    /* Teal color */
    color: var(--white-color);
}

/* Frame Badges */
.wptiV3-frame-badges {
    position: absolute;
    bottom: 8px;
    left: 8px;
    right: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.wptiV3-frame-badge {
    background: var(--timeout-color);
    color: var(--white-color);
    padding: 4px 8px;
    /* border-radius: 4px; */
    font-size: var(--text-3xs);
    font-family: var(--roboto-bold);
    text-transform: uppercase;
}

/* Details Section - Can grow vertically */
.wptiV3-details-section {
    flex: 1;
    padding: 0px 20px 0px 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 320px;
    min-width: 200px;
}

.wptiV3-movie-title {
    font-size: var(--text-xl);
    font-family: var(--roboto-black);
    margin: 0 0 15px 0;
    color: var(--white-color);
    line-height: 1.1;
}

.wptiV3-title-link {
    color: var(--ticket-color) !important;
    text-decoration: none;
    transition: color 0.2s ease;
    font-size: 25px;
}

.wptiV3-title-link:hover {
    color: var(--ticket-color);
}

.wptiV3-movie-description {
    flex: 1;
    font-size: 18px;
    line-height: 1.5;
    color: var(--text-color);
    margin-bottom: 15px;
    overflow: hidden;
}

.wptiV3-movie-description p {
    margin: 0 0 8px 0;
}

.wptiV3-movie-meta {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
    flex-shrink: 0;
    font-size: 16.5px;
    color: var(--bs-gray-500);
    font-style: italic;
    flex-wrap: wrap;
}

.wptiV3-movie-description-headline {
    font-size: 16.5px;
    color: var(--bs-gray-500);
    font-style: italic;
    margin-bottom: 1.2rem;
}

.wptiV3-todayTime {
    background-color: var(--darker-gray-color);
}

.wptiV3-rating {
    display: flex;
    align-items: center;
    /* padding: 4px 8px; */
    padding: 0px 3px;
    border-radius: 3px;
    font-size: var(--text-xxs);
    font-family: var(--roboto-condensed-black) !important;
    font-weight: 700;
    font-style: normal;
    letter-spacing: 0.06rem;
}

.vip-hinweis {
    position: absolute;
    left: 150px;
    bottom: -2px;
}

.wptiV3-rating-label {
    margin-right: 4px;
}

.wptiV3-rating-text {
    font-size: var(--text-3xs);
}

/* FSK Color System */
.wptiV3-fsk-0 {
    background: var(--white-color);
    color: var(--background-color);
}

.wptiV3-fsk-6 {
    /* background: var(--fsk6-color);
    color: var(--background-color); */
    background: var(--white-color);
    color: var(--background-color);
}

.wptiV3-fsk-12 {
    /* background: var(--fsk12-color);
    color: var(--background-color); */
    background: var(--white-color);
    color: var(--background-color);
}

.wptiV3-fsk-16 {
    /* background: var(--fsk16-color);
    color: var(--background-color); */
    background: var(--white-color);
    color: var(--background-color);
}

.wptiV3-fsk-18 {
    /* background: var(--fsk18-color);
    color: var(--background-color); */
    background: var(--white-color);
    color: var(--background-color);
}

.wptiV3-fsk-unknown {
    background: var(--disabled-color);
    color: var(--white-color);
}

.wptiV3-length {
    /* font-family: var(--roboto-medium); */
    flex-basis: 100%;
    font-size: 16.5px;
    color: var(--bs-gray-500);
    font-style: italic;
}

.wptiV3-genres {
    display: none !important;
    /* display: flex;
    flex-wrap: wrap;
    gap: 12px; */
}


.wptiV3-genre {
    background: var(--ticket-color-hover);
    padding: 4px 8px;
    border-radius: 4px;
    font-size: var(--text-3xs);
    font-family: var(--roboto-medium);
    color: var(--white-color);
}

/* Showtimes Section - Overlay Technique */
.wptiV3-showtimes-section {
    /* flex: 0 0 400px; */
    /* flex: 0 0 671px; */
    padding: 20px;
    /* background: var(--background-color); */
    /* border-left: 1px solid var(--border-tab-color); */
    overflow: hidden;
    /* border-radius: 0 12px 12px 0; */
    position: relative;
    min-height: 320px;
    min-width: 325px !important;
}

.wptiV3-showtimes-slider {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Master Scroll Container */
.wptiV3-showtimes-scroll-container {
    flex: 1;
    position: relative;
    overflow: hidden;
    margin-bottom: -20px;
    min-width: 90px;
}

.wptiV3-showtimes-scroll {
    overflow-x: auto;
    overflow-y: visible;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: var(--border-tab-color) transparent;
    height: auto;
    padding-bottom: 10px;
}

.wptiV3-showtimes-scroll::-webkit-scrollbar {
    height: 4px;
}

.wptiV3-showtimes-scroll::-webkit-scrollbar-track {
    background: var(--darker-gray-color);
    border-radius: 2px;
}

.wptiV3-showtimes-scroll::-webkit-scrollbar-thumb {
    background: var(--border-tab-color);
    border-radius: 2px;
}

.wptiV3-showtimes-content {
    min-width: max-content;
    position: relative;
}

/* Scrolling Date Headers */
.wptiV3-dates-header {
    display: flex;
    margin-bottom: 20px;
    min-width: max-content;
}

.wptiV3-date-header {
    flex: 0 0 110px;
    font-size: 18px;
    /* font-family: var(--roboto-black); */
    font-family: Roboto Condensed,sans-serif;
    /* Changed from roboto-bold to roboto-black for more emphasis */
    text-align: center;
    color: var(--text-color-hover);
    text-transform: uppercase;
    margin-right: 10px;
    font-weight: 700;
    letter-spacing: 0.1rem;
}

.wptiV3-date-header-single {
    margin-left: 31%;
}

.wptiV3-date-header::before {
    content: " ";
}

/* Remove hidden headers - we'll position based on times rows directly */
.wptiV3-version-header-hidden {
    display: none;
}

.wptiV3-timeHint {
    margin-left: auto;
    margin-right: auto;
    font-size: 12.75px;
    font-style: italic;
    text-align: center;
    color: var(--bs-gray-500);
}

/* Fixed Overlay Version Headers - Visible and stationary */
.wptiV3-version-overlay {
    position: absolute;
    left: 0;
    background: var(--ticket-color);
    /* Swapped: 2D overlay gets orange */
    color: var(--white-color);
    padding: 2px 16px;
    /* border-radius: 12px; */
    font-size: 12px;
    font-family: var(--roboto-condensed) !important;
    text-align: center;
    text-transform: uppercase;
    z-index: 5;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    height: 20px;
    line-height: 16px;
    white-space: nowrap;
    pointer-events: none;
    transition: top 0.2s ease;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 700;
}

.wptiV3-version-overlay.wptiV3-3d-overlay {
    background: var(--ticket-color);
    /* Swapped: 3D overlay gets teal */
}

.wptiV3-version-overlay.wptiV3-2d-overlay {
    /* background: transparent; */
    border: 1px solid var(--ticket-color);
}

/* Times Row - All scroll together */
.wptiV3-version-times-row {
    display: flex;
    min-width: max-content;
    margin-bottom: 25px;
    min-height: 28px;
    align-items: flex-start;
    padding-top: 5px;
}

.wptiV3-date-times {
    flex: 0 0 110px;
    display: grid;
    grid-template-rows: repeat(auto-fit, 25px);
    gap: 3px;
    margin-right: 10px;
    min-height: 28px;
    align-content: start;
    width: 110px;
}

/* Refined Time Buttons - Now as links */
.wptiV3-time-button {
    /* background: var(--ticket-color); */
    /* color: var(--white-color); */
    color: var(--ticket-color) !important;
    border: none;
    padding: 4px 8px;
    /* border-radius: 12px; */
    font-size: 18px;
    /* font-family: var(--roboto-condensed); */
    font-family: Roboto Condensed,sans-serif;
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: center;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
    text-decoration: none;
    line-height: 1;
    width: 100%;
    box-sizing: border-box;
    grid-row: span 1;
    margin-top: 10px;
}

.wptiV3-time-button i {
    margin-right: 3px;
    font-size: 10px;
    opacity: 0.9;
    vertical-align: middle;
    line-height: 1;
}

.wptiV3-time-button:hover:not(.wptiV3-disabled) {
    background: var(--ticket-color-hover);
    transform: none;
    /* Remove translateY to prevent jumping */
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
    color: var(--white-color) !important;
}

.wptiV3-time-button:active:not(.wptiV3-disabled) {
    transform: none;
    /* Remove translateY here too */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.wptiV3-time-button.wptiV3-disabled {
    background: var(--disabled-color);
    cursor: not-allowed;
    opacity: 0.5;
    box-shadow: none;
    pointer-events: none;
}

.wptiV3-time-button.wptiV3-past {
    background: var(--darker-gray-color);
    color: var(--disabled-color);
    cursor: not-allowed;
    opacity: 0.6;
    box-shadow: none;
    pointer-events: none;
}

.wptiV3-time-button.wptiV3-past:hover {
    background: var(--darker-gray-color);
    color: var(--disabled-color);
    transform: none;
    box-shadow: none;
}

.wptiV3-time-placeholder {
    background: transparent;
    color: var(--disabled-color);
    border: none;
    padding: 4px 8px;
    border-radius: 0;
    font-size: var(--text-xs);
    font-family: var(--roboto-bold);
    text-align: center;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    opacity: 0.4;
    pointer-events: none;
    box-shadow: none;
    width: 100%;
    box-sizing: border-box;
    grid-row: span 1;
    margin-top: 10px;
}

/* Navigation Arrows for master scroll */
.wptiV3-nav-buttons {
    position: relative;
    top: 25px;
    width: 100%;
    height: 45px;
}

.wptiV3-nav-arrow {
    position: absolute;
    top: 94%;
    transform: translateY(-50%);
    background: var(--payment-button-background);
    color: var(--swiper-chevron-color);
    border: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 10;
    backdrop-filter: blur(4px);
}

.wptiV3-nav-arrow:hover {
    background: var(--border-tab-color);
    transform: translateY(-50%) scale(1.1);
}

.wptiV3-nav-left {
    left: 5px;
    top: 5px;
}

.wptiV3-nav-right {
    right: 5px;
    top: 5px;
}

/* New Badge */
.wptiV3-new-badge {
    position: absolute;
    bottom: -29px;
    left: 0;
    right: 0;
    background: var(--white-color);
    color: var(--ticket-color);
    text-align: center;
    padding: 8px;
    font-family: var(--roboto-condensed) !important;
    font-size: var(--text-xs);
    text-transform: uppercase;
    /* border-radius: 0 0 8px 8px; */
    line-height: 0.8rem;
    font-weight: 700;
}

/* Responsive Design - Fixed Mobile Layout */
/* Mobile layout: poster floats left, text flows around, showtimes below */
@media (max-width: 768px) {
    .wptiV3-movie-row {
        display: block;           /* no flex on mobile */
        min-height: 0;
        position: relative;
    }

    .wptiV3-movie-row .row-genres {
        display: none !important;
    }

    .vip-hinweis {
        left: 33% !important;
    }

    /* Poster floats on the left */
    .wptiV3-poster-section {
        float: left;
        width: 140px;             /* poster column width */
        height: auto;
        margin: 0 15px 10px 0;    /* space to the right & bottom */
        padding: 0;
    }

    .wptiV3-poster-container {
        width: 100%;
        height: auto;
        position: relative;
    }

    /* Fix badge positioning on mobile */
    .wptiV3-version-badges {
        right: -10px;
        top: 10px;
    }

    /* Details: plain block, text can wrap around the floated poster */
    .wptiV3-details-section {
        display: block;
        padding: 0;
        min-height: 0;
        min-width: 0;
        overflow: visible; 
    }

    /* Showtimes row sits below everything, full width */
    .wptiV3-showtimes-section {
        clear: both;              /* drop below floated poster */
        width: 100%;
        border-left: none;
        border-top: 1px solid var(--border-tab-color);
        border-radius: 0;
        min-height: auto;
        margin-top: 15px;
        padding-top: 15px;
    }

    .wptiV3-date-header,
    .wptiV3-date-times {
        flex: 0 0 90px;
    }

    .wptiV3-showtimes-section {
        width: 710px !important;
    }

    .wptiV3-movie-title {
        font-size: var(--text-md-lg);
    }

    .wptiV3-movie-description {
        font-size: 18px !important;
        font-family: Roboto Condensed,sans-serif !important;
        clear: both;
        margin-top: 10px;
        margin-left: 0px;
        width: auto;
    }

    .wptiV3-movie-description p {
        margin: 25px 0 8px 0;
    }

    .wptiV3-nav-left {
        left: 10px;
    }

    .wptiV3-nav-right {
        right: 10px;
    }

    .wptiV3-movie-title,
    .wptiV3-movie-description-headline,
    .wptiV3-movie-meta {
        margin-left: 0px; 
    }

    .wptiV3-showtimes-section.no-scroll .wptiV3-showtimes-scroll {
        overflow-x: auto;           /* allow swipe / scroll again */
    }

    .wptiV3-showtimes-section.no-scroll .wptiV3-nav-buttons {
        display: block;             /* or flex; both work, they’re absolutely positioned */
    }
  
}

@media (max-width: 480px) {
    .wptiV3-movies-container {
        padding: 10px;
    }

    .vip-hinweis {
        left: 33% !important;
    }

    .wptiV3-movie-row {
        margin-bottom: 20px;
    }

    .wptiV3-poster-section {
        height: auto;
        padding: 0;     
    }

    .wptiV3-poster-container {
        width: 140px;       
        height: auto;
    }

    .wptiV3-version-badges {
        right: -8px;
        top: 8px;
    }

    .wptiV3-date-header,
    .wptiV3-date-times {
        flex: 0 0 90px;
    }
    .wptiV3-date-header-single {
        margin-left: 35%;
    }

    .wptiV3-time-button {
        padding: 3px 6px;
        min-height: 20px;
    }

    .wptiV3-movie-row .row-genres {
        display: none !important;
    }

    .wptiV3-showtimes-section {
        margin-left: auto;
        margin-right: auto;
    }

    .wptiV3-viewhost.wptiV3--grid .wptiV3-poster, .wptiV3-viewhost.wptiV3--grid .wptiV3-poster img {
        /* width: 142px !important; */
        width: 167px !important;
        height: 226px !important;
    }

    .wptiV3--grid .wptiV3-poster-container {
        width: 100% !important;
        /* width: 142px !important; */
    }

    .wptiV3--grid .wptiV3-poster-section {
        width: 100% !important;
        /* width: 142px !important; */
    }

    .wptiV3-showtimes-section {
        width: 400px !important;
    }

    .wptiV3-timeHint {
        margin-top: 20px;
    }

    .wptiV3-movie-title,
    .wptiV3-movie-description-headline,
    .wptiV3-movie-meta {
        margin-left: 155px;        /* 140 poster + 15 gap */
    }
}

/* --- Filter Bar (Heute ▾ / Komplettes Programm / Wochenende) --- */
.wptiV3-filterbar {
  display: flex; 
  gap: 12px; 
  margin: 12px 0 18px; 
  align-items: center; 
  margin-left: 30px;
}

.wptiV3-filter-left { 
    display: flex; 
    gap: 8px; 
    align-items: center; 
}

.wptiV3-btn {
  background: transparent; 
  /* color: var(--text-color);  */
  /* border: 1px solid rgba(255,255,255,0.25); */
  color: var(--ticket-color);
  border: 1px solid var(--ticket-color);
  padding: 6px 10px; 
  /* border-radius: 4px;  */
  cursor: pointer;
  font-family: Roboto Condensed,sans-serif !important;
  font-size: 18px !important;
}

.wptiV3-btn:hover { 
    border-color: rgba(255,255,255,0.5); 
}

.wptiV3-btn-primary { 
    background: var(--ticket-color); 
    border-color: var(--ticket-color-hover); 
    /* color: var(--text-color); */
    color: var(--darker-gray-color);
}

.wptiV3-dropdown { 
    position: relative; 
}

.wptiV3-dropdown-menu {
  position: absolute; 
  top: 100%; 
  left: 0; 
  min-width: 220px; 
  z-index: 50;
  background: #1a1a1a; 
  border: 1px solid rgba(255,255,255,0.15);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5); 
  display: none; 
  max-height: 60vh; 
  overflow: auto;
}

.wptiV3-dropdown-item {
  display: block; 
  width: 100%; 
  text-align: left; 
  border: 0; 
  background: transparent;
  color: var(--text-color); 
  padding: 8px 10px; 
  cursor: pointer;
}

.wptiV3-dropdown-item:hover { 
    background: rgba(255,255,255,0.08); 
}

.wptiV3-btn.is-active {
  background: var(--ticket-color-hover);
  border-color: var(--ticket-color-hover);
  /* color: var(--text-color); */
  color: var(--darker-gray-color);
}

.wptiV3-dropdown .wptiV3-btn.is-active {
  /* keep the trigger looking active when a date is chosen */
  background: var(--ticket-color-hover);
}

/* Filter bar right group */
.wptiV3-filterbar { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.wptiV3-filter-right { display:flex; gap:8px; margin-right: 20px; }
.wptiV3-toggle.is-active { background: var(--ticket-color-hover); border-color: var(--ticket-color-hover); }
/* Center the glyphicons in the grid/list toggle buttons */
.wptiV3-toggle .glyphicon {
    top: 0;                /* override Bootstrap's +1px */
    vertical-align: middle;
}

/* --- GRID MODE --- */
.wptiV3--grid .wptiV3-movies-container {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;              /* cleaner than negative margins */
}

/* Cards: width per breakpoint */
.wptiV3--grid .wptiV3-movie-row {
  flex-direction: column;
  /* width: 100%; */
  width: 232px;
  margin: 0;              /* gap handles spacing */
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(255,255,255,0.06);
  /* border-radius: 6px; */
  overflow: hidden;
}

/* Poster fills the card top */
.wptiV3--grid .wptiV3-poster-section { 
  flex: none;
  /* width: 100%; */
  width: 232px;
  height: auto;
  margin: 0;
  padding: 0;
}

.wptiV3--grid .wptiV3-poster-container {
  /* width: 100%; */
  width: 232px;
  height: auto;
}

.wptiV3--grid .wptiV3-poster {
  width: 100%;
  height: auto;
  display: block;
}

/* Show a compact title; hide rich details */
.wptiV3--grid .wptiV3-movie-title {
  display: block;
  font-weight: 700;
  font-size: 1rem;
  padding: 10px 12px 0 12px;
}

.wptiV3--grid .wptiV3-details-section,
.wptiV3--grid .wptiV3-movie-description,
.wptiV3--grid .wptiV3-movie-description-headline,
.wptiV3--grid .wptiV3-movie-meta,
.wptiV3--grid .wptiV3-showtimes-section,
.wptiV3--grid .wptiV3-length,
.wptiV3--grid .row-genres {
  display: none !important;
}

/* CTA at the bottom of the card */
.wptiV3--grid .wptiV3-grid-cta {
  padding: 12px;
  margin-top: auto;
  display: flex;
  justify-content: center;
}

.wptiV3--grid .wptiV3-btn-cta { width: 100%; text-align: center; background: var(--ticket-color); }

/* The element found by JS becomes the grid host */
.wptiV3-viewhost.wptiV3--grid {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 18px !important;
}

/* Make each movie row a card with fixed fraction width */
.wptiV3-viewhost.wptiV3--grid .wptiV3-movie-row {
  display: flex !important;
  flex-direction: column !important;
  /* flex: 0 0 calc(25% - 0px) !important;   
  max-width: calc(25% - 0px) !important;  */
  flex: 0 0 232 !important;   
  max-width: 232px !important;
  width: auto !important;
  margin: 0 !important;
  border-bottom: 0 !important;            /* kill list separator */
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(255,255,255,0.06);
  /* border-radius: 6px; */
  overflow: hidden;
}

/* Kill any horizontal hr/separator that belongs to list layout */
.wptiV3-viewhost.wptiV3--grid hr,
.wptiV3-viewhost.wptiV3--grid .wptiV3-row-separator,
.wptiV3-viewhost.wptiV3--grid .separator {
  display: none !important;
}

/* Poster full width; hide right-hand rich details in grid */
.wptiV3-viewhost.wptiV3--grid .wptiV3-right,
.wptiV3-viewhost.wptiV3--grid .wptiV3-details-section,
.wptiV3-viewhost.wptiV3--grid .wptiV3-showtimes-section,
.wptiV3-viewhost.wptiV3--grid .wptiV3-movie-description,
.wptiV3-viewhost.wptiV3--grid .wptiV3-movie-meta,
.wptiV3-viewhost.wptiV3--grid .wptiV3-length {
  display: none !important;
}

.wptiV3-viewhost.wptiV3--grid .wptiV3-poster,
.wptiV3-viewhost.wptiV3--grid .wptiV3-poster img {
  /* width: 100% !important;
  height: auto !important; */
  width: 232px !important;
  height: 327px !important;
  display: block;
}

.wptiV3-viewhost.wptiV3--grid .wptiV3-movie-title {
  display: block !important;
  font-weight: 700;
  font-size: 1rem;
  padding: 10px 12px 0 12px;
}

/* CTA sits at the bottom of the card */
.wptiV3-viewhost.wptiV3--grid .wptiV3-grid-cta {
  padding: 12px;
  margin-top: auto;
  display: flex;
  justify-content: center;
}

.wptiV3-viewhost.wptiV3--grid .wptiV3-new-badge {
    bottom: 92px;
}

.wptiV3-viewhost.wptiV3--grid .wptiV3-version-badges {
    right: 2px;
}

.wptiV3--grid .wptiV3-grid-fsk {
  padding: 13px 10px 0 10px;
  display: flex;
  justify-content: center;  
  align-items: center;
}

.wptiV3-viewhost.wptiV3--grid .wptiV3-btn-cta { width: 100%; text-align: center; }
.wptiV3-viewhost.wptiV3--grid .wptiV3-btn-cta:hover { 
    border-color: var(--text-color);
    background-color: var(--text-color);
    color: var(--ticket-color) !important;
}
.wptiV3-viewhost.wptiV3--grid .wptiv3-row-divider { display: none !important; }
.wptiV3-viewhost.wptiV3--grid .wptiV3-movie-row {
    width: 41% !important;
}

/* Responsive columns */
@media (max-width: 1200px) {
  /* .wptiV3-viewhost.wptiV3--grid .wptiV3-movie-row { flex-basis: 33.333% !important; max-width: 33.333% !important; } */
}
@media (max-width: 900px) {
  /* .wptiV3-viewhost.wptiV3--grid .wptiV3-movie-row { flex-basis: 50% !important; max-width: 50% !important; } */
}
@media (max-width: 560px) {
  /* .wptiV3-viewhost.wptiV3--grid .wptiV3-movie-row { flex-basis: 100% !important; max-width: 100% !important; } */
}
/* When we don't need to scroll (<= 7 days), widen the section and hide arrows */
.wptiV3-showtimes-section.no-scroll .wptiV3-showtimes-scroll { overflow-x: hidden; }
.wptiV3-showtimes-section.no-scroll .wptiV3-nav-buttons { display: none; }
.wptiV3-viewhost.wptiV3--grid .wptiV3-grid-fsk { display: flex; }

/* Sub-filter bar (frames) */
.wptiV3-filterbar-sub {
  margin-top: -6px;           /* tucks under the main bar a bit */
  padding-top: 0;
}
.wptiV3-filter-pill.is-active {
  background: var(--ticket-color-hover);
  border-color: var(--ticket-color-hover);
  color: var(--text-color);
}

/* Responsive container for smaller screens */
@media (max-width: 1024px) {
    .kinoinfosV3 {
        width: 100%;
        max-width: 100%;
        padding: 0 0px;         /* small side padding so content doesn't touch the edge */
        box-sizing: border-box;
    }
    .kinoinfosV3Wrapper{
        background: none;
    }
    .nav {
        margin-left: 0px !important;
        margin-right: 0px !important;
    }
}
/* --- Filter bar responsive layout --- */
@media (max-width: 768px) {
  .wptiV3-filterbar {
    flex-direction: column;      /* stack rows */
    align-items: flex-start;     /* left align contents */
    justify-content: flex-start;
    gap: 8px;
    margin-left: 10px;
    margin-right: 10px;
  }

  .wptiV3-filter-left,
  .wptiV3-filter-right {
    width: 100%;                 /* each row can use full width */
  }

  .wptiV3-filter-right {
    justify-content: flex-start; /* grid/list buttons under the filters, left aligned */
    margin-right: 0;
  }

  .wptiV3-viewhost.wptiV3--grid .wptiV3-poster, .wptiV3-viewhost.wptiV3--grid .wptiV3-poster img {
        /* width: 142px !important; */
        width: 167px !important;
        height: 226px !important;
    }

    .wptiV3--grid .wptiV3-poster-container {
        width: 100% !important;
        /* width: 142px !important; */
    }

    .wptiV3--grid .wptiV3-poster-section {
        width: 100% !important;
        /* width: 142px !important; */
    }

    .wptiV3-viewhost.wptiV3--grid {
        justify-content: space-evenly;
    }

    .wptiV3-viewhost.wptiV3--grid .wptiV3-btn-cta {
        font-size: 16.5px !important;
        font-weight: 700 !important;
        
    }

    .wptiV3-viewhost.wptiV3--grid .wptiV3-grid-cta {
        padding: 12px 0px 0px 0px !important;
    }
}

/* --- Filter bar responsive layout --- */
@media (max-width: 768px) {
  .wptiV3-filterbar {
    flex-direction: column;        /* left/right under each other */
    align-items: flex-start;
    justify-content: flex-start;
    gap: 8px;
    margin-left: 0;
    margin-right: 0;
    padding: 0 10px;
  }

  /* Make the left side itself a wrapping row */
  .wptiV3-filter-left {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
  }

  /* First button ("Komplettes Programm ▾") occupies full width, own row */
  #wptiV3-date-trigger {
    flex: 0 0 100%;
    text-align: center;           /* optional – matches your reference look */
  }

  /* Grid/list toggle on its own row underneath */
  .wptiV3-filter-right {
    width: 100%;
    display: flex;
    justify-content: flex-start;  /* or flex-end if you want them right-aligned */
    margin-right: 0;
  }
}
