/* ═══════════════════════════════════════════
   WOOCOMMERCE — Shop, Cards, Producto individual
   Costuras Creativas Child Theme
═══════════════════════════════════════════ */

/* ══════════════════════════
   1. SHOP / ARCHIVE
══════════════════════════ */

/* Contenedor general */
.cc-shop-page .site-content,
.woocommerce .woocommerce-products-header {
    background: var(--cc-cream) !important;
}

/* Grid de productos */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* ── Card de producto ── */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: var(--cc-white) !important;
    border-radius: var(--cc-radius-md) !important;
    overflow: hidden !important;
    border: 1px solid var(--cc-cream-2) !important;
    box-shadow: var(--cc-shadow-sm) !important;
    transition: transform var(--cc-transition), box-shadow var(--cc-transition) !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-5px) !important;
    box-shadow: var(--cc-shadow-lg) !important;
}

/* Imagen */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
    width: 100% !important;
    aspect-ratio: 1 !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.45s ease !important;
    border-radius: 0 !important;
}

.woocommerce ul.products li.product:hover img {
    transform: scale(1.05) !important;
}

/* Wrap de imagen */
.woocommerce ul.products li.product .cc-card-img-wrap {
    overflow: hidden;
    position: relative;
}

/* Nombre del producto */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--cc-font-body) !important;
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--cc-ink) !important;
    line-height: 1.35 !important;
    padding: 14px 14px 6px !important;
    margin: 0 !important;
}

/* Precio */
.woocommerce ul.products li.product .price {
    font-family: var(--cc-font-display) !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--cc-rose) !important;
    padding: 0 14px 8px !important;
    display: block !important;
}

.woocommerce ul.products li.product .price del {
    font-family: var(--cc-font-body) !important;
    font-size: 0.72rem !important;
    font-weight: 400 !important;
    color: var(--cc-ink-faint) !important;
    margin-right: 4px !important;
    opacity: 1 !important;
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none !important;
}

/* Botón Añadir al carrito en la card */
.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce ul.products li.product .button {
    display: block !important;
    width: calc(100% - 28px) !important;
    margin: 0 14px 14px !important;
    padding: 9px 14px !important;
    background: transparent !important;
    border: 1.5px solid var(--cc-cream-2) !important;
    border-radius: var(--cc-radius-sm) !important;
    color: var(--cc-ink-muted) !important;
    font-family: var(--cc-font-display) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: all var(--cc-transition) !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transform: none !important;
}

.woocommerce ul.products li.product .button.add_to_cart_button:hover,
.woocommerce ul.products li.product .button:hover {
    background: var(--cc-rose) !important;
    border-color: var(--cc-rose) !important;
    color: var(--cc-white) !important;
    transform: none !important;
    box-shadow: none !important;
}

/* ── Badges de producto ── */

/* Sale badge (WooCommerce nativo) */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
    background: var(--cc-rose) !important;
    color: var(--cc-white) !important;
    font-family: var(--cc-font-display) !important;
    font-size: 0.65rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    border-radius: var(--cc-radius-pill) !important;
    padding: 4px 10px !important;
    min-height: unset !important;
    min-width: unset !important;
    line-height: 1.5 !important;
    top: 10px !important;
    left: 10px !important;
    right: auto !important;
    margin: 0 !important;
}

/* Badge "Nuevo" (custom desde functions.php) */
.cc-badge--new {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
}

/* ── Área de ratings ── */
.woocommerce ul.products li.product .star-rating {
    font-size: 0.75rem !important;
    color: var(--cc-rose) !important;
    margin: 0 14px 6px !important;
}

/* ══════════════════════════
   2. FILTROS / ORDERING
══════════════════════════ */

.woocommerce-ordering select,
.woocommerce .woocommerce-ordering select {
    font-family: var(--cc-font-body) !important;
    border: 1px solid var(--cc-cream-2) !important;
    border-radius: var(--cc-radius-pill) !important;
    padding: 8px 16px !important;
    font-size: 0.8rem !important;
    color: var(--cc-ink) !important;
    background: var(--cc-cream) !important;
    outline: none !important;
    cursor: pointer !important;
}

.woocommerce-result-count {
    font-family: var(--cc-font-body) !important;
    font-size: 0.78rem !important;
    color: var(--cc-ink-muted) !important;
}

/* ══════════════════════════
   3. PÁGINA DE PRODUCTO INDIVIDUAL
══════════════════════════ */

.cc-product-page .site-content {
    background: var(--cc-white);
    padding-top: 0;
}

/* Layout: NO tocamos el layout del producto individual.
   Elementor Theme Builder maneja la estructura.
   Solo aplicamos estilos visuales (colores, tipografía, botones). */

/* Galería — solo estilos visuales */
.woocommerce div.product .woocommerce-product-gallery {
    border-radius: var(--cc-radius-lg) !important;
    overflow: hidden !important;
}

.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
    width: 100% !important;
    height: auto !important;
}

/* Thumbnails */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img {
    border-radius: var(--cc-radius-sm) !important;
    border: 2px solid transparent !important;
    transition: border-color var(--cc-transition) !important;
    cursor: pointer !important;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    border-color: var(--cc-rose) !important;
}

/* Summary */
.woocommerce div.product .summary {
    padding: 0 !important;
}

/* Galería */
.woocommerce div.product .woocommerce-product-gallery {
    border-radius: var(--cc-radius-lg) !important;
    overflow: hidden !important;
    box-shadow: var(--cc-shadow-md) !important;
}

.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
    border-radius: var(--cc-radius-lg) !important;
    width: 100% !important;
    height: auto !important;
}

/* Thumbnails de galería */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img {
    border-radius: var(--cc-radius-sm) !important;
    border: 2px solid transparent !important;
    transition: border-color var(--cc-transition) !important;
    cursor: pointer !important;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    border-color: var(--cc-rose) !important;
}

/* Summary */
.woocommerce div.product .summary {
    padding: 0 !important;
}

/* Título */
.woocommerce div.product .product_title {
    font-family: var(--cc-font-display) !important;
    font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
    font-weight: 900 !important;
    color: var(--cc-ink) !important;
    text-transform: uppercase !important;
    line-height: 1.05 !important;
    margin-bottom: 12px !important;
    letter-spacing: -0.01em !important;
}

/* Rating */
.woocommerce div.product .woocommerce-product-rating {
    margin-bottom: 16px !important;
}

.woocommerce div.product .star-rating {
    color: var(--cc-rose) !important;
    font-size: 0.85rem !important;
}

/* Precio */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: var(--cc-font-display) !important;
    font-size: 2.2rem !important;
    font-weight: 900 !important;
    color: var(--cc-rose) !important;
    margin-bottom: 20px !important;
    line-height: 1 !important;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    font-size: 1.1rem !important;
    color: var(--cc-ink-faint) !important;
    font-weight: 400 !important;
    margin-right: 8px !important;
    opacity: 1 !important;
}

/* Descripción corta */
.woocommerce div.product .woocommerce-product-details__short-description {
    font-family: var(--cc-font-body) !important;
    font-size: 0.9rem !important;
    color: var(--cc-ink-muted) !important;
    line-height: 1.75 !important;
    margin-bottom: 24px !important;
}

/* Quantity + Add to cart */
.woocommerce div.product form.cart {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
    margin-bottom: 24px !important;
    flex-wrap: wrap !important;
}

.woocommerce div.product form.cart .qty {
    width: 60px !important;
    height: 46px !important;
    text-align: center !important;
    border: 1.5px solid var(--cc-cream-2) !important;
    border-radius: var(--cc-radius-pill) !important;
    font-family: var(--cc-font-display) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--cc-ink) !important;
    background: var(--cc-cream) !important;
    padding: 0 !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1 !important;
    background: var(--cc-rose) !important;
    color: var(--cc-white) !important;
    border: none !important;
    border-radius: var(--cc-radius-pill) !important;
    padding: 13px 28px !important;
    font-family: var(--cc-font-display) !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: all var(--cc-transition) !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--cc-rose-dark) !important;
    box-shadow: var(--cc-shadow-rose) !important;
    transform: translateY(-2px) !important;
}

/* Wishlist / otros botones secundarios */
.woocommerce div.product .product_meta {
    font-family: var(--cc-font-body) !important;
    font-size: 0.75rem !important;
    color: var(--cc-ink-faint) !important;
    border-top: 1px solid var(--cc-cream-2) !important;
    padding-top: 16px !important;
    margin-top: 16px !important;
}

/* Tabs (Descripción, Valoraciones) */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex !important;
    gap: 4px !important;
    border-bottom: 1px solid var(--cc-cream-2) !important;
    padding: 0 !important;
    margin: 0 0 24px !important;
    list-style: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    border: none !important;
    background: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--cc-font-display) !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--cc-ink-muted) !important;
    padding: 10px 16px !important;
    display: block !important;
    border-bottom: 2px solid transparent !important;
    margin-bottom: -1px !important;
    transition: all var(--cc-transition) !important;
    text-decoration: none !important;
    border-radius: 0 !important;
    background: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--cc-rose) !important;
    border-bottom-color: var(--cc-rose) !important;
}

/* Sección "Productos relacionados" */
.related.products h2,
.upsells.products h2 {
    font-family: var(--cc-font-display) !important;
    font-size: 1.6rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    color: var(--cc-ink) !important;
    margin-bottom: 24px !important;
    letter-spacing: -0.01em !important;
}

/* ══════════════════════════
   4. CARRITO
══════════════════════════ */

.cc-cart-page .woocommerce-cart-form table {
    border: none !important;
    border-radius: var(--cc-radius-md) !important;
    overflow: hidden !important;
    box-shadow: var(--cc-shadow-sm) !important;
}

.cc-cart-page table.shop_table th {
    background: var(--cc-cream) !important;
    font-family: var(--cc-font-display) !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: var(--cc-ink-muted) !important;
    border-bottom: 1px solid var(--cc-cream-2) !important;
    padding: 12px 16px !important;
}

.cc-cart-page table.shop_table td {
    border-bottom: 1px solid var(--cc-cream-2) !important;
    padding: 16px !important;
    vertical-align: middle !important;
    font-family: var(--cc-font-body) !important;
}

/* Total de carrito */
.cart_totals h2 {
    font-family: var(--cc-font-display) !important;
    font-size: 1.2rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: var(--cc-ink) !important;
    margin-bottom: 16px !important;
}

/* Botón checkout */
.wc-proceed-to-checkout .checkout-button {
    background: var(--cc-rose) !important;
    border: none !important;
    border-radius: var(--cc-radius-pill) !important;
    font-family: var(--cc-font-display) !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    width: 100% !important;
    padding: 14px !important;
    transition: all var(--cc-transition) !important;
}

.wc-proceed-to-checkout .checkout-button:hover {
    background: var(--cc-rose-dark) !important;
    box-shadow: var(--cc-shadow-rose) !important;
}

/* ══════════════════════════
   5. MENSAJES / NOTICES
══════════════════════════ */

.woocommerce-message,
.woocommerce-info {
    border-top-color: var(--cc-rose) !important;
    border-radius: var(--cc-radius-md) !important;
    font-family: var(--cc-font-body) !important;
    background: var(--cc-rose-light) !important;
    color: var(--cc-ink) !important;
    padding: 14px 20px !important;
}

.woocommerce-message::before { color: var(--cc-rose) !important; }

.woocommerce-error {
    border-top-color: #E53E3E !important;
    border-radius: var(--cc-radius-md) !important;
    background: #FFF5F5 !important;
}

/* ══════════════════════════
   6. PAGINACIÓN
══════════════════════════ */

.woocommerce nav.woocommerce-pagination ul {
    border: none !important;
    gap: 6px !important;
    display: flex !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    border: 1.5px solid var(--cc-cream-2) !important;
    border-radius: var(--cc-radius-sm) !important;
    font-family: var(--cc-font-display) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    color: var(--cc-ink) !important;
    padding: 7px 13px !important;
    transition: all var(--cc-transition) !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--cc-rose) !important;
    border-color: var(--cc-rose) !important;
    color: var(--cc-white) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--cc-rose) !important;
    border-color: var(--cc-rose) !important;
    color: var(--cc-white) !important;
}

/* ══════════════════════════
   7. RESPONSIVE
══════════════════════════ */

@media (max-width: 1024px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    /* Producto individual: apilar galería y summary en mobile */
    .woocommerce div.product .woocommerce-product-gallery {
        float: none !important;
        width: 100% !important;
        margin-bottom: 32px !important;
    }

    .woocommerce div.product .summary {
        float: none !important;
        width: 100% !important;
    }
}

@media (max-width: 480px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .woocommerce div.product p.price {
        font-size: 1.7rem !important;
    }
}
