/*
  Refactored stylesheet for child theme overrides
  Structure: layout | modules | components | utilities | states
  All comments are in English. Keep selectors intentionally low-specificity where safe.
*/

/* ------------------------------
   LAYOUT
   Global layout adjustments
   ------------------------------ */
html,
body {
    min-height: 100%;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

#page {
    min-height: 100vh;
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
}

#wrapper {
    flex: 1 0 auto;
}

#footer {
    margin-top: auto;
}

body #footer .footer-menu p.h4 {
    position: relative;
}

body #footer .footer-menu p.h4:after {
    position: absolute;
    content: " ";
    display: block;
    top: 25px;
    left: 0;
    width: 60%;
    background: #d97706;
    height: 5px;
    border: none;
}

.product-list .grid .product-miniature .product-name {
    height: 56px;
}

.product-list .grid .product-miniature .product-description-short {
    height: 60px;
}

.product-name-ellipsis a {
    display: -webkit-box;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.4rem;
    max-height: 2.8rem;
    white-space: normal;
}

#header {
    background:
            radial-gradient(1200px 220px at 12% 0%, rgba(217, 119, 6, 0.07), transparent 58%),
            radial-gradient(900px 180px at 88% 6%, rgba(45, 90, 71, 0.06), transparent 60%),
            linear-gradient(
                    180deg,
                    #f7f3ee 0%,
                    #fbfaf8 18%,
                    #ffffff 52%,
                    #ffffff 100%
            );
}

#header .header-nav {
    background: linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.34) 0%,
            rgba(255, 255, 255, 0.12) 100%
    );
}

#header .main-header {
    background: linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.18) 0%,
            rgba(255, 255, 255, 0.78) 55%,
            rgba(255, 255, 255, 0.96) 100%
    );
}
#header .language-selector .dropdown-current,
#header .currency-selector .dropdown-current {
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(45, 90, 71, 0.14);
    border-radius: 5px;
    box-shadow: 0 4px 14px rgba(28, 28, 28, 0.04);
    color: #2f342f;
    min-height: 36px;
    padding: 7px 14px;
    transition:
            background-color 0.22s ease,
            border-color 0.22s ease,
            box-shadow 0.22s ease,
            color 0.22s ease;
}

#header .language-selector .dropdown-current:hover,
#header .currency-selector .dropdown-current:hover,
#header .language-selector.show .dropdown-current,
#header .currency-selector.show .dropdown-current {
    background: rgba(255, 255, 255, 0.94);
    border-color: rgba(217, 119, 6, 0.22);
    box-shadow: 0 8px 20px rgba(28, 56, 44, 0.08);
    color: #1c1c1c;
}

#header .language-selector .dropdown-menu,
#header .currency-selector .dropdown-menu {
    background: #ffffff;
    border: 1px solid rgba(45, 90, 71, 0.10);
    border-radius: 5px;
    box-shadow: 0 16px 34px rgba(28, 56, 44, 0.12);
    margin-top: 8px;
    overflow: hidden;
}

#header .language-selector .dropdown-item,
#header .currency-selector .dropdown-item {
    padding: 9px 14px;
    transition: background-color 0.18s ease, color 0.18s ease;
}

#header .language-selector .dropdown-item:hover,
#header .currency-selector .dropdown-item:hover {
    background: #f4f7f5;
    color: #1c382c;
}

#header .language-selector .current .dropdown-item,
#header .currency-selector .current .dropdown-item {
    background: #edf2f1;
    color: #1c382c;
    font-weight: 600;
}

#footer .footer_services {
    margin-bottom: 0;
    border-bottom: none;
}
#footer .copyright-payment .text-lg-start {
    display: flex;
    align-items: flex-end;
}
#footer .copyright-payment .copyright {
    margin-left: 20px;
}
#js-product-list-header .page-heading {
    display: none;
}
.cart-preview .cart-bottom .cart-count {
    padding: 5px;
    text-align: center;
}

/* ------------------------------
   LAYOUT
   Global layout adjustments
   ------------------------------ */
/* =========================
   ZÁKLAD BUTTONU
========================= */

:is(.btn):not(.slick-arrow) {
    position: relative;
    display: inline-block;
    overflow: hidden;
    z-index: 1;

    /* hlavní barva buttonu */
    --btn-bg: #303c4e;

    /* fallback overlay barvy */
    --btn-light: rgba(255,255,255,0.15);
    --btn-dark: rgba(0,0,0,0.2);

    transition:
            color 0.2s ease,
            text-shadow 0.25s ease;
}


/* =========================
   AUTO BARVY (moderní)
========================= */

@supports (color: color-mix(in srgb, black, white)) {
    :is(.btn):not(.slick-arrow) {
        --btn-light: color-mix(in srgb, var(--btn-bg) 75%, white);
        --btn-dark: color-mix(in srgb, var(--btn-bg) 65%, black);
    }
}


/* =========================
   OVERLAY LAYERS
========================= */

:is(.btn):not(.slick-arrow)::before,
:is(.btn):not(.slick-arrow)::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    transition: transform 0.45s cubic-bezier(.65,.05,.36,1);
}

/* světlejší zleva nahoře */
:is(.btn):not(.slick-arrow)::before {
    background: var(--btn-light);
    transform: translate(-100%, -100%);
}

/* tmavší zprava dole */
:is(.btn):not(.slick-arrow)::after {
    background: var(--btn-dark);
    transform: translate(100%, 100%);
}


/* =========================
   HOVER ANIMACE
========================= */

:is(.btn):not(.slick-arrow):hover::before {
    transform: translate(0, 0);
}

:is(.btn):not(.slick-arrow):hover::after {
    transform: translate(0, 0);
}

/* text */
:is(.btn):not(.slick-arrow):hover,
:is(.btn):not(.slick-arrow):hover i {
    color: #fff !important;

    /* fake bold */
    text-shadow:
            0.4px 0 currentColor,
            -0.4px 0 currentColor;
}


/* =========================
   BUTTON COLORS
========================= */

.btn-primary {
    --btn-bg: #5a9e74;
    background-color: var(--btn-bg);
    border-color: var(--btn-bg);
    color: #fff;
}

.btn-secondary {
    --btn-bg: #6c757d;
    background-color: var(--btn-bg);
    border-color: var(--btn-bg);
    color: #fff;
}

.btn-dark {
    --btn-bg: #303c4e;
    background-color: var(--btn-bg);
    border-color: var(--btn-bg);
    color: #fff;
}

/* ------------------------------
   MODULES: Core product modal (product page)
   ------------------------------ */
#product-modal .modal-content {
    padding: 0;
    background: transparent;
    border: 0;
}

#product-modal .modal-content .modal-body {
    display: flex;
    margin-left: -35%;
}

#product-modal .modal-content .modal-body .product-cover-modal,
.product-cover img {
    background: #fff;
}

#product-modal .modal-content .modal-body .image-caption {
    width: 100%;
    padding: 0.625rem 1.25rem;
    background: #fff;
    border-top: 1px solid #f6f6f6;
}

#product-modal .modal-content .modal-body .image-caption .page-content.page-cms ul,
#product-modal .modal-content .modal-body .image-caption p,
.page-content.page-cms #product-modal .modal-content .modal-body .image-caption ul {
    margin-bottom: 0;
}

#product-modal .modal-content .modal-body .thumbnails {
    position: relative;
}

#product-modal .modal-content .modal-body .mask {
    position: relative;
    z-index: 1;
    max-height: 49.38rem;
    margin-top: 2.188rem;
    overflow: hidden;
}

#product-modal .modal-content .modal-body .mask.nomargin {
    margin-top: 0;
}

#product-modal .modal-content .modal-body .product-images img {
    width: 9.25rem;
    cursor: pointer;
    background: #fff;
}

#product-modal .product-images > li.thumb-container .thumb {
    margin-bottom: .625rem;
    cursor: pointer;
}

#product-modal .modal-content .modal-body .product-images img:hover {
    border: 3px solid #24b9d7;
}

#product-modal .modal-content .modal-body .arrows {
    position: absolute;
    top: 0;
    right: 1.875rem;
    z-index: 0;
    width: 100%;
    height: 100%;
    color: #fff;
    text-align: center;
    cursor: pointer;
}

#product-modal figure {
    margin: 0 0 1rem;
    max-width: fit-content;
    padding: 0;
}

#product-modal .thumbnails {
    max-width: fit-content;
    padding: 0;
}

#product-modal .modal-content .modal-body .arrows .arrow-up {
    position: absolute;
    top: -2rem;
    opacity: 0.2;
}

#product-modal .modal-content .modal-body .arrows .arrow-down {
    position: absolute;
    bottom: -2rem;
}

#product-modal .modal-content .modal-body .arrows i {
    display: inline;
    font-size: 6.25rem;
}

#product-modal .product-images > li.thumb-container {
    display: inline;
}

@media (max-width: 991px) {
    #product-modal .modal-content .modal-body {
        flex-direction: column;
        margin-left: 0;
    }

    #product-modal .modal-content .modal-body .product-cover-modal {
        max-width: 100%;
        height: auto;
    }

    #product-modal .modal-content .modal-body .arrows {
        display: none;
    }

    #product-modal .modal-content .modal-body .image-caption {
        width: 100%;
    }
}

/* ------------------------------
   MODULES: ps_shoppingcart (hover dropdown)
   ------------------------------ */
.cart-preview .cart-dropdown {
    display: block !important;
}

.cart-page-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 460px;
    padding: 4rem 2rem;
    text-align: center;
    background:
        radial-gradient(circle at top, rgba(217, 119, 6, 0.08), transparent 42%),
        linear-gradient(180deg, #ffffff 0%, #f8f8f8 100%);
    border-radius: 18px;
}

.cart-grid--empty .cart-grid-body--empty {
    max-width: 100%;
    flex: 0 0 100%;
}

.cart-page-empty-state__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 320px);
    margin-bottom: 1.5rem;
}

.cart-page-empty-state__icon img {
    width: 100%;
    height: auto;
    display: block;
}

.cart-page-empty-state__eyebrow {
    margin-bottom: 0.75rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #d97706;
}

.cart-page-empty-state__title {
    margin-bottom: 0.75rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    line-height: 1.05;
    color: #1c1c1c;
}

.cart-page-empty-state__text {
    max-width: 32rem;
    margin: 0 auto;
    font-size: 1rem;
    line-height: 1.7;
    color: #4a4a4a;
}

.cart-continue-shopping--empty {
    margin-top: -1rem;
}

.cart-continue-shopping--empty .btn {
    min-width: 240px;
    border-radius: 999px;
    padding: 0.95rem 1.75rem;
}

/* ------------------------------
   THEME: ZOneTheme homepage spacing (slideshow/homepage blocks)
   ------------------------------ */
.group_slider_banner {
    width: 100%;
    margin-top: 0;
    position: relative;
}

.group_slider_banner .aone-slideshow,
.group_slider_banner .aone-homepage {
    display: flex;
    margin-top: 0;
    margin-bottom: 35px;
}

.group_slider_banner .aone-homepage .block {
    display: flex;
}

.group_slider_banner .aone-homepage .block .static-html {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    align-content: space-between;
}

@media (max-width: 768px) {
    .group_slider_banner .banner-1 {
        margin-bottom: 35px;
    }
}

/* ------------------------------
   MODULES: zonehomeblocks (static HTML home banners)
   ------------------------------ */
.home-banners-products .static-html {
    width: 100%;
    margin-top: 0;
    position: relative;
}

.home-banners-products .home-banner-product {
    width: 100%;
    background: #d97706;
    display: flex;
    min-height: 200px;
    align-items: stretch;
    margin-bottom: 30px;
}

.home-banners-products .home-banner-product a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: stretch;
}

.home-banners-products .home-banner-product-desc {
    padding: 25px;
    width: 65%;
}

.home-banners-products .block_content h4 {
    width: 100%;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.home-banners-products .home-banner-img {
    width: 35%;
    display: flex;
    display: -webkit-flex;
    position: relative;
    background-position: center;
    background-repeat: no-repeat;
}

.product-list .grid .product-miniature .product-name {
    background-color: rgba(45, 90, 71, 0.6);
}

/* ------------------------------
   MODULES: ybc_blog (blog messages)
   ------------------------------ */
.page_home, .page_home_gallery {
    background-color: unset;
    margin-bottom: 0;
    padding: 0;
}

.page_home .blog_type_slider {
    padding: 0;
}

.page_home .ybc_item_img {
    background-color: unset;
}

.ybc_blog_content_block.blog_type_slider {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% + 30px);
    margin-left: -15px;
}

/* ------------------------------
   THEME: Global container sizing
   ------------------------------ */
@media (max-width: 576px) {
    .container, .container-sm {
        max-width: 100%;
    }
}


/* ------------------------------
   THEME: Responsive widget layout
   ------------------------------ */
@media (max-width: 767px) {
    .widget_right {
        width: 100%;
        display: flex;
        display: -webkit-flex;
        margin-left: 0;
        padding-right: 0;
        padding-left: 0;
    }
}
@media (max-width: 992px) {
    .copyright-payment .text-lg-end {
        text-align: right;
    }
}
