/* ==========================================================================
   Ficha de producto: campos de personalización (PPOM), opciones, pestañas, relacionados (propuesta 3)
   Solo se carga en las fichas de producto.
   ========================================================================== */

/* Campos de personalización del plugin: una columna, redondeados y con la letra de la web */
.ppom-wrapper { margin: 0 0 12px; font-family: 'Montserrat', sans-serif; }
.ppom-wrapper .form-row, .ppom-wrapper .ppom-rendering-fields { margin: 0; display: block; }
.ppom-wrapper .ppom-field-wrapper, .ppom-wrapper .ppom-col { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; padding: 0 !important; }
.ppom-wrapper .form-group { margin: 0 0 14px; }
.ppom-wrapper label.form-control-label, .ppom-wrapper .form-control-label { display: block; font-size: 13.5px; font-weight: 500; color: var(--hv-tinta); margin: 0 0 5px; line-height: 1.3; }
.ppom-wrapper .show_required { color: var(--hv-oferta); }
.ppom-wrapper .show_description, .ppom-wrapper .ppom-input-desc { display: block; font-size: 12px; font-weight: 400; color: var(--hv-tinta-suave); line-height: 1.4; margin-top: 2px; }
.ppom-wrapper input.form-control, .ppom-wrapper textarea.form-control, .ppom-wrapper select.form-control, .ppom-wrapper select.form-select, .ppom-wrapper input[type=text], .ppom-wrapper input[type=number], .ppom-wrapper input.date {
    width: 100%; max-width: 100%; min-height: 46px; border: 1px solid var(--hv-linea); border-radius: 10px; background-color: var(--hv-papel); padding: 11px 14px;
    font: 400 14.5px/1.4 'Montserrat', sans-serif; color: var(--hv-tinta); box-shadow: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.ppom-wrapper textarea.form-control { min-height: 96px; resize: vertical; }
.ppom-wrapper input.form-control:focus, .ppom-wrapper textarea.form-control:focus, .ppom-wrapper select:focus {
    border-color: var(--hv-salvia); outline: 0; box-shadow: 0 0 0 3px rgba(94, 110, 90, .14);
}
.ppom-wrapper input.ppom-error, .ppom-wrapper .ppom-error { border-color: var(--hv-oferta); }
.ppom-wrapper .ppom-input-error, .ppom-wrapper .ppom-error-msg { color: var(--hv-oferta); font-size: 12.5px; }
.ppom-wrapper .form-check, .ppom-wrapper .ppom-checkbox-wrapper { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 14px; }
.ppom-wrapper input[type=checkbox], .ppom-wrapper input[type=radio] { width: 18px; height: 18px; accent-color: var(--hv-salvia); }

/* Cuadro de precio por unidad y total */
.ppom-wrapper table.table, .ppom-price-container table { width: 100% !important; border-collapse: separate; border-spacing: 0; border: 1px solid var(--hv-linea); border-radius: 12px; overflow: hidden; background: #fff; margin: 6px 0 14px; font-size: 14px; }
.ppom-wrapper table.table th, .ppom-wrapper table.table td, .ppom-price-container table th, .ppom-price-container table td {
    background: transparent !important; border: 0; border-top: 1px solid var(--hv-linea); padding: 11px 16px; color: var(--hv-tinta); font-weight: 400;
}
.ppom-wrapper table.table tr:first-child th, .ppom-wrapper table.table tr:first-child td, .ppom-price-container table tr:first-child th, .ppom-price-container table tr:first-child td { border-top: 0; }
.ppom-wrapper table.table .ppom-total-without-fixed th, .ppom-wrapper table.table .ppom-total-without-fixed td, .ppom-price-container .ppom-total-without-fixed th, .ppom-price-container .ppom-total-without-fixed td {
    font-weight: 600; font-size: 15.5px; background: var(--hv-papel) !important;
}

/* Opciones de producto con variantes */
table.variations { margin: 0 0 12px; border: 0; }
table.variations th.label, table.variations td.label { padding: 0 0 5px; display: block; }
table.variations th.label label, table.variations .label label { font-size: 13.5px; font-weight: 500; color: var(--hv-tinta); text-transform: none; }
table.variations td.value { display: block; padding: 0 0 12px; }
table.variations select { width: 100%; min-height: 46px; border: 1px solid var(--hv-linea); border-radius: 10px; background-color: var(--hv-papel); padding: 0 14px; font: 400 14.5px 'Montserrat', sans-serif; color: var(--hv-tinta); }
a.reset_variations { font-size: 12.5px; color: var(--hv-salvia); }

/* Cantidad y botón de añadir */
form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 8px; }
form.cart .ppom-wrapper, form.cart .hv-panel, form.cart table.variations, form.cart .single_variation_wrap { flex: 0 0 100%; width: 100%; }
form.cart .single_variation_wrap { display: block; }
form.cart .quantity { margin: 0; }
html body form.cart .single_add_to_cart_button { min-height: 50px; padding: 0 34px; border-radius: 999px; font: 500 14.5px/1 'Montserrat', sans-serif; flex: 1 1 200px; max-width: 320px; }
.single-product .product_meta { margin-top: 16px; font-size: 13px; color: var(--hv-tinta-suave); border-top: 1px solid var(--hv-linea); padding-top: 14px; display: grid; gap: 4px; }
.single-product .product_meta a { color: var(--hv-salvia); }
.single-product .yith-wcwl-add-to-wishlist { margin-top: 14px; }
.single-product .yith-wcwl-add-to-wishlist a { color: var(--hv-salvia); font-size: 14px; text-decoration: none; }

/* Imágenes */
.woocommerce-product-gallery .flex-viewport, .woocommerce-product-gallery__image img { border-radius: 14px; }
.woocommerce-product-gallery .flex-control-thumbs img { border-radius: 10px; }

/* Precio */
.single-product .summary p.price, .single-product .summary span.price { color: var(--hv-tinta); font-size: 1.5rem; font-weight: 500; }
.single-product .summary p.price ins, .single-product .summary span.price ins { text-decoration: none; color: var(--hv-oferta); font-weight: 600; }
.single-product .summary p.price del { opacity: .55; font-size: .8em; }

/* Pestañas (Descripción, Información adicional, Valoraciones) */
.woocommerce-tabs { margin-top: 36px; }
.woocommerce-tabs ul.tabs { display: flex; gap: 28px; flex-wrap: wrap; margin: 0 0 22px; padding: 0; border-bottom: 1px solid var(--hv-linea); list-style: none; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: transparent !important; border: 0 !important; border-radius: 0 !important; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a { display: block; padding: 12px 0; font: 500 14.5px/1 'Montserrat', sans-serif; color: var(--hv-tinta-suave) !important; border-bottom: 2px solid transparent; margin-bottom: -1px; text-decoration: none; }
.woocommerce-tabs ul.tabs li.active a, .woocommerce-tabs ul.tabs li a:hover { color: var(--hv-tinta) !important; border-bottom-color: var(--hv-salvia); }
.woocommerce-tabs .panel { font-size: 15px; line-height: 1.75; color: #4F4540; max-width: 860px; }
.woocommerce-tabs .panel h2 { font-family: var(--hv-titulos); font-size: 26px; font-weight: 600; color: var(--hv-tinta); }
.woocommerce-tabs .panel table.shop_attributes { border: 1px solid var(--hv-linea); border-radius: 12px; border-collapse: separate; overflow: hidden; }
.woocommerce-tabs .panel table.shop_attributes th, .woocommerce-tabs .panel table.shop_attributes td { padding: 10px 16px; border: 0; border-top: 1px solid var(--hv-linea); background: transparent; font-style: normal; }
.woocommerce-tabs .panel table.shop_attributes tr:first-child th, .woocommerce-tabs .panel table.shop_attributes tr:first-child td { border-top: 0; }

/* Productos relacionados */
.related.products > h2, .upsells.products > h2 { font-family: var(--hv-titulos); font-size: clamp(28px, 3vw, 36px); font-weight: 500; text-align: center; margin: 56px 0 24px; color: var(--hv-tinta); }

/* Valoraciones */
#reviews #comments h2, #review_form #reply-title { font-family: var(--hv-titulos); font-size: 24px; font-weight: 600; }
#review_form textarea, #review_form input[type=text], #review_form input[type=email] { border: 1px solid var(--hv-linea); border-radius: 10px; padding: 11px 14px; background: #fff; }

@media (max-width: 600px) { html body form.cart .single_add_to_cart_button { max-width: none; flex: 1 1 100%; } }

/* Subida de logo o foto en «Personalízame» */
.hv-subida { margin: 14px 0 6px; padding: 14px 16px; border: 1px dashed var(--hv-arena, #D6BA96); border-radius: 12px; background: #fff; }
.hv-subida label { display: block; margin: 0 0 8px; font-weight: 600; font-size: 14px; color: var(--hv-tinta, #3A2F2A); }
.hv-subida label small { font-weight: 400; color: var(--hv-tinta-suave, #7A6B63); }
.hv-subida input[type=file] { width: 100%; font-size: 13px; }
.hv-subida input[type=file]::file-selector-button { margin-right: 12px; padding: 8px 16px; border: 1px solid var(--hv-salvia, #5E6E5A); border-radius: 999px; background: transparent; color: var(--hv-salvia, #5E6E5A); font: 600 13px/1 'Montserrat', sans-serif; cursor: pointer; }
.hv-subida input[type=file]::file-selector-button:hover { background: var(--hv-salvia-claro, #E5EBE1); }
.hv-subida__estado { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 13px; }
.hv-subida__estado:empty { display: none; }
.hv-subida__estado img { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; border: 1px solid var(--hv-linea, #E6DCCF); }
.hv-subida__estado--error { color: #9B2C2C; }
.hv-subida__quitar { margin-left: auto; padding: 4px 10px; border: 0; background: none; color: var(--hv-tinta-suave, #7A6B63); text-decoration: underline; cursor: pointer; font-size: 12px; }
.hv-subida__nota { margin: 8px 0 0; font-size: 12px; color: var(--hv-tinta-suave, #7A6B63); }

/* Precio por cantidad */
.hv-tramos { margin: 14px 0 16px; padding: 14px 16px; border-radius: 12px; background: #fff; border: 1px solid var(--hv-linea, #E6DCCF); }
.hv-tramos__t { margin: 0 0 8px; font: 600 20px/1.1 var(--hv-titulos, 'Cormorant Infant', Georgia, serif); }
.hv-tramos table { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.hv-tramos th, .hv-tramos td { padding: 6px 4px; border: 0; border-top: 1px solid #F1E9DE; font-size: 14px; text-align: left; background: transparent; }
.hv-tramos tr:first-child th, .hv-tramos tr:first-child td { border-top: 0; }
.hv-tramos td { text-align: right; font-weight: 600; }
.hv-tramos td small, .hv-ud, .hv-desde { font-weight: 400; font-size: .72em; color: var(--hv-tinta-suave, #7A6B63); }
.hv-desde { font-size: .8em; margin-right: 2px; }
.hv-tramos__actual th, .hv-tramos__actual td { background: var(--hv-salvia-claro, #E5EBE1); color: var(--hv-tinta, #3A2F2A); }
.hv-tramos__nota { margin: 8px 0 0; font-size: 12.5px; color: var(--hv-tinta-suave, #7A6B63); }
.hv-tramos__total { margin: 8px 0 0; font-size: 14px; }

/* El título de la ficha es ahora el único (el de arriba se quitó por SEO): más grande y con aire */
.single-product .summary .product_title { font-size: clamp(26px, 3vw, 34px); line-height: 1.15; margin: 4px 0 6px; }

/* Subtotal en vivo bajo el precio, encima de la cantidad y el botón */
form.cart .hv-subtotal, .woocommerce-variation-add-to-cart .hv-subtotal { flex: 0 0 100%; order: -1; margin: 0 0 6px; font-size: 15px; color: var(--hv-tinta); }
.hv-subtotal b { font-size: 18px; }
.hv-subtotal span { font-size: 13px; color: var(--hv-tinta-suave); }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
