/*
 Theme Name:     Divi Child
 Theme URI:      https://www.elegantthemes.com/gallery/divi/
 Description:    Divi Child Theme
 Author:         Elegant Themes
 Author URI:     https://www.elegantthemes.com
 Template:       Divi
 Version:        1.0.0
*/
 
 
/* =Theme customization starts here
------------------------------------------------------- */

html {
    -webkit-tap-highlight-color: transparent;
}

/* Header */
.et-cart-info {
    display: none;
}
.menu-basket {
    position: relative;
    width: var(--eshop-btn-lg);
}

.menu-bar-eshop-button {
    --base-color: #fafafa;
    --hover-color: color-mix(in srgb, var(--base-color) 95%, #000 5%);
    --active-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    width: var(--eshop-btn-lg) !important;
    height: var(--eshop-btn-lg) !important;
    border-radius: 50%;
    background-color: var(--base-color) !important;
    background-image: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: none !important;
    padding: 0 !important;
    cursor: pointer;
    transition: none !important;
    overflow: visible !important;
    text-indent: 0 !important;
    font-size: 0 !important;
    color: #000;
    line-height: 1 !important;
    text-decoration: none !important;
}

.menu-bar-eshop-button:hover {
    background-color: var(--hover-color) !important;
    opacity: 1 !important;
}

.menu-bar-eshop-button:active {
    background-color: var(--active-color) !important;
}

.menu-basket:has(> .menu-cart-count.is-visible:hover) > a.menu-bar-eshop-button,
.menu-basket:has(> .menu-cart-count.is-visible:hover) > a.eshop-button {
    background-color: var(--hover-color) !important;
    opacity: 1 !important;
}

.menu-basket:has(> .menu-cart-count.is-visible:active) > a.menu-bar-eshop-button,
.menu-basket:has(> .menu-cart-count.is-visible:active) > a.eshop-button {
    background-color: var(--active-color) !important;
}

.menu-bar-eshop-button.is-animating {
    animation: pulse-width 0.15s ease-in-out;
}

.menu-bar-eshop-button.is-animating svg {
    transform-origin: center bottom;
    animation: pulse-svg 0.15s ease-in-out;
}

.logo_container.menu-logo-container {
    transition: none !important;
}

:root {
    --text-base: 0.9rem;
    --text-lh: 1.4;
    --heading-lh: 1.2;
    --text-mb: 1.25rem;
    --eshop-btn-lg: 48px;
    --form-row-h: 48px;
    --form-row-gap: 16px;
    --action-row-h: 56px;
    --acc-row-inline-pad: 4px;
    --eshop-btn-sm: 32px;
    --eshop-btn-icon: 24px;
    --eshop-btn-legacy-icon: 27px;
    --eshop-btn-lg-compensation: calc(var(--eshop-btn-lg) - var(--eshop-btn-legacy-icon));
    --menu-bar-offset-top: 10px;
    --mobile-menu-button-size: var(--eshop-btn-lg);
    --mobile-menu-dropdown-gap: 3px;
    --mobile-header-grid-center-offset: 3px;
    --mobile-popup-top-offset: calc(
        var(--menu-bar-offset-top)
        + var(--mobile-header-grid-center-offset)
        + var(--mobile-menu-button-size)
        + var(--mobile-menu-dropdown-gap)
    );
    --mobile-edge-gap: 16px;
    --desktop-popup-gap: 8px;
    /* Mobil: společný start obsahu pod menu (Builder i Woo) */
    --mobile-content-inset-top: 8px;
    --mobile-content-top-gap: 32px;
    /* Šedé linky / obrysy: klid + hover (95 % base + 5 % černá) */
    --msc-line: #dbdbdb;
    --msc-line-hover: color-mix(in srgb, var(--msc-line) 95%, #000 5%);
}

/* Externí odkaz (target=_blank) – ikona škáluje s textem, barva = currentColor */
a[target="_blank"] .ext-link-tail {
    white-space: nowrap;
}

a[target="_blank"] .ext-link-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 0.25em;
    vertical-align: -0.125em;
    flex-shrink: 0;
    pointer-events: none;
    overflow: visible;
}

a[target="_blank"] .ext-link-icon path {
    fill: currentColor;
}

/* Textové odkazy – hover podtržení jako v menu baru */
.et_pb_text a:hover,
.et_pb_text_inner a:hover,
.entry-content a:hover,
.msc-promo-popup-body a:hover {
    text-decoration: underline;
}

.et_pb_text a.et_pb_button:hover,
.et_pb_text a.eshop-button:hover,
.et_pb_text_inner a.et_pb_button:hover,
.et_pb_text_inner a.eshop-button:hover,
.entry-content a.et_pb_button:hover,
.entry-content a.eshop-button:hover {
    text-decoration: none;
}

/* Desktop: sjednocený gap popupů od okrajů viewportu */
@media (min-width: 981px) {
    .mini-cart-popup,
    .gallery-popup {
        height: calc(100% - var(--desktop-popup-gap));
    }

    .mini-cart-popup {
        right: var(--desktop-popup-gap);
    }

    .gallery-popup {
        left: var(--desktop-popup-gap);
        right: var(--desktop-popup-gap);
    }
}

/* Desktop: flex řádek, střed textu = střed kulatých tlačítek (--eshop-btn-lg) */
@media (min-width: 981px) {
    #main-header .container.et_menu_container {
        display: flex;
        align-items: center;
        padding-top: var(--menu-bar-offset-top);
    }

    .logo_container.menu-logo-container {
        position: static;
        height: auto;
        width: auto;
        flex: 0 0 auto;
    }

    body.et_fullwidth_nav .logo_container.menu-logo-container {
        padding-left: 30px;
    }

    .logo_container.menu-logo-container ~ #et-top-navigation,
    .et_header_style_left .logo_container.menu-logo-container ~ #et-top-navigation,
    .et_header_style_left .et-fixed-header .logo_container.menu-logo-container ~ #et-top-navigation {
        padding-left: 0 !important;
    }

    #et-top-navigation,
    .et_header_style_left #et-top-navigation,
    .et_header_style_left .et-fixed-header #et-top-navigation {
        float: none !important;
        margin-left: auto;
        padding-top: 0 !important;
        display: flex;
        align-items: center;
    }

    #top-menu-nav,
    #top-menu {
        display: flex;
        align-items: center;
        line-height: normal;
        float: none !important;
    }

    #top-menu > li {
        display: flex;
        align-items: center;
    }

    #top-menu > li.menu-basket {
        position: relative;
        align-self: center;
    }

    #et-top-navigation nav > ul > li > a,
    .et_header_style_left #et-top-navigation nav > ul > li > a,
    .et_header_style_left .et-fixed-header #et-top-navigation nav > ul > li > a {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    #top-menu li:not(.menu-basket) > a {
        line-height: var(--eshop-btn-lg);
        transform: translateY(-1px);
    }

    .menu-basket > a.eshop-button,
    .logo_container > a.menu-logo-button {
        position: relative !important;
        bottom: auto !important;
        left: auto;
    }
}

.menu-basket > a.eshop-button svg,
.menu-basket > a.menu-bar-eshop-button svg,
#main-header .mobile_menu_bar.menu-bar-eshop-button svg {
    position: absolute;
    left: 50%;
    top: 50%;
    width: var(--eshop-btn-icon);
    height: var(--eshop-btn-icon);
    margin: 0;
    flex: none;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
}

.menu-basket > a.menu-bar-eshop-button.is-animating svg,
#main-header .mobile_menu_bar.menu-bar-eshop-button.is-animating svg {
    transform-origin: center center;
    animation: menu-cart-pulse-svg 0.15s ease-in-out;
}

#main-header .mobile_menu_bar.menu-bar-eshop-button.is-animating {
    animation: pulse-width 0.15s ease-in-out !important;
}

@keyframes menu-cart-pulse-svg {
    0%, 100% {
        transform: translate(-50%, -50%) scale(1, 1);
        -webkit-transform: translate(-50%, -50%) scale(1, 1);
    }
    50% {
        transform: translate(-50%, -50%) scale(1.15, 0.87);
        -webkit-transform: translate(-50%, -50%) scale(1.15, 0.87);
    }
}

.logo_container > a.menu-logo-button svg {
    width: 32px;
    height: 24px;
    flex: 0 0 auto;
}

/* Mobil: logo vlevo, menu uprostřed, košík vpravo */
@media (max-width: 980px) {
    #main-header .container.et_menu_container {
        padding-top: var(--menu-bar-offset-top);
        display: grid;
        grid-template-columns: 1fr auto auto;
        align-items: center;
        column-gap: 0;
    }

    .logo_container.menu-logo-container {
        position: static;
        width: auto;
        max-width: var(--eshop-btn-lg);
        grid-column: 1;
        justify-self: start;
    }

    .logo_container.menu-logo-container,
    #main-header #et-top-navigation,
    #main-header .menu-basket-mobile {
        display: flex;
        align-items: center;
        height: var(--eshop-btn-lg);
        min-height: var(--eshop-btn-lg);
        max-height: var(--eshop-btn-lg);
        padding: 0 !important;
        box-sizing: border-box;
    }

    #logo.menu-logo-button {
        vertical-align: unset;
    }

    #main-header .mobile_nav .select_page {
        display: none !important;
    }

    .logo_container > a.menu-logo-button,
    #main-header .mobile_menu_bar.menu-bar-eshop-button {
        position: relative !important;
        bottom: auto !important;
        left: auto;
        width: var(--eshop-btn-lg) !important;
        height: var(--eshop-btn-lg) !important;
        min-width: var(--eshop-btn-lg) !important;
        max-width: none !important;
        padding-bottom: 0 !important;
        line-height: 1 !important;
    }

    #main-header .mobile_menu_bar.menu-bar-eshop-button:before {
        display: none !important;
        content: none !important;
        background-image: none !important;
    }

    #main-header #top-menu-nav,
    #main-header .et-cart-info {
        display: none !important;
    }

    #et-top-navigation {
        grid-column: 2;
        justify-self: end;
        float: none !important;
        width: var(--eshop-btn-lg) !important;
        min-width: var(--eshop-btn-lg) !important;
        max-width: var(--eshop-btn-lg) !important;
        padding: 0 !important;
        margin: 0 var(--mobile-edge-gap) 0 0 !important;
        overflow: visible !important;
        transition: none !important;
        animation: none !important;
    }

    #et_mobile_nav_menu {
        float: none !important;
        display: flex;
        justify-content: center;
        align-items: center;
        width: var(--eshop-btn-lg);
        min-width: var(--eshop-btn-lg);
        max-width: var(--eshop-btn-lg);
    }

    #et_mobile_nav_menu .mobile_nav {
        display: flex;
        justify-content: center;
        align-items: center;
        width: var(--eshop-btn-lg);
        min-width: var(--eshop-btn-lg);
        max-width: var(--eshop-btn-lg);
        position: relative;
    }

    .mobile_menu_bar {
        float: none !important;
        transition: none !important;
        animation: none !important;
        opacity: 1 !important;
    }

    #main-header .mobile_nav .et_mobile_menu,
    #main-header #mobile_menu {
        top: calc(100% + var(--mobile-menu-dropdown-gap));
        right: 0;
        left: auto;
        transform: none;
        width: max-content;
        max-width: calc(100vw - (var(--mobile-edge-gap) * 2));
        height: 112px;
        border: 1px solid rgba(0, 0, 0, 0.1);
        border-top: none;
        border-radius: 20px;
        padding: 0;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
        -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
        overflow: hidden;
        background: #fff;
    }

    #main-header .et_mobile_menu li {
        position: relative;
        height: 56px;
    }

    #main-header .et_mobile_menu li a {
        display: flex;
        align-items: center;
        height: 56px;
        padding: 0 var(--mobile-edge-gap);
        box-sizing: border-box;
        white-space: nowrap;
        background-color: transparent;
        border-bottom: none;
    }

    #main-header .et_mobile_menu li:first-child::after {
        content: '';
        position: absolute;
        left: var(--mobile-edge-gap);
        right: var(--mobile-edge-gap);
        bottom: 0;
        height: 1px;
        background-color: #dbdbdb;
    }

    #main-header .mobile_menu_bar.menu-bar-eshop-button .menu-icon-svg {
        overflow: visible;
    }

    #main-header .menu-icon-line__transform {
        transition: transform 0.25s ease;
        transform-box: fill-box;
        transform-origin: center;
    }

    #main-header .menu-icon-line--top .menu-icon-line__transform {
        transform: translate(12px, 8px);
    }

    #main-header .menu-icon-line--bottom .menu-icon-line__transform {
        transform: translate(12px, 16px);
    }

    #main-header .mobile_nav.opened .menu-icon-line--top .menu-icon-line__transform {
        transform: translate(12px, 8px) translate(0, 4px) rotate(45deg) scaleX(1.04);
    }

    #main-header .mobile_nav.opened .menu-icon-line--bottom .menu-icon-line__transform {
        transform: translate(12px, 16px) translate(0, -4px) rotate(-45deg) scaleX(1.04);
    }

    .menu-basket-mobile {
        grid-column: 3;
        justify-self: end;
    }

    .menu-basket:has(> .menu-cart-count.is-visible:hover) > a.eshop-button,
    .menu-basket:has(> .menu-cart-count.is-visible:active) > a.eshop-button,
    .menu-basket-mobile:has(> .menu-cart-count.is-visible:hover) > a.eshop-button,
    .menu-basket-mobile:has(> .menu-cart-count.is-visible:active) > a.eshop-button,
    .woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button:hover,
    .woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button:active,
    .woocommerce ul.products li.product.outofstock .button.product_type_simple:hover,
    .woocommerce ul.products li.product.outofstock .button.product_type_simple:active {
        background-color: var(--base-color) !important;
        opacity: 1 !important;
    }

    .main-footer .et_pb_social_media_follow li a.icon:hover,
    .main-footer .et_pb_social_media_follow li a.icon:active {
        color: var(--base-color) !important;
        opacity: 1 !important;
    }

    .mini-cart-popup,
    .gallery-popup {
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-width: none;
        height: 100%;
        max-height: 100%;
    }

    body.page-checkout #main-header .container.et_menu_container {
        grid-template-columns: 1fr;
    }

    /* Dotyk: sticky :hover (iOS Safari často nehlásí hover:none – pointer: coarse + JS třída) */
    @media (pointer: coarse) {
        #main-header .menu-bar-eshop-button:hover:not(:active):not(.is-animating),
        #main-header .checkout-back-button.eshop-button:hover:not(:active):not(.is-animating),
        #main-header .menu-bar-eshop-button.sb-menu-bar-touch-reset,
        #main-header .menu-bar-eshop-button.sb-menu-bar-touch-reset:hover,
        #main-header .checkout-back-button.eshop-button.sb-menu-bar-touch-reset,
        #main-header .checkout-back-button.eshop-button.sb-menu-bar-touch-reset:hover {
            background-color: var(--base-color) !important;
        }
    }

    #main-header .menu-bar-eshop-button,
    #main-header .checkout-back-button.eshop-button {
        touch-action: manipulation;
    }
}

@media (min-width: 981px) {
    .menu-basket-mobile {
        display: none !important;
    }
}

#main-header.et-fixed-header {
    -webkit-box-shadow: none!important;
    box-shadow: none!important;
}
    /* mobile */
    #main-header {
        -webkit-box-shadow: none;
        box-shadow: none;
        position: absolute !important;
    }
    #top-menu li {
        padding-right: 2.%rem;
    }
#top-menu li:not(.menu-basket) a,
.et_mobile_menu li a {
    font-size: var(--text-base);
    font-weight: 600;
    transition: none;
}
#top-menu li:not(.menu-basket) a:hover,
.et_mobile_menu li a:hover {
    text-decoration: underline;
    opacity: 1;
}
    #mobile_menu li:last-child {
        display: none;
    }
    @media (max-width: 980px) {
        .container, .et_pb_row {
            width: calc(100% - (var(--mobile-edge-gap) * 2));
            max-width: calc(100% - (var(--mobile-edge-gap) * 2));
        }
        #main-header.et-fixed-header {
            -webkit-box-shadow: none!important;
            box-shadow: none!important;
        }
    }
    .et_mobile_device #main-content .et_pb_section:first-child {
        padding-top: 0;
    }

    #main-header {
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        position: relative !important; /* Změna z absolute na relative */
        background-color: #ffffff; /* Doplň svou barvu */
        top: 0!important;
    }

    /* Pokud chceš mít header přes první sekci (průhledný), 
    použij absolute, ale musíme zafixovat zbytek: */
    .et_fixed_nav #page-container {
        padding-top: 0 !important;
    }

#logo.menu-logo-button,
#logo.menu-bar-eshop-button {
    height: var(--eshop-btn-lg) !important;
    width: var(--eshop-btn-lg) !important;
    min-width: var(--eshop-btn-lg) !important;
    max-height: none !important;
    max-width: none !important;
    opacity: 1 !important;
    float: none;
    vertical-align: baseline;
    margin-bottom: 0;
    display: inline-flex !important;
    flex-shrink: 0;
}

#logo.menu-logo-button:hover {
    opacity: 1 !important;
}

#mobile_menu {
    width: 70%;
    right: 0;
    left: auto;
    border: 0;
    border-radius: 10px;
    padding: 2% 5%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .2);
    -moz-box-shadow: 0 2px 5px rgba(0,0,0,.2);
    -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .2);
}

.et_mobile_menu li a {
    border-bottom: 1px solid #dbdbdb;
}
.et_mobile_menu li:nth-last-child(2) a {
    border: 0;
}
/* Header */

/* Header - checkout: stejný layout model jako běžné stránky (relative header v toku) */
.page-checkout #main-header {
    background: transparent;
    box-shadow: unset !important;
    position: relative !important;
    top: 0 !important;
    height: auto;
}
.page-checkout #et-top-navigation {
    height: auto;
}
.page-checkout #top-menu-nav {
    display: none;
}
/* Pokladna (delivery/contact/payment): menu bar jen zpět + logo */
body.page-checkout #main-header #et-top-navigation,
body.page-checkout #main-header .menu-basket-mobile {
    display: none !important;
}
body.page-checkout #main-header .logo_container.menu-logo-container {
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: none;
    width: auto;
    padding-left: 0 !important;
}
.page-checkout footer {
    display: none;
}

/* Global content */
.sidebar {
	display: none;
}
#left-area {
    width: 100%;
	padding-right: 0!important;
}
#main-content .container:before {
	display: none!important;
}
.added_to_cart.wc-forward {
    display: none!important;
}

/* Typografie – základní schéma */
body {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-size: var(--text-base);
    line-height: var(--text-lh);
}

/*
 * Homepage – beta notice (lokální, ne H1 / ne globální typografie)
 * 1. odstavec: Bold 700 @ 400 % text-base (desktop), 300 % (≤980px)
 * 2. odstavec: Medium 500 @ 200 % text-base
 */
body.home .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner > p:first-of-type {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 700 !important;
    font-size: calc(var(--text-base) * 4) !important;
    line-height: var(--heading-lh);
}

@media (max-width: 980px) {
    body.home .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner > p:first-of-type {
        font-size: calc(var(--text-base) * 3) !important;
    }
}

body.home .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner > p:nth-of-type(2) {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 500 !important;
    font-size: calc(var(--text-base) * 2) !important;
    line-height: var(--text-lh);
}

body.home .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner > p:nth-of-type(2) a {
    font-weight: inherit;
}

/* Homepage hero video – pod CTA při překrytí (pulse scale) */
body.home a.msc-home-hero-video-link {
    display: block;
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    text-align: center;
    line-height: 0;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

body.home video.msc-home-hero-video {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    /*
     * --msc-hero-video-max-h nastavuje home-hero-video.js = zbývající výška
     * pod horním okrajem videa (header + text + CTA). Fallback před JS.
     */
    max-height: var(--msc-hero-video-max-h, calc(100dvh - 12rem));
    margin: 0 auto;
    background: transparent;
    vertical-align: top;
    object-fit: contain;
}

body.home video.msc-home-hero-video--rev {
    display: none !important;
}

/*
 * Homepage – CTA „Přejít“ jako kulaté eshop-button (šipka doprava).
 * V toku pod textem, vodorovně na střed; z-index nad videem (pulse scale).
 */
body.home .et_pb_button_0_wrapper {
    position: relative;
    z-index: 2;
    min-height: var(--action-row-h, 56px);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: visible;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button {
    --base-color: #7717ff;
    --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
    --home-go-size: var(--action-row-h, 56px);

    width: var(--home-go-size) !important;
    min-width: var(--home-go-size) !important;
    max-width: var(--home-go-size) !important;
    height: var(--home-go-size) !important;
    min-height: var(--home-go-size) !important;
    max-height: var(--home-go-size) !important;
    padding: 0 !important;
    border-radius: 50% !important;
    border: none !important;
    background-color: var(--base-color) !important;
    color: #fff !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-decoration: none !important;
    line-height: 1 !important;
    overflow: hidden;
    /* Překryje Divi .et_pb_button_0 { transition: all 300ms } – žádné smrštění šířky */
    transition: none !important;
    -webkit-transition: none !important;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button:hover {
    background-color: var(--hover-color) !important;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button:active {
    background-color: var(--active-color) !important;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button:after {
    display: none !important;
    content: none !important;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button svg {
    width: 48px;
    height: 48px;
    flex: none;
    pointer-events: none;
}

/*
 * Idle: tlačítko 1↔1.1, SVG šipka 1↔1.2 — stejný timing i origin (= souběh nahoru/dolů).
 * Hover = barva; při kliku .is-animating přepíše idle na krátký round pulse.
 */
@keyframes home-go-idle-pulse {
    0%,
    100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
}

@keyframes home-go-idle-pulse-svg {
    0%,
    100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
    }
}

body.home a.et_pb_button.et_pb_button_0.home-go-button:not(.is-animating) {
    transform-origin: center center;
    animation: home-go-idle-pulse 2s ease-in-out infinite;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button:not(.is-animating) svg {
    transform-origin: center center;
    animation: home-go-idle-pulse-svg 2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    body.home a.et_pb_button.et_pb_button_0.home-go-button:not(.is-animating),
    body.home a.et_pb_button.et_pb_button_0.home-go-button:not(.is-animating) svg {
        animation: none;
    }
}

/* Round pulse (ne large-pulse) — přepíše idle po dobu kliknutí */
body.home a.et_pb_button.et_pb_button_0.home-go-button.is-animating {
    animation: pulse-width 0.15s ease-in-out !important;
}

body.home a.et_pb_button.et_pb_button_0.home-go-button.is-animating svg {
    transform-origin: center bottom;
    animation: pulse-svg 0.15s ease-in-out !important;
}

/*
 * Below-fold footer
 * #main-content má vždy min. výšku viewportu → na krátkých stránkách je footer
 * schovaný těsně pod dolním okrajem displeje a vyžaduje scroll.
 * 100dvh = stabilnější na mobilech (dynamická výška prohlížeče).
 * Divi: body > #page-container > (#et-boc) > #et-main-area > #main-content + footer
 */
body:not(.page-checkout) #main-content {
    min-height: 100vh;
    min-height: 100dvh;
    box-sizing: border-box;
}

h1 {
    font-family: 'Open Sans', sans-serif;
    font-size: calc(var(--text-base) * 2);
    font-weight: 700;
    line-height: var(--heading-lh);
    margin-bottom: var(--text-mb);
}

h2 {
    font-family: 'Open Sans', sans-serif;
    font-size: calc(var(--text-base) * 1.5);
    font-weight: 600;
    line-height: var(--heading-lh);
    margin-bottom: var(--text-mb);
}

p {
    margin-bottom: var(--text-mb);
    -webkit-hyphens: auto;
    hyphens: auto;
    text-wrap: pretty;
}

.et_pb_title_container h1.entry-title {
    font-size: calc(var(--text-base) * 2) !important;
    line-height: var(--heading-lh) !important;
}

.et_button_no_icon .et_pb_button,
.base_button,
#dokoncit:not(.no-select),
#checkout-next-step:not(.no-select) {
    --base-color: #7717ff;
    --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
    background-color: var(--base-color) !important;
    transition: none;
    border: 0!important;
    color: #fff;
    font-size: var(--text-base);
    font-weight: 700;
    font-family: 'Open Sans', sans-serif !important;
    padding: 0 2rem !important;
    border-radius: 2rem;
    height: 56px;
    width: 100%;
    max-width: 420px;
    text-align: center;
    align-content: center;
}

.et_button_no_icon .et_pb_button:hover,
.base_button:hover,
#dokoncit:not(.no-select):hover,
#checkout-next-step:not(.no-select):hover {
    background-color: var(--hover-color) !important;
}

.et_button_no_icon .et_pb_button:active,
.base_button:active,
#dokoncit:not(.no-select):active,
#checkout-next-step:not(.no-select):active {
    background-color: var(--active-color) !important;
}

.et_button_no_icon .et_pb_button.loading,
.base_button.loading,
#dokoncit:not(.no-select).loading,
#checkout-next-step:not(.no-select).loading,
.single .product .cart button[type=submit].loading,
.single-product .product .summary form.cart button[name="add-to-cart"].loading,
.single-product .product .summary form.cart button[name="add-to-cart"].is-loading,
.single-product .product .summary form.cart button[name="add-to-cart"].is-success,
#mini-cart-popup .button.wc-forward:not(.no-select).loading {
    opacity: 1 !important;
    background-color: var(--base-color) !important;
    color: #fff !important;
    cursor: wait;
    pointer-events: none;
}

.et_button_no_icon .et_pb_button.loading:hover,
.et_button_no_icon .et_pb_button.loading:active,
.base_button.loading:hover,
.base_button.loading:active,
#dokoncit:not(.no-select).loading:hover,
#dokoncit:not(.no-select).loading:active,
#checkout-next-step:not(.no-select).loading:hover,
#checkout-next-step:not(.no-select).loading:active,
.single .product .cart button[type=submit].loading:hover,
.single .product .cart button[type=submit].loading:active,
.single-product .product .summary form.cart button[name="add-to-cart"].loading:hover,
.single-product .product .summary form.cart button[name="add-to-cart"].loading:active,
#mini-cart-popup .button.wc-forward:not(.no-select).loading:hover,
#mini-cart-popup .button.wc-forward:not(.no-select).loading:active {
    opacity: 1 !important;
    background-color: var(--base-color) !important;
}

#dokoncit, #checkout-next-step {
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    padding: 0 2rem !important;
    height: 56px !important;
}

#checkout-next-step.no-select,
#checkout-next-step.no-select:hover,
#checkout-next-step.no-select:active {
    background: #BEBEBE!important;
}

@keyframes large-pulse-width {
    50% { transform: scaleX(1.02); }
}

@keyframes large-pulse-text {
    50% { transform: scale(1.02, 0.87); }
}

.large-btn-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.et_button_no_icon .et_pb_button.is-animating:not(.no-select),
.base_button.is-animating:not(.no-select),
#dokoncit:not(.no-select).is-animating,
#checkout-next-step:not(.no-select).is-animating,
.single .product .cart button[type=submit].is-animating:not(.loading):not(.is-loading):not(.is-success):not(.is-shrunk),
.single-product .product .summary form.cart button[name="add-to-cart"].is-animating:not(.loading):not(.is-loading):not(.is-success):not(.is-shrunk),
#mini-cart-popup .button.wc-forward:not(.no-select).is-animating:not(.loading):not(:has(.sb-loader-spinner)) {
    animation: large-pulse-width 0.15s ease-in-out;
}

.et_button_no_icon .et_pb_button.is-animating:not(.no-select) .large-btn-label,
.et_button_no_icon .et_pb_button.is-animating:not(.no-select) svg,
.base_button.is-animating:not(.no-select) .large-btn-label,
.base_button.is-animating:not(.no-select) svg,
#dokoncit:not(.no-select).is-animating .large-btn-label,
#checkout-next-step:not(.no-select).is-animating .large-btn-label,
#mini-cart-popup .button.wc-forward:not(.no-select).is-animating:not(.loading):not(:has(.sb-loader-spinner)) .large-btn-label,
.single .product .cart button[type=submit].is-animating:not(.loading):not(.is-loading):not(.is-success):not(.is-shrunk) .text,
.single .product .cart button[type=submit].is-animating:not(.loading):not(.is-loading):not(.is-success):not(.is-shrunk) > span:not(.sb-loader-spinner):not(.sb-single-add-check),
.single-product .product .summary form.cart button[name="add-to-cart"].is-animating:not(.loading):not(.is-loading):not(.is-success):not(.is-shrunk) .text,
.single-product .product .summary form.cart button[name="add-to-cart"].is-animating:not(.loading):not(.is-loading):not(.is-success):not(.is-shrunk) .icon {
    transform-origin: center bottom;
    animation: large-pulse-text 0.15s ease-in-out;
}

/* Zmenšený mobilní FAB – stejný pulse jazyk jako kruhová eshop tlačítka */
.single-product .product .summary form.cart button[name="add-to-cart"].is-animating.is-shrunk:not(.loading):not(.is-loading):not(.is-success) {
    animation: eshop-pulse-width 0.15s ease-in-out;
}
.single-product .product .summary form.cart button[name="add-to-cart"].is-animating.is-shrunk:not(.loading):not(.is-loading):not(.is-success) .icon .fab-icon-svg {
    transform-origin: center bottom;
    animation: eshop-pulse-svg 0.15s ease-in-out;
}

.heading-wrapper {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 48px;
}
.heading-wrapper h1 {
  font-size: calc(var(--text-base) * 2);
  font-weight: 700;
  line-height: var(--heading-lh);
  color: #1a1a1a;
  margin: 0;
  padding-bottom: 0;
}
/* Pokladna: .back-arrow nahrazeno za .checkout-back-button – viz inc/msc-checkout-back-button.php */
.msc-hidden {
    display: none;
}
body.overlay-lock {
    /*position: fixed;*/
    overflow: hidden;
    /*
    height: 100%!important;
    width: 100%;
    */
    touch-action: none; /* Zakáže scroll na mobilech (iOS/Android) */
}
body:not(.page-checkout) #main-content {
    padding-bottom: 120px;
}
/* Global content */


/* Category */
/* Oddeleni radku produktu stejnou linkou jako v mini-cart popupu. */
.woocommerce ul.products[class*="columns-"] {
    --sb-product-row-divider: 1px solid #dbdbdb;
    --sb-product-row-gap: 3.8%;
    --sb-product-image-radius: 32px;
    --sb-product-row-line-width: 100%;
    --sb-product-row-line-offset: 0;
}

.woocommerce ul.products[class*="columns-"] li.product {
    position: relative;
    container-type: inline-size;
    container-name: product-card;
    --product-card-pad-top: 0px;
}

.woocommerce ul.products.columns-4 li.product:nth-child(n+5),
.woocommerce ul.products.columns-3 li.product:nth-child(n+4),
.woocommerce ul.products.columns-2 li.product:nth-child(n+3) {
    padding-top: 40px;
    --product-card-pad-top: 40px;
}

.woocommerce ul.products.columns-4 li.product:nth-child(4n+5)::before,
.woocommerce ul.products.columns-3 li.product:nth-child(3n+4)::before,
.woocommerce ul.products.columns-2 li.product:nth-child(2n+3)::before {
    content: "";
    position: absolute;
    top: -5px;
    left: var(--sb-product-row-line-offset, 0);
    width: var(--sb-product-row-line-width, 100%);
    border-top: var(--sb-product-row-divider);
}

@media (max-width: 1200px) and (min-width: 981px) {
    .woocommerce ul.products.columns-4 li.product:nth-child(n) {
        width: 30.8% !important;
        margin-right: var(--sb-product-row-gap) !important;
        clear: none !important;
        padding-top: 0;
        --product-card-pad-top: 0px;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(3n) {
        margin-right: 0 !important;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(3n+1) {
        clear: both !important;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(n+4) {
        padding-top: 40px;
        --product-card-pad-top: 40px;
    }

    .woocommerce ul.products.columns-4 li.product::before {
        display: none;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(3n+4)::before {
        content: "";
        display: block;
        position: absolute;
        top: -5px;
        left: var(--sb-product-row-line-offset, 0);
        width: var(--sb-product-row-line-width, 100%);
        border-top: var(--sb-product-row-divider);
    }
}

/* Přidat do košíku – seznam produktů (fialové kruhové tlačítko na fotce) */
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button {
    --base-color: #7717ff;
    --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
    --loop-fab-size: 48px;
    --loop-fab-inset: 16px;

    position: absolute !important;
    /* Na čtvercové .et_shop_image: vpravo dole; + pad-top u 2.+ řady */
    top: calc(var(--product-card-pad-top, 0px) + 100cqw - var(--loop-fab-inset) - var(--loop-fab-size)) !important;
    right: var(--loop-fab-inset) !important;
    bottom: auto !important;
    left: auto !important;
    width: var(--loop-fab-size) !important;
    height: var(--loop-fab-size) !important;
    border-radius: 50% !important;
    background-color: var(--base-color) !important;
    background-image: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border: none !important;
    padding: 0 !important;
    cursor: pointer;
    transition: none;
    text-indent: 0 !important;
    overflow: visible !important;
    font-size: 0 !important;
    color: transparent !important;
    line-height: 0 !important;
    z-index: 99999;
    opacity: 1 !important;
}
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button:hover {
    background-color: var(--hover-color) !important;
    opacity: 1 !important;
}
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button:active {
    background-color: var(--active-color) !important;
}

.eshop-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.eshop-btn-icon svg {
    width: var(--eshop-btn-icon);
    height: var(--eshop-btn-icon);
}

/* Spinner v listingu: plátno 48×48 (plus/fajfka zůstávají 24) */
.eshop-btn-icon--spinner .sb-loader-spinner {
    width: 48px;
    height: 48px;
}
.eshop-btn-icon--spinner .sb-spinner {
    width: 48px;
    height: 48px;
}

.eshop-btn-icon--plus { display: flex; }
.eshop-btn-icon--spinner { display: none; }
.eshop-btn-icon--check { display: none; }

.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.loading {
    pointer-events: none;
}
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.loading .eshop-btn-icon--plus {
    display: none;
}
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.loading .eshop-btn-icon--spinner {
    display: flex;
}
/* Spinner animace = stejná jako u detailu (.sb-spinner / sb-spin) */

.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.sb-added-check .eshop-btn-icon--plus,
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.sb-added-check .eshop-btn-icon--spinner {
    display: none;
}
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.sb-added-check .eshop-btn-icon--check {
    display: flex;
}

.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.is-animating {
    animation: eshop-pulse-width 0.15s ease-in-out;
}
.woocommerce ul.products li.product:not(.outofstock) .add_to_cart_button.is-animating .eshop-btn-icon--plus svg {
    transform-origin: center bottom;
    animation: eshop-pulse-svg 0.15s ease-in-out;
}

@keyframes eshop-pulse-width {
    50% { transform: scaleX(1.15); }
}
@keyframes eshop-pulse-svg {
    50% { transform: scale(1.15, 0.87); }
}
@keyframes eshop-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}


 
.woocommerce ul.products li.product .et_shop_image {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border-radius: var(--sb-product-image-radius);
    margin-bottom: 10px!important;
}
.woocommerce ul.products li.product .et_shop_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--sb-product-image-radius);
	margin-bottom: 0!important;
    transition: transform .2s;
}
.woocommerce ul.products li.product .et_shop_image .et_overlay {
    border-radius: var(--sb-product-image-radius);
}
.woocommerce ul.products li.product:hover .et_shop_image img {
    transform: scale(1.03);
}

/*
 * Mobil: zoom fotky jen při interakci s fotkou, ne při tapu na plus/bell
 * (ty jsou sourozenci odkazu — li:hover by jinak fotku zvětšil).
 */
@media (max-width: 980px) {
    .woocommerce ul.products li.product:hover .et_shop_image img {
        transform: none;
    }

    .woocommerce ul.products li.product .et_shop_image:hover img {
        transform: scale(1.03);
    }
}

.product-tags {
    margin: 10px 0 10px!important;
}

.product-tag {
    display: inline-block;
    color: #8e8e8e!important;
	background: #fafafa;
    /* border: 1px solid #aaa!important; */
    border: 0;
    padding: 0px 10px;
    border-radius: 999px;
    font-size: 0.675rem;
    font-weight: 600;
	line-height: 20px;
    margin: 0 4px 3px 0;
}

.woocommerce ul.products li.product.outofstock .et_shop_image img {
    opacity: 0.3;
}

.product-tag.sellout,
.product-tag.promo-coming-soon {
    background: #fce8e6;
    color: #c5221f !important;
    border: 0 !important;
}

.product-tag.promo-new {
    background: #e6f9ed;
    color: #137333 !important;
    border: 0 !important;
}

.product-tag.msc-promo-tag-trigger {
    cursor: pointer;
}

.woocommerce ul.products li.product.outofstock .button.product_type_simple {
    --base-color: #7717ff;
    --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
    --loop-fab-size: 48px;
    --loop-fab-inset: 16px;

    position: absolute !important;
    /* Stejné kotvení na fotce jako .add_to_cart_button (plus) */
    top: calc(var(--product-card-pad-top, 0px) + 100cqw - var(--loop-fab-inset) - var(--loop-fab-size)) !important;
    right: var(--loop-fab-inset) !important;
    bottom: auto !important;
    left: auto !important;
    width: var(--loop-fab-size) !important;
    height: var(--loop-fab-size) !important;
    border-radius: 50% !important;
    background-color: var(--base-color) !important;
    background-image: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border: none !important;
    padding: 0 !important;
    cursor: pointer;
    transition: none;
    text-indent: 0 !important;
    overflow: visible !important;
    font-size: 0 !important;
    color: transparent !important;
    line-height: 0 !important;
    z-index: 99999;
    opacity: 1 !important;
}
.woocommerce ul.products li.product.outofstock .button.product_type_simple:hover {
    background-color: var(--hover-color) !important;
    opacity: 1 !important;
}
.woocommerce ul.products li.product.outofstock .button.product_type_simple:active {
    background-color: var(--active-color) !important;
}
.woocommerce ul.products li.product.outofstock .button.product_type_simple.is-animating {
    animation: eshop-pulse-width 0.15s ease-in-out;
}
.woocommerce ul.products li.product.outofstock .button.product_type_simple.is-animating .eshop-btn-icon svg {
    transform-origin: center bottom;
    animation: eshop-pulse-svg 0.15s ease-in-out;
}

@media (max-width: 980px) {
    .woocommerce ul.products.columns-4 li.product:nth-child(n),
    .woocommerce ul.products.columns-3 li.product:nth-child(n),
    .woocommerce ul.products.columns-2 li.product:nth-child(n) {
        width: 48.1% !important;
        margin-right: var(--sb-product-row-gap) !important;
        clear: none !important;
        padding-top: 0;
        --product-card-pad-top: 0px;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(2n),
    .woocommerce ul.products.columns-3 li.product:nth-child(2n),
    .woocommerce ul.products.columns-2 li.product:nth-child(2n) {
        margin-right: 0 !important;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(2n+1),
    .woocommerce ul.products.columns-3 li.product:nth-child(2n+1),
    .woocommerce ul.products.columns-2 li.product:nth-child(2n+1) {
        clear: both !important;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(n+3),
    .woocommerce ul.products.columns-3 li.product:nth-child(n+3),
    .woocommerce ul.products.columns-2 li.product:nth-child(n+3) {
        padding-top: 40px;
        --product-card-pad-top: 40px;
    }

    .woocommerce ul.products.columns-4 li.product::before,
    .woocommerce ul.products.columns-3 li.product::before,
    .woocommerce ul.products.columns-2 li.product::before {
        display: none;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(2n+3)::before,
    .woocommerce ul.products.columns-3 li.product:nth-child(2n+3)::before,
    .woocommerce ul.products.columns-2 li.product:nth-child(2n+3)::before {
        content: "";
        display: block;
        position: absolute;
        top: -5px;
        left: var(--sb-product-row-line-offset, 0);
        width: var(--sb-product-row-line-width, 100%);
        border-top: var(--sb-product-row-divider);
    }

    .et_pb_title_container h1 {
        font-size: calc(var(--text-base) * 2);
        line-height: var(--heading-lh);
    }
}

@media (max-width: 600px) {
    .woocommerce ul.products.columns-4 li.product:nth-child(n),
    .woocommerce ul.products.columns-3 li.product:nth-child(n),
    .woocommerce ul.products.columns-2 li.product:nth-child(n) {
        width: 100% !important;
        margin-right: 0 !important;
        clear: both !important;
        padding-top: 0;
        --product-card-pad-top: 0px;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(n+2),
    .woocommerce ul.products.columns-3 li.product:nth-child(n+2),
    .woocommerce ul.products.columns-2 li.product:nth-child(n+2) {
        padding-top: 40px;
        --product-card-pad-top: 40px;
    }

    .woocommerce ul.products.columns-4 li.product::before,
    .woocommerce ul.products.columns-3 li.product::before,
    .woocommerce ul.products.columns-2 li.product::before {
        display: none;
    }

    .woocommerce ul.products.columns-4 li.product:nth-child(n+2)::before,
    .woocommerce ul.products.columns-3 li.product:nth-child(n+2)::before,
    .woocommerce ul.products.columns-2 li.product:nth-child(n+2)::before {
        content: "";
        display: block;
        position: absolute;
        top: -5px;
        left: var(--sb-product-row-line-offset, 0);
        width: var(--sb-product-row-line-width, 100%);
        border-top: var(--sb-product-row-divider);
    }
}
/* Category */



/* Gallery & Images */
.my-product-media { display:block; float:left;}
.my-main-img {
  width:100%; height:auto; display:block;
  border-radius:32px;
}

.my-vert-gallery {
  list-style:none!important; padding:0!important;
  display:flex; flex-direction:column; gap:16px; /* svislý seznam */
}
.my-vert-item { }
.my-vert-link { display:block; border-radius:32px; overflow:hidden; cursor: zoom-in; }
.my-vert-img { width:100%; height:auto; display:block; border-radius:32px; }

/* Volitelně: omez výšku náhledů na stejný poměr */
.my-vert-img { object-fit:cover; }

/* Na úzkých displejích můžeš zmenšit mezery */
@media (max-width: 560px){
  .my-vert-gallery { gap:10px; }
}
/* Gallery & Images */


/* Product detail */

/* Woo default selectors: pravý sloupec — bez sticky (kotví se jen CTA FAB) */
.single-product div.product .summary {
  position: relative;
  z-index: 5;
  font-size: var(--text-base);
}

body:not(.single) .woocommerce ul.products li.product .price,
body:not(.single) .woocommerce ul.products li.product .price .amount {
    font-size: calc(var(--text-base) * 1.5) !important;
}

/* Seznam: cena vlevo v rovině s fotkou (bez odsazení .amount) */
body:not(.single) .woocommerce ul.products li.product .price,
body:not(.single) .woocommerce ul.products li.product .price > .amount {
    margin-left: 0 !important;
    text-align: left;
}

body:not(.single) .product .price > .amount {
	margin-left: 40px!important;
}
.single .product .price {
    padding-bottom: 0!important;
}
.single .product .price > .amount {
    font-family: 'Open Sans', sans-serif;
    font-size: calc(var(--text-base) * 2);
    line-height: var(--heading-lh);
    color: #000;
    font-weight: 700;
}
.single .product .stock.out-of-stock {
    display: none;
}
.woocommerce-breadcrumb {
    display: none;
}
.product-header .product-collection {
    font-family: 'Open Sans', sans-serif;
    font-size: calc(var(--text-base) * 2);
    font-weight: 700;
    line-height: var(--heading-lh);
    color: #000;
}
.product-header h1 {
    font-size: calc(var(--text-base) * 2) !important;
    font-weight: 400;
    line-height: var(--heading-lh) !important;
    margin-bottom: var(--text-mb);
}
.entry-summary .entry-title {
    padding-bottom: 0 !important;
}
.product-header .product-tags {
    margin-bottom: 25px !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.product-header .product-tag {
    font-size: 0.675rem;
    font-weight: 600;
}

.msc-promo-info-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin: 0 0 3px 2px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #8e8e8e;
    cursor: pointer;
    line-height: 0;
    vertical-align: middle;
    box-sizing: border-box;
}
/* Barva ikony = barva textu promo badge (ne sousedního tagu). */
.msc-promo-info-btn--alert {
    color: #c5221f;
}
.msc-promo-info-btn--new {
    color: #137333;
}
.msc-promo-info-btn:hover,
.msc-promo-info-btn:focus,
.msc-promo-info-btn:active {
    background: transparent;
    opacity: 1;
    transform: none;
    box-shadow: none;
}
.msc-promo-info-btn svg {
    display: block;
    width: 24px;
    height: 24px;
}
.msc-promo-info-wrap {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}

.msc-promo-popup-body {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #000;
}
.msc-promo-popup-body > * {
    margin-top: 0;
    margin-bottom: 1.25rem;
}
.msc-promo-popup-body > *:last-child {
    margin-bottom: 0;
}
#mini-cart-popup .mini-cart-inner.instance-6 .notify-card {
    margin-top: 16px;
}


.product .quantity {
	display: none;
}


.msc-info {
  padding: 12px 0;
  margin: 5px 0 15px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.msc-info > .msc-row {
  margin: 0 !important;
  padding-right: 14px;
}

.msc-row {
  --msc-icon-cell: 27px;              /* můžeš doladit (22–28px) */
  display: grid;
  grid-template-columns: var(--msc-icon-cell) 1fr;  /* 1. sloupec ikona, 2. text */
  column-gap: 10px;
  align-items: center;
  width: 100%;
}
.msc-row + .msc-row { margin-top:10px; }

/* tečka ve sloupci – zarovnaná doprostřed ikonového sloupce */
.msc-dot {
  width:14px; height:14px; border-radius:50%;
  justify-self: center;               /* vycentrovat v ikonovém sloupci */
  display:inline-block;
}

/* barvy stavu */
.msc-stock.status--instock    .msc-dot { background:#00AA00; }
.msc-stock.status--outofstock .msc-dot { background:#c5221f; }
.msc-stock.status--onbackorder .msc-dot { background:#FF7100; }

/* box pro SVG krabice – stejné „pole“ jako tečka */
.msc-icon-box {
  width: var(--msc-icon-cell);
  height: var(--msc-icon-cell);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.msc-delivery-texts { line-height: var(--text-lh); }
.msc-delivery-title { font-weight:600; }
.msc-delivery-sub   { font-size: var(--text-base); font-weight:400; color:#9ca3af; }
.msc-stock-text     { font-weight:600; }

.msc-info .notify-card {
  padding-top: 0;
  max-width: none;
  width: 100%;
}

/* Stejná šířka jako akordeon – bez stropu 560px z .form-group */
.msc-info .notify-card .notify-form-row.form-group {
  max-width: none;
}

.msc-info .notify-card--product .notify-header {
  --msc-icon-cell: 27px;
  display: grid;
  grid-template-columns: var(--msc-icon-cell) 1fr;
  column-gap: 10px;
  align-items: center;
  margin-bottom: 20px;
  overflow: visible;
}

.msc-info .notify-card--product .notify-ding {
  grid-column: 1;
  grid-row: 1;
  width: var(--msc-icon-cell);
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.msc-info .notify-card--product .notify-content {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 0;
}

.msc-info .notify-card--product .notify-content p {
  margin: 0;
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
  line-height: var(--text-lh);
}

.msc-single-mobile--gallery {
    display: none;
}
.msc-single-mobile--gallery .msc-delivery-title {
    color: #7717ff;
    font-family: 'Open Sans', sans-serif;
    font-weight: 700;
    display: flex;
    align-items: center;
    cursor: pointer;
}
.msc-single-mobile--gallery .msc-icon-box {
    cursor: pointer;
}

    /* setup product specs table */
    .product-specs-intro {
        width: 100%;
        font-size: var(--text-base);
        line-height: var(--text-lh);
        color: #111;
        padding-bottom: 1.8rem; /* 2× řádková mezera (0.9rem) před tabulkou */
    }
    .product-specs-intro > *:last-child {
        margin-bottom: 0;
    }
    .product-specs{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    font-size: var(--text-base);
    line-height: var(--text-lh);
    }
    .product-specs tr {
        padding:0!important;
    }
    .product-specs th{
    text-align:left;
    font-weight:400;
    padding:0 16px 0.9rem 0!important;
    white-space:nowrap;
    color:#111;
    vertical-align:top;
    width:50%;                  /* levý sloupec podobně široký jako na obrázku */
    max-width:260px;
    }
    .product-specs td{
    padding:0 0 0.9rem 0!important;
    color:#111;
    text-align:right;
    }
    .product-specs tr:last-child th,
    .product-specs tr:last-child td{
    padding-bottom:0!important;
    }
    /* mobil: stack na 1 sloupec */
    @media (max-width: 560px){
    .product-specs, .product-specs tbody, .product-specs tr,
    .product-specs th, .product-specs td{ display:block; width:100%; }
    .product-specs th{ padding:10px 0 2px; }
    .product-specs td{ padding:0 0 10px; }
    }
    /* setup product specs table */

.single .product .product_meta {
	display: none;
}

.single .product .cart {
    margin-top: 40px!important;
}
.single .product .cart button[type=submit] {
    --base-color: #7717ff;
    --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    background-color: var(--base-color) !important;
    opacity: 1!important;
    border: 0;
    color: #fff;
    font-size: var(--text-base);
    font-weight: 700;
    padding: 0 2rem!important;
    border-radius: 2rem;
    width: 100%;
    height: 56px;
    transition: none;
}

.single .product .cart button[type=submit]:hover {
    background-color: var(--hover-color) !important;
    opacity: 1!important;
}

.single .product .cart button[type=submit]:active {
    background-color: var(--active-color) !important;
}
.single .product .cart button[type=submit] span {
    display: flex;
    align-items: center;
}

/*
.single .product .cart button[type=submit]:after {
    display: none;
}
*/

.msc-accordion {
    border-top: 1px solid #dbdbdb;
    border-bottom: 1px solid #dbdbdb;
    background: #fff;
}
.msc-accordion .acc-item {
    padding-left: var(--acc-row-inline-pad);
    padding-right: var(--acc-row-inline-pad);
}
.msc-accordion .acc-item:not(:last-child) {
    border-bottom: 1px solid #dbdbdb;
}

/* Tlačítko řádku */
.msc-accordion .acc-trigger {
    width: 100%;
    background: none;
    border: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: var(--action-row-h);
    padding: 0;
    font-size: inherit;
    font-weight: 600;
    text-align: left;
    color: #000;
    text-decoration: none;
}

.msc-accordion .acc-trigger > span:first-of-type,
.msc-accordion .acc-trigger:hover > span:first-of-type,
.msc-accordion .acc-trigger:active > span:first-of-type,
.msc-accordion .acc-trigger:focus > span:first-of-type {
    text-decoration: none;
}

/* Kruhový toggle se zobáčkem (stejný jazyk jako menu-bar košík) */
.acc-chev-toggle {
    --base-color: #fafafa;
    --hover-color: color-mix(in srgb, var(--base-color) 95%, #000 5%);
    --active-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    flex: 0 0 var(--eshop-btn-lg);
    width: var(--eshop-btn-lg) !important;
    height: var(--eshop-btn-lg) !important;
    min-width: var(--eshop-btn-lg);
    min-height: var(--eshop-btn-lg);
    border-radius: 50%;
    background-color: var(--base-color) !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 0 !important;
    margin: 0;
    cursor: pointer;
    transition: none;
    overflow: visible;
    line-height: 0;
    color: #000;
    pointer-events: none; /* klik řeší rodič (.acc-trigger / .footer-list-header) */
}

@media (hover: hover) {
    .acc-trigger:hover .acc-chev-toggle,
    .footer-list-header:hover .acc-chev-toggle {
        background-color: var(--hover-color) !important;
    }
}

.acc-trigger:active .acc-chev-toggle,
.footer-list-header:active .acc-chev-toggle {
    background-color: var(--active-color) !important;
}

.acc-chev-toggle .acc-chev-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--eshop-btn-legacy-icon);
    height: var(--eshop-btn-legacy-icon);
    transform: rotate(0deg);
    transform-origin: center center;
    line-height: 0;
}

.acc-chev-toggle .acc-chev-svg {
    display: block;
    width: var(--eshop-btn-legacy-icon);
    height: var(--eshop-btn-legacy-icon);
    flex: none;
}

/* Pulse: rotace SVG nesmí kolidovat s pulse-svg */
.acc-chev-toggle.is-animating {
    animation: pulse-width 0.15s ease-in-out;
}

.acc-chev-toggle.is-animating .acc-chev-svg {
    animation: none;
}

/* Šipka: zavřené = dolů, otevřené = nahoru (rotace s lehkým overshootem) */
.msc-accordion .acc-item.open .acc-chev-icon,
.footer-list--opened .acc-chev-icon {
    animation: chev-rotate-open 0.5s ease-out forwards;
}
.msc-accordion .acc-item.chev-animated:not(.open) .acc-chev-icon,
.footer-list.chev-animated:not(.footer-list--opened) .acc-chev-icon {
    animation: chev-rotate-close 0.5s ease-out forwards;
}

@keyframes chev-rotate-open {
  0%   { transform: rotate(0deg); }
  55%  { transform: rotate(192deg); }
  75%  { transform: rotate(176deg); }
  100% { transform: rotate(180deg); }
}
@keyframes chev-rotate-close {
  0%   { transform: rotate(180deg); }
  55%  { transform: rotate(-12deg); }
  75%  { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}

@media (prefers-reduced-motion: reduce) {
  .msc-accordion .acc-item.open .acc-chev-icon,
  .footer-list--opened .acc-chev-icon,
  .msc-accordion .acc-item.chev-animated:not(.open) .acc-chev-icon,
  .footer-list.chev-animated:not(.footer-list--opened) .acc-chev-icon {
    animation: none;
  }
  .msc-accordion .acc-item.open .acc-chev-icon,
  .footer-list--opened .acc-chev-icon {
    transform: rotate(180deg);
  }
  .msc-accordion .acc-item.chev-animated:not(.open) .acc-chev-icon,
  .footer-list.chev-animated:not(.footer-list--opened) .acc-chev-icon {
    transform: rotate(0deg);
  }
}

/* Footer chevron jen na mobilu – na desktopu žádný akordeon */
.footer-list-header--chev,
.footer-list-header--chev.acc-chev-toggle {
    display: none !important;
}

/* Panel obsahu */
.msc-accordion .acc-panel {
    padding: 0 0 14px 0;
    font-size: inherit;
    color: #374151;
}
.msc-accordion .acc-panel p {
    margin: 0 0 var(--text-mb);
}
.msc-accordion .acc-panel p:last-child {
    margin-bottom: 0;
}

@media (min-width: 981px) {
    .single-product #main-content > .container {
        padding-top: 0;
        margin-top: -50px;
    }

    /* Stejna horni linka obsahu jako u galerie na detailu produktu. */
    body.single-product #main-content {
        padding-top: 54px;
    }

    body:not(.single-product) #main-content {
        padding-top: 21px;
    }

    .et_right_sidebar #left-area {
        float: left;
        padding-right: 5.5%;
    }
    .single-product div.product {
        --msc-product-overhang: clamp(40px, 6vw, 120px);
    }
    .single-product .my-product-media {
        margin-top: -5px;
        margin-left: calc(-1 * var(--msc-product-overhang));
        width: calc(58% + (2 * var(--msc-product-overhang))) !important;
    }
    .woocommerce-product-gallery {
        width: 58%!important;
    }
    .single-product div.product .summary {
        margin-top: 25px;
        margin-right: calc(-1 * var(--msc-product-overhang));
        width: 38% !important;
    }
    .summary {
        width: 38%!important;
    }
}

.single .woocommerce-tabs, .single .related.products, #sidebar {
    display: none;
}

.msc-preview-under-gallery { margin-top: 12px; }
.msc-preview-image { width: 100%; height: auto; border-radius: 6px; display: block; }
.msc-preview-caption { margin-top: 6px; font-size: 0.8125rem; color: #6b7280; }

.woocommerce-product-gallery__wrapper > div {
    border-radius: 2rem;
    overflow: hidden;
}

/* mobile */
.et_mobile_device .msc-preview-under-gallery {
    display: none;
}

.single .woocommerce-message {
    display: none!important;
}

@media (min-width: 981px) {
    /* Desktop FAB: slot = šířka akordeonu; fixed se aplikuje na slot, ne na button */
    .single-product .product .summary form.cart {
        display: block;
        width: 100%;
        max-width: none;
        position: relative;
    }

    .single-product .product .summary form.cart .add-to-cart-fab-placeholder {
        width: 100%;
        height: 0;
        pointer-events: none;
    }

    .single-product .product .summary form.cart .add-to-cart-fab-slot {
        display: block;
        width: 100%;
        position: relative;
        z-index: 5;
    }

    .single-product .product .summary form.cart .add-to-cart-fab-slot.is-desktop-fixed {
        position: fixed;
        z-index: 100000;
        /* left / width / top|bottom / height nastavuje JS podle akordeonu */
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab {
        --base-color: #7717ff;
        --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
        --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
        --fab-size: 56px;

        position: relative;
        z-index: 5;
        float: none !important;

        /* margin-left:auto pořád — při width:100% je 0, při smrštění drží pravou hranu */
        width: 100% !important;
        max-width: none !important;
        height: var(--fab-size);
        min-height: var(--fab-size);
        max-height: var(--fab-size);
        margin: 0;
        margin-left: auto;

        background-color: var(--base-color);
        color: white;
        border: none;
        border-radius: 999px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        padding: 0 !important;
        font-weight: 700;
        font-size: var(--text-base);
        box-sizing: border-box;
        transition:
            width 0.3s ease-in-out,
            border-radius 0.3s ease-in-out,
            padding 0.3s ease-in-out;
    }

    /* Resize / geometrie: šířka bez animace (shrink/expand zůstává pro scroll pin). */
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-width-snap {
        transition:
            border-radius 0.3s ease-in-out,
            padding 0.3s ease-in-out;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-desktop-fixed {
        /* fixed je na slotu; button jen smršťuje šířku uvnitř */
        max-width: none !important;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-expanded {
        width: 100% !important;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-shrunk {
        /* jen width — bez max/min-width, jinak přepíná bez animace */
        width: var(--fab-size) !important;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab:hover {
        background-color: var(--hover-color);
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab:active {
        background-color: var(--active-color);
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .fab-content {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .fab-spinner,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .fab-success {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.2s ease, visibility 0.2s ease;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .fab-spinner .sb-loader-spinner {
        width: 48px;
        height: 48px;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .fab-success .sb-single-add-check {
        width: 24px;
        height: 24px;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-loading .fab-content,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.loading .fab-content,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-loading .fab-success,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.loading .fab-success,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-success .fab-content,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-success .fab-spinner {
        opacity: 0 !important;
        visibility: hidden !important;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-loading .fab-spinner,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.loading .fab-spinner,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-success .fab-success {
        opacity: 1;
        visibility: visible;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .text {
        position: absolute;
        inset: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
        transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out, transform 0.3s ease-in-out;
        pointer-events: none;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .icon {
        position: absolute;
        inset: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        opacity: 0;
        visibility: hidden;
        transform: scale(0.92);
        transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out, transform 0.3s ease-in-out;
        pointer-events: none;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab .icon .fab-icon-svg {
        display: block;
        width: 24px;
        height: 24px;
        flex-shrink: 0;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-loading .text,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.loading .text,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-loading .icon,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.loading .icon,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-success .text,
    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-success .icon {
        opacity: 0 !important;
        visibility: hidden !important;
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-shrunk:not(.is-loading):not(.loading):not(.is-success) .text {
        opacity: 0;
        visibility: hidden;
        transform: translateX(12px);
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-shrunk:not(.is-loading):not(.loading):not(.is-success) .icon {
        opacity: 1;
        visibility: visible;
        transform: scale(1);
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-expanded:not(.is-loading):not(.loading):not(.is-success) .text {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
    }

    .single-product .product .summary form.cart button[name="add-to-cart"].is-desktop-fab.is-expanded:not(.is-loading):not(.loading):not(.is-success) .icon {
        opacity: 0;
        visibility: hidden;
        transform: scale(0.92);
    }
}

.single-product .product .summary form.cart button[name="add-to-cart"] .sb-single-add-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    pointer-events: none;
}

.single-product .product .summary form.cart button[name="add-to-cart"] .sb-single-add-check svg {
    width: 24px;
    height: 24px;
}


/* Product detail */


/* Cart */
.woocommerce-mini-cart__empty-message,
.mini-cart-empty {
    font-size: var(--text-base);
    margin-bottom: 20px;
}
.woocommerce-cart .wc-block-product-new, .woocommerce-cart h2:not(.with-empty-cart-icon) {
    display: none;
}

/* Cart */


/* Forms */

.contact-form {
    width: 100%;
    max-width: min(100%, 560px);
    margin-top: 32px;
}
.form-group {
    position: relative;
    display: flex;
    flex-direction: column;
    margin-bottom: var(--form-row-gap);
    width: 100%;
    max-width: min(100%, 560px);
}

@keyframes form-row-pulse {
    50% { transform: scale(1.02); }
}

.form-group.is-form-row-pulsing {
    transform-origin: center center;
    animation: form-row-pulse 0.15s ease-in-out;
}
.form-label {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  background: #fff;
  font-size: var(--text-base);
  font-weight: 400;
  line-height: var(--text-lh);
  color: #bebebe;
  pointer-events: none;
  transition: top 0.25s ease, left 0.25s ease, transform 0.25s ease, font-size 0.25s ease, font-weight 0.25s ease, line-height 0.25s ease, color 0.25s ease;
  z-index: 9999;
}
.required-mark {
    /* color: red; */
    margin-left: 4px;
}
.form-input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 999px;
    padding: 8px 16px!important;
    height: var(--form-row-h);
    border: 1px solid var(--msc-line)!important;
    outline: none!important;
    font-size: var(--text-base);
    font-weight: 400;
    line-height: var(--text-lh);
    color: #000!important;
    background-color: transparent!important;
}

.form-input:hover:not(:focus) {
    border-color: var(--msc-line-hover) !important;
}

.form-group input:focus + label, 
.form-group input:not(:placeholder-shown) + label {
  top: -10px;
  left: 16px;
  padding: 0 4px;
  transform: translateY(0);
  font-size: 0.675rem;
  font-weight: 600;
  line-height: 18px;
}
.form-group input:focus,
.form-group select:focus {
    border-color: var(--msc-line-hover) !important;
}
.form-group input:focus + label,
.form-group select:focus + label {
    color: #8e8e8e !important;
}

/* Červená barva se aktivuje AŽ s třídou .touched (ne u fakturačního e-mailu) */
.form-input.touched:invalid:not(:focus):not(#billing-email) {
    border-color: #c5221f !important;
}

/* Kontaktní telefon: zakázané znaky → červený rámeček hned při psaní.
   Neúplné číslo po bluru řeší .touched:invalid:not(:focus) výše.
   Fakturační telefon (#billing-phone) se nemění. */
.form-input#contact-phone.is-phone-invalid,
.form-input#contact-phone.is-phone-invalid:focus {
    border-color: #c5221f !important;
}

.form-group:has(.form-input#contact-phone.is-phone-invalid) .form-label {
    color: #c5221f !important;
}

/* PSČ (doručovací adresa): zakázané znaky → červený rámeček hned při psaní.
   Neúplné PSČ po bluru řeší .touched:invalid:not(:focus) výše. */
.form-input#shipping-zip.is-postcode-invalid,
.form-input#shipping-zip.is-postcode-invalid:focus {
    border-color: #c5221f !important;
}

.form-group:has(.form-input#shipping-zip.is-postcode-invalid) .form-label {
    color: #c5221f !important;
}

/* E-mail: zakázané znaky / serverová chyba odběru → červený rámeček i při focusu.
   Neúplný e-mail po bluru řeší .touched:invalid:not(:focus) výše. */
.form-input[type="email"].is-email-invalid,
.form-input[type="email"].is-email-invalid:focus,
.form-input[type="email"].is-notify-error,
.form-input[type="email"].is-notify-error:focus {
    border-color: #c5221f !important;
}

.form-group:has(.form-input[type="email"].is-email-invalid) .form-label,
.form-group:has(.form-input[type="email"].is-notify-error) .form-label {
    color: #c5221f !important;
}

/* Volitelně: zčervená i label, pokud je pole pod ním 'touched' a 'invalid' */
.form-group:has(.form-input.touched:invalid:not(:focus):not(#billing-email)) .form-label {
    color: #c5221f !important;
}

.form-input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0px 1000px white inset !important;
}

.form-group.form-select label {
    top: -10px;
    left: 16px;
    padding: 0 4px;
    transform: translateY(0);
    font-size: 0.675rem;
    font-weight: 600;
    line-height: 18px;
}


/* Shipping popup form */

#mini-cart-popup .contact-form {
  margin-top: 0;
}
#mini-cart-popup .form-label {
  /* top: -10px; */
}

/* Shipping popup form */


.phone-wrap {
    position: relative;
}
/* 
.phone-wrap::after {
    content: "▾";
    position: absolute;
    left: 110px;                       
    top: 50%;
    transform: translate(-18px, -50%); 
    pointer-events: none;
    font-size: var(--text-base);
    color: #333;
}
     */
.phone-wrap .phone-country {
   position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    height: 32px;
    line-height: 32px;
    padding: 0 28px 0 12px;             /* pravý padding kvůli šipce */
    width: 110px;                        /* fixní šířka – snadno se s ní pracuje */
    border: 0;
    background: #fff;
    font-size: var(--text-base);
    border-radius: 0;
    border-right: 1px solid #dbdbdb!important;
    cursor: pointer;
    appearance: none;                    /* pro vlastní šipku (viz ::after) */
    -webkit-appearance: none;
    -moz-appearance: none;
}
.phone-wrap .phone-input {
    width: 100%;
    height: var(--form-row-h);
    border: 1px solid #dbdbdb!important;
    border-radius: 24px;
    padding: 8px 16px !important; /* prostor vlevo pro select */
    font-size: var(--text-base);
    outline: none;
}
#msc-billing-toggle {
    margin-bottom: 16px;
}

#msc-billing-extra:not(.is-hidden) {
    margin-bottom: 56px;
}

#msc-billing-extra:not(.is-hidden) .form-group:last-child {
    margin-bottom: 0;
}

#msc-order-note-extra:not(.is-hidden) {
    margin-top: 16px;
}

.form-input.form-input--textarea {
    height: 144px;
    min-height: 144px;
    border-radius: 24px !important;
    padding: 16px !important;
    resize: vertical;
    line-height: var(--text-lh);
}

.form-group.form-group--textarea .form-label {
    top: 16px;
    transform: none;
}

.form-group.form-group--textarea textarea.form-input:focus + .form-label,
.form-group.form-group--textarea textarea.form-input:not(:placeholder-shown) + .form-label {
    top: -10px;
    left: 16px;
    padding: 0 4px;
    transform: translateY(0);
    font-size: 0.675rem;
    font-weight: 600;
    line-height: 18px;
}

.form-group.form-group--textarea textarea.form-input:focus + .form-label {
    color: #8e8e8e !important;
}
.form-group.form-select > select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: var(--form-row-h) !important;
}
.form-group.form-select .form-select-chevron {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    pointer-events: none;
    color: #333;
}
.selected-delivery {
    border-color: var(--msc-accent);
    box-shadow: 0 0 0 1px var(--msc-accent) inset;
}
/* Forms */


/* Page - Thankyou */
/* Divi header section (page 302) uses #00aa00 — override to brand green. */
body.page-checkout-thank-you #main-content .et_builder_inner_content > .et_pb_section:first-child,
body.page-checkout-thank-you .et_pb_section_0.et_pb_section {
    background-color: #137333 !important;
}
.page-thankyou-header {
    color: #fff;
}
.page-thankyou-header h1 {
    font-size: calc(var(--text-base) * 2);
    font-weight: 700;
    line-height: var(--heading-lh);
    margin-bottom: var(--text-mb);
    color: #fff;
}
.page-thankyou-header .page-thankyou-content {
    font-size: var(--text-base);
}
.page-thankyou-header .page-thankyou-content div {
    margin: var(--text-mb) 0;
}
.msc-thankyou-content {
    margin-bottom: 40px;
    font-size: var(--text-base);
}
.msc-thankyou-content h2 {
    font-family: 'Open Sans', sans-serif;
    font-size: calc(var(--text-base) * 1.5);
    font-weight: 600;
    line-height: var(--heading-lh);
    margin-bottom: var(--text-mb);
}
.msc-thankyou-payment-body {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 96px;
}
.msc-thankyou-items {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: fit-content;
    max-width: 100%;
    flex: 0 1 auto;
    min-width: 0;
}
.msc-thankyou-item {
    display: flex;
    align-items: flex-start;
    position: relative;
    gap: 24px;
    padding-right: calc(var(--eshop-btn-lg) + 24px);
}
.page-thankyou-item--info {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}
.page-thankyou-item--info span:last-child {
    font-weight: 700;
}
.msc-thankyou-qr {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex: 0 0 auto;
    gap: 8px;
}
.msc-thankyou-qr-label {
    display: block;
    text-align: left;
    margin: 0;
    line-height: inherit;
}
.msc-thankyou-qrcode {
    line-height: 0;
}
.msc-thankyou-qrcode img {
    display: block;
    width: 152px;
    height: 152px;
    max-width: 100%;
}
.msc-thankyou-item .thankyou-copy-btn {
    --base-color: #fafafa;
    --hover-color: color-mix(in srgb, var(--base-color) 95%, #000 5%);
    --active-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
    color: #000;
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: calc(var(--eshop-btn-lg) / -2);
    flex: 0 0 auto;
    touch-action: manipulation;
}
.msc-thankyou-item .thankyou-copy-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.msc-thankyou-item .thankyou-copy-btn-icon svg {
    width: 24px;
    height: 24px;
}
.msc-thankyou-item .thankyou-copy-btn-icon--copy svg path {
    fill: currentColor;
}
.msc-thankyou-item .thankyou-copy-btn-icon--check {
    display: none;
}
.msc-thankyou-item .thankyou-copy-btn.sb-thankyou-check {
    pointer-events: none;
}
.msc-thankyou-item .thankyou-copy-btn.sb-thankyou-check .thankyou-copy-btn-icon--copy {
    display: none;
}
.msc-thankyou-item .thankyou-copy-btn.sb-thankyou-check .thankyou-copy-btn-icon--check {
    display: flex;
}

/* Po kopírování: žádný hover po celou dobu fajfky (sticky :hover z tapu) */
.msc-thankyou-item .thankyou-copy-btn.eshop-button.sb-thankyou-check,
.msc-thankyou-item .thankyou-copy-btn.eshop-button.sb-thankyou-check:hover,
.msc-thankyou-item .thankyou-copy-btn.eshop-button.sb-thankyou-check:active {
    background-color: var(--base-color) !important;
}

/* Dotyk: sticky :hover u thank-you „kopírovat“ (stejný princip jako menu-bar) */
@media (pointer: coarse) {
    .msc-thankyou-item .thankyou-copy-btn.eshop-button:hover:not(:active):not(.is-animating):not(.sb-thankyou-check),
    .msc-thankyou-item .thankyou-copy-btn.eshop-button.sb-thankyou-copy-touch-reset,
    .msc-thankyou-item .thankyou-copy-btn.eshop-button.sb-thankyou-copy-touch-reset:hover {
        background-color: var(--base-color) !important;
    }
}

@media (max-width: 980px) {
    .msc-thankyou-payment-body {
        flex-direction: column;
        gap: 24px;
    }
    .msc-thankyou-qr {
        order: -1;
        align-items: flex-start;
    }
}


/* Page - Thankyou */



/* Footer */
.main-footer {
    padding-top: 20px!important;
    font-size: var(--text-base);
    line-height: var(--text-lh);
}

.main-footer .notify-form-row .form-label {
    background: #fafafa;
}

.main-footer .notify-form-row .form-input:-webkit-autofill,
.main-footer .notify-form-row .form-input:-webkit-autofill:hover,
.main-footer .notify-form-row .form-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #fafafa inset !important;
    -webkit-text-fill-color: #000 !important;
}

.main-footer .notify-form-row .form-input:autofill {
    box-shadow: 0 0 0 1000px #fafafa inset !important;
}
.main-footer * {
    font-size: inherit;
}
.main-footer strong,
.main-footer b,
.main-footer h1,
.main-footer h2,
.main-footer h3,
.main-footer h4,
.main-footer h5,
.main-footer h6,
.main-footer .footer-list-header,
.main-footer .et_pb_module_header {
    font-size: var(--text-base)!important;
    font-weight: 700;
}
.main-footer .footer-list-header h5 {
    padding-bottom: 0;
    margin-bottom: 0;
    line-height: 26px;
}
.main-footer .footer-list ul,
.main-footer .footer-list ul li,
.main-footer .footer-list ul li a {
    line-height: var(--text-lh);
}
.footer-list ul {
    list-style: none;
    padding: 5px 0 0;
    margin: 0;
}
.footer-list ul li + li {
    margin-top: 9px;
}
.footer-list ul li a {
    color: #000;
    text-decoration: none;
}
.footer-list ul li a:hover {
    text-decoration: underline;
}
.email a, .phone a, .main-footer .phone .footer-quick-contact {
    color: #000!important;
    font-weight: 700;
    text-decoration: none;
    margin-bottom: 5px;
    font-size: var(--text-base);
}
.main-footer .phone p {
    margin: 0;
    padding-bottom: 0;
    line-height: 26px;
}
.main-footer .phone a,
.main-footer .phone .footer-quick-contact {
    margin-bottom: 0;
    display: block;
    line-height: 26px;
}
.footer-socials {
    padding: 6px 0 10px!important;
}
.main-footer .footer-socials {
    margin: 2px 0 0 !important;
    padding: 0 0 10px !important;
}
.main-footer .footer-socials li {
    margin-bottom: 0;
}
.main-footer .footer-socials li:nth-child(2),
.main-footer .et_pb_social_media_follow li:nth-child(2) {
    margin-left: 10px;
}
.main-footer .et_pb_social_media_follow li a.icon {
    --base-color: #000;
    --hover-color: color-mix(in srgb, var(--base-color) 95%, #fff 5%);
    --active-color: color-mix(in srgb, var(--base-color) 90%, #fff 10%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--base-color);
    background: none !important;
    transition: color 0.1s ease;
    opacity: 1 !important;
}
.main-footer .et_pb_social_media_follow li a.icon:hover {
    color: var(--hover-color);
    opacity: 1 !important;
}
.main-footer .et_pb_social_media_follow li a.icon:active {
    color: var(--active-color);
}
.main-footer .et_pb_social_media_follow li a.icon.is-animating {
    animation: pulse-width 0.15s ease-in-out;
}
.main-footer .et_pb_social_media_follow li a.icon.is-animating svg {
    transform-origin: center bottom;
    animation: pulse-svg 0.15s ease-in-out;
}
.main-footer .et_pb_social_media_follow li a.icon:before {
    display: none !important;
}
.main-footer .et_pb_social_media_follow li a.icon svg {
    display: block;
    width: 24px;
    height: 24px;
}
.copyright div {
    font-size: 0.675rem;
    font-weight: 600;
}


/* cart counter */
.menu-basket > a.eshop-button,
.menu-basket > a.menu-bar-eshop-button {
    display: inline-flex !important;
    position: relative !important;
    padding: 0 !important;
    transition: none !important;
    -webkit-transition: none !important;
    overflow: visible !important;
}

/* Badge – mimo <a>, skrytí přes visibility (ne display) kvůli Safari flex reflow */
.menu-basket > .menu-cart-count {
    position: absolute;
    left: calc(var(--eshop-btn-lg) / 2 + 2px);
    top: calc(var(--eshop-btn-lg) / 2 + 2px);

    min-width: 22px;
    width: 22px;
    height: 22px;
    padding: 0;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;

    border-radius: 999px;

    font-size: var(--text-base) !important;
    font-family: 'Open Sans', sans-serif;
    font-weight: 700;
    line-height: 0 !important;
    color: #fff !important;
    text-indent: 0 !important;
    letter-spacing: 0 !important;

    background: #7717FF;

    z-index: 2;
}

.menu-basket > .menu-cart-count.is-visible {
    visibility: visible;
    opacity: 1;
    pointer-events: inherit;
    cursor: pointer;
}

.menu-basket > .menu-cart-count.oversized {
    min-width: 28px;
    width: 28px;
    height: 22px;
    padding: 0;
}

/* cart counter */

/* Image popup */

/* HLAVNÍ OBAL CAROUSELU */
.msc-carousel {
    display: flex;
    flex-direction: column; /* Track nahoře, scrollbar dole */
    height: 80vh; 
    width: 100%;
    position: relative;
    overflow: visible; /* Důležité, aby neblokoval vnitřní scrollování */
    margin: 10px 0;
}

/* TRACK S OBRÁZKY – plynulá páska bez snapu (jako continuous scroll) */
.msc-carousel-track {
    display: flex;
    flex-direction: row;
    flex: 1; /* Vyplní dostupnou výšku */
    overflow-x: auto; /* Povolí scrollování do stran */
    overflow-y: hidden;
    scroll-snap-type: none;
    -webkit-overflow-scrolling: touch; /* Plynulost na iOS */
    gap: 8px;
    padding: 0 40px; /* Mezera na začátku a konci pásu */
    align-items: center;
}

/* Skrytí ošklivého systémového scrollbaru */
.msc-carousel-track::-webkit-scrollbar {
    display: none;
}

/* JEDNOTLIVÉ SLIDY */
.msc-slide {
    flex: 0 0 auto; /* Slide se nesmí smrštit, šířka dle obsahu */
    height: 100%;   /* Využije výšku tracku */
    display: flex;
    align-items: center;
}

.msc-slide img {
    height: 90%;    /* Necháme 10% rezervu pro stíny */
    width: auto;    /* Šířka se dopočítá podle poměru stran */
    max-width: none;
    object-fit: contain;
    border-radius: 32px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    pointer-events: none; /* Zabrání nechtěnému přetahování obrázku místo scrollu */
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Pinch-to-zoom: izolovaná fotka v popředí */
.msc-slide.is-zooming {
    position: relative;
    z-index: 100;
}

.msc-slide.is-zooming img {
    position: relative;
    z-index: 1;
    border-radius: 0;
    box-shadow: none;
}

.msc-carousel.is-pinch-zooming {
    overflow: visible;
    z-index: 30;
}

.msc-carousel.is-pinch-zooming .msc-carousel-track {
    overflow-x: hidden !important;
    overflow-y: visible;
    touch-action: none;
    -webkit-overflow-scrolling: auto;
}

.msc-carousel.is-pinch-zooming .msc-carousel-scrollbar {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

#mini-cart-popup.is-gallery-zooming .mini-cart-close {
    opacity: 0 !important;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

#mini-cart-popup.is-gallery-zooming .mini-cart-inner.instance-5.mci-active {
    overflow: visible;
}

/* TRACKER (ŠEDÁ LINKA) – jen indikátor, neovládá scroll; mimo zoomovanou vrstvu */
.msc-carousel-scrollbar {
    flex: 0 0 2px;
    width: 60%;
    background: #e0e0e0;
    margin: 20px auto;
    position: relative;
    z-index: 5;
    pointer-events: none;
}

/* BĚŽEC (ČERNÝ JEZDEC) */
.msc-scrollbar-drag {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 30% !important;
    background: #000;
    will-change: transform;
    pointer-events: none;
}
/* image popup */




@media (max-width: 980px) {
    /*
     * Společný start obsahu pod menu (≤980px), podle Divi architektury:
     * - Classic/Woo: má #main-content > .container (Builder page.php ho nevyrenderuje)
     * - Builder: inset na první section, gap na první row
     * Celkem vždy inset + gap; mění se jen --mobile-content-* tokeny.
     */
    body #main-content > .container {
        padding-top: calc(var(--mobile-content-inset-top) + var(--mobile-content-top-gap)) !important;
        width: calc(100% - (var(--mobile-edge-gap) * 2)) !important;
        max-width: calc(100% - (var(--mobile-edge-gap) * 2)) !important;
    }

    #main-content .et_builder_inner_content > .et_pb_section:first-child {
        padding-top: var(--mobile-content-inset-top) !important;
    }

    #main-content .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:first-child {
        padding-top: var(--mobile-content-top-gap) !important;
    }

    .container,
    .et_pb_row {
        width: calc(100% - (var(--mobile-edge-gap) * 2)) !important;
        max-width: calc(100% - (var(--mobile-edge-gap) * 2)) !important;
    }

    #main-header .container.et_menu_container {
        width: calc(100% - (var(--mobile-edge-gap) * 2)) !important;
        max-width: calc(100% - (var(--mobile-edge-gap) * 2)) !important;
    }

    body:not(.single-product) #main-content {
        padding-top: 0;
        padding-bottom: 0;
    }
}

/* Jednorázové zazvonění ikony galerie (mobil) — keyframes sdílené */
@keyframes gallery-icon-bell-ring {
    /* 1) První zvonění: 0–30% (~0–1.2s), s dotlumením 25–30% */
    0%   { transform: rotate(0deg); }
    3%   { transform: rotate(12deg); }
    6%   { transform: rotate(-12deg); }
    9%   { transform: rotate(12deg); }
    12%  { transform: rotate(-12deg); }
    15%  { transform: rotate(12deg); }
    18%  { transform: rotate(-12deg); }
    21%  { transform: rotate(12deg); }
    24%  { transform: rotate(-12deg); }
    26%  { transform: rotate(6deg); }
    28%  { transform: rotate(-2deg); }
    30%  { transform: rotate(0deg); }

    /* 2) Pauza: 30–50% (~1.2–2s) */
    50%  { transform: rotate(0deg); }

    /* 3) Druhé zvonění: 50–80% (~2–3.2s), s dotlumením 75–80% */
    53%  { transform: rotate(12deg); }
    56%  { transform: rotate(-12deg); }
    59%  { transform: rotate(12deg); }
    62%  { transform: rotate(-12deg); }
    65%  { transform: rotate(12deg); }
    68%  { transform: rotate(-12deg); }
    71%  { transform: rotate(12deg); }
    74%  { transform: rotate(-12deg); }
    76%  { transform: rotate(5deg); }
    78%  { transform: rotate(-1.5deg); }
    80%  { transform: rotate(0deg); }

    /* 4) Klid: 80–100% (~3.2–4s) */
    100% { transform: rotate(0deg); }
}

@media (max-width: 980px) {
    .msc-single-mobile--gallery {
        display: grid;
    }

    /* Jednorázové zazvonění ikony galerie po načtení (0.5s delay, 4s ring) */
    .msc-single-mobile--gallery .msc-icon-box {
        transform-origin: bottom center;
        animation: gallery-icon-bell-ring 4s linear 0.5s 1 forwards;
    }

    .my-product-media {
        display: none;
    }
    .single-product div.product .summary,
    .single-product .summary {
        float: none;
        width: 100% !important;
        max-width: none;
        margin-right: 0;
    }
    .single-product .msc-info .msc-delivery {
        max-width: none;
    }
    .product-specs tr {
        display: flex;
    }
    .product-specs th, .product-specs td {
        width: 50%;
    }

    /* footer */
    .main-footer {
        padding-top: 10px!important;
    }
    .et_pb_column_1_4 {
        margin-bottom: 0!important;
        margin-right: 0;
    }
    .footer-list {
        padding-bottom: 0;
        margin-bottom: 0 !important;
        border-top: 1px solid #dbdbdb;
        border-bottom: none;
    }
    .main-footer .et_pb_column_1_4.et-last-child .footer-list {
        border-bottom: 1px solid #dbdbdb;
    }
    .footer-list--opened {
        padding-bottom: 10px;
    }
    .footer-list-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        cursor: pointer;
        min-height: var(--action-row-h);
    }
    .footer-list-header--chev.acc-chev-toggle {
        display: inline-flex !important;
        pointer-events: none;
    }
    .footer-list ul {
        display: none;
    }
    .footer-list--opened ul {
        display: block;
    }
    /* footer */


    /* single addToCart – FAB: full-width ↔ kruh 56px, safe-area (pouze mobil) */
    body.single-product #main-content {
        padding-bottom: 24px;
    }

        .single-product .product .summary form.cart button[name="add-to-cart"] {
            --base-color: #7717ff;
            --hover-color: color-mix(in srgb, var(--base-color) 90%, #000 10%);
            --active-color: color-mix(in srgb, var(--base-color) 80%, #000 20%);
            --fab-edge: var(--mobile-edge-gap, 16px);
            --fab-full-w: calc(100% - (var(--fab-edge) * 2));
            --fab-size: 56px;
            --fab-bottom: calc(4px + env(safe-area-inset-bottom, 0px));

            position: fixed;
            bottom: var(--fab-bottom);
            right: var(--fab-edge);
            left: auto;
            z-index: 100000;

            width: var(--fab-full-w);
            height: var(--fab-size);
            min-height: var(--fab-size);
            max-height: var(--fab-size);

            background-color: var(--base-color);
            color: white;
            border: none;
            border-radius: 999px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            padding: 0 !important;
            font-weight: 700;
            font-size: var(--text-base);
            box-sizing: border-box;
            transition:
                width 0.3s ease-in-out,
                border-radius 0.3s ease-in-out,
                padding 0.3s ease-in-out;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"]:hover {
            background-color: var(--hover-color);
        }

        .single-product .product .summary form.cart button[name="add-to-cart"]:active {
            background-color: var(--active-color);
        }

        /* FAB layers: default / spinner / success */
        .single-product .product .summary form.cart button[name="add-to-cart"] .fab-content {
            position: absolute;
            inset: 0;
            display: block;
            width: 100%;
            height: 100%;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"] .fab-spinner,
        .single-product .product .summary form.cart button[name="add-to-cart"] .fab-success {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: opacity 0.2s ease, visibility 0.2s ease;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"] .fab-spinner .sb-loader-spinner {
            width: 48px;
            height: 48px;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"] .fab-success .sb-single-add-check {
            width: 24px;
            height: 24px;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"].is-loading .fab-content,
        .single-product .product .summary form.cart button[name="add-to-cart"].loading .fab-content,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-loading .fab-success,
        .single-product .product .summary form.cart button[name="add-to-cart"].loading .fab-success,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-success .fab-content,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-success .fab-spinner {
            opacity: 0 !important;
            visibility: hidden !important;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"].is-loading .fab-spinner,
        .single-product .product .summary form.cart button[name="add-to-cart"].loading .fab-spinner,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-success .fab-success {
            opacity: 1;
            visibility: visible;
        }

        /* TEXT – mimo tok, ořez při smršťování */
        .single-product .product .summary form.cart button[name="add-to-cart"] .text { 
            position: absolute;
            inset: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            opacity: 1;
            visibility: visible;
            transform: translateX(0);
            transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out, transform 0.3s ease-in-out;
            pointer-events: none;
        }

        /* IKONA – skrytá ve výchozím / rozbaleném stavu */
        .single-product .product .summary form.cart button[name="add-to-cart"] .icon { 
            position: absolute;
            inset: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 0;
            visibility: hidden;
            transform: scale(0.92);
            transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out, transform 0.3s ease-in-out;
            pointer-events: none;
         }

        .single-product .product .summary form.cart button[name="add-to-cart"] .icon .fab-icon-svg {
            display: block;
            width: 24px;
            height: 24px;
            flex-shrink: 0;
        }

        /* Loading / success: skryj text i plusko uvnitř default vrstvy */
        .single-product .product .summary form.cart button[name="add-to-cart"].is-loading .text,
        .single-product .product .summary form.cart button[name="add-to-cart"].loading .text,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-loading .icon,
        .single-product .product .summary form.cart button[name="add-to-cart"].loading .icon,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-success .text,
        .single-product .product .summary form.cart button[name="add-to-cart"].is-success .icon {
            opacity: 0 !important;
            visibility: hidden !important;
        }

        /* Scroll dolů → kruh 56×56 (jen width – žádné max-width: none) */
        .single-product .product .summary form.cart button[name="add-to-cart"].is-shrunk {
            width: var(--fab-size);
            padding-left: 0 !important;
            padding-right: 0 !important;
        }

        .single-product .product .summary form.cart button[name="add-to-cart"].is-shrunk:not(.is-loading):not(.loading):not(.is-success) .text {
            opacity: 0;
            visibility: hidden;
            transform: translateX(12px);
        }

        .single-product .product .summary form.cart button[name="add-to-cart"].is-shrunk:not(.is-loading):not(.loading):not(.is-success) .icon {
            opacity: 1;
            visibility: visible;
            transform: scale(1);
        }

        /* Scroll nahoru / vrchol stránky → plná šířka, jen text */
        .single-product .product .summary form.cart button[name="add-to-cart"].is-expanded:not(.is-loading):not(.loading):not(.is-success) .text {
            opacity: 1;
            visibility: visible;
            transform: translateX(0);
        }

        .single-product .product .summary form.cart button[name="add-to-cart"].is-expanded:not(.is-loading):not(.loading):not(.is-success) .icon {
            opacity: 0;
            visibility: hidden;
            transform: scale(0.92);
        }

        .single-product .product .summary form.cart button[name="add-to-cart"].is-expanded {
            width: var(--fab-full-w);
        }

    /* single addToCart */
}
