/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Woo messages */
.e-wc-message-notice .woocommerce-message {
  border: none;
  outline: none;
}

/* Product variations table */
table.variations th,
.woocommerce div.product form.cart .variations th {
  display: flex;
  align-items: center;
}

.variations .selected {
  text-decoration: underline;
}

/* Cart / Checkout / Order details */
.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment {
  margin: 0;
}

.woocommerce-thankyou-order-details {
  padding-left: 0;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart tr {
  padding: 0 0 15px 0;
}

/* Fix elementor-kit-7 button */
.single-product .cart .button,
.single_add_to_cart_button {
  border-style: solid !important;
}

/* Custom Add to Cart Button (Saigon eSens) */
.single_add_to_cart_button,
.single-product .cart .button {
  transition: all 0.25s ease !important;
  font-size: 14px !important;
  font-weight: normal !important;
  padding: 10px 24px !important;
  letter-spacing: 0.5px;
}

.woocommerce div.product form.cart .reset_variations {
  display: none !important;
}

/* Bubble Qty transition */
.elementor-menu-cart__toggle_button .elementor-button-icon-qty {
  transition: transform 0.25s ease;
}

.elementor-button-icon-qty.cart-badge-pulse {
  transform: scale(1.25);
}

/* Pillow/custom button padding */
.yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button--pillow,
.yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button--custom-button {
  padding: 0 10px;
}

/* Icon size */
.yith-wcwl-add-to-wishlist-button svg,
.yith-wcwl-add-to-wishlist-button img.yith-wcwl-custom-icon {
  width: 24px;
  height: 24px;
}

/* YITH Wishlist label visibility */
.elementor-shortcode .yith-wcwl-add-to-wishlist-button .yith-wcwl-add-to-wishlist-button__label,
.elementor-widget-loop-grid .yith-wcwl-add-to-wishlist-button .yith-wcwl-add-to-wishlist-button__label,
.single-product .related-products .product .yith-add-to-wishlist-button-block--single .yith-wcwl-add-to-wishlist-button__label {
  display: none !important;
}

.single-product .product .yith-add-to-wishlist-button-block--single
.yith-wcwl-add-to-wishlist-button__label {
  display: inline-block !important;
}

/* Variation swatches */
.variable-items-wrapper.button-variable-items-wrapper .variable-item.selected .variable-item-span-button {
  text-decoration: underline;
  font-weight: 600;
  font-size: 0.875rem;
}

.woo-variation-swatches.wvs-show-label .variations td .woo-selected-variation-item-name,
.woo-variation-swatches.wvs-show-label .variations th .woo-selected-variation-item-name {
  font-size: 0.875rem;
}

.variable-item {
  border: none !important;
  box-shadow: none !important;
  margin-left: -6px !important;
}

.woo-variation-items-wrapper {
  margin-top: -10px;
}

.woo-variation-swatches .wvs-style-squared.variable-items-wrapper
.variable-item:not(.radio-variable-item).button-variable-item .variable-item-span {
  font-size: 0.875em;
}

/* Product page actions */
.single_add_to_cart_button {
  width: 100%;
}


/* ---------------------------------
 2. Filter Everything – base tweaks
----------------------------------*/

/* Select sorting */
.wpc-orderby-select {
  border: 1px solid #ccd0dc;
  max-width: 100%;
}

/* Filter item disabled */
.wpc-filter-item--disabled {
  opacity: .5;
  pointer-events: none;
}

/* filter set for cat 3 category */
.is-grandchildcategory .wpc-filters-section.wpc-filter-product_cat {
  display: none !important;
}

/* Hide link "Edit Filter Set" */
.wpc-edit-filter-set {
  display: none;
}

/* Hide reset-all chip */
.wpc-chip-reset-all {
  display: none !important;
}

/* Title filter trigger dropdown */
.wpc-filter-title {
  display: block !important;
}

.wpc-horizontal-layout.wpc-horizontal-cols-5 .wpc-filters-section:not(.wpc-filter-layout-submit-button) {
  width: auto !important;
  margin-right: 3% !important;
}

body .wpc-filters-main-wrap li.wpc-term-item {
  margin-bottom: 6px;
}

.wpc-filters-main-wrap li.wpc-term-item a {
  font-size: 13px;
}

.wpc-filters-main-wrap li.wpc-term-selected a {
  font-weight: 500 !important;    
}

.wpc-inner-widget-chips-wrapper button,
.wpc-inner-widget-chips-wrapper .wpc-chips-scroll-button,
.wpc-inner-widget-chips-wrapper .wpc-chips-scroll-button-up,
.wpc-inner-widget-chips-wrapper .wpc-chips-scroll-button-down {
  display: none !important;
}

.wpc-inner-widget-chips-wrapper {
  overflow: visible !important;
  scrollbar-width: none; /* Firefox */
}

.wpc-inner-widget-chips-wrapper::-webkit-scrollbar {
  display: none;
}

/* ---------------------------------
 3. Filter dropdown (2289, 2296, 1038)
----------------------------------*/

.wpc-filter-set-2289 .wpc-filter-title,
.wpc-filter-set-2296 .wpc-filter-title,
.wpc-filter-set-1038 .wpc-filter-title {
  display: inline-block !important;
}

.wpc-filter-set-2289.wpc-horizontal-layout .wpc-filters-widget-content,
.wpc-filter-set-2296.wpc-horizontal-layout .wpc-filters-widget-content,
.wpc-filter-set-1038.wpc-horizontal-layout .wpc-filters-widget-content {
  background: transparent;
  box-shadow: none;
  border: 0;
  padding: 0;
}

.wpc-filter-set-2289 .wpc-filters-section,
.wpc-filter-set-2296 .wpc-filters-section,
.wpc-filter-set-1038 .wpc-filters-section {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-right: 40px;
}

/* Header clickable */
.wpc-filter-set-2289 .wpc-filter-header,
.wpc-filter-set-2296 .wpc-filter-header,
.wpc-filter-set-1038 .wpc-filter-header {
  cursor: pointer;
  user-select: none;
}

.wpc-filter-set-2289 .wpc-filter-title,
.wpc-filter-set-2296 .wpc-filter-title,
.wpc-filter-set-1038 .wpc-filter-title {
  font-size: 13px;
  font-weight: 400 !important;
  line-height: 1.3;
}

.wpc-filter-set-2289 .wpc-filter-header::after,
.wpc-filter-set-2296 .wpc-filter-header::after,
.wpc-filter-set-1038 .wpc-filter-header::after {
  content: "";
  display: inline-block;
  margin-left: 6px;
  border-width: 4px 4px 0 4px;
  border-style: solid;
  border-color: #000 transparent transparent transparent;
  transform: translateY(-2px);
  transition: transform 0.2s ease;
}

.wpc-filter-set-2289 .wpc-filter-content,
.wpc-filter-set-2296 .wpc-filter-content,
.wpc-filter-set-1038 .wpc-filter-content {
  position: absolute;
  top: 150%;
  left: -10px;
  min-width: 201px;
  overflow-y: auto;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
  padding: 16px 10px;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.wpc-filter-set-2289 .wpc-filters-section.is-open .wpc-filter-content,
.wpc-filter-set-2296 .wpc-filters-section.is-open .wpc-filter-content,
.wpc-filter-set-1038 .wpc-filters-section.is-open .wpc-filter-content {
  opacity: 1;
  visibility: visible;
  transform: translateY(-10px);
}

.wpc-filter-set-2289 .wpc-filters-section.is-open .wpc-filter-header::after,
.wpc-filter-set-2296 .wpc-filters-section.is-open .wpc-filter-header::after,
.wpc-filter-set-1038 .wpc-filters-section.is-open .wpc-filter-header::after {
  transform: translateY(-2px) rotate(180deg);
}

.wpc-filter-set-2289 .wpc-filters-ul-list,
.wpc-filter-set-2296 .wpc-filters-ul-list,
.wpc-filter-set-1038 .wpc-filters-ul-list {
  margin: 0;
}

.wpc-filters-main-wrap .wpc-checkbox-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
}

.wpc-filters-main-wrap .wpc-checkbox-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Label + circle */
.wpc-filters-main-wrap .wpc-checkbox-item label {
  position: relative;
  padding-left: 20px;
  font-size: 13px;
  color: #333;
  cursor: pointer;
  user-select: none;
  line-height: 1.4;
}

.wpc-filters-main-wrap .wpc-checkbox-item label:before {
  content: "";
  position: absolute;
  left: 0px;
  top: 2px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  transition: all .2s ease;
}

/* check ✓ */
.wpc-filters-main-wrap .wpc-checkbox-item input[type="checkbox"]:checked + label:after {
  content: "✓";
  position: absolute;
  left: 1px;
  top: -1px;
  font-size: 13px;
  color: #000;
  font-weight: 500;
  transition: .2s;
}

.wpc-filters-main-wrap .wpc-checkbox-item input[type="checkbox"]:checked + label:before {
  border-color: #000;
}

/* Term disabled (count = 0) */
.wpc-filters-main-wrap .wpc-checkbox-item.wpc-term-count-0 label {
  color: #ccc !important;
  cursor: not-allowed;
}

.wpc-filters-main-wrap .wpc-checkbox-item.wpc-term-count-0 label:before {
  border-color: #ddd !important;
  opacity: 0.5;
}


/* ---------------------------------
 4. Sort By – custom dropdown
----------------------------------*/

.wpc-sorting-form .wpc-orderby-select {
  display: none;
}

/* Wrapper dropdown sort */
body .elementor-widget-wp-widget-wpc_sorting_widget .elementor-widget-container {
  display: flex;
  justify-content: flex-end;
}

.wpc-sorting-form,
.ses-sorting-dropdown {
  margin-left: auto !important;
}

/* Wrapper dropdown */
.wpc-sorting-form .ses-sorting-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}

.wpc-sorting-form .ses-sorting-trigger {
  background: transparent;
  border: none;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  cursor: pointer;
}

.wpc-sorting-form .ses-sorting-current {
  white-space: nowrap;
  text-transform: math-auto;
  font-size: 13px;
  color: #000;
}

.wpc-sorting-form .ses-sorting-current:hover {
  color: #000;
}

.wpc-sorting-form .ses-sorting-arrow {
  margin-top: -5px;
}

.wpc-sorting-form .ses-sorting-arrow::before {
  content: '';
  display: inline-block;
  border-style: solid;
  border-width: 4px 4px 0 4px;
  border-color: #111 transparent transparent transparent;
  transform: translateY(1px);
  transition: transform 0.18s ease;
}

.wpc-sorting-form .ses-sorting-dropdown.is-open .ses-sorting-arrow::before {
  transform: rotate(180deg) translateY(-1px);
}

.wpc-sorting-form .ses-sorting-panel {
  position: absolute;
  right: 0;
  margin-top: 8px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
  padding: 16px 10px;        /* giống filter */
  min-width: 201px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.18s ease;
  z-index: 999;
}

.wpc-sorting-form .ses-sorting-dropdown.is-open .ses-sorting-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(85px); /* giống filter animation */
}

.wpc-sorting-form .ses-sorting-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 250px;
  overflow-y: auto;
}

.wpc-sorting-form .ses-sorting-item {
  position: relative;
  padding: 6px 0 6px 16px;  /* giống khoảng cách item filter */
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
}

.wpc-sorting-form .ses-sorting-item:hover {
  background: #f5f5f5;
}

.wpc-sorting-form .ses-sorting-item.is-active {
  font-weight: 500;
}

.wpc-sorting-form .ses-sorting-item.is-active::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
}


/* ---------------------------------
 5. Responsive (≤ 767px)
----------------------------------*/
@media screen and (max-width: 767px) {

  .yith-ywot-tracking-info-results {
    padding: 50px 20px;
    width: 100%;
  }

  .e-wc-message-notice .woocommerce-message {
    display: flex;
    flex-direction: column;
    align-content: flex-start;
    align-items: flex-start;
    border: none;
    gap: 4px;
  }

  .woocommerce ul.order_details li {
    padding-bottom: 10px;
  }

  /* Sorting widget full-width on mobile */
  .elementor-widget-wp-widget-wpc_sorting_widget {
    width: 100% !important;
  }

  /* Inputs font-size in filter/sorting/search */
  .wpc-filter-everything-dropdown .select2-search--dropdown .select2-search__field,
  .wpc-sorting-form select,
  .wpc_show_bottom_widget .wpc-filters-main-wrap input[type=number],
  .wpc_show_bottom_widget .wpc-filters-main-wrap input[type=text],
  .wpc_show_bottom_widget .wpc-filters-main-wrap select,
  .wpc_show_bottom_widget .wpc-filters-main-wrap textarea,
  .wpc_show_bottom_widget .wpc-search-field,
  .wpc_show_open_close_button .wpc-search-field,
  .wpc_show_open_close_button .wpc-filter-search-field {
    font-size: 14px;
  }

  /* Wishlist table padding on mobile */
  .wishlist_table.wishlist_view.responsive.mobile {
    padding: 0;
  }
  
}

@media (max-width: 767px){

  .elementor-894 .elementor-element.elementor-element-8741defe {
    display: flex;                 
    flex-wrap: wrap;               
    justify-content: space-between;
    align-items: flex-start;
    gap: 0;
    row-gap: 0;
    column-gap: 0;

    --justify-content: space-between;
    --align-items: flex-start;
    --flex-wrap: wrap;
  }

  .elementor-894 .elementor-element.elementor-element-8741defe
  > .elementor-widget {
    width: auto;
  }

  .elementor-widget-wp-widget-wpc_sorting_widget {
    width: auto !important;
  }

  .elementor-widget-wp-widget-wpc_sorting_widget .elementor-widget-container {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
  }
}

.single-product .yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button--pillow, .single-product .yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button--custom-button {
    padding: 0;
}
.related-products .yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button--pillow, .related-products .yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button--custom-button {
    padding: 0 10px;
}

/* === SHARE POPUP (Saigon Esens) === */

#sesShareBtn {
    margin-left: auto;         
    font-size: 12px;
    position: relative;         
}

#sesShareBtn .elementor-icon-list-item a {
    padding: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

#sesShareBtn .elementor-icon-list-icon svg {
    width: 14px;
    height: 14px;
}

#sesShareBtn .elementor-icon-list-text {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#sesShareBtn .ses-share-popup {
    position: absolute;
    top: calc(100% + 10px);    
    right: 0;               
    min-width: 180px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 18px 40px rgba(0,0,0,0.12);
    padding: 8px 0;
    z-index: 9999;

    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity .18s ease, transform .18s ease;
}

#sesShareBtn .ses-share-popup.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

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

.ses-share-list li {
    margin: 0;
}

.ses-share-option {
    width: 100%;
    text-align: left;
    padding: 6px 16px;
    background: transparent;
    border: none;
    font-size: 13px;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .15s ease;
}

.ses-share-option:hover {
    background-color: #f5f5f5;
    color: #000;
}

.ses-share-option[data-network="copy"] {
    font-size: 12px;
    letter-spacing: 0.02em;
}

#ses-add-to-cart-toast {
    position: fixed;
    top: 80px;          /* chỉnh lại cho khớp header của site */
    right: 30px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 45px rgba(0,0,0,0.16);
    padding: 12px 18px;
    font-size: 13px;
    z-index: 9999;
}

.elementor-menu-cart__toggle_button .elementor-button-icon-qty {
    transition: transform 0.25s ease;
}
.elementor-menu-cart__toggle_button .elementor-button-icon-qty.cart-badge-pulse {
    transform: scale(1.25);
}

body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-notices-wrapper,
body.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-notices-wrapper,
body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-message,
body.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-message,
body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-error,
body.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-error,
body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-info,
body.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-info {
    display: none !important;
}

/******************************************************
 * Saigon eSens – Mini Cart (Elementor Menu Cart)
 ******************************************************/

.elementor-menu-cart__container.elementor-lightbox {
    justify-content: flex-end;     
    align-items: flex-start;      
    padding: 90px 32px 32px;      
    background: transparent;       
}

.elementor-menu-cart__container.elementor-lightbox .elementor-menu-cart__main {
    width: 340px;
    max-height: 480px;
    border-radius: 16px;
    box-shadow: 0 18px 45px rgba(0,0,0,0.16);
    border: 1px solid #eee;
    background: #fff;
    overflow: hidden;
    padding: 0;
}

.elementor-menu-cart__header {
    padding: 14px 20px 10px;
    border-bottom: 1px solid #f1f1f1;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.elementor-menu-cart__close-button {
    top: 12px;
    right: 14px;
    font-size: 16px;
}

.elementor-menu-cart__products {
    padding: 10px 20px 12px;
    margin: 0;
    max-height: 280px;
    overflow-y: auto;
}

.elementor-menu-cart__product {
    padding: 10px 0;
    border-bottom: 1px solid #f5f5f5;
}

.elementor-menu-cart__product:last-child {
    border-bottom: none;
}

.elementor-menu-cart__product-image img {
    border-radius: 4px;
}

.elementor-menu-cart__product-name {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}

.elementor-menu-cart__product-price,
.elementor-menu-cart__product-quantity {
    font-size: 12px;
}

.elementor-menu-cart__subtotal {
    padding: 10px 20px;
    border-top: 1px solid #f5f5f5;
    font-size: 13px;
    font-weight: 500;
}

.elementor-menu-cart__footer-buttons {
    padding: 0 20px 16px;
}

.elementor-menu-cart__footer-buttons .elementor-button {
    width: 100%;
    border-radius: 0;
    font-size: 13px;
    letter-spacing: 0.04em;
}

.elementor-menu-cart__main {
    opacity: 0;
    transform: translate(30px, -100px) !important;
    transition: opacity .18s ease, transform .18s ease;
}

.elementor-menu-cart__container.elementor-lightbox[aria-hidden="false"] .elementor-menu-cart__main {
    opacity: 1;
    transform: translateY(0);
}

.elementor-menu-cart__close-button-custom {
    margin: 0;
    padding: 8px;
}
.elementor-menu-cart__product-name a {
    font-size: 0.875rem !important;
}