/* =============================================================================
   Oliva — Single Product
   ============================================================================= */

/* ---------------------------------------------------------------------------
   Anular inicialización WooCommerce (opacity:0 que WC pone en la galería)
   --------------------------------------------------------------------------- */
.single-product .woocommerce-product-gallery.images {
    opacity: 1 !important;
    transition: none !important;
}

/* ---------------------------------------------------------------------------
   Layout principal: imagen (izq, fondo gris) + info (der, blanco)
   --------------------------------------------------------------------------- */
.single-product div.product {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}


/* Columna imagen */
.single-product .woocommerce-product-gallery.images {
    position: relative !important;
    width: 55% !important;
    flex: 0 0 55% !important;
    background-color: #f2f2f0 !important;
    display: block !important;
    padding: 0 !important;
    min-height: 560px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Galería WC: llenar el contenedor completamente */
.single-product .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
}

.single-product .woocommerce-product-gallery__image {
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    cursor: crosshair !important;
}

.single-product .woocommerce-product-gallery__image a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.single-product .woocommerce-product-gallery__image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.08s linear !important;
    will-change: transform !important;
}

/* Columna info */
.single-product .summary.entry-summary {
    width: 45% !important;
    flex: 0 0 45% !important;
    padding: 3.5em 3.5em 3em !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
}

/* ---------------------------------------------------------------------------
   Galería custom: stage, imagen principal, tira de miniaturas en overlay
   --------------------------------------------------------------------------- */
.oliva-gallery-stage {
    position: relative;
    width: 100%;
    height: 100%;
}

.oliva-main-image {
    width: 100%;
    height: 100%;
}

.oliva-main-img-el {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.15s ease;
    will-change: transform;
    cursor: crosshair;
}

/* Tira de miniaturas — overlay sobre la imagen principal */
.oliva-thumb-strip,
.oliva-thumb-strip-overlay {
    position: absolute;
    right: 1em;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 6px;
    z-index: 10;
    flex-shrink: 0;
    width: 72px;
}

.oliva-thumb-item {
    display: block !important;
    width: 72px !important;
    height: 72px !important;
    border: 1.5px solid #d8d8d8 !important;
    border-radius: 0 !important;
    background: #fff !important;
    background-color: #fff !important;
    color: inherit !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    transition: border-color 0.2s !important;
    flex-shrink: 0 !important;
    outline: none !important;
    box-shadow: none !important;
}

.oliva-thumb-item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    padding: 3px;
    box-sizing: border-box;
    filter: grayscale(100%) !important;
    transition: filter 0.2s ease !important;
}

.oliva-thumb-item:hover img,
.oliva-thumb-item.is-active img {
    filter: grayscale(0%) !important;
}

.oliva-thumb-item:hover,
.oliva-thumb-item:focus {
    border-color: #888 !important;
    background-color: #fff !important;
    color: inherit !important;
    outline: none !important;
    box-shadow: none !important;
}

.oliva-thumb-item.is-active {
    border-color: #111 !important;
    background-color: #fff !important;
    color: inherit !important;
    outline: none !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------------------------
   Cabecera del producto: título
   --------------------------------------------------------------------------- */
.single-product .product_title.entry-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1.75em !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    margin: 0 0 0.25em 0 !important;
    color: #111 !important;
}

/* Artesano | Región */
.oliva-single-artesano-region {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.9em;
    font-family: 'Montserrat', sans-serif;
}

.oliva-single-artesano {
    font-size: 0.875em;
    color: #555;
    font-weight: 400;
}

.oliva-single-region {
    font-size: 0.875em;
    color: #555;
    font-weight: 400;
    text-align: right;
}

/* Técnica */
.oliva-single-tecnica {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.875em;
    color: #333;
    margin-bottom: 1.4em;
}

.oliva-single-tecnica strong {
    font-weight: 600;
}

/* Descripción corta */
.single-product .woocommerce-product-details__short-description {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.9em !important;
    line-height: 1.75 !important;
    color: #444 !important;
    margin-bottom: 1.8em !important;
}

/* Precio */
.single-product p.price,
.single-product span.price {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1.5em !important;
    font-weight: 700 !important;
    color: #111 !important;
    margin-bottom: 1em !important;
}

.single-product .woocommerce-Price-amount.amount {
    font-family: 'Minion Pro', 'Minion', Georgia, serif !important;
    font-size: 36px !important;
    font-weight: 700 !important;
    color: #000 !important;
}

/* Nota de impuesto */
.single-product .woocommerce-variation-price,
.single-product .tax_label,
.single-product p.woocommerce-price-suffix {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.75em !important;
    color: #888 !important;
}

/* ---------------------------------------------------------------------------
   Selector de cantidad + botón agregar — misma fila
   --------------------------------------------------------------------------- */

/* Fila flex: quantity + botón */
body.single-product form.cart {
    display: flex !important;
    align-items: stretch !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
    margin: 0 0 0.5em 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Anula la regla core de WC que fija width:7.4em y height:54px en div.quantity */
body.single-product div.product form.cart div.quantity {
    width: auto !important;
    height: 50px !important;
    margin: 0 !important;
    position: static !important;
}

/* Contenedor quantity */
body.single-product .oliva-quantity {
    display: flex !important;
    align-items: stretch !important;
    border: 1.5px solid #111 !important;
    border-radius: 0 !important;
    width: auto !important;
    height: 50px !important;
    flex-shrink: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    position: static !important;
}

/* Botones +/- */
body.single-product .oliva-qty-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 20px !important;
    font-weight: 300 !important;
    color: #111 !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    float: none !important;
}
body.single-product .oliva-qty-btn:hover {
    background: #f2f2f0 !important;
    background-color: #f2f2f0 !important;
    color: #111 !important;
}

/* Input numérico — sin spinners del browser */
body.single-product .oliva-quantity input.qty {
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
    height: 50px !important;
    border: none !important;
    border-left: 1.5px solid #111 !important;
    border-right: 1.5px solid #111 !important;
    border-radius: 0 !important;
    text-align: center !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #111 !important;
    background: #fff !important;
    padding: 0 !important;
    margin: 0 !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
    box-shadow: none !important;
    outline: none !important;
    float: none !important;
}
body.single-product .oliva-quantity input.qty::-webkit-inner-spin-button,
body.single-product .oliva-quantity input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
}

/* Botón agregar al carrito */
body.single-product form.cart .single_add_to_cart_button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 50px !important;
    padding: 0 28px !important;
    background: #111 !important;
    background-color: #111 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    outline: none !important;
    opacity: 1 !important;
    margin: 0 0 0 12px !important;
    float: none !important;
}
body.single-product form.cart .single_add_to_cart_button:hover {
    background: #333 !important;
    background-color: #333 !important;
    color: #fff !important;
    opacity: 1 !important;
}

/* Nota de precio (después del botón) */
.oliva-nota-precio {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75em;
    color: #888;
    margin: 0.6em 0 0 0;
    line-height: 1.4;
}

/* ---------------------------------------------------------------------------
   Sección "Obras relacionadas"
   --------------------------------------------------------------------------- */
.oliva-obras-relacionadas {
    padding: 0;
    width: 100%;
}

body .oliva-obras-relacionadas .oliva-obras-titulo {
    font-family: 'Minion Pro', 'Minion', Georgia, serif !important;
    font-size: 36px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: #111 !important;
    margin: 0 0 1.2em 0 !important;
    padding: 60px 0 0 60px !important;
}

/* El grid usa .oliva-productos-grid dentro de .oliva-tienda-wrapper —
   hereda todos los estilos de tienda. Solo corregimos flex:1 del contexto sidebar. */
.oliva-obras-relacionadas .oliva-productos-grid {
    flex: none !important;
    width: 100% !important;
}

/* ---------------------------------------------------------------------------
   Ocultar elementos que no usamos en single product
   --------------------------------------------------------------------------- */
.single-product .product_meta,
.single-product .woocommerce-product-rating {
    display: none !important;
}

/* ---------------------------------------------------------------------------
   Responsive — Tablet (< 960px)
   --------------------------------------------------------------------------- */
@media (max-width: 960px) {
    .single-product div.product {
        flex-wrap: wrap !important;
    }

    .single-product .woocommerce-product-gallery.images {
        width: 100% !important;
        flex: 0 0 100% !important;
        min-height: 380px !important;
        padding: 0 !important;
    }

    .single-product .summary.entry-summary {
        width: 100% !important;
        flex: 0 0 100% !important;
        padding: 2em 1.5em !important;
    }

    .oliva-obras-relacionadas .oliva-productos-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ---------------------------------------------------------------------------
   Responsive — Móvil (< 600px)
   --------------------------------------------------------------------------- */
@media (max-width: 600px) {
    .single-product .woocommerce-product-gallery.images {
        padding: 0 !important;
        min-height: 300px !important;
    }

    .oliva-thumb-strip,
    .oliva-thumb-strip-overlay {
        right: 0.5em;
        width: 52px;
    }

    .oliva-thumb-item {
        width: 52px;
        height: 52px;
    }

    .oliva-obras-relacionadas .oliva-productos-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
