﻿/*
Theme Name: Celeste Theme
Theme URI: https://celeste.com
Author: Celeste Team
Author URI: https://celeste.com
Description: Un tema de bloques premium, ligero y diseÃ±ado especÃ­ficamente para el ecosistema Celeste y WooCommerce.
Version: 1.0.0
Requires at least: 6.2
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: celeste-theme
Tags: block-themes, fse, woocommerce, e-commerce, clean, minimal
*/

/* Celeste Theme - Design & Layout */

:root {
    /* Responsive Design Foundation */
    --cel-container-padding: 50px;
}


@media (max-width: 1024px) {
    :root {
        --cel-container-padding: 30px;
    }
}

@media (max-width: 768px) {
    :root {
        --cel-container-padding: 20px;
    }
}

@media (max-width: 480px) {
    :root {
        --cel-container-padding: 15px;
    }
}

/* Swiper Stability */
.swiper,
.swiper-container {
    min-height: 200px;
    height: auto !important;
    position: relative;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
}

.swiper-slide {
    height: auto !important;
    display: flex !important;
    flex-direction: column;
}

.swiper-slide figure,
.swiper-slide .wp-block-image {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

html,
body {
    overflow-x: hidden;
}

/* Breakout for Full Width Blocks */
.alignfull {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: 100vw !important;
    max-width: 100vw !important;
    position: relative !important;
}

/* Base content resets */
.page-template-template-fullwidth-php .content-area,
.ast-plain-container .site-content .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.page-template-template-fullwidth-php .site-main {
    padding: 0 !important;
    margin: 0 !important;
}

.home .entry-header,
.home .entry-title,
.home.page .page-header {
    display: none !important;
}

.celeste-faded-hero {
    mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
    min-height: 400px;
}

/* Hero banners */
.wp-block-cover.cel-hero {
    border-radius: 16px !important;
    overflow: hidden !important;
    min-height: 550px !important;
    /* Slightly taller for premium feel */
    background-attachment: fixed !important;
    /* Parallax effect */
}

@media (max-width: 768px) {
    .wp-block-cover.cel-hero {
        background-attachment: scroll !important;
        /* Disable parallax on mobile */
        min-height: 400px !important;
    }
}

.cel-hero .wp-block-cover__background {
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.1) 100%) !important;
}

.cel-hero .wp-block-cover__inner-container {
    margin-left: 0 !important;
    margin-right: auto !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    width: 100% !important;
    padding-left: 5% !important;
    /* Standard premium margin from edge */
}

.cel-hero__content {
    animation: celFadeUp 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) forwards !important;
    opacity: 0;
    transform: translateY(30px);
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 600px !important;
}

/* Override Gutenberg's auto margins that center elements */
.cel-hero__content>* {
    margin-left: 0 !important;
    margin-right: auto !important;
}

@keyframes celFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cel-badge {
    background: var(--celeste-primary_color, #000) !important;
    color: #fff !important;
    padding: 4px 12px !important;
    border-radius: 50px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    display: inline-block !important;
    margin-bottom: 20px !important;
}

.cel-hero__title {
    font-size: clamp(2.5rem, 8vw, 4.5rem) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    margin-bottom: 25px !important;
    letter-spacing: -1px !important;
}

.cel-hero__text {
    font-size: 1.25rem !important;
    max-width: 500px !important;
    line-height: 1.6 !important;
    margin-bottom: 35px !important;
    opacity: 0.9 !important;
}

/* WooCommerce Product Collection Alignment */
.wp-block-woocommerce-product-collection .wp-block-post-title {
    height: auto !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin-bottom: 0.5rem !important;
}

.wp-block-woocommerce-product-collection .wp-block-post-title a {
    color: var(--celeste-text_color, #111) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.wp-block-woocommerce-product-collection .wp-block-post-title a:hover,
.wp-block-woocommerce-product-collection .cel-product:hover .wp-block-post-title a {
    color: var(--celeste-link_color, #2563eb) !important;
}

.wp-block-woocommerce-product-collection .woocommerce-template-product-template {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image,
.wp-block-woocommerce-product-collection .wc-block-components-product-image,
.wp-block-woocommerce-product-collection .wc-block-grid__product-image,
.wp-block-woocommerce-product-collection .wp-block-post-featured-image {
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
}

.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image a,
.wp-block-woocommerce-product-collection .wc-block-components-product-image a,
.wp-block-woocommerce-product-collection .wc-block-components-product-image__inner-container,
.wp-block-woocommerce-product-collection .wp-block-post-featured-image a,
.wp-block-woocommerce-product-collection picture {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image img,
.wp-block-woocommerce-product-collection .wc-block-components-product-image img,
.wp-block-woocommerce-product-collection .wp-block-post-featured-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* Carousel Image Alignment */
.cb-slide img {
    aspect-ratio: 16/9 !important;
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
}

.cb-slide figure {
    margin: 0 !important;
    height: 100% !important;
}

/* Product carousel reset and clean implementation */
.cel-products-carousel {
    position: relative !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
}

/* 
 * Navigation Buttons (Within Section Head):
 * We target the official block directly as it's now a sibling to the title.
 */
.cel-section__head .wp-block-woocommerce-product-gallery-large-image-next-previous {
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
    margin: 0 !important;
    width: auto !important;
}

/* Specific button styling inside the official block (Using the working selector) */
.cel-section__head .wp-block-woocommerce-product-gallery-large-image-next-previous button,
.cel-section__head .wp-block-woocommerce-product-gallery-large-image-next-previous .wp-element-button,
.cel-section__head [class*="product-gallery-large-image-next-previous__button"],
.cel-section__head .wc-block-next-previous-buttons__button {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 100% !important;
    /* Force circle as found by user */
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}

/* Icon sizing inside official block buttons */
.cel-section__head .wp-block-woocommerce-product-gallery-large-image-next-previous svg {
    width: 22px !important;
    height: 22px !important;
    fill: currentColor !important;
    display: block !important;
}

.cel-section__head .wp-block-woocommerce-product-gallery-large-image-next-previous button:hover,
.cel-section__head [class*="product-gallery-large-image-next-previous__button"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18) !important;
    filter: brightness(1.1) !important;
}

/* Specific targeting for standard Swiper buttons (Theme Primary Colors) */
.cel-carousel-nav .swiper-button-prev,
.cel-carousel-nav .swiper-button-next {
    position: relative !important;
    /* Reset Swiper default absolute */
    top: auto !important;
    left: auto !important;
    right: auto !important;
    margin: 0 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    border: none !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1) !important;
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Ensure Swiper icons are visible and sized correctly */
.cel-carousel-nav .swiper-button-prev::after,
.cel-carousel-nav .swiper-button-next::after {
    font-size: 16px !important;
    font-weight: bold !important;
    font-family: swiper-icons;
    /* Swiper default */
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-variant: normal !important;
    line-height: 1 !important;
}

.cel-carousel-nav .swiper-button-prev:hover,
.cel-carousel-nav .swiper-button-next:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15) !important;
    opacity: 0.9 !important;
}

@media (max-width: 768px) {
    .cel-products-carousel .cel-carousel-nav {
        top: -55px !important;
    }
}

/* Ensure Add to Cart buttons inside cards stay standard */
.cel-product .wp-block-woocommerce-product-button a,
.cel-product .wc-block-components-product-button a {
    border-radius: 50px !important;
    /* Standard pill shape, not circle */
    width: 90% !important;
    height: auto !important;
}

/* Icon style for the buttons */
.cel-products-carousel .swiper-button-prev::after,
.cel-products-carousel .swiper-button-next::after {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #111 !important;
}

/* Product overrides only if necessary for alignment */
.cel-products-carousel .cel-product {
    margin-bottom: 0 !important;
}

.cel-products-carousel .wp-block-group.cel-product .wp-block-woocommerce-product-button,
.cel-products-carousel .wp-block-group.cel-product .wc-block-components-product-button,
.cel-products-carousel .wp-block-group.cel-product .wp-block-button.wc-block-components-product-button {
    margin-top: 0 !important;
}

.cel-products-carousel .cel-product>.wp-block-group:not(.cel-product__img-wrap) {
    padding-top: 10px !important;
    gap: 4px !important;
}

.cel-products-carousel .cel-product .cel-product__title {
    margin-bottom: 2px !important;
    line-height: 1.2 !important;
}

.cel-products-carousel .cel-product .cel-product__category {
    margin-top: 2px !important;
    margin-bottom: 4px !important;
}

/* Cel Premium Design System */
.cel-product {
    overflow: visible !important;
    border-radius: 12px !important;
    transition: all 0.4s ease-out !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
}

.cel-product__img-wrap {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
}

/* Global reset for constrained layouts inside Celeste cards to prevent auto-centering */
.cel-product .is-layout-constrained> :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    margin-left: 0 !important;
    margin-right: 0px !important;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
    max-width: none !important;
}

/* Product card body spacing + price alignment */
.wp-block-group.cel-product>.wp-block-group:not(.cel-product__img-wrap) {
    padding-top: 8px !important;
    padding-bottom: 4px !important;
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    margin-left: 0px !important;
    margin-right: 0px !important;
}

.wp-block-group.cel-product>.wp-block-group:not(.cel-product__img-wrap)>.wp-block-group {
    align-items: flex-start !important;
}

.wp-block-group.cel-product .wc-block-components-product-price,
.wp-block-group.cel-product .wp-block-woocommerce-product-price {
    align-self: flex-start !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* Global rating alignment for Celeste theme */
.wp-block-woocommerce-product-rating,
.wc-block-components-product-rating,
.woocommerce-product-rating,
.cel-rating-wrapper {
    min-height: 18px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    margin-top: 5px !important;
    display: flex !important;
    align-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.star-rating {
    display: inline-block !important;
    width: 5.4em !important;
    /* Standard WooCommerce width for 5 stars */
    overflow: hidden !important;
    position: relative !important;
    vertical-align: middle !important;
    line-height: 1 !important;
    font-size: 1em !important;
    font-family: 'star' !important;
    /* Ensure WooCommerce star font is used */
}

.cel-rating-wrapper {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    /* Reduced gap as requested by user */
    width: auto !important;
    /* Change from 100% to auto to prevent stretching */
    max-width: 100% !important;
}

.cel-rating-wrapper .star-rating {
    margin: 0 !important;
    float: none !important;
    flex-shrink: 0 !important;
}

.cel-rating-wrapper .star-rating::before {
    content: "\73\73\73\73\73" !important;
    /* Empty stars */
    color: #ccc !important;
    display: block !important;
}

.cel-rating-wrapper .star-rating span {
    overflow: hidden !important;
    float: left !important;
    top: 0 !important;
    left: 0 !important;
    position: absolute !important;
    padding-top: 1.5em !important;
    /* Standard WC way to hide text but show stars */
    height: 0 !important;
}

.cel-rating-wrapper .star-rating span::before {
    content: "\53\53\53\53\53" !important;
    /* Filled stars */
    color: #000 !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
}

.cel-rating-count {
    font-size: 0.85rem !important;
    opacity: 0.7 !important;
    white-space: nowrap !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.wp-block-group.cel-product .wp-block-woocommerce-product-button,
.wp-block-group.cel-product .wc-block-components-product-button,
.wp-block-group.cel-product .wp-block-button.wc-block-components-product-button {
    margin-top: auto !important;
    margin-bottom: 2px !important;
}

.cel-product__img-wrap {
    flex: 0 0 auto !important;
}

.cel-product__img-wrap .wp-block-woocommerce-product-image,
.cel-product__img-wrap .wc-block-components-product-image,
.cel-product__img-wrap .wc-block-components-product-image__inner-container,
.cel-product__img-wrap .wc-block-grid__product-image,
.cel-product__img-wrap .wp-block-woocommerce-product-image a,
.cel-product__img-wrap .wc-block-components-product-image a,
.cel-product__img-wrap .wp-block-post-featured-image a,
.cel-product__img-wrap picture {
    margin-bottom: 0 !important;
    padding: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    transition: transform 0.4s ease-out !important;
}

.cel-product__img-wrap img {
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.home .cel-product .wp-block-woocommerce-product-button,
.home .cel-product .wc-block-components-product-button,
.home .cel-product .wp-block-button.wc-block-components-product-button {
    position: absolute !important;
    bottom: 15px !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(20px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all 0.4s ease-out !important;
    width: 90% !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

.home .cel-product:hover .cel-product__img-wrap .wp-block-woocommerce-product-button,
.home .cel-product:hover .cel-product__img-wrap .wc-block-components-product-button,
.home .cel-product:hover .cel-product__img-wrap .wp-block-button.wc-block-components-product-button,
.wc-block-product:hover .wc-block-components-product-button,
.wc-block-grid__product:hover .wc-block-components-product-button {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(0) !important;
    pointer-events: auto !important;
}

.cel-product:hover .cel-product__title {
    color: var(--celeste-link_color) !important;
}

.home .cel-product .wp-block-woocommerce-product-button a,
.home .cel-product .wc-block-components-product-button a,
.home .cel-product .wp-block-button.wc-block-components-product-button .wp-block-button__link {
    border-radius: 50px !important;
    padding: 10px 20px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    letter-spacing: 0.5px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
}

.cel-product__title {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    margin-bottom: 5px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    padding-bottom: 2px !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    color: var(--celeste-text_color, #111) !important;
    transition: color 0.2s ease !important;
}

.cel-product .wp-block-post-title a,
.cel-product .cel-product__title a,
.cel-product a.wc-block-components-product-name {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    color: var(--celeste-text_color, #111) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.cel-product:hover .cel-product__title,
.cel-product:hover .cel-product__title a,
.cel-product:hover .wp-block-post-title a,
.wc-block-product:hover .wp-block-post-title a,
.wc-block-grid__product:hover .wp-block-post-title a,
.cel-product:hover a.wc-block-components-product-name {
    color: var(--celeste-link_color, #2563eb) !important;
}

/* Dynamic Categories Cel Style */
.wp-block-woocommerce-product-categories ul,
.wc-block-product-categories ul {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
    gap: 25px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.wp-block-woocommerce-product-categories-list-item,
.wc-block-product-categories-list-item {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 12px !important;
    margin: 0 !important;
    aspect-ratio: 1/1;
    /* Default, can be overridden by custom block */
    background: #f0f0f0 !important;
}

.wc-block-product-categories-list-item a,
.wp-block-woocommerce-product-categories-list-item a {
    display: block !important;
    height: 100% !important;
    width: 100% !important;
    position: relative !important;
}

.wc-block-product-categories-list-item img,
.wp-block-woocommerce-product-categories-list-item img,
.wc-block-product-categories-list-item__image img,
.wc-block-product-categories-list-item__image,
.wc-block-product-categories-item__image img,
.wc-block-product-categories-item__image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 1 !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
}

.wc-block-product-categories-list-item:hover img,
.wp-block-woocommerce-product-categories-list-item:hover img {
    transform: scale(1.08) !important;
}

.wc-block-product-categories-list-item__name,
.wp-block-woocommerce-product-categories-list-item__name {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    padding: 60px 20px 25px !important;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, transparent 100%) !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 1.4rem !important;
    margin: 0 !important;
    text-align: center !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    transition: all 0.3s ease !important;
    z-index: 2 !important;
}

.wc-block-product-categories-list-item__count,
.wp-block-woocommerce-product-categories-list-item__count {
    display: block !important;
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    opacity: 0.8 !important;
    margin-top: 5px !important;
}

/* Consolidated with line 207 */

.cel-product__category {
    display: block !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    opacity: 0.6 !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

.cel-product__category a {
    text-decoration: none !important;
    color: inherit !important;
}

/* Mini Cart Hover & Link Custom Styles */
.cel-cart-wrapper {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
}

.cel-cart-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    padding: 0 !important;
    transition: opacity 0.2s ease !important;
    position: relative !important;
    line-height: 0 !important;
    min-height: 0 !important;
}

.cel-cart-link:hover {
    opacity: 0.7 !important;
}

.cel-cart-icon svg {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    transform: translateY(-1px) !important;
}

.cel-cart-icon {
    position: relative !important;
    display: inline-block !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 0 !important;
    flex: 0 0 32px !important;
    vertical-align: top !important;
}

.cel-cart-count {
    background: var(--celeste-button_bg, #000) !important;
    color: var(--celeste-button_text, #fff) !important;
    border-radius: 50% !important;
    width: 20px !important;
    /* Slightly larger */
    height: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    position: absolute !important;
    top: -4px !important;
    right: -8px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) !important;
    border: 2px solid var(--celeste-header_bg, #fff) !important;
    animation: cel-pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
    z-index: 2 !important;
}

@keyframes cel-pop {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.cel-cart-dropdown {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    width: min(460px, 92vw) !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
    border-radius: 8px !important;
    padding: 22px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(10px) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 1000 !important;
    box-sizing: border-box !important;
}

.cel-cart-wrapper:hover .cel-cart-dropdown {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}

.cel-cart-dropdown .widget_shopping_cart_content {
    width: 100% !important;
}

.cel-cart-dropdown .woocommerce-mini-cart.cart_list.product_list_widget {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item {
    --cel-mini-media-box: 118px;
    display: grid !important;
    grid-template-columns: var(--cel-mini-media-box) 1px minmax(0, 1fr) 1px auto !important;
    column-gap: 0 !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 121px !important;
    /* Image 118px + border 1px + safe padding 2px */
    margin: 0 0 10px 0 !important;
    padding: 0 14px 0 0 !important;
    /* Left padding removed to let image touch edge if needed, or kept for internal alignment */
    position: relative !important;
    box-sizing: border-box !important;
    border-bottom: 1px solid #f1f5f9 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: hidden !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item:last-child {
    margin-bottom: 0 !important;
}

/* Separadores verticales */
.cel-mini-separator {
    width: 1px !important;
    background: #f1f5f9 !important;
    height: 100% !important;
    align-self: stretch !important;
    margin: 0 !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item::before {
    display: none !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item>a:not(.remove) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--cel-mini-media-box) !important;
    height: 100% !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    padding-right: 0 !important;
    padding: 10px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    text-decoration: none !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    background: transparent !important;
    border-radius: 4px !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .remove {
    grid-column: 5 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: start !important;
    margin: 0 !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(15, 23, 42, 0.18) !important;
    background: #fff !important;
    color: #475569 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    transition: all 0.2s ease !important;
    z-index: 5 !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .remove:hover {
    background: #ef4444 !important;
    border-color: #ef4444 !important;
    color: #fff !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item img,
.cel-cart-dropdown .woocommerce-mini-cart-item__image img {
    width: 88px !important;
    height: 88px !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 4px !important;
    float: none !important;
    margin: 0 !important;
    background: #dfe3e8 !important;
    border: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .quantity {
    display: contents !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-stock-label {
    display: inline-block !important;
    font-size: 0.72rem !important;
    padding: 2px 8px !important;
    border-radius: 4px !important;
    background: #f0fdf4 !important;
    color: #166534 !important;
    border: 1px solid #bbf7d0 !important;
    margin: 0 !important;
    font-weight: 700 !important;
    width: fit-content !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-stock-label.empty {
    background: #fef2f2 !important;
    color: #991b1b !important;
    border-color: #fecaca !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-mini-item-meta {
    grid-column: 3 !important;
    grid-row: 1 !important;
    display: grid !important;
    grid-auto-rows: min-content !important;
    row-gap: 4px !important;
    align-items: center !important;
    align-content: center !important;
    justify-items: start !important;
    font-size: 0.95rem !important;
    line-height: 1.2 !important;
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
    padding: 0 14px !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-mini-item-final-group {
    grid-column: 5 !important;
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    min-width: 96px !important;
    padding: 0 14px 10px 14px !important;
    height: 100% !important;
    box-sizing: border-box !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-mini-item-line-total {
    font-weight: 800 !important;
    font-size: 1.15rem !important;
    color: #000 !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-mini-item-qty {
    margin: 0 !important;
}

.cel-cart-dropdown .woocommerce-mini-cart .mini_cart_item .cel-mini-item-price-label {
    margin: 0 !important;
}

.woocommerce-mini-cart__buttons {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 12px !important;
    width: 100% !important;
}

.woocommerce-mini-cart__buttons .button,
.cel-cart-dropdown .buttons .button,
.cel-cart-dropdown a.button.wc-forward.wp-element-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    border-color: var(--celeste-button_bg, #111) !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    box-sizing: border-box !important;
    min-height: 44px !important;
    margin: 0 !important;
}

.woocommerce-mini-cart__buttons .button.checkout,
.cel-cart-dropdown .buttons .button.checkout,
.cel-cart-dropdown a.button.checkout.wc-forward.wp-element-button {
    background: var(--celeste-button_bg, var(--celeste-site_bg, #fff)) !important;
    color: var(--celeste-button_text, var(--celeste-text_color, #111)) !important;
    border-color: var(--celeste-button_bg, var(--celeste-site_bg, #fff)) !important;
}

.cel-search {
    width: min(460px, 48vw) !important;
    min-width: 380px !important;
}

.cel-search .wp-block-search__input {
    width: 100% !important;
    height: 42px !important;
    border: 1px solid #d4dae2 !important;
    border-radius: 9px !important;
    background: #eceff3 !important;
    padding: 0 14px 0 42px !important;
    color: #5f6f86 !important;
}

.cel-search .wp-block-search__inside-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    position: relative !important;
}

.cel-search .wp-block-search__inside-wrapper::before {
    content: "" !important;
    position: absolute !important;
    left: 14px !important;
    top: 50% !important;
    width: 16px !important;
    height: 16px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23697a95' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-size: 16px 16px !important;
}

.cel-search .wp-block-search__button {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}

.cel-header__right {
    gap: 8px !important;
}

.cel-footer {
    padding-top: 40px !important;
}

.cel-header__brand {
    gap: 10px !important;
}

.cel-header-icon {
    width: 36px !important;
    height: 36px !important;
    border: 1.5px solid currentColor !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
    opacity: 0.95 !important;
    overflow: hidden !important;
}

.cel-header-icon img,
.cel-header-icon .custom-logo {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: inherit !important;
    display: block !important;
}

/* Apply the same product-card style outside the homepage template */
.wp-block-woocommerce-product-collection .wc-block-product,
.wp-block-woocommerce-product-collection .wc-block-grid__product {
    overflow: hidden !important;
    border-radius: 12px !important;
    transition: all 0.4s ease-out !important;
}

.wp-block-woocommerce-product-collection .wc-block-product .wp-block-post-title,
.wp-block-woocommerce-product-collection .wc-block-grid__product .wp-block-post-title {
    height: auto !important;
    margin-bottom: 5px !important;
}

.wp-block-woocommerce-product-collection .wc-block-product .wp-block-post-title a,
.wp-block-woocommerce-product-collection .wc-block-grid__product .wp-block-post-title a,
.wp-block-woocommerce-product-collection .wc-block-product a.wc-block-components-product-name,
.wp-block-woocommerce-product-collection .wc-block-grid__product a.wc-block-components-product-name {
    color: var(--celeste-text_color, #111) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.wp-block-woocommerce-product-collection .wc-block-product:hover .wp-block-post-title a,
.wp-block-woocommerce-product-collection .wc-block-grid__product:hover .wp-block-post-title a,
.wp-block-woocommerce-product-collection .wc-block-product:hover a.wc-block-components-product-name,
.wp-block-woocommerce-product-collection .wc-block-grid__product:hover a.wc-block-components-product-name {
    color: var(--celeste-link_color, #2563eb) !important;
}

/* Classic WooCommerce product loop (shop/category pages) */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    border-radius: 12px !important;
    overflow: hidden !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
    padding-bottom: 10px !important;
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
    border-radius: 8px !important;
    transition: transform 0.35s ease !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    height: auto !important;
    color: var(--celeste-text_color, #111) !important;
    transition: color 0.2s ease !important;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product:hover .woocommerce-loop-product__title {
    color: var(--celeste-link_color, #2563eb) !important;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
    border-radius: 50px !important;
    font-weight: 600 !important;
    letter-spacing: 0.4px !important;
    padding: 10px 18px !important;
}

/* Consistent button variants */
.cel-button-primary,
.button.cel-button-primary,
.woocommerce a.button.cel-button-primary,
.woocommerce button.button.cel-button-primary,
.wp-block-button.cel-button-primary .wp-block-button__link,
.wp-block-button .wp-block-button__link.cel-button-primary {
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    border-color: var(--celeste-button_bg, #111) !important;
}

.cel-button-alt,
.button.alt,
.button.cel-button-alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce a.button.cel-button-alt,
.woocommerce button.button.cel-button-alt,
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.cel-button-alt .wp-block-button__link,
.wp-block-button .wp-block-button__link.cel-button-alt {
    background: var(--celeste-button_alt_bg, var(--celeste-site_bg, #fff)) !important;
    color: var(--celeste-button_alt_text, var(--celeste-text_color, #111)) !important;
    border-color: var(--celeste-button_alt_bg, var(--celeste-site_bg, #fff)) !important;
}

/* Template button aliases (celeste-theme.html) */
.wp-block-button.cel-btn--primary .wp-block-button__link,
.cel-btn--primary .wp-block-button__link {
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    border-color: var(--celeste-button_bg, #111) !important;
    font-weight: 700 !important;
}

.wp-block-button.cel-btn--secondary .wp-block-button__link,
.cel-btn--secondary .wp-block-button__link {
    background: var(--celeste-button_alt_bg, var(--celeste-site_bg, #fff)) !important;
    color: var(--celeste-button_alt_text, var(--celeste-text_color, #111)) !important;
    border-color: var(--celeste-button_alt_bg, var(--celeste-site_bg, #fff)) !important;
    font-weight: 700 !important;
}

@media (max-width: 900px) {
    .cel-search {
        width: min(62vw, 320px) !important;
        min-width: 220px !important;
    }
}

/* Global product-card harmonization (blocks + classic loop) */
body.woocommerce .wc-block-product-template .wc-block-product,
body.woocommerce .wc-block-grid__products .wc-block-grid__product,
body.woocommerce ul.products li.product,
body.woocommerce-page .wc-block-product-template .wc-block-product,
body.woocommerce-page .wc-block-grid__products .wc-block-grid__product,
body.woocommerce-page ul.products li.product {
    border-radius: 12px !important;
    overflow: visible !important;
    transition: transform 0.4s ease-out, box-shadow 0.4s ease-out !important;
}

.wp-block-woocommerce-product-collection.cel-products-grid .cel-product {
    transition: transform 0.4s ease-out, box-shadow 0.4s ease-out !important;
}

body.woocommerce .wc-block-product-template .wc-block-product img,
body.woocommerce .wc-block-grid__products .wc-block-grid__product img,
body.woocommerce ul.products li.product img,
body.woocommerce-page .wc-block-product-template .wc-block-product img,
body.woocommerce-page .wc-block-grid__products .wc-block-grid__product img,
body.woocommerce-page ul.products li.product img,
.home .wc-block-grid__product img,
.home .wc-block-product img,
.cel-product img {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    transition: transform 0.4s ease-out !important;
}

/* Contenedores de imagen para evitar desbordamiento */
.wc-block-grid__product-image,
.wc-block-components-product-image,
.wp-block-woocommerce-product-image,
.woocommerce-loop-product__link,
.cel-product__img-wrap {
    overflow: hidden !important;
    border-radius: 8px !important;
    position: relative !important;
    display: block !important;
}

/* Dummy to skip original image block */
.cel-dummy-skip {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    transition: transform 0.35s ease !important;
}

body.woocommerce .wc-block-product-template .wc-block-product .wp-block-post-title a,
body.woocommerce .wc-block-grid__products .wc-block-grid__product .wp-block-post-title a,
body.woocommerce .wc-block-product-template .wc-block-product a.wc-block-components-product-name,
body.woocommerce .wc-block-grid__products .wc-block-grid__product a.wc-block-components-product-name,
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page .wc-block-product-template .wc-block-product .wp-block-post-title a,
body.woocommerce-page .wc-block-grid__products .wc-block-grid__product .wp-block-post-title a,
body.woocommerce-page .wc-block-product-template .wc-block-product a.wc-block-components-product-name,
body.woocommerce-page .wc-block-grid__products .wc-block-grid__product a.wc-block-components-product-name,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    color: var(--celeste-text_color, #111) !important;
    transition: color 0.2s ease !important;
    text-decoration: none !important;
}

body.woocommerce .wc-block-product-template .wc-block-product:hover .wp-block-post-title a,
body.woocommerce .wc-block-grid__products .wc-block-grid__product:hover .wp-block-post-title a,
body.woocommerce .wc-block-product-template .wc-block-product:hover a.wc-block-components-product-name,
body.woocommerce .wc-block-grid__products .wc-block-grid__product:hover a.wc-block-components-product-name,
body.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
body.woocommerce-page .wc-block-product-template .wc-block-product:hover .wp-block-post-title a,
body.woocommerce-page .wc-block-grid__products .wc-block-grid__product:hover .wp-block-post-title a,
body.woocommerce-page .wc-block-product-template .wc-block-product:hover a.wc-block-components-product-name,
body.woocommerce-page .wc-block-grid__products .wc-block-grid__product:hover a.wc-block-components-product-name,
body.woocommerce-page ul.products li.product:hover .woocommerce-loop-product__title {
    color: var(--celeste-link_color, #2563eb) !important;
}

/* Reset product button position outside homepage cards to prevent shifted button */
body:not(.home) .wc-block-product-template .wc-block-components-product-button,
body:not(.home) .wc-block-grid__products .wc-block-components-product-button,
body:not(.home) .wc-block-product-template .wp-block-button.wc-block-components-product-button,
body:not(.home) .wc-block-grid__products .wp-block-button.wc-block-components-product-button {
    position: static !important;
    left: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    width: auto !important;
    margin-top: 10px !important;
}

.cel-shop-layout {
    gap: 28px !important;
}

.cel-shop-layout-fallback {
    display: flex !important;
    align-items: flex-start !important;
}

.cel-shop-layout-fallback .cel-shop-sidebar-col {
    flex: 0 0 24% !important;
    max-width: 24% !important;
}

.cel-shop-layout-fallback .cel-shop-results-col {
    flex: 0 0 76% !important;
    max-width: 76% !important;
}

/* Sidebar position is controlled from inline CSS (Customizer option). */

.cel-shop-layout.is-loading {
    opacity: 0.55 !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease !important;
}

.cel-filters-sidebar {
    border: 1px solid #e5e7eb !important;
    border-radius: 10px !important;
    padding: 12px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    width: 100% !important;
    overflow: hidden !important;
}

.cel-filters-sidebar h3 {
    margin: 0 0 8px 0 !important;
    font-size: 0.98rem !important;
}

.cel-filters-form {
    display: grid !important;
    gap: 6px !important;
}

.cel-filters-form label {
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.cel-filters-form .cel-filter-check {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-weight: 500 !important;
    min-height: 24px !important;
    line-height: 1.2 !important;
}

.cel-filters-form .cel-filter-check input[type="checkbox"] {
    margin: 0 !important;
    position: relative !important;
    top: 0 !important;
    flex: 0 0 auto !important;
}

.cel-filters-form .cel-filter-check span,
.cel-filters-form .cel-filter-check {
    display: inline-flex !important;
    align-items: center !important;
}

.cel-filters-form select,
.cel-filters-form input[type="number"] {
    width: 100% !important;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    padding: 7px 9px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

.cel-filters-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 4px !important;
}

.cel-filters-actions button {
    border: 0 !important;
    border-radius: 8px !important;
    padding: 9px 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
}

.cel-filters-actions a {
    text-decoration: none !important;
    color: var(--celeste-link_color, #2563eb) !important;
    font-weight: 600 !important;
}

.cel-price-range {
    width: 100% !important;
}

.cel-price-range__values {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 0.85rem !important;
    margin-bottom: 4px !important;
}

.cel-price-range__sliders {
    position: relative !important;
    height: 22px !important;
}

.cel-price-range__input {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    pointer-events: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    background: transparent !important;
}

.cel-price-range__input--min,
.cel-price-range__input--max {
    z-index: 3 !important;
}

.cel-price-range__input:active,
.cel-price-range__input:focus {
    z-index: 4 !important;
}

.cel-price-range__input::-webkit-slider-runnable-track {
    height: 4px !important;
    background: #d1d5db !important;
    border-radius: 999px !important;
}

.cel-price-range__input::-moz-range-track {
    height: 4px !important;
    background: #d1d5db !important;
    border-radius: 999px !important;
}

.cel-price-range__input::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 14px !important;
    height: 14px !important;
    border-radius: 50% !important;
    background: var(--celeste-link_color, #2563eb) !important;
    border: 0 !important;
    margin-top: -5px !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}

.cel-price-range__input::-moz-range-thumb {
    width: 14px !important;
    height: 14px !important;
    border-radius: 50% !important;
    background: var(--celeste-link_color, #2563eb) !important;
    border: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}

.cel-shop-filters-fallback {
    margin-bottom: 18px !important;
}

.cel-shop-layout:not(.cel-shop-layout-fallback) .cel-shop-filters-fallback {
    display: none !important;
}

@media (max-width: 980px) {
    .cel-shop-layout {
        flex-direction: column !important;
    }

    .cel-shop-layout-fallback .cel-shop-sidebar-col,
    .cel-shop-layout-fallback .cel-shop-results-col {
        max-width: 100% !important;
    }

    .cel-shop-sidebar-col,
    .cel-shop-results-col {
        flex-basis: 100% !important;
        padding-left: 0 !important;
    }
}

/* Classic Woo loop: match Celeste shop/search card style */
body.woocommerce ul.products,
body.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}

@media (max-width: 1200px) {

    body.woocommerce ul.products,
    body.woocommerce-page ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 900px) {

    body.woocommerce ul.products,
    body.woocommerce-page ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {

    body.woocommerce ul.products,
    body.woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
    }
}

/* Override constrained spacing only inside product cards */
.wp-block-group.cel-product.is-layout-constrained>*,
.wp-block-group.cel-product.wp-block-group-is-layout-constrained>* {
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
}

/* Final product-card overrides: keep image 1:1 and tidy button/rating alignment */
.cel-shop-page .cel-product__img-wrap,
.cel-search-page .cel-product__img-wrap {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    flex: 0 0 auto !important;
}

.cel-shop-page .cel-product__img-wrap .wp-block-woocommerce-product-image,
.cel-shop-page .cel-product__img-wrap .wc-block-components-product-image,
.cel-shop-page .cel-product__img-wrap .wc-block-components-product-image__inner-container,
.cel-search-page .cel-product__img-wrap .wp-block-woocommerce-product-image,
.cel-search-page .cel-product__img-wrap .wc-block-components-product-image,
.cel-search-page .cel-product__img-wrap .wc-block-components-product-image__inner-container {
    height: 100% !important;
    aspect-ratio: 1 / 1 !important;
}

.cel-shop-page .cel-product>.wp-block-group:not(.cel-product__img-wrap),
.cel-search-page .cel-product>.wp-block-group:not(.cel-product__img-wrap) {
    padding-bottom: 0px !important;
    gap: 0px !important;
}

.cel-shop-page .cel-product .wp-block-woocommerce-product-rating,
.cel-shop-page .cel-product .wc-block-components-product-rating,
.cel-search-page .cel-product .wp-block-woocommerce-product-rating,
.cel-search-page .cel-product .wc-block-components-product-rating {
    min-height: 18px !important;
}

.cel-shop-page .cel-product .wp-block-woocommerce-product-button,
.cel-shop-page .cel-product .wc-block-components-product-button,
.cel-shop-page .cel-product .wp-block-button.wc-block-components-product-button,
.cel-search-page .cel-product .wp-block-woocommerce-product-button,
.cel-search-page .cel-product .wc-block-components-product-button,
.cel-search-page .cel-product .wp-block-button.wc-block-components-product-button {
    margin-top: auto !important;
    margin-bottom: 2px !important;
}

.cel-filters-form .cel-filter-check .cel-filter-check__text {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.cel-filters-form input[type="hidden"] {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove Gutenberg block spacing that creates empty gaps in sidebar filters */
.cel-shop-sidebar-wrap.is-layout-constrained>*,
.cel-shop-sidebar-wrap.wp-block-group-is-layout-constrained>*,
.cel-filters-sidebar.is-layout-constrained>*,
.cel-filters-sidebar.wp-block-group-is-layout-constrained>*,
.cel-filters-form>* {
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.cel-filters-form {
    align-content: start !important;
}

.hidden {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 
 * Header Brand Transitions & Modes:
 * Handles switching between 'Icon + Title' and 'Full Logo'.
 */
.cel-header__brand {
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.cel-header__brand .custom-logo-link {
    transition: all 0.4s ease;
    display: flex !important;
    align-items: center !important;
}

/* mode: logo_only */
.cel-header__brand .is-full-logo img {
    height: auto !important;
    max-height: 50px !important;
    /* Cap height to prevent header bloat */
    width: auto !important;
}

/* mode: icon_title */
.is-icon-only img {
    border-radius: 4px;
    /* Optional: subtle rounding for icon look */
    transition: all 0.3s ease;
}

.cel-header__brand:hover .is-full-logo {
    transform: scale(1.02);
}

/* Override cel-header-icon constraints when in full logo mode */
.cel-header__brand .cel-header-icon.is-full-logo {
    width: auto !important;
    height: auto !important;
    border: none !important;
    overflow: visible !important;
    padding: 0 !important;
}

.cel-header__brand .cel-header-icon.is-full-logo img,
.cel-header__brand .cel-header-icon.is-full-logo .custom-logo {
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    max-height: 60px !important;
    /* Slightly larger cap for full logo */
}

/* Adjust gap in full logo mode */
.cel-header__brand.is-logo-only {
    gap: 0 !important;
}

/* Footer Social Buttons and Summary */
.cel-footer-info {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cel-footer-resumen {
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    opacity: 0.9;
}

.cel-social-buttons {
    display: flex;
    gap: 12px;
    align-items: center;
}

.cel-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--celeste-button_bg, var(--celeste-button_alt_bg, #111));
    color: var(--celeste-button_text, var(--celeste-button_alt_text, #fff)) !important;
    transition: all 0.3s ease;
    padding: 8px;
}

.cel-social-btn svg {
    width: 20px;
    height: 20px;
}

.cel-social-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    filter: brightness(1.2);
}


.cel-header {
    padding-left: var(--cel-container-padding) !important;
    padding-right: var(--cel-container-padding) !important;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

.cel-header__toggle {
    display: none;
    align-items: center;
    gap: 0;
    padding: 10px;
    margin-top: 6px;
    border: 0;
    border-radius: 999px;
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    font-weight: 600;
    font-size: 0.85rem;
    line-height: 1;
    cursor: pointer;
}

.cel-header__toggle-lines {
    position: relative;
    width: 18px;
    height: 12px;
    display: inline-block;
}

.cel-header__toggle-lines::before,
.cel-header__toggle-lines::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: currentColor;
    border-radius: 999px;
}

.cel-header__toggle-lines::before {
    top: 0;
}

.cel-header__toggle-lines::after {
    bottom: 0;
}

.cel-header .cel-header__toggle {
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
}

.cel-header .cel-header__toggle-lines::before,
.cel-header .cel-header__toggle-lines::after {
    background: var(--celeste-button_text, #fff) !important;
}

.cel-header .cel-header__mobile-close {
    background: var(--celeste-button_bg, #111) !important;
    color: var(--celeste-button_text, #fff) !important;
    border-color: var(--celeste-button_bg, #111) !important;
}

.cel-header__mobile-panel {
    position: fixed;
    inset: 0;
    display: flex;
    justify-content: flex-end;
    background: rgba(17, 17, 17, 0.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    z-index: 9999;
}

.cel-header__mobile-panel-inner {
    width: min(92vw, 360px);
    height: 100%;
    background: #fff;
    padding: 24px;
    box-shadow: -12px 0 30px rgba(0, 0, 0, 0.18);
    transform: translateX(20px);
    transition: transform 0.25s ease;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cel-nav--mobile {
    margin-top: 8px;
}

.cel-nav--mobile .wp-block-navigation__container {
    gap: 0 !important;
}

.cel-nav--mobile .wp-block-navigation-item {
    display: block !important;
}

.cel-nav--mobile .wp-block-navigation-item__content {
    display: block !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid #e5e7eb;
}

.cel-nav--mobile .wp-block-navigation-item:last-child .wp-block-navigation-item__content {
    border-bottom: 0;
}

.cel-header__mobile-panel.is-open {
    opacity: 1;
    pointer-events: auto;
}

.cel-header__mobile-panel.is-open .cel-header__mobile-panel-inner {
    transform: translateX(0);
}

.cel-header__mobile-close {
    align-self: flex-end;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #111;
    font-size: 22px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

body.cel-no-scroll {
    overflow: hidden;
}

.cel-footer {
    padding-left: var(--cel-container-padding) !important;
    padding-right: var(--cel-container-padding) !important;
    padding-top: 40px !important;
    padding-bottom: 20px !important;
}

@media (max-width: 900px) {
    .cel-header__left {
        gap: 20px !important;
    }

    .cel-header__left .cel-nav {
        display: none !important;
    }

    .cel-header__right .cel-search,
    .cel-header__right .cel-search-container {
        display: none !important;
    }

    .cel-header__right .cel-header__cart {
        display: none !important;
    }

    .cel-header__right {
        padding-top: 4px;
    }

    .cel-header__toggle {
        display: inline-flex;   
        color: var(--celeste-button_text, #fff) !important;
    }
}

@media (max-width: 768px) {
    .cel-footer__columns {
        flex-direction: column !important;
        gap: 30px !important;
    }

    .cel-hero__title {
        font-size: 2.2rem !important;
    }

    .cel-hero {
        min-height: 400px !important;
    }
}

/* Category Block Custom Styling */
.cel-custom-categories .wc-block-product-categories-list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    display: grid !important;
    gap: 20px !important;
}

.cel-custom-categories .wc-block-product-categories-list-item {
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    overflow: hidden !important;
    border-radius: 12px !important;
    background: #f9fafb !important;
    transition: transform 0.3s ease !important;
}

.cel-custom-categories .wc-block-product-categories-list-item:hover {
    transform: translateY(-5px) !important;
}

.cel-custom-categories .wc-block-product-categories-list-item a {
    text-decoration: none !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.cel-custom-categories .wc-block-product-categories-list-item__image {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    border-radius: 8px !important;
}

.cel-custom-categories .wc-block-product-categories-list-item__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.5s ease !important;
}

.cel-custom-categories .wc-block-product-categories-list-item:hover img {
    transform: scale(1.1) !important;
}

.cel-custom-categories .wc-block-product-categories-list-item__name {
    padding: 12px !important;
    font-weight: 700 !important;
    color: var(--celeste-text_color, #111) !important;
    text-align: center !important;
    font-size: 0.95rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}

.cel-custom-categories .wc-block-product-categories-list-item__count {
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    opacity: 0.7 !important;
    color: var(--celeste-link_color, #2563eb) !important;
}

/* Footer Custom Styles */
/* Footer Custom Styles */
.cel-footer-custom-list,
.cel-footer .wp-block-list,
.cel-footer ul {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.cel-footer-custom-list li,
.cel-footer .wp-block-list li,
.cel-footer ul li {
    list-style-type: none !important;
    margin-bottom: 8px;
    padding-left: 0 !important;
}

.cel-social-buttons.wp-block-social-links {
    margin-top: 20px !important;
    gap: 16px !important;
}

/* Override WP default backgrounds on social list items */
.cel-footer .cel-social-buttons .wp-social-link {
    background-color: transparent !important;
}

.cel-footer .cel-social-buttons .wp-social-link a {
    width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background-color: var(--celeste-button_bg, #2563eb) !important;
    color: var(--celeste-button_text, #ffffff) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
    border: none !important;
}

.cel-footer .cel-social-buttons .wp-social-link a:hover {
    transform: translateY(-3px) !important;
    filter: brightness(1.1) !important;
    color: var(--celeste-button_text, #ffffff) !important;
}

.cel-footer .cel-social-buttons .wp-social-link a svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor !important;
}
