/* Pinball-Network responsive storefront layer.
 * Desktop behavior is intentionally untouched; all changes are viewport scoped.
 */

.pn-mobile-left-column-trigger {
    display: none;
}

#product .product-quantity #quantity_wanted {
    color: #232323 !important;
    -webkit-text-fill-color: #232323;
    opacity: 1;
}

.btn-primary,
.btn-secondary,
.btn-tertiary {
    text-transform: none;
}

@media (max-width: 1661px) {
    /*
     * The theme gives its main containers a 1630px width. Because
     * .tv-main-div is a grid, its implicit column otherwise grows to that
     * max-content width and clips the storefront on laptops and smaller
     * devices.
     */
    .tv-main-div {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        max-width: 100%;
    }

    #header,
    #wrapper,
    #footer {
        width: 100%;
        max-width: 100%;
    }

    #tvdesktop-megamenu .menu-content {
        width: 100%;
        white-space: nowrap;
    }
}

@media (min-width: 1380px) and (max-width: 1661px) {
    #header #tvdesktop-megamenu .menu-content > li.level-1 > a {
        padding-right: 10px;
        padding-left: 10px;
        font-size: 16px;
    }
}

@media (min-width: 1200px) and (max-width: 1379px) {
    #header #tvdesktop-megamenu .menu-content > li.level-1 > a {
        padding-right: 8px;
        padding-left: 8px;
        font-size: 15px;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    #header #tvdesktop-megamenu .menu-content > li.level-1 > a {
        padding-right: 6px;
        padding-left: 6px;
        font-size: 13px;
        letter-spacing: 0.5px;
    }

    .pn-topbar-shipping-countries .pn-topbar-icon,
    .pn-topbar-shipping-countries .pn-topbar-label {
        display: none;
    }

    .pn-topbar-free-shipping {
        justify-content: center;
        white-space: normal;
        text-align: center;
        line-height: 1.25;
    }
}

@media (max-width: 1024px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .tv-main-div,
    #wrapper,
    #content-wrapper,
    #main,
    .page-content,
    .card,
    .card-block {
        min-width: 0;
    }

    #wrapper > .container,
    #wrapper > .container-fluid,
    #content-wrapper,
    .page-content {
        width: 100%;
        max-width: 100%;
    }

    body.layout-left-column #content-wrapper,
    body.layout-right-column #content-wrapper,
    body.layout-both-columns #content-wrapper {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }

    #right-column {
        display: none;
    }

    #right-column.open {
        display: block;
    }

    .pn-mobile-left-column-trigger {
        display: flex;
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        margin-bottom: 15px;
        padding-right: 15px;
        padding-left: 15px;
    }

    .pn-mobile-left-column-trigger .tv-left-pannal-btn-wrapper {
        display: inline-flex;
        float: none;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: auto;
        min-width: 190px;
        height: auto;
        min-height: 44px;
        margin: 0;
        padding: 10px 16px;
        color: #fff;
        background-color: #3e5e89;
        background-image: none;
        border: 0;
        border-radius: 3px;
        font: inherit;
    }

    .pn-mobile-left-column-trigger .tv-left-pannal-btn-wrapper i,
    .pn-mobile-left-column-trigger .tv-left-pannal-btn-wrapper span {
        display: block;
        color: inherit;
    }

    .pn-mobile-left-column-trigger .tv-left-pannal-btn-wrapper i {
        font-size: 20px;
        line-height: 1;
    }

    #left-column {
        display: block !important;
        position: fixed !important;
        z-index: 1070;
        top: 0;
        bottom: 0;
        left: 0;
        width: min(88vw, 380px) !important;
        max-width: 88vw !important;
        height: 100vh;
        height: 100dvh;
        padding: 0 15px 24px;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        visibility: hidden;
        pointer-events: none;
        background: #f5f6f8;
        opacity: 0;
        transform: translateX(-105%);
        transition: transform 0.25s ease, opacity 0.25s ease, visibility 0.25s ease;
    }

    #left-column.open {
        visibility: visible;
        pointer-events: auto;
        opacity: 1;
        transform: translateX(0);
    }

    #left-column > .theiaStickySidebar {
        position: static !important;
        width: 100% !important;
        min-height: 0 !important;
        transform: none !important;
    }

    #left-column .tvleft-column-remove {
        position: sticky;
        z-index: 2;
        top: 0;
        height: 54px;
        margin: 0 -15px 15px;
        background: #f5f6f8;
    }

    #left-column .tvleft-column-close-btn {
        position: absolute;
        top: 7px;
        right: 7px;
        width: 40px;
        height: 40px;
        padding: 0;
        color: #222;
        background: #fff;
        border: 1px solid #dfe2e7;
        border-radius: 50%;
        cursor: pointer;
    }

    #left-column .tvleft-column-close-btn::before {
        content: "\00d7";
        display: block;
        font-size: 30px;
        font-weight: 300;
        line-height: 36px;
        text-align: center;
    }

    .page-content,
    .cms-description,
    .product-description,
    .tvproduct-page-decs,
    .alert,
    .modal-content {
        overflow-wrap: anywhere;
    }

    img,
    video,
    iframe {
        max-width: 100%;
    }

    iframe {
        width: 100%;
    }

    #wrapper .breadcrumb {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    #wrapper .breadcrumb ol {
        display: flex;
        flex-wrap: nowrap;
        width: max-content;
        min-width: 100%;
        white-space: nowrap;
    }

    #category-description,
    #category-description > *,
    .block-category .category-description,
    .block-category .category-description p {
        text-align: left !important;
    }

    .modal-dialog {
        width: auto;
        max-width: calc(100% - 24px);
        margin: 12px auto;
    }

    .modal-content {
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .nav-tabs {
        display: flex;
        flex-wrap: nowrap;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .nav-tabs .nav-item,
    .nav-tabs .nav-link {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    input,
    select,
    textarea,
    .form-control,
    .input-group {
        min-width: 0;
        max-width: 100%;
    }

    #product .tvprduct-image-info-wrapper {
        align-items: flex-start;
    }

    #product .tv-product-page-image,
    #product .tv-product-page-content {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }

    #product .tv-product-page-content h1 {
        overflow-wrap: anywhere;
    }

    #product .product-quantity {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        gap: 10px;
        width: 100%;
    }

    #product .product-quantity .qty,
    #product .product-quantity .tvcart-btn-model,
    #product .product-quantity .tvwishlist-compare-wrapper-page {
        margin: 0;
    }

    #product .product-quantity .tvcart-btn-model {
        flex: 1 1 220px;
    }

    #product .product-quantity .add-to-cart {
        min-height: 44px;
        white-space: normal;
    }

    #product .pn-quantity-tiers {
        max-width: 100%;
    }

    .tvcmsofferbanners-one .tvofferbanner-content,
    .tvcmsofferbanners-two .tvofferbanner2-content {
        padding: 24px;
    }

    .tvcmsofferbanners-one .tvofferbanner-content h1,
    .tvcmsofferbanners-one .tvofferbanner-content h2,
    .tvcmsofferbanners-one .tvofferbanner-content h3,
    .tvcmsofferbanners-one .tvofferbanner-content h4,
    .tvcmsofferbanners-two .tvofferbanner2-content h1,
    .tvcmsofferbanners-two .tvofferbanner2-content h2,
    .tvcmsofferbanners-two .tvofferbanner2-content h3,
    .tvcmsofferbanners-two .tvofferbanner2-content h4 {
        font-size: clamp(22px, 3vw, 34px);
        line-height: 1.2;
    }

    #cart .cart-grid-body,
    #cart .cart-grid-right,
    body#checkout .tvcheckout-process-left,
    body#checkout .tvcheckout-process-right {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }

    #cart .cart-grid-right,
    body#checkout .tvcheckout-process-right {
        margin-top: 24px;
    }

    body#checkout .checkout-step,
    body#checkout .cart-summary,
    #cart .cart-container,
    #cart .cart-summary {
        min-width: 0;
    }
}

@media (max-width: 991px) {
    .tvcmsdesktop-top-header-wrapper {
        display: block;
    }

    .tvcmsdesktop-top-header-wrapper > .tvcmsdesktop-top-header,
    .tvcmsdesktop-top-header-wrapper > .tvcmsdesktop-top-second,
    .tvcmsdesktop-top-header-wrapper > .tvcms-header-menu-offer-wrapper {
        display: none;
    }

    #tvcms-mobile-view-header,
    #tvcms-mobile-view-header .tvcmsmobile-header-menu-offer-text,
    #tvcms-mobile-view-header .tvcmsmobile-header-search-logo-wrapper {
        display: block;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    #tvcms-mobile-view-header .tvcmsmobile-header-menu-offer-text {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        padding-right: max(15px, env(safe-area-inset-right));
        padding-left: max(15px, env(safe-area-inset-left));
    }

    #tvcms-mobile-view-header .tvcmsmobile-header-menu,
    #tvcms-mobile-view-header .tvcmsmobile-header-logo-right-wrapper,
    #tvcms-mobile-view-header .tvcmsmobile-cart-acount-text {
        width: auto;
        max-width: none;
        padding: 0;
        float: none;
    }

    #tvcms-mobile-view-header .tvcmsmobile-header-logo-right-wrapper {
        min-width: 0;
        overflow: hidden;
    }

    #tvcms-mobile-view-header #tvcmsmobile-header-logo,
    #tvcms-mobile-view-header #tvcmsmobile-header-logo .tv-header-logo {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        min-width: 0;
    }

    #tvcms-mobile-view-header #tvcmsmobile-header-logo .tv-header-logo {
        padding: 10px 0;
    }

    #tvcms-mobile-view-header #tvcmsmobile-header-logo img {
        display: block;
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 42px;
        object-fit: contain;
    }

    #tvcms-mobile-view-header .tvcmsmobile-cart-acount-text {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        overflow: visible;
    }

    #tvcms-mobile-view-header #tvcmsmobile-account-button,
    #tvcms-mobile-view-header #tvmobile-cart {
        flex: 0 0 44px;
        width: 44px;
        max-width: 44px;
    }

    #tvcms-mobile-view-header .tvheader-cart-wrapper,
    #tvcms-mobile-view-header .tvheader-cart-btn-wrapper {
        overflow: visible;
    }

    /*
     * The generated theme palette paints these SVG outlines white for the
     * mobile-header-1 variant. On this shop's white header that hides the
     * account body, cart frame and wheels, leaving only abstract blue shapes.
     */
    #header #tvcms-mobile-view-header.mobile-header-1 .tv-myaccount-btn-desktop svg {
        width: 28px;
        height: 28px;
        overflow: visible;
    }

    #header #tvcms-mobile-view-header.mobile-header-1 .tv-myaccount-btn-desktop svg path:nth-child(1),
    #header #tvcms-mobile-view-header.mobile-header-1 .tv-myaccount-btn-desktop svg circle {
        stroke: #222 !important;
        stroke-width: 1.25px !important;
    }

    #header #tvcms-mobile-view-header.mobile-header-1 .tv-cart-icon-main svg {
        width: 30px;
        height: 30px;
        overflow: visible;
    }

    #header #tvcms-mobile-view-header.mobile-header-1 .tv-cart-icon-main svg g path:nth-child(2) {
        fill: #222 !important;
    }

    #header #tvcms-mobile-view-header.mobile-header-1 .tv-cart-icon-main svg g ellipse {
        stroke: #222 !important;
        stroke-width: 1.35px !important;
    }

    #tvcms-mobile-view-header .tv-cart-cart-inner {
        top: 1px;
        right: 1px;
        left: auto;
    }

    #tvcms-mobile-view-header #tvcmsmobile-account-button {
        margin: 0;
    }

    #tvcms-mobile-view-header .tvmobile-sliderbar-btn a,
    #tvcms-mobile-view-header .tv-myaccount-btn,
    #tvcms-mobile-view-header .tvheader-cart-btn-wrapper > a {
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
    }

    #tvcms-mobile-view-header .tvcmsmobile-header-search {
        width: 100%;
        padding: 0 max(15px, env(safe-area-inset-right)) 12px max(15px, env(safe-area-inset-left));
    }

    #tvcms-mobile-view-header .tvsearch-top-wrapper,
    #tvcms-mobile-view-header .tvsearch-header-display-wrappper,
    #tvcms-mobile-view-header .tvsearch-header-display-wrappper form {
        width: 100%;
        max-width: 100%;
    }

    #tvcms-mobile-view-header .tvsearch-top-wrapper {
        height: 44px !important;
        min-height: 44px;
        max-height: 44px;
        padding: 0 !important;
    }

    #tvcms-mobile-view-header .tvsearch-header-display-wrappper,
    #tvcms-mobile-view-header .tvsearch-header-display-wrappper form {
        display: flex;
        align-items: center;
        height: 44px !important;
        min-height: 44px;
        max-height: 44px;
        overflow: hidden;
    }

    #tvcms-mobile-view-header .tvheader-top-search {
        flex: 1 1 auto;
        height: 44px;
        min-width: 0;
    }

    #tvcms-mobile-view-header .tvheader-top-search-wrapper {
        display: flex;
        flex: 0 0 44px;
        align-items: center;
        justify-content: center;
        width: 44px !important;
        max-width: 44px;
        height: 44px !important;
        padding: 0 !important;
    }

    #tvcms-mobile-view-header .tvsearch-result {
        width: 100%;
        max-width: 100%;
    }

    #tvcms-mobile-view-header .tvcmssearch-words,
    #tvcms-mobile-view-header .tvheader-search-btn {
        box-sizing: border-box;
        height: 44px !important;
        min-height: 44px;
        max-height: 44px;
    }

    #tvcms-mobile-view-header .tvheader-search-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px !important;
        min-width: 44px;
        max-width: 44px;
        padding: 0 !important;
    }

    #tvcms-mobile-view-header .tvheader-search-btn svg {
        display: block;
        flex: 0 0 auto;
        margin: 0;
    }

    /* Keep the fixed mobile header visually identical to its normal state. */
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky {
        color: #7a7a7a !important;
        background-color: #fff !important;
    }

    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tvmobile-sliderbar-btn a,
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tvmobile-sliderbar-btn i {
        color: #222 !important;
    }

    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        #tvcmsmobile-header-logo,
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        #tvcmsmobile-header-logo .tv-header-logo,
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        #tvcmsmobile-account-button,
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        #tvmobile-cart,
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tv-myaccount-btn,
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tvheader-cart-btn-wrapper > a {
        background-color: transparent !important;
    }

    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tv-myaccount-btn-desktop svg path:nth-child(2),
    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tv-cart-icon-main svg g path:nth-child(1) {
        fill: #3e5e89 !important;
    }

    #header #tvcms-mobile-view-header.mobile-header-1
        .tvcmsmobile-header-menu-offer-text.tvcmsheader-sticky.sticky
        .tv-cart-cart-inner {
        color: #fff !important;
        background-color: #3e5e89 !important;
        border-color: #fff !important;
    }

    #tvcmsmobile-horizontal-menu .tvcmsmain-menu-wrapper > .tv-header-menu {
        position: fixed;
        top: 0;
        bottom: 0;
        left: -100%;
        width: min(88vw, 380px);
        max-width: 88vw;
        max-height: 100vh;
        max-height: 100dvh;
        padding: 58px 18px 24px;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    #tvcmsmobile-horizontal-menu .tvcmsmain-menu-wrapper > .tv-header-menu.open {
        left: 0;
    }

    /*
     * Touch browsers retain :hover after expanding a branch. The theme's
     * global level-1 hover rule then paints the complete open branch blue.
     * Keep every menu level and interaction state transparent while retaining
     * the white slide-out panel as the readable menu surface.
     */
    #tvmobile-megamenu .menu-content,
    #tvmobile-megamenu .menu-content ul,
    #tvmobile-megamenu .menu-content li,
    #tvmobile-megamenu .menu-content li:hover,
    #tvmobile-megamenu .menu-content li:focus,
    #tvmobile-megamenu .menu-content li:focus-within,
    #tvmobile-megamenu .menu-content a,
    #tvmobile-megamenu .menu-content a:hover,
    #tvmobile-megamenu .menu-content a:focus,
    #tvmobile-megamenu .menu-content a:active,
    #tvmobile-megamenu .menu-content .icon-drop-mobile,
    #tvmobile-megamenu .menu-content .icon-drop-mobile:hover,
    #tvmobile-megamenu .menu-content .icon-drop-mobile:focus,
    #tvmobile-megamenu .menu-content .icon-drop-mobile:active {
        background: transparent !important;
    }

    #tvcmsmobile-horizontal-menu > .tvcmsmain-menu-wrapper > .tv-header-menu > li > .tvmenu-link-wrapper {
        padding: 12px 42px 12px 12px;
        text-align: left;
    }

    #products .products-selection,
    #products .tvleft-penal-product-top,
    #products .tv-grid-list-all-wrapper,
    #products .tvall-page-shortby {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
        max-width: 100%;
    }

    #products .products-selection > *,
    #products .tvleft-penal-product-top > * {
        min-width: 0;
    }

    #products .products-sort-order,
    #products .products-sort-order .select-title {
        max-width: 100%;
    }

    #products .tvproduct-wrapper,
    #products .thumbnail-container,
    #products .product-description {
        min-width: 0;
        max-width: 100%;
    }

    #products .product-title,
    #products .product-title a,
    #products .tv-product-desc {
        overflow-wrap: anywhere;
    }

    #products .tvproduct-hover-btn {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
    }

    .footer-container,
    .footer-container .container,
    .footer-container .row {
        max-width: 100%;
    }

    .footer-container .tvfooter-title-wrapper,
    .footer-container .tvfooter-title,
    .footer-container a,
    .footer-container p {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 767px) {
    #wrapper > .container {
        width: 100%;
        padding-right: 12px;
        padding-left: 12px;
    }

    #header .tv-menu-horizontal ul li.level-1 > a, .tvcms-header-menu-offer-wrapper .tv-menu-horizontal ul li.level-1 > a {
        color: #000;
    }

    #content-wrapper,
    #content-wrapper > #main {
        width: 100%;
        max-width: 100%;
    }

    h1,
    .h1,
    .page-header h1,
    .form-title h1,
    #product .tv-product-page-content h1 {
        font-size: clamp(24px, 7vw, 30px);
        line-height: 1.2;
    }

    h2,
    .h2,
    .tvcms-main-title .tvmain-title h2 {
        font-size: clamp(21px, 6vw, 26px) !important;
        line-height: 1.25;
    }

    .page-content,
    .card-block {
        padding: 18px;
    }

    .tvcmsofferbanners-one .container,
    .tvcmsofferbanners-two .container,
    .tvcmsmultibanners .container {
        padding-right: 0;
        padding-left: 0;
    }

    .tvcmsofferbanners-one .container .tvbanner-hover-wrapper,
    .tvcmsofferbanners-two .container .tvbanner-hover-wrapper {
        flex-direction: column;
    }

    .tvcmsofferbanners-one .tvbanner-hover-wrapper > .tv-img-responsive,
    .tvcmsofferbanners-two .tvbanner-hover-wrapper > .tv-img-responsive,
    .tvcmsofferbanners-one .tvofferbanner-content,
    .tvcmsofferbanners-two .tvofferbanner2-content {
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
    }

    .tvcmsofferbanners-one .tvofferbanner-content,
    .tvcmsofferbanners-two .tvofferbanner2-content {
        padding: 18px;
    }

    .tvcmsofferbanners-one .tvofferbanner-content p,
    .tvcmsofferbanners-two .tvofferbanner2-content p {
        font-size: 15px;
        line-height: 1.55;
    }

    #product .tvproduct-page-wrapper,
    #product .tvprduct-image-info-wrapper,
    #product .tv-product-page-image,
    #product .tv-product-page-content,
    #product .images-container,
    #product .product-cover,
    #product .product-cover img {
        max-width: 100%;
    }

    #product .tv-product-page-content {
        padding-right: 0;
        padding-left: 0;
    }

    #product .product-actions,
    #product .product-variants,
    #product .product-additional-info,
    #product .product-discounts {
        max-width: 100%;
    }

    #product .product-variants > .product-variants-item ul {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    #product .product-variants > .product-variants-item ul li {
        margin: 0;
    }

    .page-content table,
    .cms-description table,
    table.table,
    table.tvwishlist-info {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }

    .form-group.row {
        margin-right: 0;
        margin-left: 0;
    }

    .form-group.row > [class*="col-"] {
        width: 100%;
        max-width: 100%;
        padding-right: 0;
        padding-left: 0;
    }

    .form-control-label {
        margin-bottom: 7px;
        text-align: left;
    }

    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    select,
    textarea,
    .form-control {
        font-size: 16px;
    }

    .btn,
    button,
    input[type="submit"],
    .form-control-submit,
    .tvall-inner-btn {
        min-height: 44px;
    }

    #cart .cart-grid,
    #cart .cart-grid-body,
    #cart .cart-grid-right,
    body#checkout #content > .row,
    body#checkout .tvcheckout-process-left,
    body#checkout .tvcheckout-process-right {
        margin-right: 0;
        margin-left: 0;
    }

    #cart .cart-item .product-line-grid,
    #cart .cart-summary-line,
    body#checkout .cart-summary-line {
        min-width: 0;
    }

    body#checkout section.checkout-step {
        padding: 18px;
    }

    body#checkout section.checkout-step .step-title {
        overflow-wrap: anywhere;
        line-height: 1.3;
    }

    .ttvcmscart-show-dropdown-right {
        width: min(100vw, 420px);
        max-width: 100vw;
    }

    .ttvcmscart-show-dropdown-right .tvcart-product-content-box,
    .ttvcmscart-show-dropdown-right .ttvcart-product-label-value {
        min-width: 0;
    }

    .pagination,
    .pagination .page-list,
    .pagination .tvinner-page-pagination {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
        max-width: 100%;
    }

    .footer-container .tvfooter-storelogo-imformation,
    .footer-container .tvfooter-copy-payment-icon-inner {
        margin-right: 0;
        margin-left: 0;
    }

    #footer .tvpayment-icons-single-row {
        box-sizing: border-box;
        padding: 7px;
    }

    #footer .tvpayment-icons-single-row .tvfooter-payment-icon-wrapper {
        display: flex;
        flex-wrap: wrap !important;
        align-items: center;
        justify-content: center;
        column-gap: 2px;
        row-gap: 12px;
        width: 100%;
        max-width: 100%;
    }

    #footer .tvpayment-icons-single-row .tvfooter-payment-content-block {
        display: flex;
        flex: 0 0 calc((100% - 12px) / 7);
        align-items: center;
        justify-content: center;
        min-width: 0;
        margin: 0;
    }

    #footer .tvpayment-icons-single-row .tvfooter-payment-icon a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
    }

    #footer .tvpayment-icons-single-row .tvfooter-payment-icon img {
        display: block;
        width: 68px !important;
        max-width: 100%;
        height: auto !important;
        margin: 0 !important;
        padding: 7px;
        aspect-ratio: 4 / 3;
        object-fit: contain;
    }

    #footer .tvcopylink {
        padding-right: 0;
        padding-left: 0;
    }

    #footer .tvcopylink p {
        font-size: 12px;
        line-height: 18px;
        letter-spacing: 0;
        overflow-wrap: normal;
        white-space: nowrap;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    #footer .tvpayment-icons-single-row .tvfooter-payment-icon-wrapper {
        row-gap: 15px;
    }

    #footer .tvpayment-icons-single-row .tvfooter-payment-icon img {
        transform: scale(1);
        transform-origin: center;
    }
}

@media (max-width: 575px) {
    #footer .tvpayment-icons-single-row .tvfooter-payment-icon img {
        transform: scale(1.1);
        transform-origin: center;
    }

    #product .tv-product-page-content h1 {
        padding-right: 0;
        overflow-wrap: break-word;
    }

    #product .tvproduct-title-brandimage .tvproduct-brand {
        position: static;
        display: inline-block;
        max-width: 120px !important;
        margin-bottom: 12px;
    }

    #tvcms-mobile-view-header .tvcmsmobile-header-menu-offer-text {
        grid-template-columns: 44px minmax(0, 1fr) 88px;
        gap: 6px;
        padding-right: max(10px, env(safe-area-inset-right));
        padding-left: max(10px, env(safe-area-inset-left));
    }

    #tvcms-mobile-view-header #tvcmsmobile-header-logo img {
        max-height: 36px;
    }

    #tvcms-mobile-view-header .tvcmsmobile-cart-acount-text {
        display: grid;
        grid-template-columns: repeat(2, 44px);
        gap: 0;
        width: 88px;
        min-width: 88px;
        max-width: 88px;
    }

    #tvcms-mobile-view-header .tvcmsmobile-header-search {
        padding: 0 max(10px, env(safe-area-inset-right)) 10px max(10px, env(safe-area-inset-left));
    }

    /*
     * Primary and textual actions span the available content width on phones.
     * Compact icon controls (header, quantity, sliders and pagination) are
     * intentionally excluded and retain their 44px touch targets.
     */
    #wrapper .btn:not(.btn-touchspin):not(.dropdown-toggle):not(.close):not(.page-link):not(.ttvclose-cart),
    #wrapper .form-control-submit,
    #wrapper input[type="submit"],
    #wrapper .tvall-inner-btn:not(.btn-touchspin),
    .pn-mobile-left-column-trigger .tv-left-pannal-btn-wrapper,
    .modal-content .btn:not(.btn-touchspin):not(.close),
    .footer-container .form-control-submit,
    .footer-container button[type="submit"] {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100% !important;
        max-width: 100%;
        min-height: 36px;
        margin-right: 0 !important;
        margin-left: 0 !important;
        box-sizing: border-box;
        white-space: normal;
        text-align: center;
    }

    .modal-footer,
    .form-footer,
    #product .ets-rv-product-comments-additional-info {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        width: 100%;
    }

    #product .product-actions .tvcart-btn-model,
    #product .product-actions .js-mailalert,
    #product .product-actions .ets-rv-product-comments-additional-info {
        width: 100%;
        max-width: 100%;
    }

    #product .tvproduct-stock-social,
    #product .tvproduct-stock-social .product-additional-info {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    #product .product-actions .add-to-cart,
    #product .product-actions .js-mailalert-add,
    #product .ets-rv-product-comments-additional-info .ets-rv-btn-comment {
        width: 100% !important;
        max-width: 100%;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    #wrapper .input-group-btn .btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto !important;
        min-width: 70px;
        max-width: none;
        height: 100%;
        margin: 0 !important;
        padding-right: 12px;
        padding-left: 12px;
        white-space: nowrap !important;
    }

    #tvcmsmobile-horizontal-menu .tvcmsmain-menu-wrapper > .tv-header-menu {
        width: 90vw;
        max-width: 90vw;
    }

    #wrapper .breadcrumb {
        margin-right: -2px;
        margin-left: -2px;
    }

    .page-content,
    .card-block,
    body#checkout section.checkout-step {
        padding: 15px;
    }

    #products .products-selection,
    #products .tvleft-penal-product-top {
        align-items: stretch;
    }

    #products .products-selection > *,
    #products .tvall-page-shortby,
    #products .products-sort-order {
        max-width: 100%;
    }

    #product .product-quantity .qty {
        flex: 0 0 auto;
    }

    #product .product-quantity .tvcart-btn-model {
        flex: 1 1 170px;
    }

    #product .product-quantity .add-to-cart {
        width: 100%;
    }

    #product .pn-quantity-tiers__row {
        column-gap: 10px;
    }

    #cart .cart-grid-body,
    #cart .cart-grid-right,
    body#checkout .tvcheckout-process-left,
    body#checkout .tvcheckout-process-right {
        padding-right: 0;
        padding-left: 0;
    }

    .ttvcmscart-show-dropdown-right {
        width: 100vw;
        max-width: 100vw;
    }

    .ttvcmscart-show-dropdown-right > .ttvcart-product-list-btn-wrapper {
        min-height: 54px;
    }

    .ttvcmscart-show-dropdown-right .ttvcart-product-list-viewcart,
    .ttvcmscart-show-dropdown-right .ttvcart-product-list-checkout {
        height: 54px;
        min-height: 54px;
    }

    .ttvcmscart-show-dropdown-right .ttvcart-product-list-viewcart > a,
    .ttvcmscart-show-dropdown-right .ttvcart-product-list-checkout > a {
        padding: 0 8px;
        font-size: 13px;
        white-space: normal;
        text-align: center;
    }

    .footer-container .tvnewsleeter-input-button-wraper,
    .footer-container .input-wrapper,
    .footer-container .input-wrapper input {
        width: 100%;
        max-width: 100%;
    }

    .footer-container .tvnewsleeter-input-button-wraper {
        display: flex;
        flex-direction: column;
        gap: 10px;
        height: auto;
    }

    .footer-container .tvnewsleteer-btn-wrapper {
        position: static;
        width: 100%;
        height: auto;
    }

    .footer-container .tvnewsleteer-btn-wrapper .tvall-inner-btn {
        width: 100% !important;
        margin: 0 !important;
    }
}

@media (hover: none) and (pointer: coarse) {
    a.btn,
    button,
    input[type="submit"],
    .tvall-inner-btn,
    .nav-link,
    .pagination a {
        min-height: 44px;
    }
}
/* Category header and subcategory cards, based on the legacy shop structure. */
body#category .tv-category-block-wrapper {
    padding: 0 0 28px;
    margin-bottom: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

body#category .tv-category-block-wrapper .tv-all-page-main-title-wrapper {
    padding: 0 0 18px;
    margin: 0 0 28px;
    border-bottom: 4px solid #40628f;
}

body#category .tv-category-block-wrapper .tv-all-page-main-title {
    margin: 0;
    color: #333;
    font-size: clamp(28px, 2.2vw, 36px);
    font-weight: 500;
    line-height: 1.2;
    text-transform: none;
}

body#category .tv-category-block-wrapper #category-description,
body#category .tv-category-block-wrapper #category-description > *,
body#category .tv-category-block-wrapper #category-description p,
body#category .tv-category-block-wrapper #category-description span {
    color: #3f3f3f;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.65;
    text-align: left !important;
}

body#category .tv-category-block-wrapper #category-description strong {
    color: inherit;
    font-weight: 700;
}

body#category .tv-category-block-wrapper #category-description p {
    margin: 0 0 24px;
}

/* Keep only the current category path open; all icons remain interactive. */
.block-categories .category-sub-menu .collapse-icons {
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    touch-action: manipulation;
}

.block-categories .category-sub-menu li[data-depth] > a,
.block-categories .category-sub-menu li > a,
.block-categories .category-top-menu > li > a {
    padding: 5px 0;
}

.tv-menu-horizontal .menu-dropdown li a {
    padding: 6px 0;
}

@media (min-width: 992px) {
    #tvdesktop-megamenu .tv-menu-horizontal .menu-dropdown.cat-drop-menu {
        width: 320px;
        min-width: 320px;
    }

    #tvdesktop-megamenu .tv-menu-horizontal .menu-dropdown.cat-drop-menu > li {
        width: 100%;
        box-sizing: border-box;
    }
}

@media (min-width: 1200px) and (max-width: 1599px) {
    #header #tvdesktop-megamenu .tv-menu-horizontal > .menu-content > li.level-1 > a {
        padding-right: 6px;
        padding-left: 6px;
        font-size: 15px;
        letter-spacing: 0.5px;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    #header #tvdesktop-megamenu .tv-menu-horizontal > .menu-content > li.level-1 > a {
        padding-right: 4px;
        padding-left: 4px;
        font-size: 13px;
        letter-spacing: 0.2px;
    }
}

.tvleft-column-remove button.tvleft-column-close-btn {
    display: none !important;
}

body#category .tv-category-main-div {
    display: block !important;
    padding: 0;
    margin-bottom: 36px;
    background: transparent;
    border: 0;
    border-radius: 0;
}

body#category .tvcategory-name-image {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    max-height: none;
    margin: 0;
    overflow: visible;
    cursor: default;
    user-select: auto;
}

body#category .tv-sub-category-wrapper {
    min-width: 0;
    padding: 0;
}

body#category .tv-sub-category-inner,
body#category .tv-sub-category-inner:hover {
    display: flex;
    height: 100%;
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #40628f;
    border-radius: 0;
    flex-direction: column;
}

body#category .tv-category-image {
    position: relative;
    overflow: hidden;
    background: #fff;
}

body#category .tv-category-image::after {
    position: absolute;
    content: "";
    inset: 0;
    pointer-events: none;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.34), rgba(64, 98, 143, 0.04) 60%);
    box-shadow: inset 0 0 28px rgba(64, 98, 143, 0.34), inset 0 0 0 2px rgba(64, 98, 143, 0.18);
    opacity: 0;
    transition: opacity 0.25s ease;
}

body#category .tv-category-image a {
    display: block;
}

body#category .tv-category-image img,
body#category .tv-category-image .tv-img-responsive {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: 2 / 1;
    object-fit: contain;
    background: #fff;
    transition: filter 0.25s ease, transform 0.25s ease;
}

body#category .tv-sub-category-inner:hover .tv-category-image::after,
body#category .tv-sub-category-inner:focus-within .tv-category-image::after {
    opacity: 1;
}

body#category .tv-sub-category-inner:hover .tv-category-image img,
body#category .tv-sub-category-inner:focus-within .tv-category-image img {
    filter: brightness(1.06);
    transform: scale(1.025);
}

body#category .tvcategory-name {
    display: flex;
    min-height: 54px;
    margin: 0;
    background: #40628f;
    text-align: center;
    flex: 1 0 auto;
}

body#category .tvcategory-name a,
body#category .tv-sub-category-inner:hover .tvcategory-name a {
    display: flex;
    width: 100%;
    padding: 10px 12px;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.35;
    align-items: center;
    justify-content: center;
}

body#category .tvcategory-name a:hover,
body#category .tvcategory-name a:focus-visible {
    color: #fff;
    background: #345276;
}

body#category .tv-sub-category-inner:hover .tvcategory-name a {
    color: #fff !important;
}

/* Center the two contact information columns as one group. */
#contact .contact-rich > .row {
    justify-content: center;
}

/* Align the nested wishlist entry with the standard account dropdown links. */
#header .tv-account-dropdown .ttvcms-wishlist-icon > .tvcmsdesktop-view-wishlist {
    float: none !important;
    width: 100%;
}

#header .tv-account-dropdown .ttvcms-wishlist-icon .tvdesktop-wishlist {
    display: flex;
    padding: 3px 0;
    align-items: center;
}

/* Keep desktop account and cart on one row in logged-in and logged-out states. */
@media (min-width: 992px) {
    .tvcmsheader-nav-right > .header-second-image {
        width: auto;
        max-width: none;
        flex: 1 1 auto;
    }

    .tvcmsheader-nav-right > .tv-contact-account-cart-wrapper {
        display: flex;
        width: 220px;
        max-width: 220px;
        flex: 0 0 220px;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-end;
    }

    .tv-contact-account-cart-wrapper > #tvcmsdesktop-account-button,
    .tv-contact-account-cart-wrapper > #_desktop_cart_manage {
        flex: 0 0 auto;
    }
}

/* Show complete Customer Services titles and descriptions without ellipses. */
.tvcmscustomer-services .tvservices-content-box .tvservices-title,
.tvcmscustomer-services .tvservices-content-box .tvservice-dec {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
}

.tvservices-content-box .tvservice-dec {
    text-transform: none;
}

/* Match the perceived hover sweep speed of the compact multibanners. */
.tvcmsofferbanners-one .tvbanner-hover-wrapper:hover::after,
.tvcmsofferbanners-two .tvbanner-hover-wrapper:hover::after {
    -webkit-transition-duration: 4.5s;
    -o-transition-duration: 4.5s;
    transition-duration: 4.5s;
}

/* Show two aligned lines for product names in grid miniatures. */
.tvproduct-wrapper.grid .product-title h6 {
    min-height: 2.2em;
    max-height: 2.2em;
    -webkit-line-clamp: 2;
}

/* Hide only the credit-slip link in the footer account menu. */
#footer_sub_menu_myaccount > li:has(> a[href$="/bestellschein"]) {
    display: none;
}

@media (max-width: 1199px) {
    body#category .tvcategory-name-image {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    body#category .tvcategory-name-image {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }
}

@media (max-width: 575px) {
    body#category .tv-category-block-wrapper {
        padding-bottom: 20px;
        margin-bottom: 0;
    }

    body#category .tv-category-block-wrapper .tv-all-page-main-title-wrapper {
        padding-bottom: 12px;
        margin-bottom: 20px;
        border-bottom-width: 3px;
    }

    body#category .tv-category-block-wrapper .tv-all-page-main-title {
        font-size: 26px;
    }

    body#category .tv-category-block-wrapper #category-description,
    body#category .tv-category-block-wrapper #category-description > *,
    body#category .tv-category-block-wrapper #category-description p,
    body#category .tv-category-block-wrapper #category-description span {
        font-size: 16px;
        line-height: 1.6;
    }

    body#category .tvcategory-name-image {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    body#category .tv-sub-category-wrapper {
        display: block;
        margin: 0;
    }
}

/* Pinball-Network: modern product information panel (2026-08-18)             */
/* Scope: product page, right-hand information column only.                   */
/* ========================================================================== */

.page-product .tvproduct-page-wrapper .tv-product-page-content {
  padding: clamp(26px, 2.6vw, 42px);
  border: 1px solid #dfe6ef;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(64, 103, 150, 0.07) 0, rgba(255, 255, 255, 0) 180px),
    #fff;
  box-shadow:
    inset 0 4px 0 #406796,
    0 18px 48px rgba(35, 55, 82, 0.11);
}

.page-product .tv-product-page-content .tvproduct-title-brandimage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 18px;
  margin-bottom: 18px;
}

.page-product .tv-product-page-content .tvproduct-title-brandimage h1 {
  min-width: 0;
  margin: 0;
  color: #26374d;
  font-size: clamp(28px, 2.15vw, 38px);
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.16;
}

.page-product .tv-product-page-content .tvcms-product-brand-logo {
  position: static;
  align-self: start;
}

.page-product .tv-product-page-content .tvproduct-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.page-product .tv-product-page-content .tvproduct-brand img {
  width: auto;
  max-width: 74px;
  height: auto;
  max-height: 46px;
  object-fit: contain;
}

#product .tv-product-page-content .product-prices {
  display: flex;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0 0 18px;
  padding: 15px 18px;
  border: 1px solid #dce6f2;
  border-left: 4px solid #406796;
  border-radius: 12px;
  background: #f2f6fb;
}

.page-product .tv-product-page-content .product-price.h5 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0;
}

.page-product .tv-product-page-content .product-price .current-price .price {
  color: #365f91;
  font-size: clamp(28px, 2.2vw, 34px);
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1;
}

.page-product .tv-product-page-content .tvproduct-tax-label,
.page-product .tv-product-page-content .tax-shipping-delivery-label {
  margin: 0;
  color: #5e6976;
  font-size: 14px;
  line-height: 1.35;
}

.page-product .tv-product-page-content .tax-shipping-delivery-label a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(94, 105, 118, 0.45);
  text-underline-offset: 3px;
}

.page-product .tv-product-page-content .tax-shipping-delivery-label a:hover {
  color: #365f91;
  text-decoration-color: currentColor;
}

.page-product .tv-product-page-content #product-availability {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 16px;
  padding: 7px 11px;
  border-radius: 999px;
  background: #fff5dd;
  color: #775b15;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

.page-product .tv-product-page-content #product-availability .material-icons {
  margin-right: 5px;
  font-size: 16px;
  vertical-align: -3px;
}

.page-product .tv-product-page-content .tvproduct-page-decs {
  display: none;
  margin: 0 0 18px;
  color: #5a6573;
  font-size: 15px;
  line-height: 1.65;
}

.page-product .tv-product-page-content .tvproduct-page-reference {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid #e1e7ef;
  border-radius: 999px;
  background: #f7f9fc;
  color: #566170;
  font-size: 14px;
}

.page-product .tv-product-page-content .tvproduct-page-reference .label {
  margin: 0;
  color: #33455d;
  font-weight: 700;
}

.page-product .tv-product-page-content .tvproduct-special-desc {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid #e1e7ef;
  border-radius: 14px;
  background: rgba(248, 250, 253, 0.92);
}

.page-product .tv-product-page-content .product-variants > .product-variants-item {
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid #e1e7ef;
  border-radius: 10px;
  background: #fff;
}

.page-product .tv-product-page-content .product-variants > .product-variants-item .control-label {
  margin-bottom: 8px;
  color: #34465e;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.045em;
}

.page-product .tv-product-page-content .product-variants select {
  min-height: 46px;
  border-color: #ccd6e2;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: none;
}

.page-product .tv-product-page-content .product-quantity {
  align-items: center;
  gap: 16px;
  margin: 0 0 18px;
}

.page-product .tv-product-page-content .product-quantity .control-label {
  margin: 0;
  color: #4c5b6e;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.page-product .tv-product-page-content .product-quantity #quantity_wanted {
  height: 48px;
  border-color: #ccd6e2;
  border-radius: 9px 0 0 9px;
  background: #fff;
  color: #26374d;
  font-size: 17px;
  font-weight: 700;
  box-shadow: none;
}

.page-product .tv-product-page-content .product-quantity .btn-touchspin {
  height: 48px;
  border-color: #ccd6e2;
  background: #fff;
  color: #26374d;
  box-shadow: none;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.page-product .tv-product-page-content .product-quantity .btn-touchspin:hover,
.page-product .tv-product-page-content .product-quantity .btn-touchspin:focus {
  background: #eaf1f8;
  color: #365f91;
}

.page-product .tv-product-page-content .tvwishlist-compare-wrapper-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 54px;
  gap: 14px;
  margin: 0;
}

.page-product .tv-product-page-content .tvcart-btn-model {
  width: 100%;
}

.page-product .tv-product-page-content .product-add-to-cart .add-to-cart {
  width: 100%;
  min-height: 54px;
  padding: 13px 22px;
  border: 1px solid #406796;
  border-radius: 10px;
  background: linear-gradient(135deg, #365f91 0%, #4b75a7 100%);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.075em;
  box-shadow: 0 8px 18px rgba(54, 95, 145, 0.24);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.page-product .tv-product-page-content .product-add-to-cart .add-to-cart:hover,
.page-product .tv-product-page-content .product-add-to-cart .add-to-cart:focus {
  background: linear-gradient(135deg, #2f5684 0%, #426b9d 100%);
  box-shadow: 0 11px 24px rgba(54, 95, 145, 0.31);
  transform: translateY(-1px);
}

.page-product .tv-product-page-content .product-add-to-cart .add-to-cart:disabled,
.page-product .tv-product-page-content .product-add-to-cart .add-to-cart.disabled {
  background: #9ba7b5;
  border-color: #9ba7b5;
  box-shadow: none;
  transform: none;
}

.page-product .tv-product-page-content .tvproduct-wishlist-compare {
  width: 54px;
  height: 54px;
  margin: 0;
  padding: 0;
  border: 0;
}

.page-product .tv-product-page-content .tvproduct-wishlist,
.page-product .tv-product-page-content .tvproduct-wishlist > a,
.page-product .tv-product-page-content .tvproduct-wishlist-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin: 0;
  padding: 0;
}

.page-product .tv-product-page-content .tvproduct-wishlist > a {
  border: 1px solid #ccd6e2;
  border-radius: 10px;
  background: #fff;
  color: #365f91;
  box-shadow: 0 5px 14px rgba(35, 55, 82, 0.08);
  transition: border-color 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
}

.page-product .tv-product-page-content .tvproduct-wishlist > a:hover,
.page-product .tv-product-page-content .tvproduct-wishlist > a:focus {
  border-color: #406796;
  background: #edf3fa;
  color: #284f7f;
  transform: translateY(-1px);
}

.page-product .tv-product-page-content .tvproduct-wishlist-icon .material-icons {
  color: currentColor;
  font-size: 27px;
}

.page-product .tv-product-page-content .tvproduct-stock-social {
  grid-column: 1 / -1;
  display: block;
  width: 100%;
}

.page-product .tv-product-page-content .tv-product-page-content,
.page-product .tv-product-page-content .tv-product-page {
  width: 100%;
}

.page-product .tv-product-page-content .tv-indicator {
  display: grid;
  grid-template-columns: minmax(120px, 210px) minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 18px 0 0;
  padding: 14px 16px;
  border: 1px solid #f0dfb2;
  border-radius: 10px;
  background: #fff9eb;
}

.page-product .tv-product-page-content .tv-indicator .tv-outer {
  width: 100%;
  margin: 0;
}

.page-product .tv-product-page-content .tv-indicator .tv-items {
  min-width: 0;
  color: #66551f;
  font-size: 14px;
  line-height: 1.4;
}

.page-product .tv-product-page-content .product-additional-info {
  width: 100%;
  padding-top: 0;
}

.page-product .tv-product-page-content .ets-rv-product-comments-additional-info {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
  margin: 18px 0 0;
}

.page-product .tv-product-page-content .ets-rv-btn-comment {
  min-height: 44px;
  margin: 0;
  padding: 10px 14px;
  border: 1px solid #ccd6e2 !important;
  border-radius: 9px;
  background: #fff !important;
  color: #3d5879 !important;
  font-size: 14px;
  font-weight: 650;
  box-shadow: none;
  transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.page-product .tv-product-page-content .ets-rv-btn-comment .ets_rv_svg {
  fill: currentColor;
}

.page-product .tv-product-page-content .ets-rv-btn-comment:hover,
.page-product .tv-product-page-content .ets-rv-btn-comment:focus {
  border-color: #406796 !important;
  background: #edf3fa !important;
  color: #284f7f !important;
}

/* PN 2026-09-08: Review-Header-Buttons behalten beim Hover weiße Schrift. */
#ets-rv-product-comments-list-header .ets_rv_modal_review .tvall-inner-btn:hover,
#ets-rv-product-comments-list-header .ets_rv_modal_review .tvall-inner-btn:focus,
.page-product .tv-product-page-content .ets-rv-product-comments-additional-info .tvall-inner-btn:hover,
.page-product .tv-product-page-content .ets-rv-product-comments-additional-info .tvall-inner-btn:focus {
  color: #fff !important;
}

#product .fancybox-inner #new_comment_form button[type="submit"],
#product .fancybox-inner #new_comment_form input[type="submit"],
#product .fancybox-inner #new_comment_form .new_comment_form_ok,
#product .fancybox-inner #new_comment_form #submitNewMessage,
#product .fancybox-inner .new_comment_form button[type="submit"],
#product .fancybox-inner .new_comment_form input[type="submit"],
#product .fancybox-inner .new_comment_form .new_comment_form_ok,
#product .fancybox-inner .new_comment_form #submitNewMessage {
  min-height: 52px;
  padding: 12px 28px;
  border: 1px solid #416593 !important;
  border-radius: 4px;
  background: #416593 !important;
  color: #fff !important;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
  box-shadow: none;
  text-transform: none;
}

body#product #ets-rv-post-product-comment-modal #ets-rv-post-product-comment-form .post-comment-buttons button[type="submit"],
body#product #ets-rv-post-product-comment-form .post-comment-buttons button[type="submit"],
body#product #ets-rv-post-product-comment-modal button[type="submit"].ets-rv-btn-comment,
body#product button[type="submit"].ets-rv-btn-comment.ets-rv-btn-comment-big {
  min-height: 0;
  height: 40px;
  padding: 10px 16px;
  border: 1px solid #416593 !important;
  border-radius: 4px;
  background: #416593 !important;
  background-color: #416593 !important;
  color: #fff !important;
  font-size: inherit;
  font-weight: 700;
  letter-spacing: 0;
  box-shadow: none;
  text-transform: none;
}

#product .fancybox-inner #new_comment_form button[type="submit"]:hover,
#product .fancybox-inner #new_comment_form button[type="submit"]:focus,
#product .fancybox-inner #new_comment_form input[type="submit"]:hover,
#product .fancybox-inner #new_comment_form input[type="submit"]:focus,
#product .fancybox-inner #new_comment_form .new_comment_form_ok:hover,
#product .fancybox-inner #new_comment_form .new_comment_form_ok:focus,
#product .fancybox-inner #new_comment_form #submitNewMessage:hover,
#product .fancybox-inner #new_comment_form #submitNewMessage:focus,
#product .fancybox-inner .new_comment_form button[type="submit"]:hover,
#product .fancybox-inner .new_comment_form button[type="submit"]:focus,
#product .fancybox-inner .new_comment_form input[type="submit"]:hover,
#product .fancybox-inner .new_comment_form input[type="submit"]:focus,
#product .fancybox-inner .new_comment_form .new_comment_form_ok:hover,
#product .fancybox-inner .new_comment_form .new_comment_form_ok:focus,
#product .fancybox-inner .new_comment_form #submitNewMessage:hover,
#product .fancybox-inner .new_comment_form #submitNewMessage:focus {
  border-color: #314d72 !important;
  background: #314d72 !important;
  color: #fff !important;
}

body#product #ets-rv-post-product-comment-modal #ets-rv-post-product-comment-form .post-comment-buttons button[type="submit"]:hover,
body#product #ets-rv-post-product-comment-modal #ets-rv-post-product-comment-form .post-comment-buttons button[type="submit"]:focus,
body#product #ets-rv-post-product-comment-form .post-comment-buttons button[type="submit"]:hover,
body#product #ets-rv-post-product-comment-form .post-comment-buttons button[type="submit"]:focus,
body#product #ets-rv-post-product-comment-modal button[type="submit"].ets-rv-btn-comment:hover,
body#product #ets-rv-post-product-comment-modal button[type="submit"].ets-rv-btn-comment:focus,
body#product button[type="submit"].ets-rv-btn-comment.ets-rv-btn-comment-big:hover,
body#product button[type="submit"].ets-rv-btn-comment.ets-rv-btn-comment-big:focus {
  border-color: #314d72 !important;
  background: #314d72 !important;
  background-color: #314d72 !important;
  color: #fff !important;
}

.page-product .tv-product-page-content #ps_checkout-payment-method-logo-block-container {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 14px 20px;
  margin-top: 20px;
  padding: 15px 17px;
  border: 1px solid #e1e7ef;
  border-radius: 11px;
  background: #fff;
}

.page-product .tv-product-page-content #ps_checkout-payment-method-logo-block-title {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: #40526a;
  font-size: 14px;
  font-weight: 700;
}

.page-product .tv-product-page-content #ps_checkout-payment-method-logo-block-img {
  width: 18px;
  height: 18px;
}

.page-product .tv-product-page-content #ps_checkout-payment-method-logos-container {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
  min-width: 0;
}

.page-product .tv-product-page-content #ps_checkout-payment-method-logos-container .paypal-mark {
  margin: 0 3px;
}

.page-product .tv-product-page-content a:focus-visible,
.page-product .tv-product-page-content button:focus-visible,
.page-product .tv-product-page-content input:focus-visible,
.page-product .tv-product-page-content select:focus-visible {
  outline: 3px solid rgba(64, 103, 150, 0.26);
  outline-offset: 2px;
}

@media (max-width: 991px) {
  .page-product .tvproduct-page-wrapper .tv-product-page-content {
    padding: 24px;
    border-radius: 15px;
  }

  .page-product .tv-product-page-content .tvproduct-title-brandimage h1 {
    font-size: clamp(25px, 3.2vw, 32px);
  }

  .page-product .tv-product-page-content .tvproduct-special-desc {
    padding: 18px;
  }

  .page-product .tv-product-page-content .tv-indicator {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .page-product .tv-product-page-content #ps_checkout-payment-method-logo-block-container {
    grid-template-columns: 1fr;
  }

  .page-product .tv-product-page-content #ps_checkout-payment-method-logos-container {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .page-product .tvproduct-page-wrapper .tv-product-page-content {
    margin-top: 18px;
    padding: 22px 17px;
    border-radius: 13px;
    box-shadow:
      inset 0 4px 0 #406796,
      0 10px 28px rgba(35, 55, 82, 0.09);
  }

  .page-product .tv-product-page-content .tvproduct-title-brandimage {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }

  .page-product .tv-product-page-content .tvproduct-title-brandimage h1 {
    font-size: 26px;
  }

  .page-product .tv-product-page-content .tvproduct-brand {
    width: auto;
    min-height: 0;
  }

  .page-product .tv-product-page-content .tvproduct-brand img {
    max-width: 60px;
    max-height: 38px;
  }

  .page-product .tv-product-page-content .product-prices {
    padding: 13px 14px;
  }

  .page-product .tv-product-page-content .product-price .current-price .price {
    font-size: 29px;
  }

  .page-product .tv-product-page-content .tvproduct-special-desc {
    margin-top: 18px;
    padding: 15px;
  }

  .page-product .tv-product-page-content .product-quantity {
    justify-content: space-between;
    gap: 12px;
  }

  .page-product .tv-product-page-content .tvwishlist-compare-wrapper-page {
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 10px;
  }

  .page-product .tv-product-page-content .tvproduct-wishlist-compare,
  .page-product .tv-product-page-content .tvproduct-wishlist,
  .page-product .tv-product-page-content .tvproduct-wishlist > a,
  .page-product .tv-product-page-content .tvproduct-wishlist-icon {
    width: 52px;
    height: 54px;
  }

  .page-product .tv-product-page-content .tv-indicator {
    padding: 13px 14px;
  }

  .page-product .tv-product-page-content .ets-rv-btn-comment {
    width: 100%;
  }

  .page-product .tv-product-page-content #ps_checkout-payment-method-logo-block-container {
    padding: 14px;
  }
}

/* Pinball-Network: lgcookieslaw dialog aligned with the storefront (2026-08-26) */
.lgcookieslaw-fancybox .fancybox-skin {
  overflow: hidden;
  border: 1px solid #d7e1ec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(23, 39, 61, 0.28);
}

.lgcookieslaw-modal-header {
  padding: 18px 20px;
  border-top: 4px solid #3e5e89 !important;
  border-bottom: 1px solid #dbe4ef;
  background: #fff;
  box-shadow: none;
}

.lgcookieslaw-modal-header .lgcookieslaw-modal-header-title {
  color: #2e4058;
  font-size: 20px;
  letter-spacing: 0.035em;
}

.lgcookieslaw-modal .lgcookieslaw-badge,
.lgcookieslaw-modal .lgcookieslaw-slider.lgcookieslaw-slider-checked,
.lgcookieslaw-button-container .lgcookieslaw-accept-button,
.lgcookieslaw-button-container .lgcookieslaw-reject-button,
.lgcookieslaw-button-container .lgcookieslaw-customize-cookies-link,
.lgcookieslaw-modal .lgcookieslaw-accept-button,
.lgcookieslaw-modal .lgcookieslaw-reject-button {
  border-color: #3e5e89 !important;
  background: #3e5e89 !important;
  color: #fff !important;
}

.lgcookieslaw-modal .lgcookieslaw-badge {
  border-radius: 999px;
  box-shadow: 0 2px 7px rgba(62, 94, 137, 0.2);
}

.lgcookieslaw-modal-body {
  background: #f5f8fc;
}

.lgcookieslaw-modal .lgcookieslaw-section {
  border: 1px solid #dbe4ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(37, 58, 86, 0.08);
}

.lgcookieslaw-modal .lgcookieslaw-section-name {
  color: #33465f;
}

.lgcookieslaw-modal .lgcookieslaw-section-purpose-button {
  border-radius: 7px;
  background: #f0f4f9;
  color: #3e4c5e;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.lgcookieslaw-modal .lgcookieslaw-section-purpose-button:hover,
.lgcookieslaw-modal .lgcookieslaw-section-purpose-button:focus-visible {
  background: #e4ebf4;
  color: #2e4666;
}

.lgcookieslaw-modal .lgcookieslaw-slider {
  border-radius: 999px;
  background-color: #bcc7d4;
  box-shadow: inset 0 0 0 1px rgba(46, 70, 102, 0.08);
}

.lgcookieslaw-modal .lgcookieslaw-slider::before {
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(30, 48, 72, 0.24);
}

.lgcookieslaw-modal .lgcookieslaw-slider.lgcookieslaw-slider-checked {
  box-shadow: 0 0 0 1px #3e5e89 !important;
}

.lgcookieslaw-modal .lgcookieslaw-switch.lgcookieslaw-switch-disabled .lgcookieslaw-slider {
  opacity: 0.48;
}

.lgcookieslaw-modal .lgcookieslaw-section-purpose-content-cookies-table td a {
  color: #3e5e89;
}

.lgcookieslaw-modal-footer {
  padding: 16px;
  border-top: 1px solid #dbe4ef;
  background: #fff;
  box-shadow: 0 -6px 18px rgba(37, 58, 86, 0.08);
}

.lgcookieslaw-modal-footer .lgcookieslaw-button {
  min-height: 42px;
  border: 1px solid transparent !important;
  border-radius: 8px;
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease,
    color 0.2s ease, transform 0.2s ease;
}

.lgcookieslaw-modal-footer .lgcookieslaw-cancel-button {
  border-color: #d7e1ec !important;
  background: #fff;
  color: #3e4c5e;
}

.lgcookieslaw-modal-footer .lgcookieslaw-partial-accept-button {
  background: #596a7f;
  color: #fff;
}

.lgcookieslaw-modal-footer .lgcookieslaw-accept-button:hover,
.lgcookieslaw-modal-footer .lgcookieslaw-reject-button:hover,
.lgcookieslaw-button-container .lgcookieslaw-accept-button:hover,
.lgcookieslaw-button-container .lgcookieslaw-reject-button:hover,
.lgcookieslaw-button-container .lgcookieslaw-customize-cookies-link:hover {
  border-color: #2e4666 !important;
  background: #2e4666 !important;
}

.lgcookieslaw-modal-footer .lgcookieslaw-partial-accept-button:hover {
  background: #46586f;
}

.lgcookieslaw-modal-footer .lgcookieslaw-cancel-button:hover {
  border-color: #bdcad8 !important;
  background: #f0f4f9;
  color: #2e4058;
}

.lgcookieslaw-modal-footer .lgcookieslaw-button:focus-visible,
.lgcookieslaw-modal .lgcookieslaw-section-purpose-button:focus-visible,
.lgcookieslaw-fixed-button:focus-visible {
  outline: 3px solid rgba(62, 94, 137, 0.28) !important;
  outline-offset: 2px;
}

.lgcookieslaw-fixed-button {
  border-radius: 50%;
  background-color: #3e5e89 !important;
  box-shadow: 0 6px 18px rgba(30, 48, 72, 0.28);
}

.lgcookieslaw-fixed-button:hover {
  background-color: #2e4666 !important;
}

body#product .tvproduct-description-tab .product-description,
body#product .tvproduct-description-tab .product-description.cms-description {
  color: #222 !important;
  font-family: inherit !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  letter-spacing: 0 !important;
}

body#product .tvproduct-description-tab .product-description *,
body#product .tvproduct-description-tab .product-description.cms-description * {
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

body#product .tvproduct-description-tab .product-description p,
body#product .tvproduct-description-tab .product-description.cms-description p {
  margin: 0 0 14px !important;
}

body#product .tvproduct-description-tab .product-description ul,
body#product .tvproduct-description-tab .product-description ol,
body#product .tvproduct-description-tab .product-description.cms-description ul,
body#product .tvproduct-description-tab .product-description.cms-description ol {
  margin: 8px 0 16px 24px !important;
  padding-left: 20px !important;
  list-style-position: outside !important;
}

body#product .tvproduct-description-tab .product-description ul,
body#product .tvproduct-description-tab .product-description.cms-description ul {
  list-style-type: disc !important;
}

body#product .tvproduct-description-tab .product-description ol,
body#product .tvproduct-description-tab .product-description.cms-description ol {
  list-style-type: decimal !important;
}

body#product .tvproduct-description-tab .product-description li,
body#product .tvproduct-description-tab .product-description.cms-description li {
  display: list-item !important;
  margin: 0 0 4px !important;
}

body#category #products .tv-product-desc,
body#prices-drop #products .tv-product-desc,
body#search #products .tv-product-desc {
  color: #666 !important;
  font-family: inherit !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 767px) {
  .lgcookieslaw-fancybox {
    left: 12px !important;
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
  }

  .lgcookieslaw-fancybox .fancybox-skin,
  .lgcookieslaw-fancybox .fancybox-outer,
  .lgcookieslaw-fancybox .fancybox-inner,
  .lgcookieslaw-fancybox .lgcookieslaw-modal {
    width: 100% !important;
  }

  .lgcookieslaw-modal-header {
    gap: 8px;
    padding: 14px 16px;
  }

  .lgcookieslaw-modal-header .lgcookieslaw-modal-header-title {
    width: 100%;
    font-size: 18px;
  }

  .lgcookieslaw-modal-header-title-user-consent-elements {
    width: 100%;
  }

  .lgcookieslaw-modal .lgcookieslaw-section {
    padding: 14px;
  }

  .lgcookieslaw-modal .lgcookieslaw-section-name {
    padding: 5px 0 10px;
    text-align: left;
  }

  .lgcookieslaw-modal-footer {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    height: auto;
    padding: 12px;
  }

  .lgcookieslaw-modal-footer-left,
  .lgcookieslaw-modal-footer-right {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    height: auto;
  }

  .lgcookieslaw-modal-footer .lgcookieslaw-button {
    width: 100%;
    min-width: 0;
    margin: 0;
    white-space: normal;
  }

  .lgcookieslaw-modal-footer-left .lgcookieslaw-button {
    grid-column: 1 / -1;
  }

  .lgcookieslaw-modal-footer-right .lgcookieslaw-accept-button:last-child {
    grid-column: 1 / -1;
  }
}
