/* PRODUCT PAGE */
    /* Structural CSS for the first three-zone product layout. */

    .allping-product-grid {
    display: grid;
    /* Preserve the former first-column width; the second column absorbs the
    * space released by the narrower third column. */
    grid-template-columns: minmax(0, calc(36.36% - 12px)) minmax(0, 1fr) minmax(300px, 0.6fr);
    gap: 16px;
    align-items: start;
    }

    .allping-product-grid > .woocommerce-product-gallery,
    .allping-product-grid > .summary,
    .allping-product-grid > .allping-product-purchase-column {
    min-width: 0;
    grid-row: 1;
    }

    /* WooCommerce normally applies width: 48% and floating to the gallery and
    * summary. Those defaults leave empty space inside CSS-grid tracks, so reset
    * them when the custom three-column layout is active. */
    .allping-product-grid > .woocommerce-product-gallery,
    .allping-product-grid > .summary {
    width: 100% !important;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    float: none !important;
    box-sizing: border-box;
    }

    .allping-product-grid > .woocommerce-product-gallery {
    grid-column: 1;
    }

    .allping-product-grid > .summary {
    grid-column: 2;
    }

    .allping-product-grid > .allping-product-purchase-column {
    grid-column: 3;
    background: #eeeeee;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    }

    /* On mobile, the PHP snippet places the title and rating in this heading
    * before the gallery. It stays empty and invisible on desktop. */
    .allping-mobile-product-heading {
    display: none;
    }

    /* Keep every purchase-column block centered inside the narrower track. */
    .allping-product-purchase-column > .price,
    .allping-product-purchase-column > form.cart,
    .allping-product-purchase-column > .single-product-payments {
    width: 100%;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    }

    /* Keep the existing header border treatment; Kadence controls its background. */
    .engineering-header .wp-block-kadence-header-desktop .wp-block-kadence-header-row,
    .engineering-header .wp-block-kadence-header-tablet .wp-block-kadence-header-row {
			border-bottom: none !important;
    }

    /* Mobile: keep the existing brand logo in the same row as the stars. */
    @media (max-width: 767px) {
		body.single-product .allping-mobile-product-heading > .woocommerce-product-rating {
			display: flex !important;
			align-items: center;
			width: 100%;
			min-height: 39px;
			gap: 8px;
		}

		body.single-product .allping-mobile-product-heading > .woocommerce-product-rating > .star-rating {
			float: none !important;
			flex: 0 0 auto;
			margin: 0 !important;
		}

		body.single-product .allping-mobile-product-heading > .woocommerce-product-rating > .woocommerce-review-link {
			float: none !important;
			flex: 0 0 auto;
			margin: 0 !important;
		}

		body.single-product .allping-mobile-product-heading > .woocommerce-product-rating > .pwb-single-product-brands {
			position: static !important;
			display: flex !important;
			align-items: center !important;
			justify-content: flex-end !important;
			flex: 0 0 90px !important;
			width: 90px !important;
			height: 32px !important;
			min-height: 32px !important;
			margin: 0 0 0 auto !important;
			padding: 0 !important;
			transform: none !important;
			clear: none !important;
			z-index: 1 !important;
		}

		body.single-product .allping-mobile-product-heading > .woocommerce-product-rating > .pwb-single-product-brands > a {
			display: block !important;
			width: 90px !important;
			height: 32px !important;
			aspect-ratio: 3 / 1;
			overflow: hidden;
			line-height: 0;
		}

		body.single-product .allping-mobile-product-heading > .woocommerce-product-rating > .pwb-single-product-brands img {
			display: block !important;
			width: 100% !important;
			height: 100% !important;
			max-width: none !important;
			object-fit: cover;
		}
    }

    .allping-product-purchase-column > .price,
    .allping-product-purchase-column > .single-product-payments {
    text-align: center;
    }

    /* Keep the Rank Math/WooCommerce breadcrumbs consistent with the site's body text. */
    .rank-math-breadcrumb,
    .woocommerce-breadcrumb {
    font-family: Inter, sans-serif !important;
    }

    .rank-math-breadcrumb a,
    .rank-math-breadcrumb a:visited,
    .rank-math-breadcrumb a:hover,
    .rank-math-breadcrumb a:focus,
    .woocommerce-breadcrumb a,
    .woocommerce-breadcrumb a:visited,
    .woocommerce-breadcrumb a:hover,
    .woocommerce-breadcrumb a:focus {
    text-decoration: none !important;
    }

    /* Use the store's amber accent for filled WooCommerce rating stars. */
    .woocommerce .star-rating span::before {
			color: #F59E0B !important;
    }

    /* Perfect WooCommerce Brands is moved here by the PHP snippet. The 3:1
    * frame crops the square source image so a horizontal logo reads correctly
    * above the main product image on desktop and mobile. */
    .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    clear: both;
    }

    .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands > a {
    display: block;
    width: clamp(110px, 35%, 130px);
    aspect-ratio: 3 / 1;
    overflow: hidden;
    line-height: 0;
    }

    .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    object-position: center;
    }

    /* Keep the gallery viewport positioned so the zoom trigger can sit on its
     * upper-right edge. */
    .allping-product-grid > .woocommerce-product-gallery > .flex-viewport {
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    }

    .allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li {
    border-radius: 4px;
    overflow: hidden;
    }

    .allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li img {
    border-radius: 4px;
    }

    /* Global WooCommerce sale-badge color. */
    .onsale,
    .woocommerce span.onsale {
			background-color: #DC2626 !important;
			background-image: none !important;
			border-color: #DC2626 !important;
			color: #ffffff !important;
    }

    /* On individual product pages, the PHP snippet places the native sale badge
     * after the review count instead of over the image. */
  body.single-product .woocommerce-product-rating > .onsale.allping-rating-sale-badge,
  body.single-product .woocommerce-product-rating > .onsale.allping-rating-meta-label {
			--p: 6px;
			position: static !important;
			inset: auto !important;
			display: inline-flex !important;
			align-items: center;
			justify-content: center;
			flex: 0 0 auto;
			min-height: 0 !important;
			margin: 0 !important;
			padding: 4px calc(8px + var(--p)) 4px calc(8px + var(--p)) !important;
			border: 0 !important;
			border-radius: 0 !important;
			clip-path: polygon(var(--p) 0, 100% 0, calc(100% - var(--p)) 100%, 0 100%);
			background: #E0F2FE !important;
			color: #075985 !important;
			font-size: 12px !important;
			font-weight: 700;
			line-height: 1.1 !important;
			white-space: nowrap;
			z-index: auto;
    }

    /* Product-page promotional labels: preserve the shared soft-background
     * treatment while giving each label its own semantic color. */
    body.single-product .woocommerce-product-rating > .onsale.allping-rating-sale-badge {
			background: #FEE2E2 !important;
			color: #B91C1C !important;
    }

    body.single-product .woocommerce-product-rating > .onsale.allping-rating-meta-label[data-allping-rating-meta-label="regalo_por_compra"] {
			background: #FEF3C7 !important;
			color: #B45309 !important;
    }

    body.single-product .summary.entry-summary > .woocommerce-product-rating,
    body.single-product .allping-mobile-product-heading > .woocommerce-product-rating {
			display: flex !important;
			align-items: center !important;
			flex-wrap: wrap;
			gap: 6px;
    }

    body.single-product .summary.entry-summary > .woocommerce-product-rating .star-rating,
    body.single-product .summary.entry-summary > .woocommerce-product-rating .woocommerce-review-link,
    body.single-product .allping-mobile-product-heading > .woocommerce-product-rating .star-rating,
    body.single-product .allping-mobile-product-heading > .woocommerce-product-rating .woocommerce-review-link {
			float: none !important;
			margin: 0 !important;
    }

    .allping-product-grid > .woocommerce-product-gallery > .flex-viewport > .woocommerce-product-gallery__trigger {
    position: absolute !important;
    inset: auto !important;
    top: 8px !important;
    right: 8px !important;
    bottom: auto !important;
    left: auto !important;
    margin: 0 !important;
    z-index: 11;
    }

    /* Keep the two purchase actions beside each other in the simple-product
    * purchase form. The current product is sold individually, so its quantity
    * control is hidden by WooCommerce. */
    .allping-product-purchase-column form.cart {
    display: grid;
    grid-template-columns: max-content;
    justify-content: center;
    gap: 10px;
    align-items: stretch;
    }

    .allping-product-purchase-column form.cart .quantity {
    grid-column: 1 / -1;
    float: none;
    margin: 0;
    }

    .single-product .product.sold-individually .allping-product-purchase-column form.cart .quantity {
    display: none;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button,
    .allping-product-purchase-column form.cart .allping-whatsapp-btn {
    width: 100%;
    max-width: 100%;
    min-height: 40px;
    margin: 0;
    float: none;
    box-sizing: border-box;
    display: inline-flex;
    justify-self: stretch;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-align: center;
    white-space: normal;
    font-family: "Plus Jakarta Sans", sans-serif !important;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button {
    grid-column: 1;
    grid-row: 1;
    }

    /* Requested color for the Comprar ahora action. */
    .allping-product-purchase-column form.cart .single_add_to_cart_button,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:visited {
    background-color: #38BDF8 !important;
    background-image: linear-gradient(to right, #1A2980 0%, #26D0CE 51%, #1A2980 100%) !important;
    background-size: 200% auto !important;
    background-position: left center !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 0 20px #eeeeee !important;
    transition: background-position 0.5s ease, color 0.5s ease !important;
    color: #ffffff !important;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button:hover,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:focus,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:active {
    background-color: #38BDF8 !important;
    background-image: linear-gradient(to right, #1A2980 0%, #26D0CE 51%, #1A2980 100%) !important;
    background-size: 200% auto !important;
    background-position: right center !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 0 20px #eeeeee !important;
    color: #ffffff !important;
    }

    .allping-product-purchase-column .allping-cart-icon {
    flex: 0 0 auto;
    display: block;
    width: 16px !important;
    height: 16px !important;
    }

    .allping-product-purchase-column form.cart .allping-whatsapp-btn {
    grid-column: 1;
    grid-row: 2;
    }

    /* Desktop: keep the purchase form aligned with the shared 15px side inset
     * used by the price and payment-methods box, while letting its buttons
     * fill the complete inner form width. */
    @media (min-width: 1201px) {
    .allping-product-purchase-column > form.cart {
    width: calc(100% - 30px) !important;
    max-width: 300px !important;
    padding: 0 !important;
    margin-top: 12px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-content: stretch !important;
    }
    }

    /* WhatsApp brand color for the purchase action, shared by desktop and mobile. */
    .allping-product-purchase-column form.cart .allping-whatsapp-btn,
    .allping-product-purchase-column form.cart .allping-whatsapp-btn:visited {
    background-color: #25D366 !important;
    background-image: linear-gradient(to right, #16A34A 0%, #25D366 51%, #16A34A 100%) !important;
    background-size: 200% auto !important;
    background-position: left center !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 0 20px #eeeeee !important;
    transition: background-position 0.5s ease, color 0.5s ease !important;
    color: #ffffff !important;
    }

    .allping-product-purchase-column form.cart .allping-whatsapp-btn:hover,
    .allping-product-purchase-column form.cart .allping-whatsapp-btn:focus,
    .allping-product-purchase-column form.cart .allping-whatsapp-btn:active {
    background-color: #25D366 !important;
    background-image: linear-gradient(to right, #16A34A 0%, #25D366 51%, #16A34A 100%) !important;
    background-size: 200% auto !important;
    background-position: right center !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 0 20px #eeeeee !important;
    color: #ffffff !important;
    }

    .allping-ws-icon {
    flex: 0 0 auto;
    }

    .allping-whatsapp-label,
    .allping-whatsapp-word {
			display: inline !important;
    }

    /* The existing payment-methods fieldset is appended below the purchase form
    * on desktop, placed below the gallery on tablet, and kept in the summary
    * on mobile. */
    @media (min-width: 1201px) {
    .allping-product-grid > .allping-product-purchase-column {
			background: #ffffff !important;
			border: 1px solid #d1d5db !important;
			border-radius: 8px;
			box-shadow: none !important;
			padding-top: 16px !important;
			box-sizing: border-box;
    }

    .allping-product-purchase-column > .single-product-payments {
			margin-top: 16px;
    }

	/* Desktop: keep the existing trust/shipping section between the price and
	 * the purchase buttons, using the same inner width as those controls. */
	.allping-product-purchase-column > .single-product-extras {
			width: calc(100% - 30px) !important;
			max-width: 300px !important;
			margin: 12px auto 0 !important;
			box-sizing: border-box;
			text-align: left !important;
	}

    /* Desktop-only breadcrumb adjustment: smaller and closer to the header. */
    .rank-math-breadcrumb {
			font-size: 15px !important;
			font-weight: 300 !important;
			line-height: 1.2 !important;
			padding-left: 10px !important;
    }

    .rankmath-bc-wrap {
			margin-top: 8px !important;
    }

    /* Match desktop purchase typography with the mobile version. */
    .allping-product-purchase-column > .price > .woocommerce-Price-amount,
    .allping-product-purchase-column > .price > .woocommerce-Price-amount bdi,
    .allping-product-purchase-column > .price ins .woocommerce-Price-amount,
    .allping-product-purchase-column > .price ins .woocommerce-Price-amount bdi {
			font-weight: 700 !important;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button,
    .allping-product-purchase-column form.cart .allping-whatsapp-btn {
			font-weight: 500 !important;
    }

    /* Desktop-only visual adjustment: white text and icon for Comprar ahora. */
    .allping-product-purchase-column form.cart .single_add_to_cart_button,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:visited,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:hover,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:focus,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:active {
    color: #ffffff !important;
    }
    }

    @media (max-width: 1200px) {
    /* Tablet: use almost the full viewport while preserving a small gutter. */
    body.single-product main > div#product-9470 {
    padding-left: 8px !important;
    padding-right: 8px !important;
    }

    .allping-product-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    }

    .allping-product-grid > .allping-product-purchase-column {
    grid-column: 1 / -1;
    grid-row: 2;
    }
    }

    /* Tablet-wide viewports can report a CSS width above the legacy 1024px
     * cutoff while still
     * being rendered as a tablet. Keep the product content close to both
     * edges in that range as well. */
    @media (min-width: 768px) and (max-width: 1200px) {
    body.single-product main > div[id^="product-"] {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    }

    body.single-product main > div[id^="product-"] > .allping-product-grid {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    }

    body.single-product main > div[id^="product-"] > .allping-product-grid > .woocommerce-product-gallery,
    body.single-product main > div[id^="product-"] > .allping-product-grid > .summary {
    padding-left: 0 !important;
    padding-right: 0 !important;
    }

    /* Tablet only: reduce the separation between the two product columns
     * without changing the desktop or mobile layouts. */
    body.single-product main > div[id^="product-"] > .allping-product-grid {
    gap: 10px;
    }
    }

    /* Tablet: use the same upper-edge logo and right-side action stack as
     * desktop, while keeping the rating metadata and description card intact. */
    @media (min-width: 768px) and (max-width: 1200px) {
    body.single-product .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands {
    position: relative !important;
    inset: auto !important;
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 -28px 0 !important;
    padding: 0 8px 0 0 !important;
    box-sizing: border-box;
    clear: none !important;
    transform: translateY(-10px) !important;
    z-index: 45 !important;
    }

    body.single-product .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands > a {
    display: block !important;
    width: min(116px, 30vw) !important;
    height: auto !important;
    aspect-ratio: 3 / 1;
    overflow: hidden;
    line-height: 0;
    }

    body.single-product .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    object-position: center;
    }

    body.single-product .allping-product-image-actions {
    position: absolute !important;
    top: 45px !important;
    right: 8px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 40 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 35px !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
    transform: none !important;
    visibility: visible !important;
    }

    body.single-product .allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] {
    position: static !important;
    inset: auto !important;
    display: block !important;
    flex: 0 0 35px !important;
    width: 35px !important;
    height: 35px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    }

    body.single-product .allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .stw-wishlist-button-anchor,
    body.single-product .allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button,
    body.single-product .allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button {
    width: 35px !important;
    height: 35px !important;
    min-width: 35px !important;
    min-height: 35px !important;
    margin: 0 !important;
    box-sizing: border-box;
    }

    body.single-product .allping-product-image-actions > [data-allping-product-share] {
    position: relative !important;
    inset: auto !important;
    display: flex !important;
    flex: 0 0 auto !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 35px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    visibility: visible !important;
    transform: none !important;
    }

    body.single-product .allping-product-image-actions > [data-allping-product-share] > .allping-product-share__button {
    position: static !important;
    flex: 0 0 35px !important;
    width: 35px !important;
    height: 35px !important;
    min-width: 35px !important;
    min-height: 35px !important;
    margin: 0 !important;
    }

    body.single-product .summary.entry-summary > .woocommerce-product-rating {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    gap: 6px !important;
    margin-bottom: 24px !important;
    }

    body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-sale-badge,
    body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-meta-label {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex: 0 0 auto !important;
    position: static !important;
    }

    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description {
    box-sizing: border-box !important;
    width: 100% !important;
    margin-top: 16px !important;
    margin-bottom: 18px !important;
    padding: 14px 16px !important;
    background: linear-gradient(135deg, #FFFFFF 0%, #F1F8FD 100%) !important;
    border: 0 !important;
    border-radius: 5px !important;
    }
    }

    @media (max-width: 767px) {
    body.single-product {
    padding-bottom: 86px;
    }

    /* Keep the Rank Math breadcrumb aligned with and close to the mobile title. */
    .rank-math-breadcrumb {
    margin: 0 !important;
    padding: 0 0 0 10.4px !important;
    font-size: clamp(13px, calc(5vw - 5px), 17px);
    line-height: 1.1;
    }

    .rank-math-breadcrumb p {
    margin: 0 !important;
    }

    /* Remove the theme's extra vertical gap before the mobile product title. */
    .rankmath-bc-wrap {
			margin-top: 8px !important;
			margin-bottom: 0 !important;
    }

    .product-title.product-above + .entry-content-wrap {
    padding-top: 7px !important;
    }

    .allping-product-grid {
    display: block;
    padding-bottom: 86px;
    }

    /* On mobile, align the brand with the offer and zoom controls on the
     * image viewport's upper edge. */
    .allping-product-grid > .woocommerce-product-gallery {
			position: relative;
			/* Match the full-width product container by compensating for the
			 * theme's 12px mobile side inset. */
			width: calc(100% + 24px) !important;
			margin-left: -12px;
			margin-right: -12px;
			margin-top: 3px;
			padding-bottom: 0 !important;
    }

    /* Keep the mobile main image in the 8:7 frame and make every
     * layer of the gallery use the full available width. */
    .allping-product-grid > .woocommerce-product-gallery > .flex-viewport {
			width: 100% !important;
			aspect-ratio: 8 / 7;
			height: auto !important;
    }

    /* Do not override the wrapper or slide widths: FlexSlider sets those
     * dynamically (for example, 600% for six images). Only the slide link
     * needs to occupy its own calculated slide width. */
    .allping-product-grid > .woocommerce-product-gallery > .flex-viewport .woocommerce-product-gallery__image > a {
			display: block;
			width: 100% !important;
    }

    .allping-product-grid > .woocommerce-product-gallery > .flex-viewport .woocommerce-product-gallery__image img {
			display: block;
			width: 100% !important;
			height: auto !important;
			aspect-ratio: 8 / 7;
			object-fit: cover;
			object-position: center;
    }

    /* Keep the native thumbnail markup available to WooCommerce, but hide the
     * secondary gallery on mobile without changing the main image frame. */
    .allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs {
			display: none !important;
			flex-wrap: wrap;
			justify-content: center;
			gap: 4px;
			width: 100% !important;
			margin: 8px auto 0 !important;
			padding: 0 !important;
    }

    .allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li {
			flex: 0 0 clamp(44px, 13vw, 54px);
			width: clamp(44px, 13vw, 54px) !important;
			max-width: clamp(44px, 13vw, 54px);
			float: none !important;
			margin: 0 !important;
			list-style: none;
			box-sizing: border-box;
    }

    .allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li img {
			display: block;
			width: 100% !important;
			height: auto !important;
			aspect-ratio: 1 / 1;
			object-fit: contain;
			object-position: center;
			background-color: #f8fafc;
    }

    /* Mobile brand placement: use the same edge-mounted layout as desktop.
     * The negative bottom margin lets the logo straddle the gallery's upper
     * border without creating extra space or pushing the image down. */
    .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands {
    position: relative !important;
    inset: auto !important;
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 -22px 0 !important;
    padding: 0 8px 0 0 !important;
    box-sizing: border-box;
    clear: none !important;
    transform: translateY(-6px) !important;
    z-index: 45 !important;
    }

    .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands > a {
    display: block !important;
    width: min(116px, 30vw) !important;
    height: auto !important;
    aspect-ratio: 3 / 1;
    overflow: hidden;
    line-height: 0;
    }

    .allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    object-position: center;
    }

    .allping-mobile-product-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    }

    .allping-mobile-product-heading > .product_title,
    .allping-mobile-product-heading > .entry-title {
    margin: 0 0 4px;
    font-size: clamp(15px, calc(5vw - 3px), 19px);
    line-height: 1.08;
    letter-spacing: -0.2px;
    }

    .allping-mobile-product-heading > .woocommerce-product-rating {
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px;
    line-height: 1 !important;
    }

    /* Reduce the internal gap created by the star-rating element itself. */
    .allping-mobile-product-heading .star-rating {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    float: none !important;
    }

    /* Make the review count link smaller without changing the stars. */
    .allping-mobile-product-heading .woocommerce-review-link {
    font-size: 14px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
    margin: 0 !important;
    }

    /* On mobile, the PHP layout moves the existing brand into the sticky
    * purchase column so it can occupy the empty space beside the price. */
    .allping-product-purchase-column > .pwb-single-product-brands {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute !important;
    top: 6px !important;
    right: 10px !important;
    left: auto !important;
    z-index: 3;
    width: auto !important;
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    clear: none;
    transform: none;
    }

    .allping-product-purchase-column > .pwb-single-product-brands > a {
    display: block;
    width: clamp(90px, 30vw, 120px);
    aspect-ratio: 3 / 1;
    overflow: hidden;
    line-height: 0;
    }

    .allping-product-purchase-column > .pwb-single-product-brands img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    }

    .allping-product-purchase-column {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    width: 100%;
    max-width: none;
    margin: 0;
	    padding: 5px 10px 0;
    padding-bottom: calc(2px + env(safe-area-inset-bottom, 0px)) !important;
			box-sizing: border-box;
			background: #ffffff !important;
			background-color: #ffffff !important;
			background-image: none !important;
			border-top: 1px solid #d1d5db !important;
			box-shadow: none !important;
    }

    /* Payment methods remain in the summary on mobile, never in the sticky bar. */
    .allping-product-purchase-column > .single-product-payments {
    display: none !important;
    }

    .allping-product-purchase-column > .price {
    margin-top: 0;
    margin-bottom: 4px;
    font-size: 16px;
    line-height: 1.2;
    text-align: left !important;
    min-height: 45.5px;
    box-sizing: border-box;
    }

    /* On sale products, place the original price above the current price. */
    .allping-product-purchase-column > .price del {
    display: block !important;
    font-size: 16.5px !important;
    font-weight: 300 !important;
    }

    .allping-product-purchase-column > .price ins,
    .allping-product-purchase-column > .price .woocommerce-price-suffix {
    display: inline !important;
    }

    .allping-product-purchase-column > .price .woocommerce-price-suffix {
    font-size: 15px !important;
    }

    /* Keep regular (non-sale) prices as prominent as sale prices. */
    .allping-product-purchase-column > .price > .woocommerce-Price-amount,
    .allping-product-purchase-column > .price > .woocommerce-Price-amount bdi {
    font-weight: 700 !important;
    }

    .allping-product-purchase-column > .price,
    .allping-product-purchase-column > form.cart {
    max-width: none;
    width: 100%;
    }

    .allping-product-purchase-column form.cart {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 6px;
    margin-bottom: 0 !important;
    }

    /* WooCommerce's clearfix pseudo-elements create an empty grid row below
    * the buttons. They are unnecessary here because the mobile form is a grid. */
    .allping-product-purchase-column form.cart::before,
    .allping-product-purchase-column form.cart::after {
    display: none !important;
    }

    .allping-product-purchase-column form.cart .quantity {
    display: none;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button,
    .allping-product-purchase-column form.cart .allping-whatsapp-btn {
			grid-row: 1;
			min-width: 0;
				min-height: 36px;
				padding: 7px 6px;
				font-size: 14px !important;
				font-weight: 600 !important;
				line-height: 1.1;
				white-space: nowrap;
    }

    /* Keep the blue gradient on mobile and use white text for Comprar ahora. */
    .allping-product-purchase-column form.cart .single_add_to_cart_button,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:visited,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:hover,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:focus,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:active {
			background-color: #38BDF8 !important;
				background-image: linear-gradient(to right, #1A2980 0%, #26D0CE 51%, #1A2980 100%) !important;
				background-size: 200% auto !important;
				background-position: left center !important;
				border: none !important;
				border-radius: 10px !important;
				box-shadow: 0 0 20px #eeeeee !important;
				transition: background-position 0.5s ease, color 0.5s ease !important;
			color: #ffffff !important;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button:hover,
    .allping-product-purchase-column form.cart .single_add_to_cart_button:focus {
			background-position: right center !important;
			color: #ffffff !important;
    }

    .allping-product-purchase-column form.cart .single_add_to_cart_button {
    grid-column: 1;
    }

    .allping-product-purchase-column form.cart .allping-whatsapp-btn {
    grid-column: 2;
    }

    .allping-product-purchase-column form.cart .allping-ws-icon {
			width: 21px !important;
			height: 21px !important;
			order: 2;
    }

    .allping-product-purchase-column form.cart .allping-cart-icon {
			width: 20px !important;
			height: 20px !important;
    }

    .allping-product-purchase-column form.cart .allping-whatsapp-word {
			display: none !important;
    }

    .allping-product-purchase-column form.cart .allping-whatsapp-label {
			display: inline !important;
			order: 1;
    }

    .allping-product-purchase-column form.cart .allping-whatsapp-btn {
			gap: 4px;
    }
    }

    /* Compact the single-product title on desktop without changing mobile. */
    @media (min-width: 1201px) {
  body.single-product .summary.entry-summary > h1.product_title.entry-title,
  body.single-product .summary.entry-summary > h1.entry-title {
  margin-top: 1px !important;
  margin-bottom: 5px !important;
  font-size: 22px !important;
  line-height: 26px !important;
    letter-spacing: -0.1px;
    }
    }

    /* Keep the tablet product title compact without changing mobile. */
    @media (min-width: 768px) and (max-width: 1200px) {
    body.single-product .summary.entry-summary > h1.product_title.entry-title,
    body.single-product .summary.entry-summary > h1.entry-title {
    font-size: 20px !important;
    line-height: 26px !important;
    letter-spacing: -0.1px;
    }

    /* Tablet typography: reduce the valuation and review counter without
     * changing the desktop or mobile versions. */
    body.single-product .summary.entry-summary > .woocommerce-product-rating,
    body.single-product .summary.entry-summary > .woocommerce-product-rating .rating,
    body.single-product .summary.entry-summary > .woocommerce-product-rating .woocommerce-review-link,
    body.single-product .summary.entry-summary > .woocommerce-product-rating .woocommerce-review-link .count {
    font-size: 15px !important;
    }
    }

    /* Remove the underline from the review link on tablet and desktop. */
    @media (min-width: 768px) {
    body.single-product .summary.entry-summary > .woocommerce-product-rating .woocommerce-review-link {
    text-decoration: none !important;
    }
    }

    /* Desktop: match the mobile Comprar ahora cart-icon size without changing
     * the button dimensions. */
    @media (min-width: 1201px) {
			.allping-product-purchase-column form.cart .allping-cart-icon {
				width: 20px !important;
				height: 20px !important;
			}
    }

    /* Give the review count a little more breathing room. */
    body.single-product .summary.entry-summary > .woocommerce-product-rating .woocommerce-review-link {
			letter-spacing: 1px;
    }

    /* Separate the rating from the product details without turning the description
     * into a colored card. */
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description {
			box-sizing: border-box;
			margin-top: 16px !important;
			margin-bottom: 18px !important;
			padding: 14px 16px !important;
			background: linear-gradient(135deg, #FFFFFF 0%, #F1F8FD 100%) !important;
			border: 0 !important;
			border-radius: 5px !important;
			position: relative;
    }

    /* The separator is a standalone line, not the border of the description. */
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description::before {
			content: "";
			position: absolute;
      top: -10px;
			left: 0;
			right: 0;
			height: 1px;
			background: #D1D5DB;
    }

    /* Match the archive-page separators with a softer neutral gray. */
    body.single-product .allping-product-purchase-column > .single-product-payments {
			border-color: #D1D5DB !important;
    }

    /* Desktop/tablet: balance the separator evenly between the rating and the
     * green product-details block without changing the mobile spacing. */
    @media (min-width: 768px) {
			body.single-product .summary.entry-summary > .woocommerce-product-rating {
				margin-bottom: 24px !important;
			}

		body.single-product .summary.entry-summary > .woocommerce-product-details__short-description::before {
				top: -10px;
			}
    }

    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description,
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description p,
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description li,
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description strong,
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description b {
			font-family: Inter, sans-serif !important;
			font-size: 15px !important;
			font-weight: 300 !important;
			line-height: 24px !important;
			color: #000000 !important;
	    }

    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description p {
			margin: 0 0 12px !important;
    }

    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description p:last-child {
			margin-bottom: 0 !important;
    }

    /* Tablet only: reduce the description card's lateral padding while
     * retaining a visible inner gutter. */
    @media (min-width: 768px) and (max-width: 1200px) {
    body.single-product .summary.entry-summary > .woocommerce-product-details__short-description {
    padding: 10px 4px 10px 7px !important;
    }
    }

    /* Final placement and sizing for the image actions. Desktop and mobile use
     * the same visual stack, with separate responsive positions. */
    @media (min-width: 1201px) {
			.allping-product-image-actions {
				position: absolute !important;
				top: 45px !important;
				right: 8px !important;
				bottom: auto !important;
				left: auto !important;
				z-index: 40 !important;
				display: flex !important;
				flex-direction: column !important;
				align-items: center !important;
				justify-content: flex-start !important;
				gap: 8px !important;
				width: max-content !important;
				max-width: calc(100% - 16px);
				margin: 0 !important;
				padding: 0 !important;
				box-sizing: border-box;
				transform: none !important;
				visibility: visible !important;
			}

			/* Keep the brand outside the image, attached to its upper edge. */
			.allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands {
				position: relative !important;
				inset: auto !important;
				display: flex !important;
				flex: 0 0 auto !important;
				align-items: center !important;
				justify-content: flex-end !important;
				width: 100% !important;
				height: auto !important;
				min-height: 0 !important;
				margin: 0 0 -28px 0 !important;
				padding: 0 8px 0 0 !important;
				box-sizing: border-box;
				clear: none !important;
				transform: translateY(-10px) !important;
				z-index: 45 !important;
			}

			.allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands > a {
				display: block !important;
				width: min(116px, 30vw) !important;
				height: auto !important;
				aspect-ratio: 3 / 1;
				overflow: hidden;
				line-height: 0;
			}

			.allping-product-grid > .woocommerce-product-gallery > .pwb-single-product-brands img {
				display: block !important;
				width: 100% !important;
				height: 100% !important;
				max-width: none !important;
				object-fit: cover;
				object-position: center;
			}

			/* The wishlist and share blocks become one vertical action stack. */
			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] {
				position: static !important;
				inset: auto !important;
				display: block !important;
				flex: 0 0 35px !important;
				width: 35px !important;
				height: 35px !important;
				margin: 0 !important;
				padding: 0 !important;
				transform: none !important;
			}

			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .stw-wishlist-button-anchor,
			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button {
				width: 35px !important;
				height: 35px !important;
				min-width: 35px !important;
				min-height: 35px !important;
				margin: 0 !important;
				box-sizing: border-box;
			}

			.allping-product-image-actions > [data-allping-product-share] {
				position: relative !important;
				inset: auto !important;
				display: flex !important;
				flex: 0 0 auto !important;
				flex-direction: column !important;
				align-items: center !important;
				justify-content: flex-start !important;
				gap: 8px !important;
				width: 35px !important;
				height: auto !important;
				margin: 0 !important;
				padding: 0 !important;
				line-height: 1 !important;
				visibility: visible !important;
				transform: none !important;
			}

			.allping-product-image-actions > [data-allping-product-share] > .allping-product-share__button {
				position: static;
				flex: 0 0 35px;
				width: 35px !important;
				height: 35px !important;
				min-width: 35px !important;
				min-height: 35px !important;
				margin: 0 !important;
			}

			.allping-product-image-actions > [data-allping-product-share] > .allping-product-share__menu {
				top: calc(100% + 8px);
				right: 0;
			}
    }

    /* Mobile: keep all three image actions together at the gallery's upper
     * right edge, matching the desktop action stack. */
    @media (max-width: 767px) {
			.allping-product-image-actions {
				position: absolute !important;
				/* Leave the upper edge clear for the brand mark. */
				top: 45px !important;
				right: 8px !important;
				bottom: auto !important;
				left: auto !important;
				z-index: 40 !important;
				display: flex !important;
				flex-direction: column !important;
				align-items: center !important;
				justify-content: flex-start !important;
				gap: 8px !important;
				width: 35px !important;
				height: auto !important;
				max-width: none !important;
				margin: 0 !important;
				padding: 0 !important;
				box-sizing: border-box;
				transform: none !important;
				visibility: visible !important;
			}

			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] {
				position: static !important;
				inset: auto !important;
				display: block !important;
				flex: 0 0 35px !important;
				width: 35px !important;
				height: 35px !important;
				margin: 0 !important;
				padding: 0 !important;
				transform: none !important;
			}

			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .stw-wishlist-button-anchor,
			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button,
			.allping-product-image-actions > [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button {
				width: 35px !important;
				height: 35px !important;
				min-width: 35px !important;
				min-height: 35px !important;
				margin: 0 !important;
				box-sizing: border-box;
			}

			.allping-product-image-actions > [data-allping-product-share] {
				position: relative !important;
				inset: auto !important;
				display: flex !important;
				flex: 0 0 auto !important;
				flex-direction: column !important;
				align-items: center !important;
				justify-content: flex-start !important;
				gap: 8px !important;
				width: 35px !important;
				height: auto !important;
				margin: 0 !important;
				padding: 0 !important;
				line-height: 1 !important;
				visibility: visible !important;
				transform: none !important;
			}

			.allping-product-image-actions > [data-allping-product-share] > .allping-product-share__button {
				position: static;
				flex: 0 0 35px;
				width: 35px !important;
				height: 35px !important;
				min-width: 35px !important;
				min-height: 35px !important;
				margin: 0 !important;
			}

			.allping-product-image-actions > [data-allping-product-share] > .allping-product-share__menu {
				top: calc(100% + 8px);
				right: 0;
			}
    }

    /* Product-page action colors: black at rest and the same blue used by the
     * native wishlist hover state. This is intentionally product-scoped so archive
     * and category-page wishlist buttons keep their existing appearance. */
    body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button,
    body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button,
    body.single-product [data-allping-product-share] > .allping-product-share__button {
			color: #000000 !important;
    }

    body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button:hover,
    body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button:focus-visible,
    body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button:hover,
    body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button:focus-visible,
    body.single-product [data-allping-product-share] > .allping-product-share__button:hover,
    body.single-product [data-allping-product-share] > .allping-product-share__button:focus-visible {
			color: #0064D2 !important;
    }

    /* Match the desktop action treatment on the mobile product page without
     * changing wishlist buttons in archives or category cards. */
    @media (max-width: 767px) {
			body.single-product [id^="stw-button-placement-top_image_left-"] .stw-wishlist-button-anchor,
			body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button,
			body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button {
				box-sizing: border-box !important;
				display: inline-flex !important;
				align-items: center !important;
				justify-content: center !important;
				width: 35px !important;
				min-width: 35px !important;
				height: 35px !important;
				min-height: 35px !important;
				margin: 0 !important;
				padding: 0 !important;
				border: 0 !important;
				border-radius: 50% !important;
				background: #FFFFFF !important;
				color: #000000 !important;
				box-shadow: 0 2px 6px rgba(10, 25, 48, 0.16) !important;
				transition: color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
			}

			body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button:hover,
			body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-button:focus-visible,
			body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button:hover,
			body.single-product [id^="stw-button-placement-top_image_left-"] .save-to-wishlist-cart-button:focus-visible {
				background: #FFFFFF !important;
				color: #0064D2 !important;
				transform: scale(1.05) !important;
			}

			body.single-product .allping-mobile-product-heading [data-allping-product-share] {
				gap: 8px !important;
			}
    }

    /* Use true black for the product name in both its desktop and mobile hosts. */
  body.single-product .summary.entry-summary > h1.product_title.entry-title,
  body.single-product .summary.entry-summary > h1.entry-title,
  body.single-product .allping-mobile-product-heading > h1.product_title.entry-title,
  body.single-product .allping-mobile-product-heading > h1.entry-title {
		color: #000000 !important;
  }

/* Payment-card typography: keep the existing SVG artwork and layout intact. */
body.single-product fieldset.single-product-payments > legend {
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 22px !important;
	color: #000000 !important;
	opacity: 0.75 !important;
}

body.single-product .allping-product-grid fieldset.single-product-payments > ul > li.single-product-payments-custom-02:first-child::before,
body.single-product .allping-product-grid fieldset.single-product-payments > ul > li.single-product-payments-custom-03:nth-child(2):last-child::before,
body.single-product fieldset.single-product-payments > ul > li:first-child::before,
body.single-product fieldset.single-product-payments > ul > li:nth-child(2):last-child::before {
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 22px !important;
	color: #000000 !important;
	opacity: 0.75 !important;
}

/* --------------------------------------------------------------------------
 * Related-product cards on single-product pages.
 * Reuse the archive card language without broadening archive-only selectors.
 * -------------------------------------------------------------------------- */
body.single-product .allping-product-grid > .related.products > h2,
body.single-product .allping-product-grid > .upsells.products > h2 {
	font-size: 22px !important;
	font-weight: 600 !important;
}

body.single-product .related.products ul.products:not(.products-list-view),
body.single-product .upsells.products ul.products:not(.products-list-view) {
	column-gap: 19px;
	row-gap: 24px;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product {
	box-sizing: border-box;
	position: relative;
	padding: 0 !important;
	background: #ffffff !important;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.14);
	overflow: hidden;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product:hover,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product:hover {
	box-shadow: 0 5px 15px rgba(15, 23, 42, 0.20);
}

body.single-product .related.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link {
	box-sizing: border-box;
	display: block;
	position: static !important;
	width: 100%;
	margin: 0;
	padding: 10px 0;
	background: #F7F7F7 !important;
	overflow: visible;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link > img,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link > img {
	display: block;
	width: 100%;
	height: auto;
	background: transparent;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product > .product-details,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product > .product-details {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: 36px auto auto;
	align-content: start;
	min-width: 0;
	padding: 10px 8px !important;
	font-family: Inter, sans-serif !important;
	color: #000000 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .star-rating,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .star-rating {
	grid-column: 1;
	grid-row: 1;
	align-self: center;
	justify-self: start;
	float: none !important;
	margin: 0 0 2px !important;
	font-size: 16px !important;
	line-height: 1 !important;
	color: #002245 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .star-rating::before,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .star-rating::before {
	color: #CBD5E0 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .star-rating > span::before,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .star-rating > span::before {
	color: #F59E0B !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop {
	grid-column: 2;
	grid-row: 1;
	display: flex !important;
	align-items: flex-start;
	justify-content: flex-end;
	align-self: center;
	justify-self: end;
	width: auto;
	min-width: 0;
	height: 36px;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span,
body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span > a,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span > a {
	display: flex !important;
	align-items: center;
	justify-content: flex-end;
	width: auto;
	max-width: 100%;
	height: 100%;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop img,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop img {
	display: block;
	width: 72px !important;
	height: 36px !important;
	max-width: 100%;
	object-fit: cover;
	object-position: center;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title {
	grid-column: 1 / -1;
	grid-row: 2;
	align-self: start;
	width: 100%;
	min-width: 0;
	margin: 0 0 7px !important;
	padding: 0 !important;
	font-family: Inter, sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 19px !important;
	text-align: left !important;
	color: #000000 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title a,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title a {
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title a:hover,
body.single-product .related.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title a:focus-visible,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title a:hover,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title a:focus-visible {
	color: #0064D2 !important;
	-webkit-text-fill-color: #0064D2 !important;
	background-image: none !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price {
	grid-column: 1 / -1;
	grid-row: 3;
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 6px;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	font-family: Inter, sans-serif !important;
	font-size: 23px !important;
	line-height: 30px !important;
	margin-bottom: 5px !important;
	text-align: left;
	color: #000000 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .woocommerce-Price-amount,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .woocommerce-Price-amount bdi,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price ins,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price ins .woocommerce-Price-amount,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price ins .woocommerce-Price-amount bdi,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .woocommerce-Price-amount,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .woocommerce-Price-amount bdi,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price ins,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price ins .woocommerce-Price-amount,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price ins .woocommerce-Price-amount bdi {
	font-weight: 600 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price .woocommerce-Price-currencySymbol,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price .woocommerce-Price-currencySymbol {
	display: inline-block;
	margin-right: 2px;
	font-weight: 300 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price .allping-price-decimals,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price .allping-price-decimals {
	display: inline-block;
	font-size: 55% !important;
	font-weight: inherit;
	line-height: 1 !important;
	vertical-align: super;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price del,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price del .woocommerce-Price-amount,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price del .woocommerce-Price-amount bdi,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price del,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price del .woocommerce-Price-amount,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price del .woocommerce-Price-amount bdi {
	font-weight: 400 !important;
	opacity: 0.5;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price .woocommerce-price-suffix,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price .woocommerce-price-suffix {
	display: block;
	order: 3 !important;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 !important;
	padding-left: 6px !important;
	font-size: 11px !important;
	font-weight: 400 !important;
	line-height: 14px !important;
	color: #000000 !important;
	opacity: 0.75;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price:has(> del),
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price:has(> del) {
	flex-direction: column !important;
	align-items: flex-start !important;
	row-gap: 0;
}

/* Product-page filters wrap sale prices differently from archive prices.
 * Flatten those wrappers so the visual order matches the archive cards:
 * original price, current price + savings badge, then tax suffix. */
body.single-product .related.products ul.products:not(.products-list-view) li.product .price:has(> .allping-current-price-row),
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price:has(> .allping-current-price-row) {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 6px;
	row-gap: 0;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .allping-price-top-row,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .allping-price-top-row,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row {
	display: contents !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row > del,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row > del {
	display: block !important;
	order: 1 !important;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 19px !important;
	opacity: 0.5;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price:has(> .allping-current-price-row) > del,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price:has(> .allping-current-price-row) > del {
	display: block !important;
	order: 1 !important;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 19px !important;
	opacity: 0.5;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row > ins,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row > ins {
	display: block !important;
	order: 2 !important;
	flex: 0 0 auto;
	width: auto;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .allping-price-top-row > .allping-savings-badge,
body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row > .allping-savings-badge,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .allping-price-top-row > .allping-savings-badge,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .allping-current-price-row > .allping-savings-badge {
	order: 3 !important;
	display: inline-flex !important;
	align-items: center;
	box-sizing: border-box;
	height: 22px;
	min-height: 0;
	padding: 0 9px 0 4px !important;
	background-color: #D31027 !important;
	background-image: linear-gradient(to right, #D31027 0%, #EA384D 51%, #D31027 100%) !important;
	background-size: 200% auto !important;
	background-position: left center !important;
	flex: 0 0 auto;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-family: Inter, sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 22px !important;
	white-space: nowrap;
	vertical-align: middle;
	border-radius: 0;
	clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .price > .woocommerce-price-suffix,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price > .woocommerce-price-suffix {
	order: 4 !important;
	flex: 0 0 100% !important;
	width: 100%;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link > span.onsale,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link > span.onsale,
body.single-product .related.products ul.products:not(.products-list-view) li.product.sale:not(:has(> a.woocommerce-loop-image-link > span.onsale)) > a.woocommerce-loop-image-link::before,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product.sale:not(:has(> a.woocommerce-loop-image-link > span.onsale)) > a.woocommerce-loop-image-link::before {
	top: 10px !important;
	left: -48px !important;
	right: auto !important;
	bottom: auto !important;
	margin: 0 !important;
	padding: 8px 45px !important;
	background-color: #D31027 !important;
	background-image: linear-gradient(to right, #D31027 0%, #EA384D 51%, #D31027 100%) !important;
	background-size: 200% auto !important;
	background-position: left center !important;
	color: #ffffff !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-transform: none !important;
	letter-spacing: 1px !important;
	white-space: nowrap !important;
	border-radius: 0 !important;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3) !important;
	transform-origin: center !important;
	transform: rotate(-45deg) !important;
	z-index: 10 !important;
}

/* The custom recommendation loop can omit WooCommerce's span.onsale. In that
 * case render the same visual ribbon from the product's native sale class. */
body.single-product .related.products ul.products:not(.products-list-view) li.product.sale:not(:has(> a.woocommerce-loop-image-link > span.onsale)) > a.woocommerce-loop-image-link::before,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product.sale:not(:has(> a.woocommerce-loop-image-link > span.onsale)) > a.woocommerce-loop-image-link::before {
	content: "¡Oferta!" !important;
	position: absolute !important;
	display: block !important;
}

body.single-product .related.products ul.products:not(.products-list-view) li.product .product-action-wrap,
body.single-product .upsells.products ul.products:not(.products-list-view) li.product .product-action-wrap {
	display: none !important;
}

@media (min-width: 1201px) {
	body.single-product .related.products ul.products:not(.products-list-view) li.product .price .woocommerce-price-suffix,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price .woocommerce-price-suffix {
		font-size: 13px !important;
	}
}

@media (min-width: 768px) and (max-width: 1200px) {
	body.single-product .related.products ul.products:not(.products-list-view),
	body.single-product .upsells.products ul.products:not(.products-list-view) {
		column-gap: 16px;
		row-gap: 20px;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product > .product-details,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product > .product-details {
		grid-template-rows: 32px auto auto;
		padding: 0 10px 10px !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title {
		font-size: 15px !important;
		line-height: 22px !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .price,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price {
		font-size: 17px !important;
		line-height: 26px !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop {
		height: 32px;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop img,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop img {
		width: 64px !important;
		height: 32px !important;
	}
}

@media (max-width: 767px) {
	body.single-product .related.products ul.products:not(.products-list-view),
	body.single-product .upsells.products ul.products:not(.products-list-view) {
		column-gap: 8px;
		row-gap: 8px;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product {
		/* Let the gray image canvas reach the card's inner border. The archive
		 * cards can keep their own mobile inset, but these single-product cards
		 * were exposing the white card background around the image. */
		padding: 0 !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product > .product-details,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product > .product-details {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: 32px auto auto;
		align-content: start;
		padding: 2px 8px 10px !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .star-rating,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .star-rating {
		grid-column: 1;
		grid-row: 1;
		align-self: center;
		justify-self: start;
		float: none !important;
		margin: 0 0 2px !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop {
		grid-column: 2;
		grid-row: 1;
		display: flex !important;
		align-items: flex-start;
		justify-content: flex-end;
		align-self: center;
		justify-self: end;
		width: auto;
		min-width: 0;
		height: 32px;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span,
	body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span > a,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop > span > a {
		display: flex !important;
		align-items: center;
		justify-content: flex-end;
		width: auto;
		max-width: 100%;
		height: 100%;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop img,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .pwb-brands-in-loop img {
		display: block;
		width: 64px !important;
		height: 32px !important;
		max-width: 100%;
		object-fit: cover;
		object-position: center;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .woocommerce-loop-product__title {
		grid-column: 1 / -1;
		grid-row: 2;
		align-self: start;
		width: 100%;
		min-width: 0;
		margin: 0 0 7px !important;
		padding: 0 !important;
		font-size: 13px !important;
		line-height: 19px !important;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product .price,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product .price {
		grid-column: 1 / -1;
		grid-row: 3;
		width: 100%;
		padding-right: 0 !important;
		font-size: 16px !important;
		line-height: 24px !important;
		text-align: left;
	}

	body.single-product .related.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link > span.onsale,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product > a.woocommerce-loop-image-link > span.onsale,
	body.single-product .related.products ul.products:not(.products-list-view) li.product.sale:not(:has(> a.woocommerce-loop-image-link > span.onsale)) > a.woocommerce-loop-image-link::before,
	body.single-product .upsells.products ul.products:not(.products-list-view) li.product.sale:not(:has(> a.woocommerce-loop-image-link > span.onsale)) > a.woocommerce-loop-image-link::before {
		top: 7px !important;
		left: -43px !important;
		padding: 6px 40px !important;
		font-size: 11px !important;
	}
}

/* Desktop: separate the main purchase card from the payment-methods card. */
@media (min-width: 1201px) {
	/* The aside becomes the transparent column that holds the two cards. */
	body.single-product .allping-product-grid > .allping-product-purchase-column {
		align-items: stretch !important;
		gap: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	/* Main card: price, trust section and purchase buttons. */
	body.single-product .allping-product-purchase-column > .allping-purchase-main-box {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		width: 100% !important;
		box-sizing: border-box !important;
		padding: 16px 0 6px !important;
		background: #ffffff !important;
		border: 1px solid #d1d5db !important;
		border-radius: 8px !important;
		box-shadow: none !important;
	}

	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > .price,
	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > form.cart,
	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > .single-product-extras {
		width: calc(100% - 30px) !important;
		max-width: 300px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		box-sizing: border-box !important;
	}

	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > form.cart {
		padding: 0 !important;
		margin-top: 10px !important;
		margin-bottom: 0 !important;
		grid-template-columns: minmax(0, 1fr) !important;
		justify-content: stretch !important;
	}

	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > .single-product-extras {
		margin-top: 12px !important;
		margin-bottom: 0 !important;
		text-align: left !important;
	}

	/* Remove the theme's larger trailing list margin while preserving a small
	 * breathing room before the purchase buttons. */
	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > .single-product-extras > ul {
		margin-bottom: 8px !important;
	}

	/* Payment card: a sibling of the main card, with its own border and spacing. */
	body.single-product .allping-product-purchase-column > .single-product-payments {
		align-self: stretch !important;
		width: 100% !important;
		max-width: none !important;
		margin: 12px 0 0 !important;
		box-sizing: border-box !important;
		padding: 14px 15px 16px !important;
		background: #ffffff !important;
		border: 1px solid #d1d5db !important;
		border-radius: 8px !important;
		box-shadow: none !important;
	}

	/* The main-card price needs the same desktop treatment it had as an aside
	 * direct child before the grouping wrapper was introduced. */
	body.single-product .allping-purchase-main-box > .price {
		display: flex !important;
		flex-wrap: wrap;
		align-items: baseline;
		column-gap: 6px;
		margin: 0 !important;
		padding: 0 !important;
		font-family: Inter, sans-serif !important;
		font-size: 20px !important;
		line-height: 30px !important;
		text-align: left !important;
		color: #000000 !important;
	}

	body.single-product .allping-purchase-main-box > .price,
	body.single-product .allping-purchase-main-box > .price * {
		color: #000000 !important;
	}

	body.single-product .allping-purchase-main-box > .price > .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price > .woocommerce-Price-amount bdi,
	body.single-product .allping-purchase-main-box > .price ins,
	body.single-product .allping-purchase-main-box > .price ins .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price ins .woocommerce-Price-amount bdi {
		font-weight: 600 !important;
	}

	body.single-product .allping-purchase-main-box > .price .woocommerce-Price-currencySymbol {
		display: inline-block;
		margin-right: 2px;
		font-weight: 300 !important;
	}

	body.single-product .allping-purchase-main-box > .price .allping-price-decimals {
		display: inline-block;
		font-size: 55% !important;
		font-weight: inherit;
		line-height: 1 !important;
		vertical-align: super;
	}

	body.single-product .allping-purchase-main-box > .price .woocommerce-price-suffix {
		display: block !important;
		order: 3 !important;
		flex: 0 0 100%;
		width: 100%;
		margin: 0 !important;
		padding: 0 0 0 6px !important;
		font-size: 12px !important;
		font-weight: 400 !important;
		line-height: 14px !important;
		color: #000000 !important;
		opacity: 0.75;
	}

	body.single-product .allping-purchase-main-box > .price > ins {
		display: block !important;
		order: 1 !important;
		flex: 0 0 auto;
	}

	body.single-product .allping-purchase-main-box > .price > del,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > del {
		display: block !important;
		flex: 0 0 auto;
		margin: 0 !important;
		padding: 0 !important;
		font-size: 20px !important;
		font-weight: 400 !important;
		line-height: 30px !important;
		opacity: 0.5;
	}

	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins .woocommerce-Price-amount bdi,
	body.single-product .allping-purchase-main-box > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount bdi {
		font-size: 36px !important;
		line-height: 46px !important;
	}

	body.single-product .allping-purchase-main-box > .price:has(> .allping-current-price-row) {
		flex-direction: column !important;
		align-items: flex-start !important;
		row-gap: 0 !important;
		column-gap: 0 !important;
	}

	body.single-product .allping-purchase-main-box > .price > .allping-price-top-row {
		display: block !important;
		order: 1 !important;
		width: 100%;
		min-height: 22px;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.single-product .allping-purchase-main-box > .price > .allping-price-top-row > .allping-savings-badge,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > .allping-savings-badge {
		order: 1 !important;
		display: inline-flex !important;
		align-items: center;
		box-sizing: border-box;
		height: 22px;
		min-height: 0;
		padding: 0 9px 0 4px !important;
		background-color: #D31027 !important;
		background-image: linear-gradient(to right, #D31027 0%, #EA384D 51%, #D31027 100%) !important;
		background-size: 200% auto !important;
		background-position: left center !important;
		color: #ffffff !important;
		-webkit-text-fill-color: #ffffff !important;
		font-family: Inter, sans-serif !important;
		font-size: 12px !important;
		font-weight: 700 !important;
		line-height: 22px !important;
		white-space: nowrap;
		vertical-align: middle;
		border-radius: 0;
		clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
	}

	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row,
	body.single-product .allping-purchase-main-box > .price:has(> .allping-current-price-row) > .allping-current-price-row {
		display: inline-flex !important;
		align-items: baseline;
		gap: 8px;
		width: auto;
		order: 2 !important;
		margin-top: 7px !important;
		flex: 0 0 auto;
	}

	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins {
		display: block !important;
		order: 1 !important;
		width: auto;
		margin: 0 !important;
		flex: 0 0 auto;
	}

	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > del,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > del .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > del .woocommerce-Price-amount bdi {
		order: 2 !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 30px !important;
	}
}

/* The payment logos are now consolidated into one horizontal SVG. Give the
 * single item the available inner width and let the image keep its 315:75
 * aspect ratio instead of inheriting the theme's 24px height limit. */
body.single-product fieldset.single-product-payments > ul {
	width: 100% !important;
	justify-content: center !important;
}

body.single-product fieldset.single-product-payments > ul > li:only-child {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 300px !important;
	max-width: 100% !important;
	flex: 0 1 300px !important;
}

body.single-product fieldset.single-product-payments > ul > li:only-child > img.payment-custom-img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: none !important;
	object-fit: contain !important;
}

/* With three additional payment SVGs, place the consolidated logo on the
 * first row and the three square logos on an aligned second row. */
body.single-product fieldset.single-product-payments > ul {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	column-gap: 8px !important;
	row-gap: 8px !important;
	align-items: center !important;
}

body.single-product fieldset.single-product-payments > ul > li:first-child {
	grid-column: 1 / -1 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
}

body.single-product fieldset.single-product-payments > ul > li:first-child > img.payment-custom-img {
	display: block !important;
	width: 300px !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: none !important;
	object-fit: contain !important;
}

body.single-product fieldset.single-product-payments > ul > li:nth-child(n + 2) {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-width: 0 !important;
	height: 52px !important;
}

body.single-product fieldset.single-product-payments > ul > li:nth-child(n + 2) > img.payment-custom-img {
	display: block !important;
	width: 52px !important;
	height: 52px !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
}

/* When the three bank logos are consolidated into one horizontal SVG, make
 * that second row match the full-width treatment of the first row. */
body.single-product fieldset.single-product-payments > ul > li:nth-child(2):last-child {
	grid-column: 1 / -1 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
}

body.single-product fieldset.single-product-payments > ul > li:nth-child(2):last-child > img.payment-custom-img {
	display: block !important;
	width: 300px !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: none !important;
	object-fit: contain !important;
}

body.single-product fieldset.single-product-payments > ul > li:nth-child(2):last-child::before {
	content: "Transferencias bancarias";
	display: block;
	width: 100%;
	font-family: Inter, sans-serif !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 18px !important;
	text-align: center;
	color: #64748B !important;
}

/* Label the first consolidated logo row without changing the fieldset legend
 * or the second consolidated SVG. */
body.single-product fieldset.single-product-payments > ul > li:first-child {
	flex-direction: column !important;
	gap: 6px !important;
}

body.single-product fieldset.single-product-payments > ul > li:first-child::before {
	content: "Tarjetas de débito y crédito";
	display: block;
	width: 100%;
	font-family: Inter, sans-serif !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 18px !important;
	text-align: center;
	color: #64748B !important;
}

/* Temporary solid blue treatment for the Comprar ahora button. Keep the
 * same color across rest, hover, focus, active, and responsive states. */
body.single-product .allping-product-purchase-column form.cart .single_add_to_cart_button,
body.single-product .allping-product-purchase-column form.cart .single_add_to_cart_button:visited,
body.single-product .allping-product-purchase-column form.cart .single_add_to_cart_button:hover,
body.single-product .allping-product-purchase-column form.cart .single_add_to_cart_button:focus,
body.single-product .allping-product-purchase-column form.cart .single_add_to_cart_button:active {
	background: #0064D2 !important;
	background-image: none !important;
}

/* Single-product purchase price: use the same visual language as archive
 * cards. On sale items the PHP filter creates: badge -> current + original
 * price -> tax suffix. */
body.single-product .allping-product-purchase-column > .price {
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 6px;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	font-family: Inter, sans-serif !important;
	font-size: 20px !important;
	line-height: 30px !important;
	text-align: left !important;
	color: #000000 !important;
}

body.single-product .allping-product-purchase-column > .price,
body.single-product .allping-product-purchase-column > .price * {
	color: #000000 !important;
}

body.single-product .allping-product-purchase-column > .price > .woocommerce-Price-amount,
body.single-product .allping-product-purchase-column > .price > .woocommerce-Price-amount bdi,
body.single-product .allping-product-purchase-column > .price ins,
body.single-product .allping-product-purchase-column > .price ins .woocommerce-Price-amount,
body.single-product .allping-product-purchase-column > .price ins .woocommerce-Price-amount bdi {
	font-weight: 600 !important;
}

body.single-product .allping-product-purchase-column > .price .woocommerce-Price-currencySymbol {
	display: inline-block;
	margin-right: 2px;
	font-weight: 300 !important;
}

body.single-product .allping-product-purchase-column > .price .allping-price-decimals {
	display: inline-block;
	font-size: 55% !important;
	font-weight: inherit;
	line-height: 1 !important;
	vertical-align: super;
}

body.single-product .allping-product-purchase-column > .price .woocommerce-price-suffix {
	display: block !important;
	order: 3 !important;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 !important;
	padding: 0 0 0 6px !important;
	font-size: 12px !important;
	font-weight: 400 !important;
	line-height: 14px !important;
	color: #000000 !important;
	opacity: 0.75;
}

body.single-product .allping-product-purchase-column > .price > ins {
	display: block !important;
	order: 1 !important;
	flex: 0 0 auto;
}

body.single-product .allping-product-purchase-column > .price > del,
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del {
	display: block !important;
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 30px !important;
	opacity: 0.5;
}

/* Make the payable amount the dominant value. Sale prices use the current
 * price row; regular products use the direct amount because they have no
 * original-price element. The struck-through amount stays at 20px. */
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins,
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins .woocommerce-Price-amount,
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins .woocommerce-Price-amount bdi,
body.single-product .allping-product-purchase-column > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount,
body.single-product .allping-product-purchase-column > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount bdi {
	font-size: 36px !important;
	line-height: 46px !important;
}

body.single-product .allping-product-purchase-column > .price:has(> .allping-current-price-row) {
	flex-direction: column !important;
	align-items: flex-start !important;
	row-gap: 0 !important;
	column-gap: 0 !important;
}

body.single-product .allping-product-purchase-column > .price > .allping-price-top-row {
	display: block !important;
	order: 1 !important;
	width: 100%;
	min-height: 22px;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-product .allping-product-purchase-column > .price > .allping-price-top-row > .allping-savings-badge {
	margin: 0 !important;
}

body.single-product .allping-product-purchase-column > .price > .allping-current-price-row,
body.single-product .allping-product-purchase-column > .price:has(> .allping-current-price-row) > .allping-current-price-row {
	display: inline-flex !important;
	align-items: baseline;
	gap: 8px;
	width: auto;
	order: 2 !important;
	margin-top: 7px !important;
	flex: 0 0 auto;
}

body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins {
	display: block !important;
	order: 1 !important;
	width: auto;
	margin: 0 !important;
	flex: 0 0 auto;
}

body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del,
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del .woocommerce-Price-amount,
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del .woocommerce-Price-amount bdi {
	order: 2 !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 30px !important;
}

body.single-product .allping-product-purchase-column > .price > .allping-price-top-row > .allping-savings-badge,
body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > .allping-savings-badge {
	order: 1 !important;
	display: inline-flex !important;
	align-items: center;
	box-sizing: border-box;
	height: 22px;
	min-height: 0;
	padding: 0 9px 0 4px !important;
	background-color: #D31027 !important;
	background-image: linear-gradient(to right, #D31027 0%, #EA384D 51%, #D31027 100%) !important;
	background-size: 200% auto !important;
	background-position: left center !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-family: Inter, sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 22px !important;
	white-space: nowrap;
	vertical-align: middle;
	border-radius: 0;
	clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
}

body.single-product .allping-product-purchase-column > .price:has(> .allping-current-price-row) > .woocommerce-price-suffix {
	margin: 0 !important;
	padding: 0 0 0 6px !important;
	line-height: 14px !important;
}

/* Keep the trust/shipping section aligned with the product description
 * typography, with a slightly tighter reading rhythm. */
body.single-product .single-product-extras,
body.single-product .single-product-extras p,
body.single-product .single-product-extras li,
body.single-product .single-product-extras strong,
body.single-product .single-product-extras b {
	font-family: Inter, sans-serif !important;
	font-size: 15px !important;
	font-weight: 300 !important;
	line-height: 22px !important;
}

body.single-product .single-product-extras,
body.single-product .single-product-extras * {
	color: #64748B !important;
}

/* Style only the trust-section heading. The list copy and highlighted phrases
 * keep their existing typography and colors. */
body.single-product .single-product-extras > p {
	color: #0064D2 !important;
	font-weight: 500 !important;
}

/* The heading text is rendered inside <strong>; target it directly so the
 * section's base strong rule cannot override the requested treatment. */
body.single-product .single-product-extras > p > strong {
	color: #0064D2 !important;
	font-weight: 600 !important;
}

/* Use black at 75% visual opacity for the informational copy only. The
 * replacement icons are siblings of this container and keep their color. */
body.single-product .single-product-extras .allping-extra-content {
	color: rgba(0, 0, 0, 0.75) !important;
}

body.single-product .single-product-extras .allping-extras-highlight {
	color: #16A34A !important;
	font-weight: 400 !important;
}

body.single-product .single-product-extras ul {
	list-style: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

body.single-product .single-product-extras li::before,
body.single-product .single-product-extras li::after {
	content: none !important;
	display: none !important;
}

body.single-product .single-product-extras li::marker {
	content: none !important;
}

/* Remove the original Kadence disc icons so they do not appear beside the
 * replacement icons added by the main product snippet. */
body.single-product .single-product-extras li > .kadence-svg-iconset,
body.single-product .single-product-extras .allping-extra-content > .kadence-svg-iconset {
	display: none !important;
}

body.single-product .single-product-extras li {
	display: flex !important;
	align-items: flex-start;
	gap: 8px;
}

body.single-product .single-product-extras .allping-extra-content {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
}

body.single-product .single-product-extras .allping-extra-icon {
	display: inline-flex;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	color: #64748B !important;
}

body.single-product .single-product-extras .allping-extra-icon svg {
	display: block;
	width: 20px;
	height: 20px;
}

/* The section-wide black color rule also reaches SVG descendants. Reassert
 * the icon color on the SVG and its stroke elements. */
body.single-product .single-product-extras .allping-extra-icon svg,
body.single-product .single-product-extras .allping-extra-icon svg * {
	color: #64748B !important;
}

@media (max-width: 767px) {
	body.single-product .allping-product-purchase-column > .price {
		min-height: 0 !important;
		margin: 0 0 8px !important;
		font-size: 23px !important;
		line-height: 30px !important;
	}

	body.single-product .allping-product-purchase-column > .price > del,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del {
		font-size: 20px !important;
		line-height: 30px !important;
	}
}

/* -------------------------------------------------------------------------
 * Consolidated product-gallery styles.
 * ------------------------------------------------------------------------- */

/* Mobile Image/Videos switcher. */
.allping-product-grid > .woocommerce-product-gallery > .allping-gallery-media-controls {
	position: relative;
	z-index: 45;
	display: flex;
	align-items: center;
	gap: 18px;
	width: 100%;
	margin: -2px 0 0 !important;
	padding: 0 0 0 16px;
	box-sizing: border-box;
	pointer-events: none;
}

.allping-gallery-media-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 6px 16px 6px 10px;
	border: 0;
	border-radius: 999px;
	background: #f1f1f1;
	color: #4b4b4b;
	font: inherit;
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	white-space: nowrap;
	cursor: default;
	pointer-events: auto;
	box-shadow: none;
}

.allping-gallery-media-button[hidden] {
	display: none !important;
}

.allping-gallery-media-button.is-active {
	background: #969696;
	color: #ffffff;
}

.allping-gallery-media-button__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
}

.allping-gallery-media-button__icon svg {
	display: block;
	width: 28px;
	height: 28px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Keep the custom switcher and counter mobile-only. Native WooCommerce
 * thumbnails, including video thumbnails, remain available on desktop. */
@media (min-width: 768px) {
	.allping-product-grid > .woocommerce-product-gallery > .allping-gallery-media-controls {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.allping-product-grid > .woocommerce-product-gallery > .allping-gallery-media-controls {
		gap: 10px;
		margin-top: -2px !important;
		padding: 0 0 8px 12px;
		border-bottom: 1px solid #d1d5db;
		box-sizing: border-box;
	}

	.allping-gallery-media-button {
		min-height: 32px;
		padding: 4px 10px 4px 6px;
		gap: 5px;
		font-size: 13px;
	}

	.allping-gallery-media-button__icon,
	.allping-gallery-media-button__icon svg {
		width: 20px;
		height: 20px;
	}

	.allping-gallery-media-button__icon {
		flex-basis: 20px;
	}
}

/* Mobile gallery arrows and slide counter. */
.allping-product-grid > .woocommerce-product-gallery > .allping-gallery-media-controls {
	justify-content: flex-start;
}

.allping-gallery-slide-navigation {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
	padding-right: 12px;
	pointer-events: auto;
}

.allping-gallery-slide-navigation__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 32px;
	padding: 0;
	border: 0 !important;
	border-radius: 999px;
	background: transparent !important;
	color: #64748b !important;
	font: inherit;
	font-size: 38px;
	font-weight: 300;
	line-height: 0.8;
	cursor: pointer;
	box-shadow: none !important;
	outline: none;
	transition: background-color 160ms ease, color 160ms ease, transform 100ms ease, box-shadow 160ms ease;
}

.allping-gallery-slide-navigation__arrow:not(:disabled):hover,
.allping-gallery-slide-navigation__arrow:not(:disabled):focus-visible {
	background: #f1f5f9 !important;
	color: #475569 !important;
	box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.2) !important;
}

.allping-gallery-slide-navigation__arrow:not(:disabled):focus-visible {
	outline: 2px solid #cbd5e1 !important;
	outline-offset: 1px;
}

.allping-gallery-slide-navigation__arrow:not(:disabled):active {
	background: #e2e8f0 !important;
	color: #334155 !important;
	box-shadow: none !important;
	transform: scale(0.94);
}

.allping-gallery-slide-navigation__arrow:disabled {
	background: transparent !important;
	color: #94a3b8 !important;
	opacity: 0.35;
	cursor: default;
	transform: none;
}

.allping-gallery-slide-navigation__counter {
	min-width: 42px;
	color: #5f6368;
	font-size: 17px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
}

@media (max-width: 767px) {
	.allping-gallery-slide-navigation {
		gap: 4px;
		padding-right: 9px;
	}

	.allping-gallery-slide-navigation__arrow {
		width: 25px;
		height: 32px;
		font-size: 35px;
	}

	.allping-gallery-slide-navigation__counter {
		min-width: 41px;
		font-size: 14px;
	}
}

/* YouTube video slides. */
.allping-product-grid > .woocommerce-product-gallery .allping-product-gallery-video-slide {
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.allping-product-gallery-video {
	width: 100%;
	box-sizing: border-box;
}

.allping-product-gallery-video__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 8px;
	background: #111827;
}

.allping-product-gallery-video__poster-button {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #111827;
	cursor: pointer;
}

.allping-product-gallery-video__poster-button:hover,
.allping-product-gallery-video__poster-button:focus,
.allping-product-gallery-video__poster-button:active {
	background: #111827 !important;
	box-shadow: none !important;
	filter: none !important;
	opacity: 1 !important;
}

.allping-product-gallery-video__poster-button::before,
.allping-product-gallery-video__poster-button::after {
	display: none !important;
	content: none !important;
}

.allping-product-gallery-video__poster {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.allping-product-gallery-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	width: 64px;
	height: 46px;
	place-items: center;
	transform: translate(-50%, -50%);
	border-radius: 12px;
	background: #ff0033;
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
}

.allping-product-gallery-video__frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.allping-product-gallery-video__title {
	display: none !important;
}

.allping-product-grid > .woocommerce-product-gallery .allping-product-gallery-video-slide img {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}

/* Desktop: make the native thumbnail strip compact, square, transparent,
 * evenly spaced, and as wide as the gallery container. Video thumbnails stay
 * in the same native strip. */
@media (min-width: 768px) {
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs {
		display: grid !important;
		grid-template-columns: repeat(7, minmax(44px, 56px));
		column-gap: 8px;
		row-gap: 8px;
		justify-content: space-between !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box;
		align-items: start;
	}

	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li {
		display: block !important;
		float: none !important;
		width: auto !important;
		max-width: none !important;
		height: auto !important;
		min-width: 0;
		margin: 0 !important;
		padding: 0 !important;
		border: 1px solid #d1d5db !important;
		border-radius: 4px;
		background: transparent !important;
		box-sizing: border-box;
		overflow: hidden;
		transition: border-color 150ms ease, border-width 150ms ease;
	}

	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li:hover,
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li:focus-within,
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li:has(> img.flex-active) {
		border: 2px solid #0064d2 !important;
	}

	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li img {
		display: block;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1 / 1;
		max-width: none !important;
		border: 0 !important;
		border-radius: 4px;
		background: transparent !important;
		object-fit: contain;
		object-position: center;
	}

	/* Video posters are navigation thumbnails, not zoom targets. Keep the
	 * theme from applying any hover transform or all-property transition to
	 * them while preserving the normal active/opacity behavior. */
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li.allping-gallery-video-thumbnail,
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li.allping-gallery-video-thumbnail img,
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li.allping-gallery-video-thumbnail:hover img,
	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li.allping-gallery-video-thumbnail img.flex-active {
		transform: none !important;
	}

	.allping-product-grid > .woocommerce-product-gallery > .flex-control-thumbs li.allping-gallery-video-thumbnail img {
		transition: opacity 150ms ease !important;
	}
}

/* Mobile: keep the stars/review count and brand logo as one compact row.
 * WooCommerce adds invisible clearfix pseudo-elements to its rating wrapper;
 * when that wrapper becomes flex, they create the extra space before the stars
 * and after the logo. */
@media (max-width: 767px) {
	body.single-product .allping-mobile-product-heading > .woocommerce-product-rating {
		height: 30px !important;
		min-height: 30px !important;
		flex-wrap: nowrap !important;
		column-gap: 4px !important;
		row-gap: 0 !important;
	}

	body.single-product .allping-mobile-product-heading > .woocommerce-product-rating::before,
	body.single-product .allping-mobile-product-heading > .woocommerce-product-rating::after {
		display: none !important;
		content: none !important;
	}
}

  /* Desktop-only text link placed immediately before the product title. */
  @media (min-width: 1201px) {
		body.single-product .summary.entry-summary > .allping-product-title-meta-row {
			display: flex;
			align-items: center;
			justify-content: space-between;
		gap: 12px;
		width: 100%;
		margin: 0 0 3px !important;
		line-height: 1 !important;
		}

		body.single-product .summary.entry-summary > .allping-product-title-meta-row > .allping-product-brand-discovery-link {
			display: inline-flex;
			width: fit-content;
			margin: 0 !important;
			font-size: 14px;
			font-weight: 500;
		line-height: 1 !important;
			color: #075985 !important;
			text-decoration: none;
		}

		/* Keep every item in the desktop rating row at the same visual scale. */
		body.single-product .summary.entry-summary > .woocommerce-product-rating,
		body.single-product .summary.entry-summary > .woocommerce-product-rating .star-rating,
		body.single-product .summary.entry-summary > .woocommerce-product-rating .woocommerce-review-link,
		body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-sale-badge,
		body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-meta-label {
			font-size: 14px !important;
		}

		body.single-product .summary.entry-summary > .woocommerce-product-rating .star-rating {
			font-size: 15px !important;
		}

		/* Align the promotional labels as a compact group on the right side of
		 * the desktop rating row. The negative offset reduces the visual gap
		 * created by the clipped parallelogram edges without merging them. */
		body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-sale-badge {
			margin-left: auto !important;
		}

		body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-meta-label {
			margin-left: -3px !important;
		}

		body.single-product .summary.entry-summary > .woocommerce-product-rating > .onsale.allping-rating-meta-label[data-allping-rating-meta-first="true"] {
			margin-left: auto !important;
		}

		/* Fallback for products without a sale badge: the first metadata label
		 * follows the review link (or the stars when the link is absent). */
		body.single-product .summary.entry-summary > .woocommerce-product-rating > .woocommerce-review-link + .onsale.allping-rating-meta-label,
		body.single-product .summary.entry-summary > .woocommerce-product-rating > .star-rating + .onsale.allping-rating-meta-label {
			margin-left: auto !important;
		}

		body.single-product .summary.entry-summary > .allping-product-title-meta-row > .allping-product-brand-discovery-link:hover,
		body.single-product .summary.entry-summary > .allping-product-title-meta-row > .allping-product-brand-discovery-link:focus-visible {
			text-decoration: underline;
		}

		body.single-product .allping-product-availability {
			display: inline-flex;
			align-items: center;
		justify-content: flex-end;
		gap: 6px;
		flex: 0 0 auto;
		padding: 4px 8px;
		border-radius: 5px;
			background: #F3F4F6;
		color: #000000;
		font-size: 14px;
	line-height: 1 !important;
			white-space: nowrap;
		}

		body.single-product .allping-product-availability__dot {
			width: 7px;
			height: 7px;
			border-radius: 50%;
		background: #22C55E;
		}
  }

/* -------------------------------------------------------------------------
 * Consolidated product-page extensions.
 * These rules were previously supplied by the separate gifts, content-rail,
 * video-height, and price-suffix stylesheets.
 * ------------------------------------------------------------------------- */

/* Keep the desktop video slide from growing the gallery viewport. */
@media (min-width: 768px) {
	body.single-product .allping-product-grid > .woocommerce-product-gallery > .flex-viewport,
	body.single-product .allping-product-grid > .woocommerce-product-gallery > .flex-viewport .allping-product-gallery-video-slide,
	body.single-product .allping-product-grid > .woocommerce-product-gallery > .flex-viewport .allping-product-gallery-video,
	body.single-product .allping-product-grid > .woocommerce-product-gallery > .flex-viewport .allping-product-gallery-video__frame {
		max-height: 525px !important;
	}
}

/* Keep the IVA suffix below the price after the purchase card wrapper. */
@media (min-width: 1201px) {
	body.single-product .allping-product-purchase-column > .allping-purchase-main-box > p.price > small.woocommerce-price-suffix {
		flex: 0 0 auto !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		align-self: flex-start !important;
		margin: 0 !important;
		padding: 0 0 0 6px !important;
		line-height: 14px !important;
	}
}

/* Keep the purchase area as a continuous right rail on desktop. */
@media (min-width: 1201px) {
	body.single-product .allping-product-grid.allping-content-rail-active {
		align-items: start;
		grid-auto-flow: row;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .woocommerce-product-gallery {
		grid-column: 1;
		grid-row: 1;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .summary {
		grid-column: 2;
		grid-row: 1;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .allping-product-purchase-column {
		grid-column: 3;
		align-self: stretch;
		min-height: 100%;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .allping-content-rail-section {
		grid-column: 1 / span 2;
		width: 100%;
		min-width: 0;
		max-width: none;
		margin: 0 !important;
		box-sizing: border-box;
		float: none !important;
		clear: none !important;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .allping-content-rail-section[data-allping-content-rail-row="2"] {
		grid-row: 2;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .allping-content-rail-section[data-allping-content-rail-row="3"] {
		grid-row: 3;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .allping-content-rail-section[data-allping-content-rail-row="4"] {
		grid-row: 4;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .woocommerce-tabs {
		padding-top: 4px;
	}

	body.single-product .allping-product-grid.allping-content-rail-active > .up-sells,
	body.single-product .allping-product-grid.allping-content-rail-active > .related {
		padding-top: 6px;
	}
}

/* Prevent residual grid placement while the rail script restores native order. */
@media (max-width: 767px) {
	body.single-product .allping-product-grid > .allping-content-rail-section {
		grid-column: auto;
		grid-row: auto;
		width: auto;
		margin: initial;
	}
}

/* Tablet content rail: keep the product area in two columns, then stack
 * recommendations, related products, and tabs as full-width rows. */
@media (min-width: 768px) and (max-width: 1200px) {
	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet {
		align-items: start;
		grid-auto-flow: row;
	}

	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .allping-content-rail-section {
		grid-column: 1 / -1;
		width: 100%;
		min-width: 0;
		max-width: none;
		margin: 0 !important;
		box-sizing: border-box;
		float: none !important;
		clear: none !important;
	}

	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .allping-content-rail-section[data-allping-content-rail-row="2"] {
		grid-row: 2;
	}

	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .allping-content-rail-section[data-allping-content-rail-row="3"] {
		grid-row: 3;
	}

	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .allping-content-rail-section[data-allping-content-rail-row="4"] {
		grid-row: 4;
	}

	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .woocommerce-tabs {
		padding-top: 4px;
	}

	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .up-sells,
	body.single-product .allping-product-grid.allping-content-rail-active.allping-content-rail-tablet > .related {
		padding-top: 6px;
	}
}

/* Promotional gifts: a soft sky background, horizontal cards, and responsive
 * grids for the selected gift products. */
body.single-product .allping-product-grid .allping-product-gifts {
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
	margin: 16px 0 0;
	padding: 18px;
	border: 1px solid #E2E8F0;
	border-radius: 8px;
	background: linear-gradient(135deg, #F8FCFF 0%, #EFF8FE 100%);
	box-shadow: none;
}

body.single-product .allping-product-gifts > h2 {
	margin: 0 0 14px;
	color: #0064D2 !important;
	font-family: Inter, sans-serif;
	font-size: 16px !important;
	font-weight: 600;
	line-height: 1.25;
	text-align: center !important;
}

body.single-product .allping-product-gifts-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
}

body.single-product .allping-product-gift-card {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 8px;
	border: 1px solid #E2E8F0;
	border-radius: 6px;
	background: #E0F2FE !important;
	box-sizing: border-box;
	text-align: left;
}

body.single-product .allping-product-gift-card__image {
	flex: 0 0 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	aspect-ratio: 1 / 1;
	margin: 0;
	border-radius: 4px;
	background: transparent !important;
	overflow: hidden;
}

body.single-product .allping-product-gift-card__img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain;
	object-position: center;
}

body.single-product .allping-product-gift-card > h3 {
	min-width: 0;
	flex: 1 1 auto;
	margin: 0;
	color: #000000;
	font-family: Inter, sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.25;
	text-align: left;
}

body.single-product .allping-tablet-purchase-marker {
	display: none !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
	body.single-product .allping-product-gifts-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	body.single-product .allping-product-grid .allping-product-gifts {
		margin-top: 16px;
	}

	/* Tablet: move the purchase card into the summary column at the former
	 * payment-card position. */
	body.single-product .allping-product-grid > .summary > .allping-product-purchase-column {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		width: 100% !important;
		max-width: none !important;
		margin: 20px 0 0 !important;
		padding: 24px 16px 22px !important;
		box-sizing: border-box !important;
		background: #ffffff !important;
		background-color: #ffffff !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		text-align: center !important;
	}

	body.single-product .allping-product-grid > .summary > .allping-product-purchase-column > .price,
	body.single-product .allping-product-grid > .summary > .allping-product-purchase-column > form.cart {
		width: calc(100% - 32px) !important;
		max-width: 420px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		box-sizing: border-box !important;
	}

	body.single-product .allping-product-grid > .summary > .allping-product-purchase-column > form.cart {
		margin-top: 16px !important;
		margin-bottom: 0 !important;
		padding: 0 !important;
		grid-template-columns: minmax(0, 1fr) !important;
		justify-content: stretch !important;
	}

	/* Tablet: payment methods belong to the first column, below the gallery
	 * and the optional gifts block. */
	body.single-product .allping-product-grid > .woocommerce-product-gallery > .single-product-payments {
		display: block !important;
		width: calc(100% - 16px) !important;
		max-width: none !important;
		margin: 16px auto 0 !important;
		padding: 14px 15px 16px !important;
		box-sizing: border-box !important;
		background: #ffffff !important;
		border: 1px solid #d1d5db !important;
		border-radius: 8px !important;
		box-shadow: none !important;
	}

	/* Tablet only: reduce the main current price while preserving the
	 * surrounding price layout and the original-price size. */
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price > .allping-current-price-row > ins .woocommerce-Price-amount bdi,
	body.single-product .allping-purchase-main-box > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount,
	body.single-product .allping-purchase-main-box > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount bdi {
		font-size: 34px !important;
	}
}

@media (max-width: 767px) {
	/* Mobile only: the purchase price is a direct child of the aside, not of
	 * .allping-purchase-main-box. Target the actual mobile structure. */
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins .woocommerce-Price-amount,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins .woocommerce-Price-amount bdi,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > .woocommerce-Price-amount,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > .woocommerce-Price-amount bdi,
	body.single-product .allping-product-purchase-column > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount,
	body.single-product .allping-product-purchase-column > .price:not(:has(> .allping-current-price-row)) > .woocommerce-Price-amount bdi {
		font-size: 26px !important;
		line-height: 32px !important;
	}

	/* The mobile availability layout wraps regular prices in the current-price
	 * row, so explicitly preserve the bold weight after that DOM change. */
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > .woocommerce-Price-amount,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > .woocommerce-Price-amount bdi,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins .woocommerce-Price-amount,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > ins .woocommerce-Price-amount bdi {
		font-weight: 700 !important;
	}

	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row,
	body.single-product .allping-product-purchase-column > .price:has(> .allping-current-price-row) > .allping-current-price-row {
		margin-top: 1px !important;
	}

	/* Mobile only: make the savings badge shorter without changing its text size
	 * or horizontal padding. */
	body.single-product .allping-product-purchase-column > .price > .allping-price-top-row {
		height: 16px !important;
		min-height: 16px !important;
		line-height: 16px !important;
	}

	body.single-product .allping-product-purchase-column > .price > .allping-price-top-row > .allping-savings-badge,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > .allping-savings-badge {
		height: 16px !important;
		min-height: 16px !important;
		line-height: 16px !important;
	}

	/* Mobile only: reduce the original crossed-out price. */
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del .woocommerce-Price-amount,
	body.single-product .allping-product-purchase-column > .price > .allping-current-price-row > del .woocommerce-Price-amount bdi {
		font-size: 16px !important;
	}

	body.single-product .allping-product-grid .allping-product-gifts {
		display: block;
		width: 100%;
		margin: 16px 0 0;
		padding: 14px;
		border-top: 0 !important;
	}

	body.single-product .allping-product-gifts > h2 {
		font-size: 15px !important;
	}

	body.single-product .allping-product-gifts-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 6px;
	}

	body.single-product .allping-product-gift-card {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 4px;
		min-height: 78px;
		padding: 6px 4px 8px;
		text-align: center;
	}

	body.single-product .allping-product-gift-card__image {
		flex: 0 0 36px;
		flex-basis: 36px;
		width: 36px;
		height: 36px;
		margin: 0;
	}

	body.single-product .allping-product-gift-card > h3 {
		font-size: 10px;
		line-height: 1.15;
		text-align: center;
	}

	body.single-product .upsells.products > h2,
	body.single-product .related.products > h2 {
		font-size: 20px !important;
		line-height: 1.25 !important;
	}
}

/* Mobile payment methods: use the available column width with one method per
 * column, keeping both labels on the first visual row and both SVGs below. */
@media (max-width: 767px) {
	body.single-product .allping-product-grid fieldset.single-product-payments {
		display: block !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 0 34px !important;
		padding: 10px 6px 12px !important;
		box-sizing: border-box !important;
	}

	body.single-product .allping-product-grid fieldset.single-product-payments > legend {
		font-size: 14px !important;
	}

	body.single-product .allping-product-grid fieldset.single-product-payments > ul {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 6px !important;
		row-gap: 4px !important;
		align-items: start !important;
		width: 100% !important;
		position: relative !important;
	}

	body.single-product .allping-product-grid fieldset.single-product-payments > ul::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: 50%;
		width: 1px;
		transform: translateX(-50%);
		background: #D1D5DB;
		pointer-events: none;
	}

	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li:first-child,
	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li:nth-child(2):last-child {
		grid-column: auto !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 4px !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: auto !important;
		min-height: 0 !important;
	}

	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li.single-product-payments-custom-02:first-child::before,
	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li.single-product-payments-custom-03:nth-child(2):last-child::before,
	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li:first-child::before,
	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li:nth-child(2):last-child::before {
		font-size: 12px !important;
		line-height: 18px !important;
		text-align: center !important;
	}

	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li:first-child > img.payment-custom-img,
	body.single-product .allping-product-grid fieldset.single-product-payments > ul > li:nth-child(2):last-child > img.payment-custom-img {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		max-width: 100% !important;
		max-height: none !important;
		object-fit: contain !important;
	}
}

/* Mobile only: finish the benefits block with a divider immediately after
 * the last benefit, without changing its desktop/tablet presentation. */
@media (max-width: 767px) {
	body.single-product .woocommerce-product-gallery > .single-product-extras > ul::after {
		content: "";
		display: block;
		width: 100%;
		height: 1px;
		margin-top: 10px;
		background: #D1D5DB;
	}
}

/* Mobile: the unified product-order script may place the description and
 * metadata inside the gallery after the payment methods and gifts. */
@media (max-width: 767px) {
	body.single-product .allping-product-grid > .woocommerce-product-gallery > .woocommerce-product-details__short-description {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	body.single-product .allping-product-grid > .woocommerce-product-gallery > .product_meta {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}
}









































































