/* ============================================================
   Show-password eye icon - keep visible against dark background
   ============================================================ */

/* Kinwi: Hide native number input spinners on quantity inputs (prevents double arrows with custom +/- buttons) */
/* Chrome, Safari, Edge, Opera */
.quantity input[type="number"]::-webkit-outer-spin-button,
.quantity input[type="number"]::-webkit-inner-spin-button,
.woocommerce-cart input[type="number"]::-webkit-outer-spin-button,
.woocommerce-cart input[type="number"]::-webkit-inner-spin-button,
.woocommerce input.qty[type="number"]::-webkit-outer-spin-button,
.woocommerce input.qty[type="number"]::-webkit-inner-spin-button,
input.qty[type="number"]::-webkit-outer-spin-button,
input.qty[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  display: none !important;
  margin: 0 !important;
}

/* Firefox */
html body .quantity input[type="number"].qty,
html body .woocommerce .quantity input[type="number"].qty,
html body .woocommerce-cart input[type="number"].qty,
html body .tinv-wishlist .quantity input[type="number"].qty,
html body .wishlist_table .quantity input[type="number"].qty,
html body .quantity input[type="number"],
html body .woocommerce .quantity input[type="number"],
html body .woocommerce-cart input[type="number"],
html body .tinv-wishlist .quantity input[type="number"],
html body .wishlist_table .quantity input[type="number"],
html body .woocommerce input.qty[type="number"],
html body input.qty[type="number"],
.quantity input[type="number"],
.woocommerce-cart input[type="number"],
.woocommerce input.qty[type="number"],
.tinv-wishlist .quantity input[type="number"],
.wishlist_table .quantity input[type="number"],
input.qty[type="number"] {
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}

/* The toggle button - transparent in all states */
.woocommerce .show-password-input,
.show-password-input {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* ============================================================
   Kinwi: Reset Elementor Global Link Styles (Fixes Hover Jumps)
   (Elementor Kit sets a:hover to 18px italic which breaks buttons/tabs)
   ============================================================ */
/* Wishlist button */
html body .yith-wcwl-add-to-wishlist a,
html body .yith-wcwl-add-button > a,
html body .yith-wcwl-wishlistexistsbrowse a,
html body .yith-wcwl-wishlistaddedbrowse a,
html body .remove_from_wishlist,
html body .yith-wcwl-add-to-wishlist a:hover,
html body .yith-wcwl-add-button > a:hover,
html body .yith-wcwl-wishlistexistsbrowse a:hover,
html body .yith-wcwl-wishlistaddedbrowse a:hover,
html body .remove_from_wishlist:hover {
    font-style: normal !important;
    font-size: 16px !important;
}

/* Tabs */
html body .woocommerce .wc-tabs li a,
html body .woocommerce .wc-tabs li.active a,
html body .woocommerce .wc-tabs li a:hover,
html body .woocommerce .wc-tabs li.active a:hover {
    font-size: 16px !important;
    font-style: normal !important;
}

/* Kinwi: Global site-wide button typography standard
   Lora upload · 16px · 500 weight · italic · #111 text on #00967d bg
   Hover: #00967d text on #111 bg */
html body .woocommerce a.button,
html body .woocommerce button.button,
html body .woocommerce input.button,
html body .woocommerce #respond input#submit,
html body .woocommerce-button,
html body .woocommerce-Button.button,
html body button.button,
html body a.button,
html body .tinvwl-button,
html body .dokan-follow-store-button,
body.woocommerce-account .dokan-btn,
html body .woocommerce a.button:hover,
html body .woocommerce button.button:hover,
html body .woocommerce input.button:hover,
html body .woocommerce #respond input#submit:hover,
html body .woocommerce-button:hover,
html body .woocommerce-Button.button:hover,
html body button.button:hover,
html body a.button:hover,
html body .tinvwl-button:hover,
html body .dokan-follow-store-button:hover,
body.woocommerce-account .dokan-btn:hover {
    font-family: 'Lora upload', serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    font-style: italic !important;
}
/* Kinwi: Global button colours — normal state */
html body .woocommerce a.button,
html body .woocommerce button.button,
html body .woocommerce input.button,
html body .woocommerce #respond input#submit,
html body .woocommerce-button,
html body .woocommerce-Button.button,
html body button.button,
html body a.button,
html body .tinvwl-button,
html body .dokan-follow-store-button,
body.woocommerce-account .dokan-btn {
    color: #111111 !important;
    background-color: #00967d !important;
}
/* Kinwi: Global button colours — hover state */
html body .woocommerce a.button:hover,
html body .woocommerce button.button:hover,
html body .woocommerce input.button:hover,
html body .woocommerce #respond input#submit:hover,
html body .woocommerce-button:hover,
html body .woocommerce-Button.button:hover,
html body button.button:hover,
html body a.button:hover,
html body .tinvwl-button:hover,
html body .dokan-follow-store-button:hover,
body.woocommerce-account .dokan-btn:hover {
    color: #00967d !important;
    background-color: #111111 !important;
}

/* Hover Green Color for Links & Buttons */
html body .woocommerce a.button:hover,
html body .woocommerce button.button:hover,
html body .woocommerce .wc-tabs li a:hover,
html body .woocommerce-MyAccount-navigation ul li a:hover,
html body .yith-wcwl-add-to-wishlist a:hover,
html body .yith-wcwl-wishlistexistsbrowse a:hover,
html body .yith-wcwl-wishlistaddedbrowse a:hover,
html body .remove_from_wishlist:hover {
    color: #00967d !important;
}

/* Consistent My Account sidebar size (prevents 18px hover jump since normal is also 18px) */
html body .woocommerce-MyAccount-navigation ul li a,
html body .woocommerce-MyAccount-navigation ul li a:hover {
    font-size: 18px !important;
    font-style: normal !important;
}
@media screen and (max-width: 800px) {
    html body .woocommerce-MyAccount-navigation ul li a,
    html body .woocommerce-MyAccount-navigation ul li a:hover {
        font-size: 16px !important;
    }
}

/* Kinwi: Highlight the active/current tab in My Account sidebar */
html body .woocommerce-MyAccount-navigation ul li.is-active a {
    color: #00967d !important;
    font-weight: bold !important;
}

/* Fix "sticky footer" gap on short pages like My Account.
   Kinwi: Exclude FiboSearch wrapper — it also carries the .woocommerce class,
   and the 60vh min-height was making it extend 540px below the fixed header,
   blocking clicks on the login form username field. */
/* Only apply 60vh min-height on desktop so mobile (<=768px) does not get large gaps.
   Strictly exclude all FiboSearch elements (.dgwt-wcas-search-wrapp and .dgwt-wcas-suggestions-wrapp). */
@media (min-width: 769px) {
    .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation),
    .woocommerce-account .woocommerce:not(.dgwt-wcas-search-wrapp):not(.dgwt-wcas-suggestions-wrapp) {
        min-height: 60vh;
    }
}

/* ============================================================
   Kinwi: Store Content Font Sizes (Descriptions & Navigation)
   ============================================================ */
/* Body Text (Descriptions & My Account text) - Set to 16px for readability */
html body .woocommerce-product-details__short-description,
html body .woocommerce-product-details__short-description p,
html body #tab-description,
html body #tab-description p,
html body .woocommerce-Tabs-panel--description,
html body .woocommerce-Tabs-panel--description p,
html body .woocommerce-MyAccount-content p,
html body .woocommerce-MyAccount-content li {
    font-size: 16px !important;
}

/* ============================================================
   Kinwi: Fix Cart / Checkout / Review Label Fonts
   (Overrides Elementor global label italic Gabriela)
   ============================================================ */
.woocommerce-checkout form label,
.woocommerce-cart form label,
.woocommerce-cart table.cart td.actions .coupon label,
.woocommerce-checkout table.shop_table label,
.woocommerce div#reviews form.comment-form label {
    font-family: "Lora upload", "Lora", serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 600 !important;
}

/* Kinwi: Cart/checkout buttons — matches global standard */
.woocommerce-cart input.qty,
.woocommerce-cart button.button,
.woocommerce-checkout button.button {
    font-family: "Lora upload", "Lora", serif !important;
    font-weight: 500 !important;
    font-style: italic !important;
}

/* ============================================================
   Kinwi: Fix Cart & Checkout Product Variations / Vendor Metadata
   Ensures Vendor label and store name (and any product variation
   dt/dd items) share identical 16px font size, line-height,
   and baseline alignment.
   ============================================================ */
.woocommerce table.shop_table td.product-name dl.variation,
.woocommerce-page table.shop_table td.product-name dl.variation,
.woocommerce-cart table.cart td.product-name dl.variation,
.woocommerce-checkout table.shop_table td.product-name dl.variation {
    margin-top: 4px !important;
    margin-bottom: 0 !important;
}

.woocommerce table.shop_table td.product-name dl.variation dt,
.woocommerce-page table.shop_table td.product-name dl.variation dt,
.woocommerce-cart table.cart td.product-name dl.variation dt,
.woocommerce-checkout table.shop_table td.product-name dl.variation dt {
    font-family: "Lora upload", "Lora", serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.6 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-right: 5px !important;
}

.woocommerce table.shop_table td.product-name dl.variation dd,
.woocommerce-page table.shop_table td.product-name dl.variation dd,
.woocommerce-cart table.cart td.product-name dl.variation dd,
.woocommerce-checkout table.shop_table td.product-name dl.variation dd {
    font-family: "Lora upload", "Lora", serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.6 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.woocommerce table.shop_table td.product-name dl.variation dd p,
.woocommerce-page table.shop_table td.product-name dl.variation dd p,
.woocommerce-cart table.cart td.product-name dl.variation dd p,
.woocommerce-checkout table.shop_table td.product-name dl.variation dd p {
    font-family: "Lora upload", "Lora", serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.6 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.woocommerce table.shop_table td.product-name dl.variation dd a,
.woocommerce-page table.shop_table td.product-name dl.variation dd a,
.woocommerce-cart table.cart td.product-name dl.variation dd a,
.woocommerce-checkout table.shop_table td.product-name dl.variation dd a {
    font-family: inherit !important;
    font-size: 16px !important;
    line-height: inherit !important;
    color: inherit !important;
}

/* Kinwi: Add spacing under the "Credit/Debit card (Stripe)" text when icons wrap on small screens */
@media screen and (max-width: 422px) {
    .woocommerce-checkout #payment ul.payment_methods li label img {
        display: block !important;
        margin-top: 8px !important;
    }
}

/* The eye icon rendered as a ::after pseudo-element by WooCommerce */
.show-password-input::after {
    color: #00967d !important;
    opacity: 1 !important;
}

/* Prevent black background on press/focus */
.show-password-input:focus,
.show-password-input:active,
.show-password-input:hover {
    background-color: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Keep icon green on all interaction states */
.show-password-input:focus::after,
.show-password-input:active::after,
.show-password-input:hover::after,
.show-password-input.display-password::after {
    color: #00967d !important;
    opacity: 1 !important;
}

/* ============================================================
   Fix show-password button black box on hover/focus - override
   all WooCommerce & theme states with maximum specificity
   ============================================================ */
html body .woocommerce .show-password-input,
html body .woocommerce-page .show-password-input,
html body span.show-password-input,
html body .password-input .show-password-input {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

html body .woocommerce .show-password-input:hover,
html body .woocommerce .show-password-input:focus,
html body .woocommerce .show-password-input:active,
html body span.show-password-input:hover,
html body span.show-password-input:focus,
html body span.show-password-input:active {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

html body .show-password-input::after,
html body .show-password-input:hover::after,
html body .show-password-input:focus::after,
html body .show-password-input:active::after,
html body .show-password-input.display-password::after {
    color: #00967d !important;
    opacity: 1 !important;
}

/* ============================================================
   Elementor TOC widget - vertically centre the 'Table of contents' title
   ============================================================ */

/* Make the header a flex row with true vertical centring */
.elementor-toc__header {
    display: flex !important;
    align-items: center !important;
}

/* Remove any excess line-height that pushes the text downward */
.elementor-toc__header .elementor-toc__title,
span.elementor-toc__title {
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
}

/* ============================================================
   TOC title - override inherited heading line-height cap-gap
   The heading styles set a tall line-height that creates invisible
   space above glyphs even when the element is flex-centred.
   ============================================================ */
html body .elementor-toc__header {
    display: flex !important;
    align-items: center !important;
    min-height: unset !important;
}

html body .elementor-toc__header .elementor-toc__title,
html body span.elementor-toc__title {
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
    align-self: center !important;
    vertical-align: middle !important;
    position: relative !important;
    top: 0 !important;
    transform: translateY(0) !important;
}



/* Kinwi: Strip padding from outer header so it matches header-main height */
html body .wpj-jtoc--header {
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: stretch !important;
}

/* Kinwi: Center jtoc header main content for all TOC boxes */
html body .wpj-jtoc--header-main {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: auto !important;
  min-height: 40px !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Kinwi: Center jtoc title label - offset by 40px left to balance the 40px toggle on the right */
html body .wpj-jtoc--title {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: auto !important;
  flex: 1 1 auto !important;
  padding: 0 0 0 40px !important; /* Offset the 40px toggle wrap on the right */
  margin: 0 !important;
}

/* Kinwi: Ensure jtoc title label is centered */
html body .wpj-jtoc--title-label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Kinwi: Toggle wrap stays in flex flow as a fixed 40px item on the right */
html body .wpj-jtoc--toggle-wrap {
  flex: 0 0 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}



/* Custom Star Ratings - Gold and Not Italic */
.woocommerce .star-rating span::before,
.woocommerce-page .star-rating span::before,
.woocommerce p.stars a::before,
.woocommerce-page p.stars a::before,
.star-rating span::before,
.dokan-seller-rating .star-rating span::before,
.dokan-rating-star .star-rating span::before,
.dokan-store-info .rating i,
.dokan-store-info .rating span i,
.dokan-review-author .rating-star span::before,
.dokan-review-author .star-rating span::before,
.comment-text .star-rating span::before,
.dokan-store-tabs .dokan-store-rating .star-rating span::before,
.dokan-store-tabs i.fa-star,
i.fa-star.fas,
i.fas.fa-star,
.dokan-vendor-rating i,
.star-rating::before,
/* Kinwi: Store list filter + store card dashicon stars */
.dokan-stars i,
.dokan-stars i.dashicons,
i.dashicons.dashicons-star-filled,
i.dashicons.dashicons-star-half,
i.dashicons.dashicons-star-empty,
.store-ratings i.dashicons,
.dokan-seller-rating i.dashicons,
.dokan-single-seller i.dashicons,
/* Kinwi: Override Dokan Pro store-reviews module orange (#fa9a00) — match its specificity */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-ratings .dokan-stars i.dashicons,
/* Kinwi: Override Dokan Lite store list card orange — match its specificity */
#dokan-seller-listing-wrap .seller-listing-content .dokan-seller-wrap .dokan-single-seller .store-wrapper .store-data .dokan-seller-rating i.dashicons.dashicons-star-filled,
#dokan-seller-listing-wrap .seller-listing-content .dokan-seller-wrap .dokan-single-seller .store-wrapper .store-data .dokan-seller-rating i.dashicons.dashicons-star-half,
#dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-content .store-info .store-data .dokan-seller-rating span:before,
#dokan-seller-listing-wrap.list-view .dokan-seller-wrap .dokan-single-seller .store-wrapper .store-content .store-data-container .store-data .dokan-seller-rating[class] span:before {
    color: #d4af37 !important;
}

/* Base star rating containers should not be italic */
.woocommerce .star-rating,
.woocommerce-page .star-rating,
.star-rating,
.dokan-seller-rating .star-rating,
.dokan-rating-star,
.dokan-review-author .rating-star,
p.stars,
.star-rating::before,
.star-rating span::before,
i.fa-star.fas,
i.fas.fa-star,
.dokan-store-info .rating i,
.dokan-store-info .rating span i,
.woocommerce p.stars a::before,
.woocommerce-page p.stars a::before,
.dokan-vendor-rating i {
    font-style: normal !important;
}

/* Kinwi: Darker text for store review counts */
.dokan-vendor-rating p,
.dokan-ratings-count {
    color: #555555 !important;
}

/* Kinwi: Store header location and rating text alignment */
.dokan-store-info .dokan-store-address,
.dokan-store-info .dokan-store-rating {
    font-family: "Lora upload" !important;
    font-size: 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

/* Remove float and margin from icons for flex alignment, and optical tweak */
.dokan-store-info .dokan-store-address i,
.dokan-store-info .dokan-store-rating i {
    float: none !important;
    margin: 0 !important;
    width: 16px !important;
    text-align: center !important;
    transform: translateY(-2px) !important;
}

/* Ensure the rating text link is not italic */
.dokan-store-info .dokan-store-rating a {
    font-family: "Lora upload" !important;
    font-size: 16px !important;
    font-style: normal !important;
}



/* Kinwi: Uniform Product Images (Main & Gallery) */
body .woocommerce-product-gallery .woocommerce-product-gallery__image,
body .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .woocommerce-product-gallery__image,
body .woocommerce-product-gallery .woocommerce-product-gallery__image a,
body .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .woocommerce-product-gallery__image a {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    background-color: #ffffff !important;
}

body .woocommerce-product-gallery .woocommerce-product-gallery__image img,
body .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .woocommerce-product-gallery__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important; /* Ensures whole product is visible without rotation */
}

body .woocommerce-product-gallery .flex-control-thumbs li,
body .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs li {
    aspect-ratio: 1 / 1 !important; /* Locks thumbnails to square */
    background-color: #ffffff !important;
    height: auto !important; /* Prevent elementor fixed heights */
}

body .woocommerce-product-gallery .flex-control-thumbs li img,
body .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important; /* Zooms to fill the square for a clean gallery look */
}


/* Elementor Swiper Product Gallery support */
body .elementor-widget-woocommerce-product-images .swiper-slide {
    background-color: #ffffff !important;
}

/* Main image in swiper */
body .elementor-widget-woocommerce-product-images .elementor-main-swiper .swiper-slide {
    aspect-ratio: 1 / 1 !important;
}
body .elementor-widget-woocommerce-product-images .elementor-main-swiper .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

/* Thumbnail images in swiper */
body .elementor-widget-woocommerce-product-images .elementor-thumbnails-swiper .swiper-slide {
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
}
body .elementor-widget-woocommerce-product-images .elementor-thumbnails-swiper .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}



/* Kinwi: Woo Variation Gallery plugin (WVG) Uniform Image Aspect Ratios */
.woo-variation-gallery-wrapper .wvg-single-gallery-image-container,
.woo-variation-gallery-wrapper .wvg-gallery-image {
    aspect-ratio: 1 / 1 !important;
    background-color: #ffffff !important;
    height: auto !important;
}
.woo-variation-gallery-wrapper .wvg-single-gallery-image-container img,
.woo-variation-gallery-wrapper .wvg-gallery-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    aspect-ratio: 1 / 1 !important;
}

.woo-variation-gallery-wrapper .wvg-gallery-thumbnail-image {
    aspect-ratio: 1 / 1 !important;
    background-color: #ffffff !important;
    height: auto !important;
}
.woo-variation-gallery-wrapper .wvg-gallery-thumbnail-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    aspect-ratio: 1 / 1 !important;
}
