/* Ficha de producto */
.single-product .fl-container { padding-bottom: 30px; }
.fl-breadcrumb, .woocommerce-breadcrumb { margin: 4px 0 12px; font-size: 12px; color: var(--fl-texto-2); }
.fl-breadcrumb a, .woocommerce-breadcrumb a { color: var(--fl-verde-osc); }
.fl-breadcrumb a:first-child::before {
	content: ""; display: inline-block; width: 13px; height: 13px; margin-right: 4px; vertical-align: -2px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2300935f' d='M12 3 1 12h3v9h6v-6h4v6h6v-9h3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.fl-sep { margin: 0 6px; color: #999; }

html body.single-product div.product { display: grid; grid-template-columns: 372px minmax(0, 1fr); column-gap: 24px; align-items: start; }
html body.single-product div.product > * { grid-column: 1 / -1; }
html body.single-product div.product div.images { grid-column: 1; float: none; width: 372px; margin: 0; border: 1px solid var(--fl-borde); padding: 0; }
html body.single-product div.product div.summary { grid-column: 2; float: none; width: auto; margin: 0; }
html body.single-product div.product div.images img { display: block; width: 100%; height: auto; }
.woocommerce-product-gallery__trigger { top: 8px; right: 8px; }
.flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px; margin: 0; border-top: 1px solid var(--fl-borde); }
.flex-control-thumbs li { width: calc(25% - 5px); float: none; }

.product_title { margin: 0 0 10px; font-size: 20px; font-weight: 700; line-height: 1.25; color: #333; }
.woocommerce-product-details__short-description { margin-bottom: 10px; font-size: 12px; line-height: 1.5; }
.woocommerce-product-details__short-description p { margin: 0 0 6px; }
.fl-single-rating { display: flex; align-items: center; gap: 4px; padding-bottom: 10px; border-bottom: 1px solid #ddd; margin-bottom: 14px; font-size: 12px; }
.fl-write-review { color: var(--fl-texto); }

.summary .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: 0 0 4px; font-size: 20px; color: var(--fl-rojo); font-weight: 400; }
.summary .price .fl-from { font-size: 18px; color: var(--fl-rojo); }
.summary .price del { font-size: 12px; color: var(--fl-texto-2); opacity: 1; order: 2; }
.summary .price ins { order: 3; text-decoration: none; background: transparent; font-weight: 400; color: var(--fl-rojo); font-size: 20px; }
.summary .price .screen-reader-text { display: none; }
.summary .price > .amount { color: var(--fl-rojo); }
.fl-savings { margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid #ddd; font-size: 12px; color: var(--fl-rojo); }

.fl-choose { margin: 0 0 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; }
.summary form.cart { margin: 0; }
.summary table.variations { width: 100%; margin: 0 0 8px; border: 0; border-collapse: collapse; }
.summary table.variations th, .summary table.variations td { display: block; padding: 0; border: 0; background: transparent; text-align: left; }
.summary table.variations th.label label, .fl-pers__label { display: block; margin: 8px 0 4px; font-size: 13px; font-weight: 700; text-transform: uppercase; color: #333; }
.summary table.variations th.label label::after { content: "*"; margin-left: 8px; color: #c00; font-size: 11px; vertical-align: top; }
.summary table.variations select { width: 100%; max-width: 300px; height: 24px; padding: 0 4px; border: 1px solid #767676; background: #fff; font-size: 12px; }
.summary .reset_variations { display: none !important; }
.summary .woocommerce-variation-price, .summary .woocommerce-variation-availability { display: none; }
.summary .woocommerce-variation-description { display: none; }

.fl-pers__row { display: flex; align-items: center; gap: 4px; margin-bottom: 14px; }
.fl-pers input[type="text"] { width: 160px; height: 22px; padding: 0 4px; border: 1px solid #767676; font-size: 12px; }
.fl-pers__price { font-size: 11px; color: var(--fl-texto-2); }

.summary .quantity { display: inline-flex; align-items: center; gap: 4px; margin: 0 8px 0 0; float: none; }
.summary .quantity::before { content: "Qty:"; font-weight: 700; }
.summary .quantity .qty { width: 36px; height: 20px; padding: 0 2px; border: 1px solid #767676; text-align: left; font-size: 12px; }
.woocommerce-variation-add-to-cart, .summary form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: center; }
.fl-pers { flex: 1 1 100%; }
.summary .single_add_to_cart_button, .summary button.button.alt {
	width: 150px; height: 30px; margin: 0; padding: 0; border: 1px solid #fff; outline: 1px solid var(--fl-verde-osc);
	border-radius: 0; background: var(--fl-verde-osc); color: #fff; font-size: 13px; font-weight: 700; line-height: 30px; float: none;
}
.summary .single_add_to_cart_button:hover { background: var(--fl-verde); }
.summary .product_meta { margin-top: 14px; padding-top: 10px; border-top: 1px solid #ddd; font-size: 12px; color: var(--fl-texto-2); }
.summary .product_meta > span { display: block; }

/* Pestañas planas */
.woocommerce-tabs { margin-top: 28px; }
.woocommerce-tabs ul.tabs { display: flex; gap: 0; margin: 0 0 -1px; padding: 0; border-bottom: 1px solid var(--fl-borde); overflow: visible; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a { display: block; padding: 8px 18px; font-size: 13px; font-weight: 700; color: var(--fl-texto-2); border: 1px solid transparent; }
.woocommerce-tabs ul.tabs li.active a { color: #000; border-color: var(--fl-borde); border-bottom-color: #fff; background: #fff; }
.woocommerce-tabs .panel { margin: 0; padding: 14px 0; font-size: 13px; line-height: 1.6; }
.woocommerce-tabs .panel h2 { font-size: 15px; margin-bottom: 8px; }

.related.products > h2, .upsells.products > h2 { margin: 24px 0 10px; font-size: 18px; font-weight: 400; color: #000; }

/* Anular estilos por defecto de Woo en la ficha */
html body.single-product span.onsale { display: none; }
html body.woocommerce div.product .woocommerce-tabs ul.tabs li,
html body.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border: 0; border-radius: 0; box-shadow: none; margin: 0; padding: 0; }
html body.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 8px 18px; color: var(--fl-texto-2); }
html body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #000; }
html body.woocommerce div.product form.cart .variations select { min-width: 0; max-width: 300px; width: 100%; }
html body.woocommerce div.product form.cart .variations { margin-bottom: 8px; }
html body.woocommerce div.product form.cart .variations td.value { padding: 0; }
html body.woocommerce div.product p.price, html body.woocommerce div.product span.price { color: var(--fl-rojo); font-size: 20px; }
html body.woocommerce div.product form.cart .button { float: none; }

/* Plugin NewNow Personalización: tallas, dorsal/nombre, versión, parches y total con el aspecto plano del original */
.summary .nnp {
	--nnp-gap: 8px;
	--nnp-radio: 0;
	--nnp-borde: #ccc;
	--nnp-texto: var(--fl-texto);
	--nnp-suave: var(--fl-texto-2);
	--nnp-hover: var(--fl-verde-osc);
	--nnp-fondo: #fff;
	--nnp-activo: var(--fl-verde-osc);
	--nnp-activo-texto: #fff;
	--nnp-error: #c00;
	--nnp-tam-talla: 34px;
	font-size: 12px;
	gap: 12px;
	margin: 0 0 12px;
	flex: 1 1 100%;
}
.summary .nnp__titulo,
.summary .nnp__titulo * { font-size: 13px; }
.summary .nnp__titulo { margin: 0 0 6px; font-weight: 700; text-transform: uppercase; color: #333; }
.summary .nnp__titulo::after { content: "*"; margin-left: 6px; color: #c00; font-size: 11px; vertical-align: top; }
.summary .nnp__bloque--personalizacion .nnp__titulo::after,
.summary .nnp__bloque--parches .nnp__titulo::after,
.summary .nnp__bloque--version .nnp__titulo::after { content: none; }

.summary .nnp-tallas, .summary .nnp-modos { gap: 6px; }
.summary .nnp-talla, .summary .nnp-modo {
	min-width: var(--nnp-tam-talla); min-height: 28px; padding: 0 8px;
	border: 1px solid #ccc; border-radius: 0; background: #fff; color: #333;
	font-size: 12px; font-weight: 400; line-height: 1.1;
}
.summary .nnp-modo { padding: 5px 10px; }
.summary .nnp-talla:hover, .summary .nnp-modo:hover, .summary .nnp-parche:hover { border-color: var(--fl-verde-osc); }
.summary .nnp-talla.is-active, .summary .nnp-modo.is-active { background: var(--fl-verde-osc); border-color: var(--fl-verde-osc); color: #fff; }
.summary .nnp-talla.is-agotada { color: #aaa; text-decoration: line-through; background: #f5f5f5; cursor: not-allowed; }
.summary .nnp-talla__suplemento, .summary .nnp-modo__precio, .summary .nnp-parche__precio { font-size: 10px; }

.summary .nnp-campos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.summary .nnp-campo__etiqueta { font-size: 12px; font-weight: 700; }
.summary .nnp-campo__input, .summary .nnp input[type="text"], .summary .nnp input[type="number"], .summary .nnp select {
	height: 24px; padding: 0 4px; border: 1px solid #ccc; border-radius: 0; background: #fff; font-size: 12px; color: #333;
}
.summary .nnp-campo__input:focus, .summary .nnp select:focus { border-color: var(--fl-verde-osc); outline: 0; }
.summary .nnp__ayuda, .summary .nnp__nota { margin: 6px 0 0; font-size: 11px; color: var(--fl-texto-2); }

.summary .nnp-parches { grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 6px; }
.summary .nnp-parche { flex-direction: column; padding: 6px 4px; border: 1px solid #ccc; border-radius: 0; background: #fff; font-size: 11px; text-align: center; }
.summary .nnp-parche__imagen img { width: 40px; height: 40px; object-fit: contain; }
.summary .nnp-parche.is-active { background: #fff; color: var(--fl-verde-osc); border: 2px solid var(--fl-verde-osc); padding: 5px 3px; }
.summary .nnp-parche.is-active .nnp-parche__precio { color: var(--fl-rojo); }

.summary .nnp-error { margin: 4px 0 0; font-size: 12px; color: #c00; }
.summary .nnp__bloque.is-error .nnp-talla, .summary .nnp__bloque.is-error .nnp-campo__input { border-color: #c00; }
.summary .nnp-resumen { margin: 2px 0 0; padding-top: 8px; border-top: 1px solid #ddd; font-size: 14px; color: var(--fl-texto); }
.summary .nnp-resumen__total { font-size: 20px; font-weight: 400; color: var(--fl-rojo); }
.summary .nnp-guia__abrir { font-size: 12px; text-transform: none; }
