/*
Theme Name: Bilmesser
Theme URI: http://bilmesser.no
Description: Eveny child theme for Bilmesser
Author: Mathias Bergersen
Author URI: http://mathi.as
Template: eveny
Version: 0.1.19
*/
/* Add your custom styles here */

/* Buy Now / Registrer deg CTA Button */
/* Keep button visible during AJAX loading */
.cart_form.loading,
.cart_form.loading .add_to_cart,
.cart_form .add_to_cart.loading,
.cart_form .add_to_cart.adding-to-cart,
.cart_form .add_to_cart.clicked {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none;
}

/* Hide Tickera's price, cart widget, and "in cart" message elements */
.tc_in_cart,
.tc_cart_widget_counter,
.tc_ticket_price_wrapper,
.cart_form + .tc_price,
.cart_form ~ .tc_price {
    display: none !important;
}

/* Buy Now button styles */
.cart_form .add_to_cart,
.cart_form a.add_to_cart,
form.cart_form a.add_to_cart,
.bilmesser-event-button {
    background-color: #e63946 !important;
    color: #fff !important;
    padding: 18px 40px !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    border: none !important;
    border-radius: 50px !important;
    cursor: pointer !important;
    display: inline-block !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    box-shadow: none !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
}

.cart_form .add_to_cart .title {
    color: #fff !important;
}

/* Loading state for ticket buttons */
.cart_form .add_to_cart.is-loading {
    pointer-events: none;
    opacity: 0.8;
}

.cart_form .add_to_cart.is-loading .title {
    visibility: hidden;
}

.cart_form .add_to_cart.is-loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-top: -10px;
    margin-left: -10px;
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: bilmesser-spin 0.8s linear infinite;
}

.cart_form .add_to_cart {
    position: relative;
}

@keyframes bilmesser-spin {
    to {
        transform: rotate(360deg);
    }
}

.cart_form .add_to_cart:hover,
.cart_form a.add_to_cart:hover,
form.cart_form a.add_to_cart:hover {
    background-color: #c1121f !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: none !important;
}

.cart_form .add_to_cart:active,
.cart_form a.add_to_cart:active,
form.cart_form a.add_to_cart:active {
    transform: translateY(0) !important;
    box-shadow: none !important;
}

/* Align price columns to the right */
.tickera-checkout .ticket-price,
.tickera-checkout .ticket-total,
.tickera-checkout .ticket-fee {
    text-align: right !important;
}

.tickera-checkout .ticket-price-header,
.tickera-checkout .ticket-price {
    display: none !important;
}

/* Hide price summary for free tickets */
.tickera-checkout .ticket-total-all {
    display: none !important;
}

/* Hide cart action buttons (auto-update enabled) */
.tickera-checkout .actions {
    display: none !important;
}

/* Hide last column in checkout table */
.tickera-checkout tr th:last-child,
.tickera-checkout tr td:last-child {
    display: none !important;
}

/* Empty cart message spacing */
.cart_empty_message {
    margin: 42px 0 !important;
}

/* Responsive cart table */
.tickera-checkout {
    width: 100% !important;
}

/* Mobile: Stack table rows as cards */
@media only screen and (max-width: 600px) {
    .tickera-checkout table {
        display: block;
        width: 100%;
    }

    .tickera-checkout thead {
        display: none;
    }

    .tickera-checkout tbody {
        display: block;
    }

    .tickera-checkout tr {
        display: flex;
        flex-direction: column;
        padding: 16px 0;
        border-bottom: 1px solid #eee;
        gap: 8px;
    }

    .tickera-checkout tr:last-child {
        border-bottom: none;
    }

    /* Hide rows with only hidden content */
    .tickera-checkout tr:has(> .ticket-total-all),
    .tickera-checkout tr:has(> .actions),
    .tickera-checkout tr.actions,
    .tickera-checkout tfoot tr,
    .tickera-checkout tbody tr:empty {
        display: none !important;
    }

    .tickera-checkout td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 4px 0 !important;
        text-align: left !important;
        border: none !important;
    }

    /* Add labels before each cell */
    .tickera-checkout td::before {
        font-weight: 700;
        margin-right: 16px;
    }

    .tickera-checkout td.ticket-event::before {
        content: "Arrangement";
    }

    .tickera-checkout td.ticket-type::before {
        content: "Billettype";
    }

    .tickera-checkout td.ticket-quantity::before {
        content: "Antall";
    }

    .tickera-checkout td.ticket-price::before {
        content: "Pris";
    }

    .tickera-checkout td.ticket-total::before {
        content: "Totalt";
    }
}

.tickera_additional_info .fields-wrap + .fields-wrap {
    margin-top: 4px;
}

#tickera_cart .tickera_buyer_info {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 24px;
}

.tickera_owner_info {
    display: none;
}

#tickera_cart .proceed-to-checkout-container {
    text-align: left;
}

.tickera_checkout {
    margin: 24px 0;
}

/* Confirmation page */
table.order-details td::before {
    text-transform: none;
}

@media only screen and (max-width: 480px) {
    table.order-details td::before {
        margin-right: 32px;
    }
}

/* Event Schedule */
.event-schedule {
    margin: 20px 0;
}

.event-schedule h3 {
    margin-bottom: 10px;
}

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

.schedule-list li {
    padding: 8px 0;
    border-bottom: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.schedule-list li:last-child {
    border-bottom: none;
}

.schedule-date {
    font-weight: 600;
    text-transform: capitalize;
}

.schedule-time {
    color: #666;
}

/* Schedule Summary (archive) */
.event-schedule-summary {
    font-family: var(--wp--preset--font-family--ibm-plex-mono, monospace);
    font-size: var(--wp--preset--font-size--tiny, 0.75rem);
    font-weight: 500;
    text-transform: uppercase;
}

.event-schedule-summary .schedule-dates {
    display: block;
}

.event-schedule-summary .schedule-time-summary {
    opacity: 0.8;
}

/* Order Details Page - Hide purchase details, show only tickets */
#order_details.tickera > * {
    display: none !important;
}

#order_details.tickera > table,
#order_details.tickera > .tc-download-tickets {
    display: block !important;
}

#order_details.tickera > table {
    display: table !important;
}

/* Footer logos */
.site-footer-container .wpcp-carousel-wrapper .wpcpro-row .wpcp-single-item {
    padding: 12px;
}

.site-footer-container .wpcp-carousel-wrapper .wpcp-single-item img {
    mix-blend-mode: multiply;
    transform: translate3d(0, 0, 0);
    filter: grayscale(100%);
}

.site-footer-container .wpcp-carousel-wrapper .wpcp-single-item img {
    max-height: 60px;
}

.site-footer-container .wpcp-carousel-wrapper .wpcpro-row .wpcp-single-item:hover {
    box-shadow: none;
}

.site-footer-container .wpcp-carousel-wrapper .wpcpro-row .wpcp-single-item:hover img {
    transform: none !important;
}

/* Footer carousel SVG scaling */
.site-footer-container .wpcp-carousel-wrapper img[src$=".svg"],
.site-footer-container .wpcp-carousel-wrapper img[src*=".svg"] {
    width: 100% !important;
    height: auto !important;
    max-height: 60px !important;
}

/* Carousel pagination z-index fix */
.wpcp-carousel-wrapper .slick-dots,
.wpcp-carousel-wrapper .wpcp-pagination {
    z-index: 1 !important;
}

/* Upcoming Events Grid (shortcode) */
.upcoming-events-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    padding-bottom: var(--wp--preset--spacing--70);
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

/* Adaptive columns based on event count */
.upcoming-events-grid.upcoming-events-count-1 {
    grid-template-columns: minmax(0, 1fr);
}

.upcoming-events-grid.upcoming-events-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.upcoming-events-grid.upcoming-events-count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.upcoming-events-grid .upcoming-event-card {
    width: 100%;
    height: 100%;
}

.upcoming-events-grid .upcoming-event-card-link {
    height: 100%;
}

.upcoming-events-grid .wp-block-cover {
    min-height: 300px;
    height: 100%;
}

@media (max-width: 1366px) {
    .upcoming-events-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .upcoming-events-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .upcoming-events-grid.upcoming-events-count-1 {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 600px) {
    .upcoming-events-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
}

/* Upcoming events grid typography */
.upcoming-events-grid .wp-block-cover__inner-container p.has-tiny-font-size {
    font-size: 0.8rem !important;
}

.upcoming-events-grid .wp-block-cover__inner-container h3 {
    font-size: 1.5rem !important;
}

.upcoming-event-card-link {
    display: block;
    text-decoration: none;
    color: #fff;
    transition: transform 0.3s ease;
}

.upcoming-event-card-link:hover {
    text-decoration: none;
    transform: translateY(-4px);
}

.upcoming-event-card-link h3,
.upcoming-event-card-link p {
    color: #fff;
}

/* Event logo overlay on featured image (archive) */
.event-featured-image-wrapper {
    position: relative;
    display: block;
}

.event-logo-overlay {
    position: absolute;
    bottom: 15px;
    left: 15px;
    z-index: 1;
    pointer-events: none;
}

.event-logo-overlay img {
    max-width: 150px;
    max-height: 80px;
    width: auto;
    height: auto;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

/* Exhibitor Logos Grid */
.exhibitor-logos-section {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid #eee;
}

.exhibitor-logos-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 24px;
    text-align: center;
}

.exhibitor-logos-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    align-items: center;
    justify-items: center;
}

.exhibitor-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    width: 100%;
    min-height: 60px;
}

.exhibitor-logo img,
.exhibitor-logo svg {
    max-width: 100%;
    max-height: 80px;
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* SVG specific fixes */
.exhibitor-logo img[src$=".svg"],
.exhibitor-logo img[src*=".svg"] {
    width: 100%;
    height: 80px;
    min-width: 80px;
}

/* Tablet landscape */
@media (max-width: 1024px) {
    .exhibitor-logos-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
    }
}

/* Tablet portrait */
@media (max-width: 768px) {
    .exhibitor-logos-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 16px;
    }

    .exhibitor-logo img {
        max-height: 60px;
    }

    .exhibitor-logo img[src$=".svg"],
    .exhibitor-logo img[src*=".svg"] {
        height: 60px;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .exhibitor-logos-section {
        margin-top: 40px;
        padding-top: 30px;
    }

    .exhibitor-logos-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .exhibitor-logo {
        padding: 8px;
    }

    .exhibitor-logo img {
        max-height: 50px;
    }

    .exhibitor-logo img[src$=".svg"],
    .exhibitor-logo img[src*=".svg"] {
        height: 50px;
    }
}

/* Cover Block Background Video */
.wp-block-cover {
    position: relative;
}

.bilmesser-cover-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.bilmesser-cover-video--youtube,
.bilmesser-cover-video--vimeo {
    /* Scale iframe to cover the entire area while maintaining aspect ratio */
    width: 100vw;
    height: 56.25vw; /* 16:9 aspect ratio */
    min-height: 100%;
    min-width: 177.78vh; /* 16:9 aspect ratio */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Ensure background image is behind video */
.wp-block-cover .wp-block-cover__image-background {
    z-index: 0;
}

/* Ensure overlay is above video */
.wp-block-cover .wp-block-cover__background {
    z-index: 1;
}

/* Ensure content is above everything */
.wp-block-cover .wp-block-cover__inner-container {
    z-index: 2;
    position: relative;
}

/* Navigation ticket button - sized for menu */
li.bilmesser-nav-ticket-button {
    display: flex;
    align-items: center;
}

li.bilmesser-nav-ticket-button .bilmesser-ticket-wrapper {
    min-height: auto;
}

li.bilmesser-nav-ticket-button .cart_form .add_to_cart,
li.bilmesser-nav-ticket-button .bilmesser-event-button {
    padding: 8px 16px !important;
    font-size: var(--wp--preset--font-size--tiny) !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}

li.bilmesser-nav-ticket-button .cart_form .add_to_cart:hover,
li.bilmesser-nav-ticket-button .bilmesser-event-button:hover {
    transform: none !important;
}

/* Smaller loading spinner for nav button */
li.bilmesser-nav-ticket-button .cart_form .add_to_cart.is-loading::after {
    width: 12px;
    height: 12px;
    margin-top: -8px;
    margin-left: -6px;
    border-width: 2px;
}

/* Mobile menu button styling */
.wp-block-navigation__responsive-container.is-menu-open li.bilmesser-nav-ticket-button {
    width: 100%;
    justify-content: center;
    margin-bottom: var(--wp--preset--spacing--30);
}

.wp-block-navigation__responsive-container.is-menu-open li.bilmesser-nav-ticket-button .cart_form .add_to_cart,
.wp-block-navigation__responsive-container.is-menu-open li.bilmesser-nav-ticket-button .bilmesser-event-button {
    font-size: inherit !important;
    padding: 12px 24px !important;
}

/* Override parent theme mobile menu breakpoint (was 1366px in landscape) */
@media (min-width: 1025px) {
    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: none !important;
    }

    body .wp-block-navigation.is-responsive .wp-block-navigation__responsive-container {
        opacity: 1 !important;
        visibility: visible !important;
        position: static !important;
        height: auto !important;
        overflow: visible !important;
        transform: none !important;
        padding: 0 !important;
        display: block !important;
        flex-direction: unset !important;
        color: inherit !important;
        width: auto !important;
    }

    body .wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-navigation__container {
        background-color: transparent !important;
        gap: var(--wp--style--block-gap, 1.5em) !important;
    }

    body .wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-navigation-item {
        opacity: 1 !important;
        transform: none !important;
        font-size: inherit !important;
        transition: none !important;
    }

    body .wp-block-navigation.is-responsive .wp-block-navigation__container > li {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    body .wp-block-navigation .wp-block-navigation-link__container {
        margin-bottom: 0 !important;
    }
}

