/* ==========================================================================
   AECS Product Page Styles
   Gallery, variations grid, WCPB bundle cards, gift cards.
   Loaded on all single product pages via enqueue_product_page_styles().
   ========================================================================== */

/* --------------------------------------------------------------------------
   1) Galerie — schovej FlexSlider thumbnails
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery .flex-control-nav,
.woocommerce-product-gallery .flex-control-thumbs {
    display: none !important;
}

/* --------------------------------------------------------------------------
   2) Galerie — relativní pozice pro overlay a šipky
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery {
    position: relative !important;
    overflow: visible !important;
}

/* --------------------------------------------------------------------------
   3) Překryj celý obrázek trigger-linkem
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery__trigger {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    z-index: 9999 !important;
    cursor: pointer;
    pointer-events: auto !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

/* 3a) Skryj obsah triggeru */
.woocommerce-product-gallery__trigger span,
.woocommerce-product-gallery__trigger svg,
.woocommerce-product-gallery__trigger::before,
.woocommerce-product-gallery__trigger::after {
    display: none !important;
    content: none !important;
}

/* --------------------------------------------------------------------------
   4) Klik jde jen do triggeru
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image img,
.woocommerce-product-gallery__image a {
    pointer-events: none !important;
}

/* --------------------------------------------------------------------------
   5) Zakázání zoomu na hover
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery .zoomImg {
    display: none !important;
}
.woocommerce-product-gallery__image:hover img {
    transform: none !important;
    transition: none !important;
}

/* --------------------------------------------------------------------------
   Šipky — viewport
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery .flex-viewport {
    overflow: hidden !important;
}

/* --------------------------------------------------------------------------
   Šipky galerie — vlastní .gf-nav tlačítka (injektována JS)
   Pokud FlexSlider nativní šipky skryje téma/WC CSS, JS injektuje
   .gf-nav.gf-prev a .gf-nav.gf-next přímo do .woocommerce-product-gallery.
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery .gf-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: var(--aecs-gallery-nav-radius, 9999px);
    background: var(--aecs-gallery-nav-bg, rgba(0, 0, 0, 0.50));
    color: var(--aecs-gallery-nav-color, #fff);
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    opacity: 1;
    z-index: 10001 !important;
    pointer-events: auto !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    padding: 0;
}
.woocommerce-product-gallery .gf-nav:hover {
    background: var(--aecs-gallery-nav-bg-hover, rgba(0, 0, 0, 0.70));
    color: var(--aecs-gallery-nav-color, #fff);
}
.woocommerce-product-gallery .gf-prev { left: 10px; }
.woocommerce-product-gallery .gf-next { right: 10px; }
.woocommerce-product-gallery .gf-nav svg {
    width: 22px;
    height: 22px;
    pointer-events: none;
    flex-shrink: 0;
}

@media (max-width: 767px) {
    .woocommerce-product-gallery .gf-nav { width: 36px; height: 36px; }
    .woocommerce-product-gallery .gf-prev { left: 6px; }
    .woocommerce-product-gallery .gf-next { right: 6px; }
}

/* --------------------------------------------------------------------------
   Šipky galerie — FlexSlider (.flex-prev / .flex-next) — záložní styl
   pro případ kdy FlexSlider vytvoří nativní šipky a nejsou jinak stylované.
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery .flex-direction-nav {
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-product-gallery .flex-direction-nav .flex-prev,
.woocommerce-product-gallery .flex-direction-nav .flex-next {
    width: 44px !important;
    height: 44px !important;
    border-radius: 9999px !important;
    background: rgba(0, 0, 0, 0.50) !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
    opacity: 1 !important;
    z-index: 10001 !important;
    pointer-events: auto !important;
    /* hide FlexSlider default text */
    text-indent: -9999px;
    overflow: hidden;
    border: none !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.woocommerce-product-gallery .flex-direction-nav .flex-prev:hover,
.woocommerce-product-gallery .flex-direction-nav .flex-next:hover {
    background: rgba(0, 0, 0, 0.70) !important;
}

/* Arrow icons via ::after pseudo-element */
.woocommerce-product-gallery .flex-direction-nav .flex-prev::after,
.woocommerce-product-gallery .flex-direction-nav .flex-next::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2.5px solid #fff;
    border-right: 2.5px solid #fff;
    flex-shrink: 0;
}
.woocommerce-product-gallery .flex-direction-nav .flex-prev::after {
    transform: rotate(-135deg) translate(-1px, 1px);
}
.woocommerce-product-gallery .flex-direction-nav .flex-next::after {
    transform: rotate(45deg) translate(-1px, 1px);
}

/* Disabled state */
.woocommerce-product-gallery .flex-direction-nav .flex-disabled {
    opacity: 0.3 !important;
    pointer-events: none !important;
}

@media (max-width: 767px) {
    .woocommerce-product-gallery .flex-direction-nav .flex-prev,
    .woocommerce-product-gallery .flex-direction-nav .flex-next {
        width: 36px !important;
        height: 36px !important;
    }
}

/* ==========================================================================
   VARIANTY — GRID LAYOUT
   ========================================================================== */
form.variations_form.cart table.variations,
form.variations_form.cart table.variations > tbody,
.bundled_item_cart_content table.variations,
.bundled_item_cart_content table.variations > tbody {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box;
}
form.variations_form.cart table.variations > tbody,
.bundled_item_cart_content table.variations > tbody {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
}
form.variations_form.cart table.variations > tbody > tr,
.bundled_item_cart_content table.variations > tbody > tr {
    display: block !important;
    box-sizing: border-box !important;
}
@media (max-width: 480px) {
    form.variations_form.cart table.variations > tbody,
    .bundled_item_cart_content table.variations > tbody {
        grid-template-columns: 1fr !important;
    }
}
form.variations_form.cart table.variations th,
form.variations_form.cart table.variations td,
.bundled_item_cart_content table.variations th,
.bundled_item_cart_content table.variations td {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 3px 0 !important;
    box-sizing: border-box !important;
    background-color: transparent !important;
}
form.variations_form.cart table.variations th.label,
.bundled_item_cart_content table.variations th.label {
    margin-bottom: 2px;
    font-weight: bold;
}
.variations_form table.variations td,
.variations_form table.variations th,
.bundled_item_cart_content table.variations td,
.bundled_item_cart_content table.variations th {
    padding-right: 0 !important;
    padding-left: 0 !important;
    box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Swatch / select box styl
   -------------------------------------------------------------------------- */
.select_box_colorpicker .select_option,
.select_box_label .select_option {
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 3px 6px;
    cursor: pointer;
    transition: border-color 0.3s ease, background-color 0.3s ease, transform 0.2s ease;
    background-color: transparent !important;
}
.select_box_colorpicker .select_option.selected,
.select_box_label .select_option.selected {
    border-color: var(--gf-accent) !important;
    background-color: #f9f9f9 !important;
}

/* ==========================================================================
   CENA + TLAČÍTKO — 2 sloupce
   ========================================================================== */
.woocommerce-variation-availability { display: none !important; }

.single_variation_wrap,
.bundled_item_wrap {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100%;
    margin-bottom: 3px;
    background-color: transparent;
    box-sizing: border-box;
}
.single_variation_wrap > .woocommerce-variation.single_variation,
.bundled_item_wrap > .woocommerce-variation.single_variation {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 50% !important;
    padding: 3px;
    margin-bottom: 3px;
    align-items: flex-start !important;
    justify-content: center;
}
.single_variation_wrap > .woocommerce-variation-add-to-cart,
.bundled_item_wrap > .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 50% !important;
    padding: 3px;
    margin-bottom: 3px;
    align-items: flex-end !important;
    justify-content: center;
}
.single_variation_wrap .woocommerce-variation-price .price,
.single_variation_wrap .woocommerce-variation-price .woocommerce-Price-amount,
.bundled_item_wrap .woocommerce-variation-price .price,
.bundled_item_wrap .woocommerce-variation-price .woocommerce-Price-amount {
    color: #000 !important;
    font-weight: bold !important;
}
.yith-wcpb-bundle-form select.yith-wcpb-select-for-variables {
    display: inline-block !important;
}

/* --------------------------------------------------------------------------
   Narrow mode (container queries)
   -------------------------------------------------------------------------- */
.woocommerce div.product div.summary,
.elementor-widget-woocommerce-product-add-to-cart {
    container-type: inline-size;
}
@container (max-width: 420px) {
    form.variations_form.cart table.variations > tbody,
    .bundled_item_cart_content table.variations > tbody {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    form.variations_form.cart table.variations > tbody > tr,
    .bundled_item_cart_content table.variations > tbody > tr {
        padding: 6px 8px !important;
        border: 1px solid #eee !important;
        border-radius: 12px !important;
        background: #fff !important;
    }
    form.variations_form.cart select,
    .bundled_item_cart_content select {
        width: 100% !important;
        max-width: 100% !important;
    }
    .single_variation_wrap,
    .bundled_item_wrap {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .single_variation_wrap > .woocommerce-variation.single_variation,
    .single_variation_wrap > .woocommerce-variation-add-to-cart,
    .bundled_item_wrap > .woocommerce-variation.single_variation,
    .bundled_item_wrap > .woocommerce-variation-add-to-cart {
        flex: 0 0 100% !important;
        align-items: stretch !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .single_add_to_cart_button,
    .woocommerce-variation-add-to-cart button,
    .bundled_item_wrap .single_add_to_cart_button {
        width: 100% !important;
        display: block !important;
        padding: 12px 14px !important;
    }
    .yith-wapo-option { padding: 10px !important; }
    .yith-wapo-option label,
    .yith-wapo-option .label { line-height: 1.25 !important; }
}

/* ==========================================================================
   WCPB — Bundled product card layout
   ========================================================================== */
.yith-wcpb-product-bundled-items {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.yith-wcpb-product-bundled-item {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: flex-start;
    gap: 0 18px;
    padding: 16px 12px;
    border-radius: var(--aecs-card-radius, 12px);
    border: 1px solid var(--aecs-card-border, #e0e0e0);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    background: transparent;
}
.yith-wcpb-product-bundled-item-image {
    flex: 0 0 100px !important;
    display: flex;
    align-items: center;
    justify-content: center;
}
.yith-wcpb-product-bundled-item-image img {
    max-width: 100px;
    max-height: 100px;
    border-radius: 8px;
    object-fit: contain;
    background: #fff;
}
.yith-wcpb-product-bundled-item-data {
    flex: 1 1 0% !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.yith-wcpb-product-bundled-item-data__title {
    font-size: 1.1em;
    font-weight: bold;
    margin: 0 0 4px 0;
}
.yith-wcpb-product-bundled-item-data__price {
    font-size: 1em;
    color: #222;
    font-weight: bold;
    margin-bottom: 4px;
}
.yith-wcpb-product-bundled-item-data__optional,
.yith-wcpb-product-bundled-item-data__variations_form {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 8px;
}
.yith-wcpb-product-bundled-item-data__optional { margin-top: 12px; }
@media (max-width: 600px) {
    .yith-wcpb-product-bundled-item { flex-direction: column !important; }
    .yith-wcpb-product-bundled-item-image { justify-content: flex-start; }
}

/* YITH WAPO options background */
.yith-wapo-option { background-color: #fafafa !important; }

/* ==========================================================================
   GIFT CARDS
   ========================================================================== */
.gift-cards-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 12px;
    row-gap: 8px;
}
.gift-cards-list > .ywgc_select_amount_title {
    flex: 0 0 100%;
    text-align: left;
    margin-bottom: 8px;
}
.gift-cards-list .ywgc-amount-buttons {
    border-radius: var(--gf-radius-lg, 21px) !important;
    padding: 8px 16px;
    text-align: center;
}
@media (max-width: 600px) {
    .gift-cards-list { display: block; text-align: center; }
    .gift-cards-list > .ywgc_select_amount_title { text-align: left; margin-bottom: 8px; }
    .gift-cards-list .ywgc-amount-buttons {
        display: inline-block;
        width: calc(50% - 10px);
        margin: 4px 5px;
        padding: 10px 16px;
        border-radius: 21px !important;
    }
}
@media (max-width: 400px) {
    .gift-cards-list .ywgc-amount-buttons {
        width: 100%;
        max-width: 260px;
        border-radius: 21px !important;
    }
}
.gift-cards_form.cart input[type="text"],
.gift-cards_form.cart input[type="email"],
.gift-cards_form.cart input[type="number"],
.gift-cards_form.cart input[type="search"],
.gift-cards_form.cart input[type="tel"],
.gift-cards_form.cart input[type="url"],
.gift-cards_form.cart input.datepicker,
.gift-cards_form.cart textarea {
    border-radius: 21px !important;
}

/* --------------------------------------------------------------------------
   Gift card datepicker
   -------------------------------------------------------------------------- */
.ywgc-date-picker.ui-datepicker {
    border-radius: 21px !important;
    border: 1px solid #f1d7eb !important;
    background: #fff9fd !important;
    padding: 8px 10px 10px !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.12) !important;
    font-size: 13px;
    z-index: 9999 !important;
}
.ywgc-date-picker .ui-datepicker-header {
    background: transparent !important;
    border: none !important;
    padding: 4px 4px 8px !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ywgc-date-picker .ui-datepicker-title { font-weight: 600; font-size: 14px; }
.ywgc-date-picker .ui-datepicker-prev,
.ywgc-date-picker .ui-datepicker-next {
    top: 50% !important;
    transform: translateY(-50%);
    border-radius: 50% !important;
    border: 1px solid transparent;
    width: 24px;
    height: 24px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
.ywgc-date-picker .ui-datepicker-prev:hover,
.ywgc-date-picker .ui-datepicker-next:hover {
    border-color: #f1d7eb;
    background: #ffe7f7 !important;
}
.ywgc-date-picker .ui-datepicker-calendar { margin-top: 4px; }
.ywgc-date-picker .ui-datepicker-calendar th span { font-weight: 500; font-size: 11px; }
.ywgc-date-picker .ui-datepicker-calendar td a,
.ywgc-date-picker .ui-datepicker-calendar td span {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 2.1em;
    height: 2.1em;
    margin: 2px auto;
    border-radius: 50%;
    border: 1px solid transparent;
    text-align: center;
}
.ywgc-date-picker .ui-datepicker-calendar td a:hover {
    background: #ffe7f7 !important;
    border-color: #f1d7eb;
}
.ywgc-date-picker .ui-datepicker-today a,
.ywgc-date-picker .ui-datepicker-today span {
    border-color: #f1d7eb !important;
    background: #fff !important;
    font-weight: 600;
}
.ywgc-date-picker .ui-datepicker-current-day a {
    background: #f19ccd !important;
    border-color: #f19ccd !important;
    color: #fff !important;
}
.ywgc-date-picker .ui-datepicker-unselectable span { opacity: 0.4; }
.ywgc-date-picker .ui-timepicker-div {
    border-top: 1px solid #f1d7eb;
    margin-top: 6px;
    padding-top: 6px;
}
.ywgc-date-picker .ui-timepicker-div dl {
    display: grid;
    grid-template-columns: auto 1fr;
    row-gap: 4px;
    column-gap: 6px;
}
.ywgc-date-picker .ui-timepicker-div dt { font-size: 11px; opacity: 0.85; }
.ywgc-date-picker .ui-timepicker-div dd { margin: 0 0 2px 0; }
.ywgc-date-picker .ui-timepicker-div .ui_tpicker_time_input,
.ywgc-date-picker .ui-timepicker-div select.ui-timepicker-select {
    border-radius: 21px !important;
    border: 1px solid #eee !important;
    padding: 3px 8px;
    background: #fff;
    font-size: 12px;
}
.ywgc-date-picker .ui-datepicker-buttonpane {
    margin-top: 6px !important;
    padding-top: 6px !important;
    border-top: 1px solid #f1d7eb;
    display: flex;
    justify-content: space-between;
}
.ywgc-date-picker .ui-datepicker-buttonpane button {
    border-radius: 21px !important;
    padding: 4px 14px !important;
    border: 1px solid #f1d7eb;
    background: #fff;
    font-size: 12px;
    cursor: pointer;
}
.ywgc-date-picker .ui-datepicker-buttonpane .ui-datepicker-close {
    background: #f19ccd !important;
    border-color: #f19ccd !important;
    color: #fff !important;
}
.ywgc-date-picker .ui-datepicker-buttonpane button:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
