/*
Theme Name:   Flatsome Child
Theme URI:    https://fiorifunebritorino.it
Description:  Fiori Funebri Torino — Fioraio funebre a Torino
Author:       Flor10
Template:     flatsome
Version:      2.0
Text Domain:  flatsome-child
*/

/* ============================================================
   FIORI FUNEBRI NAPOLI — Estilos personalizados (paleta Napoli)
   Prefijo de clases custom: ffm-

   Índice:
     1.  VARIABLES DE COLOR
     2.  TIPOGRAFÍA GLOBAL
     3.  ENLACES
     4.  BOTONES
     5.  HEADER Y NAVEGACIÓN
     6.  SECCIONES OSCURAS (banners hero)
     7.  SECCIONES CREMA
     8.  TARJETAS DE CATEGORÍA (Featured Boxes)
     9.  ACORDEÓN / FAQ
    10.  PÁGINA DE PRODUCTO
    11.  PÁGINA DE CATEGORÍA (cuadrícula de productos)
    12.  CARRITO Y CHECKOUT
    13.  PÁGINA 404
    14.  PÁGINA CARRITO VACÍO
    15.  BANNER DE COOKIES (GDPR)
    16.  FOOTER
    17.  UTILIDADES
    18.  RESPONSIVE — TABLET
    19.  RESPONSIVE — MÓVIL
   ============================================================ */


/* =============================================================
   1. VARIABLES DE COLOR
   Paleta principal del sitio. Se usan en todo el CSS
   para mantener coherencia visual.
   - dark: burdeos oscuro para fondos, secciones hero y footer.
   - dark-secondary: burdeos principal para botones y CTAs.
   - accent: rojo coral para estados hover y destacados.
   - cream: fondo suave crema para secciones alternadas.
   - border: línea sutil para separadores.
   ============================================================= */
:root {
    --ffm-dark:           #082C5C;
    --ffm-dark-secondary: #0C3C7C;
    --ffm-gold:           #0C3C7C;
    --ffm-gold-light:     #082C5C;
    --ffm-cream:          #FAF7F4;
    --ffm-text:           #1A1A1A;
    --ffm-text-light:     #5C5C5C;
    --ffm-white:          #ffffff;
    --ffm-border:         #e5e0d8;
}


/* =============================================================
   2. TIPOGRAFÍA GLOBAL
   Encabezados en Playfair Display (elegante, serio, funerario).
   Cuerpo en Inter (legible, neutral).
   Tamaño base 16px con interlineado 1.7 para buena legibilidad.
   ============================================================= */
body {
    color: var(--ffm-text);
    
    font-size: 16px;
    line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--ffm-dark);
    
    font-weight: 600;
    line-height: 1.3;
}

h1 { font-size: 2.2em; }
h2 { font-size: 1.6em; margin-bottom: 15px; }
h3 { font-size: 1.25em; }


/* =============================================================
   3. ENLACES
   Color dorado (identidad de Milano) con transición suave al hover.
   ============================================================= */
a {
    color: var(--ffm-gold);
    transition: color 0.3s ease;
}
a:hover {
    color: var(--ffm-gold-light);
}


/* =============================================================
   4. BOTONES
   Tres variantes:
   - primary: fondo burdeos oscuro, para CTAs principales
     ("Scopri il servizio", "Ordina", checkout).
   - secondary: fondo burdeos claro, para CTAs secundarios
     ("Contattaci", "Scopri le zone").
   - white: borde blanco transparente, para CTAs sobre
     fondos oscuros (banners hero).
   ============================================================= */
.button.primary,
button.primary,
.button.checkout,
input[type="submit"].button.primary {
    background-color: var(--ffm-dark-secondary) !important;
    border-color: var(--ffm-dark-secondary) !important;
    color: var(--ffm-white) !important;
    border-radius: 4px;
    font-weight: 500;
    letter-spacing: 0.5px;
    transition: all 0.25s ease;
}
.button.primary:hover,
button.primary:hover,
input[type="submit"].button.primary:hover {
    background-color: var(--ffm-dark) !important;
    border-color: var(--ffm-dark) !important;
}

.button.secondary {
    background-color: var(--ffm-gold) !important;
    border-color: var(--ffm-gold) !important;
    color: var(--ffm-white) !important;
    border-radius: 4px;
    font-weight: 500;
    transition: all 0.25s ease;
}
.button.secondary:hover {
    background-color: var(--ffm-gold-light) !important;
    border-color: var(--ffm-gold-light) !important;
}

.button.white {
    background-color: transparent !important;
    border: 2px solid var(--ffm-white) !important;
    color: var(--ffm-white) !important;
    border-radius: 4px;
}
.button.white:hover {
    background-color: var(--ffm-white) !important;
    color: var(--ffm-dark) !important;
}


/* =============================================================
   5. HEADER Y NAVEGACIÓN
   Fondo blanco limpio con borde inferior sutil.
   Sin mayúsculas forzadas en el menú (text-transform: none)
   para un aspecto más elegante y sobrio.
   ============================================================= */
.header-main {
    background-color: var(--ffm-white);
    border-bottom: 0px solid var(--ffm-border);
}

.nav > li > a {
    font-weight: 500;
    letter-spacing: 0.3px;
    text-transform: none;
}

/* Cursor "default" en los ítems del menú con submenú */
.nav li.menu-item-has-children a.nav-top-link {
    cursor: default !important;
}


/* =============================================================
   6. SECCIONES OSCURAS (banners hero)
   Fuerza texto blanco en encabezados y párrafos dentro
   de las secciones con clase "dark" de Flatsome
   (shortcode [section dark="true"]).
   ============================================================= */
.section.dark h1,
.section.dark h2,
.section.dark h3 {
    color: var(--ffm-white);
}
.section.dark p {
    color: rgba(255, 255, 255, 0.9);
}


/* =============================================================
   7. SECCIONES CREMA
   Borde sutil arriba y abajo en secciones con fondo crema
   (#FAF7F4) para separarlas visualmente del contenido blanco.
   ============================================================= */
.section[style*="FAF7F4"],
.section[style*="faf7f4"] {
    border-top: 1px solid var(--ffm-border);
    border-bottom: 1px solid var(--ffm-border);
}


/* =============================================================
   8. TARJETAS DE CATEGORÍA (Featured Boxes)
   Usadas en la homepage para las 3 categorías de productos
   (Corone, Mazzi, Palme). Efecto hover: sube 3px y añade
   sombra para dar sensación de profundidad.
   ============================================================= */
.featured-box {
    padding: 25px;
    border-radius: 6px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.featured-box:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}


/* =============================================================
   9. ACORDEÓN / FAQ
   Estilo para los bloques [accordion faq_schema="true"]
   de Flatsome. Título con peso medio, interior con fondo
   crema para distinguir la respuesta de la pregunta.
   ============================================================= */
.accordion-title {
    font-weight: 500;
    font-size: 1.05em;
    padding: 15px 20px;
    border-color: var(--ffm-border);
}
.accordion-inner {
    padding: 15px 20px;
    background-color: var(--ffm-cream);
}
.accordion .toggle {
    position: static !important;
}


/* =============================================================
   10. PÁGINA DE PRODUCTO
   Estilos para la ficha de producto individual: código
   SKU, variaciones, botón de compra, imágenes de
   confianza y etiquetas.
   ============================================================= */

/* Tamaño del código de producto (SKU) */
.sku_wrapper {
    font-size: 23px;
}

/* Letra pequeña para siglas en el nombre de la floristería */
.smallCap {
    font-size: 0.9em !important;
}

/* Ocultar botón "Añadir al carrito" debajo de la imagen */
.add-to-cart-button {
    display: none !important;
}

/* Ocultar categorías y etiquetas en el SKU superior
   del single-product; mostrar solo en el SKU inferior */
div.product-gallery + div.product-summary .posted_in {
    display: none !important;
}
div.product-gallery + div.product-summary .tagged_as {
    display: none !important;
}
form.variations_form + div.product_meta .posted_in {
    display: block !important;
}
form.variations_form + div.product_meta .tagged_as {
    display: block !important;
}
form.cart + div.product_meta .posted_in {
    display: block !important;
}
form.cart + div.product_meta .tagged_as {
    display: block !important;
}

/* Texto de la descripción corta (nastro funerario) */
.descrizioneNastroText {
    font-size: 0.85em !important;
    margin-top: -2% !important;
}

/* Juntar código de producto inferior con las pestañas
   de "informazioni aggiuntive" */
.product-main > .row {
    margin-bottom: -3% !important;
}
.product .product-footer {
    margin-top: 1% !important;
}

/* Ocultar botón "Cancella" en las variaciones del producto */
.variations_form .reset_variations {
    visibility: hidden !important;
}

/* Estilo del texto del nastro funerario */
.testoNastroFunerario {
    font-size: 1.1em !important;
    font-weight: 700 !important;
}

/* Botón principal "Ordina" en la ficha de producto */
.single_add_to_cart_button {
    width: 100%;
    height: 66px;
    background: var(--ffm-dark-secondary);
    color: #fff;
    border: 0;
    border-radius: 5px !important;
    font-size: 1.5rem !important;
    text-transform: uppercase;
    font-weight: 600;
}

/* Fila de imágenes de confianza (consegna garantita,
   pagamento sicuro, commercio sicuro) */
.filaImgsTrust {
    margin-bottom: 1.5em !important;
    margin-top: -1.5em !important;
    text-align: center !important;
}

/* Separar botón "Ordina" de "Recensioni clienti" */
#divAvvisoConsegnaGratis {
    margin-bottom: 5% !important;
}

/* Botón "ORDINA" más largo en la página de producto */
.custom-product-page .single_variation_wrap button.single_add_to_cart_button {
    width: 97% !important;
}


/* =============================================================
   11. PÁGINA DE CATEGORÍA (cuadrícula de productos)
   Estructura visual idéntica al sitio de referencia:
   categoría (pequeña, mayúsculas) → título (serif, grande)
   → precio + IVA Inclusa → REF: código (pequeño, gris).
   ============================================================= */

/* Los selectores se acotan con body:not(.home) para que estos estilos NO se
   apliquen al bloque de productos de la portada (se mantiene el diseño
   por defecto de Flatsome en la home). */

/* Eliminar borde/recuadro de las tarjetas de producto en la cuadrícula. */
body:not(.home) .product-small .box,
body:not(.home) .product-small .box-text,
body:not(.home).woocommerce ul.products li.product .box,
body:not(.home).tax-product_cat .product-small .box,
body:not(.home).archive .product-small .box,
body:not(.home).woocommerce-page .product-small .box {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Contenedor de texto de la tarjeta — centrado */
body:not(.home) .product-small .box-text {
    padding: 15px 10px;
    text-align: center;
}

/* Etiqueta de categoría encima del título */
body:not(.home) .ffm-product-cat {
    font-size: 0.68em;
    font-weight: 600;
    letter-spacing: 2px;
    color: #000 !important;
    text-transform: uppercase;
    margin-bottom: 6px;
    display: block;
}

/* Título del producto — serif, grande, oscuro */
body:not(.home) .product-small .product-title,
body:not(.home) .product-small .woocommerce-loop-product__title,
body:not(.home) .product-small .woocommerce-loop-product__title a {
    
    font-size: 1.25em !important;
    font-weight: 700 !important;
    color: var(--ffm-dark) !important;
    line-height: 1.3;
    margin-bottom: 8px;
}

/* Precio principal */
body:not(.home) .product-small .price {
    color: var(--ffm-text) !important;
    font-weight: 700;
    font-size: 1.05em;
    display: block;
    margin-bottom: 2px;
}

/* Sufijo "IVA Inclusa" junto al precio */
body:not(.home) .ffm-iva-suffix {
    font-size: 0.75em;
    font-weight: 400;
    color: #000 !important;
}

/* REF: código debajo del precio — centrado y negro */
body:not(.home) .ffm-product-ref {
    font-size: 0.78em;
    color: #000 !important;
    letter-spacing: 0.5px;
    margin-top: 4px;
    margin-bottom: 6px;
    display: block !important;
    text-align: center !important;
    width: 100% !important;
}

/* Botón "Ordina" en la cuadrícula */
body:not(.home) .product-small .add_to_cart_button {
    background-color: var(--ffm-dark-secondary) !important;
    color: var(--ffm-white) !important;
    border-radius: 4px;
}
body:not(.home) .product-small .add_to_cart_button:hover {
    background-color: var(--ffm-gold) !important;
}

/* Ocultar metadatos de categoría y etiquetas en la cuadrícula */
body:not(.home) div.product-small div.box-image + div.box-text .posted_in,
body:not(.home) div.product-small div.box-image + div.box-text .tagged_as {
    display: none !important;
}
body:not(.home) div.product-small div.box-image + div.box-text .product_meta {
    margin-bottom: 1% !important;
}

/* Ocultar el sku_wrapper antiguo en la cuadrícula */
body:not(.home) div.product-small div.box-image + div.box-text .sku_wrapper {
    display: none !important;
}

/* Ocultar estrellas de valoración en la cuadrícula */
body:not(.home) .js-star-rating.star-rating {
    display: none !important;
}
body:not(.home) .product-small .price-wrapper .price {
    margin-top: 0 !important;
}


/* =============================================================
   12. CARRITO Y CHECKOUT
   Estilos para las páginas de carrito y checkout de
   WooCommerce: campos, términos y condiciones,
   calendario de entrega, etc.
   ============================================================= */

/* Botón "Conferma Ordine" — ancho completo */
#place_order {
    width: 100%;
}

/* Ocultar campo "Paese" en el formulario de checkout */
#billing_country_field,
#shipping_country_field {
    display: none;
}

/* Ocultar "(facoltativo)" en los campos de facturación */
#billing_wooccm11_field .optional,
#billing_wooccm12_field .optional,
#billing_wooccm13_field .optional,
#billing_wooccm14_field .optional,
#billing_wooccm15_field .optional,
#billing_wooccm16_field .optional {
    display: none;
}

/* Botón y texto "Rimuovi prodotto" en el checkout */
div.removeProductContainer {
    display: inline-flex;
}
a.removeProductLink {
    margin-bottom: 0.5em;
}
span.removeProductText {
    margin-left: 0.5em;
    padding-top: 0.2em;
}

/* Nombre y precio del producto en el resumen de pedido */
.woocommerce-checkout-review-order .product-total .woocommerce-Price-amount {
    font-size: 1.5em;
}
.woocommerce-checkout-review-order .product-total .woocommerce-Price-amount .woocommerce-Price-currencySymbol {
    font-size: 1em !important;
}
.woocommerce-checkout-review-order .product-item-thumbnail {
    margin-bottom: 1em;
}
.woocommerce-checkout-review-order .productItemName {
    display: contents;
    font-weight: bold;
}

/* Caja "Termini e condizioni" — borde verde */
.woocommerce-terms-and-conditions-wrapper .validate-required {
    margin-bottom: 1.5em;
}
.woocommerce-terms-and-conditions-wrapper p label {
    border: 2px solid #28A745 !important;
    font-size: 0.8em;
    padding-bottom: 2%;
}

/* Checkbox de términos — tamaño doble */
.woocommerce-terms-and-conditions-wrapper input[type=checkbox] {
    -ms-transform: scale(2) !important;
    -moz-transform: scale(2) !important;
    -webkit-transform: scale(2) !important;
    -o-transform: scale(2) !important;
    margin-left: 3% !important;
    margin-top: 3% !important;
    padding: 10px !important;
}

/* Texto de los términos — tamaño mayor */
.woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text {
    font-size: 1.2em !important;
    margin-left: 3% !important;
}

/* Texto de "Importo addebitato dal Tanatorio" (tasas extra) */
.fee th {
    visibility: hidden !important;
}
.fee th:after {
    visibility: visible !important;
    content: "Importo addebitato dal Tanatorio per l'ingresso dei fiori:" !important;
    display: block !important;
    margin-top: -0.4em !important;
    padding-bottom: 0.5em !important;
}

/* Título "DATI NECESSARI PER LA CONSEGNA" */
.woocommerce-shipping-fields #ship-to-different-address label {
    font-size: 1em !important;
    font-weight: bold !important;
}
.woocommerce-shipping-fields #ship-to-different-address-checkbox {
    display: none !important;
}

/* Botón "Conferma Ordine" */
.form-row #place_order {
    border-radius: 5px !important;
    width: 100%;
}

/* Total de la compra en checkout */
.checkout .shipping__table tbody tr th {
    color: black !important;
    font-weight: bold !important;
}
.checkout .shipping__list_label {
    color: black !important;
    font-weight: bold !important;
    opacity: 1;
}
.checkout .shipping__list_label .woocommerce-Price-amount bdi {
    color: black !important;
    font-weight: bold !important;
}
.checkout #order_review .order-total th {
    font-size: 1.3em !important;
    width: 50%;
}
.checkout #order_review .order-total td strong .woocommerce-Price-amount {
    font-size: 1.5em;
}

/* Calendario de entrega (Order Delivery Date) */
#orddd_datepicker_0 .ui-datepicker {
    width: 85% !important;
}
#orddd_datepicker_0 .ui-datepicker .ui-datepicker-header {
    background-color: var(--ffm-dark-secondary) !important;
}
#orddd_datepicker_0 .ui-datepicker .ui-datepicker-buttonpane {
    display: none !important;
}
#orddd_time_slot_0_field {
    margin-top: 5%;
}
#orddd_datepicker_0 td.ui-datepicker-today {
    background-color: #f0f0c0 !important;
}
#orddd_datepicker_0 td.holidays,
#orddd_datepicker td.cut_off_time_over {
    background-color: #FBFCFA !important;
}

/* Aviso de sin horario de entrega disponible */
#orddd-na-slots {
    background-color: #FCDDDD;
    box-shadow: 0px 0px 2px rgb(0 0 0 / 20%), 0px 2px 10px rgb(0 0 0 / 10%);
    font-size: 1.5em;
    font-weight: bold;
    line-height: 1;
    padding: 2%;
}

/* Ocultar créditos del plugin de opiniones */
.cr-credits-div {
    display: none;
}


/* =============================================================
   13. PÁGINA 404
   Estilos para la página de error 404.
   ============================================================= */
.error-404 {
    margin-top: -3% !important;
}
.error-404 #divLogo404 {
    font-size: 6em;
    font-weight: bold;
    opacity: .3;
}
.error-404 #divLogo404 img {
    height: 1em;
    margin-left: 15% !important;
}
.error-404 #divTexto404 {
    margin-top: 8% !important;
}
.error-404 #divContImgs404 {
    padding-top: 0 !important;
}
.error-404 #divContImgs404 > p {
    font-variant: small-caps;
    text-align: center;
}
.error-404 #divContImgs404 .boxImg404 {
    width: 372px;
}
.error-404 .textoBajoFoto404 a span {
    font-size: 120%;
}
.error-404 .nameProduct404 {
    font-size: 1.3em !important;
}

/* Imágenes de categorías en páginas 404 y carrito vacío */
.img404CartEmpty {
    width: 80% !important;
}


/* =============================================================
   14. PÁGINA CARRITO VACÍO
   Estilos para cuando el carrito está vacío.
   ============================================================= */
#divContImgsCartEmpty {
    margin-top: -0.5%;
    padding-top: 0;
}
#divContImgsCartEmpty > p {
    text-align: center;
    font-variant: small-caps;
}
#divContImgsCartEmpty .boxImgCartEmpty {
    width: 372px;
}
.textoBajoFotoCartEmpty a span {
    font-size: 120%;
}

/* Centrar título en la página de carrito */
.woocommerce-cart h1 {
    text-align: center;
}

/* Centrar textos en la página de carrito vacío */
.woocommerce-notices-wrapper .woocommerce-message .message-container {
    text-align: center !important;
}
.woocommerce-notices-wrapper .woocommerce-message .cart-empty {
    text-align: center !important;
}
.woocommerce-notices-wrapper .cart-empty {
    text-align: center !important;
}
.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-info .message-container {
    text-align: center;
}

/* Mapa de Google en las categorías de cada pompa funebre */
.divMapaTnt {
    float: left;
    margin-right: 20px;
}


/* =============================================================
   15. BANNER DE COOKIES (GDPR — Moove GDPR Plugin)
   Estilo completo para el banner de consentimiento
   de cookies con overlay oscuro.
   ============================================================= */

/* Banner centrado con overlay */
#moove_gdpr_cookie_info_bar {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    width: 700px !important;
    transform: translate(-50%, -50%) !important;
    z-index: 9001 !important;
    background: #fff !important;
    color: #000 !important;
    border-radius: 5px !important;
    display: none !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    pointer-events: all !important;
    height: 35% !important;
    min-height: 300px !important;
}

/* Mostrar banner cuando el overlay está visible */
body.overlay-visible #moove_gdpr_cookie_info_bar {
    display: flex !important;
}

/* Fondo oscuro del overlay */
body.overlay-visible::before {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: rgba(0, 0, 0, 0.7) !important;
    z-index: 9000 !important;
}
body.banner-closed::before {
    display: none !important;
}

/* Texto del banner */
.moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p {
    color: #000 !important;
}
.moove-gdpr-info-bar-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin-top: 40px !important;
    text-align: center !important;
}

/* Botones del banner */
#moove_gdpr_cookie_info_bar .moove-gdpr-button-holder .mgbutton {
    opacity: 1 !important;
    font-weight: normal !important;
    filter: none !important;
    box-shadow: none !important;
}
.moove-gdpr-cookie-notice p {
    margin-bottom: 10px !important;
    font-size: 1em !important;
    line-height: 1.5 !important;
    font-weight: normal !important;
    color: black !important;
}
.moove-gdpr-cookie-notice p strong {
    font-weight: normal !important;
    text-align: justify !important;
    font-size: 1em !important;
}
.moove-gdpr-button-holder {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    padding-left: 0 !important;
    margin: 10px;
}

/* Ordenación y estilo de los botones GDPR */
.moove-gdpr-infobar-reject-btn {
    order: 1 !important;
    color: black !important;
    background-color: white !important;
    border: 1px solid black !important;
}
.moove-gdpr-infobar-settings-btn {
    order: 2 !important;
    color: black !important;
    background-color: white !important;
    border: 1px solid black !important;
}
.moove-gdpr-infobar-allow-all {
    order: 3 !important;
    background-color: #28A745 !important;
    border: 1px solid #28A745 !important;
}

/* Hover en los botones GDPR */
.moove-gdpr-infobar-reject-btn:hover {
    color: white !important;
    background-color: black !important;
}
.moove-gdpr-infobar-settings-btn:hover {
    color: white !important;
    background-color: black !important;
    box-shadow: none !important;
}
.moove-gdpr-infobar-allow-all:hover {
    color: #28A745 !important;
    background-color: white !important;
    border: 1px solid #28A745 !important;
}

/* Logo en el banner GDPR */
.imagen-logo {
    margin-top: -75px !important;
    height: 60px !important;
    width: auto !important;
    max-width: 90% !important;
}


/* =============================================================
   16. FOOTER
   Fondo burdeos oscuro que cierra visualmente la página.
   Texto y enlaces en blanco semitransparente (80%),
   con hover en el tono acento para coherencia con la marca.
   ============================================================= */
.footer-wrapper {
    background-color: var(--ffm-dark);
}
.footer-wrapper,
.footer-wrapper p,
.footer-wrapper a {
    color: rgba(255, 255, 255, 0.8);
}
.footer-wrapper a:hover {
    color: var(--ffm-gold);
}


/* =============================================================
   17. UTILIDADES
   Clases auxiliares reutilizables.
   ============================================================= */

/* Separador decorativo burdeos (60px) */
.ffm-separator {
    width: 60px;
    height: 3px;
    background-color: var(--ffm-dark-secondary);
    margin: 20px auto;
}


/* =============================================================
   18. RESPONSIVE — TABLET (768px a 1024px)
   ============================================================= */
@media (min-width: 768px) and (max-width: 1024px) {

    /* Imágenes de confianza en el producto */
    .consegnaGratisImg {
        margin-left: 1% !important;
        width: 25% !important;
    }
    .cortesiaImg {
        margin-top: 1% !important;
        width: 20% !important;
    }
    .cortesiaText {
        font-size: 1em !important;
    }

    /* Botón "Ordina" — tamaño de texto */
    .cart .quantity + button {
        font-size: 1.3rem !important;
    }
}


/* =============================================================
   19. RESPONSIVE — MÓVIL (< 768px)
   ============================================================= */
@media only screen and (max-width: 767px) {

    /* --- Tipografía global móvil --- */
    h1 { font-size: 1.7em; }
    h2 { font-size: 1.3em; }

    /* --- Secciones: padding lateral --- */
    .section {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* --- Botones grandes --- */
    .button.is-large {
        font-size: 0.9em;
        padding: 10px 20px;
    }

    /* --- Navbar: color del teléfono en barra superior --- */
    #top-bar .mobile-nav li a {
        color: var(--ffm-dark-secondary) !important;
    }

    /* --- Checkout: checkbox términos (tamaño normal en móvil) --- */
    .woocommerce-terms-and-conditions-wrapper input[type=checkbox] {
        -ms-transform: scale(1) !important;
        -moz-transform: scale(1) !important;
        -webkit-transform: scale(1) !important;
        -o-transform: scale(1) !important;
        padding: 0 !important;
    }
    .woocommerce-terms-and-conditions-wrapper .form-row .checkbox {
        line-height: 1.2 !important;
        padding-left: 3% !important;
    }
    .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text {
        font-size: 1em !important;
    }
    .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
        padding-bottom: 2% !important;
    }

    /* --- Producto: variaciones y cortesía --- */
    .cortesiaImg {
        margin-left: 10% !important;
    }
    .cortesiaText {
        margin-top: 5%;
        text-align: center;
    }
    .variations_form {
        text-align: center !important;
    }
    .woocommerce-variation-price {
        font-size: 1.2em;
        margin-top: 3%;
        padding-top: 5%;
    }
    .variations td:first-child {
        text-align: center;
    }
    .variations ul {
        display: flex;
        justify-content: space-around;
    }

    /* --- Producto: juntar SKU con pestañas --- */
    .product-main > .row .product-info {
        padding-bottom: 0.1em !important;
    }
    .product .product-footer {
        margin-top: 0.1% !important;
    }

    /* --- Producto: botón "Ordina" --- */
    .cart .quantity + button {
        font-size: 1.1rem !important;
    }

    /* --- Producto: variaciones (espacio reducido) --- */
    .row-small > .flickity-viewport > .flickity-slider > .col,
    .row-small > .col {
        margin-bottom: -1.5em !important;
    }

    /* --- Producto: imágenes de confianza --- */
    .filaImgsTrust {
        margin-bottom: -1em !important;
    }

    /* --- Checkout: horarios de entrega --- */
    #orddd_list_view_select_0 {
        display: flex !important;
        flex-direction: column !important;
    }

    /* --- Checkout: calendario ancho completo --- */
    #orddd_datepicker_0 .ui-datepicker {
        width: 100% !important;
    }
}


/* ===== F10 Nastro Funebre Incluso Badge (15-05-2026) ===== */
.ffm-nastro-badge {
    display: inline-block;
    background: #0C3C7C;
    color: #FFFFFF;
    padding: 8px 12px 9px;
    
    font-size: 10px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    border-radius: 2px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18);
    margin: 12px 0 0 12px;
    max-width: 130px;
}
.ffm-nastro-badge span {
    display: block;
    font-weight: 400;
    opacity: 0.92;
    font-size: 9px;
    margin-bottom: 2px;
}
.ffm-nastro-badge strong {
    display: block;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.08em;
}
.badge-container.is-larger .ffm-nastro-badge {
    padding: 10px 14px 11px;
    max-width: 150px;
    margin: 14px 0 0 14px;
}
.badge-container.is-larger .ffm-nastro-badge span {
    font-size: 10px;
}
.badge-container.is-larger .ffm-nastro-badge strong {
    font-size: 13px;
}
@media (max-width: 549px) {
    /* Listado de productos: badge banner full-width pegado al top */
    .badge-container:not(.is-larger) {
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
    }
    .badge-container:not(.is-larger) .ffm-nastro-badge {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 6px 8px !important;
        border-radius: 0 !important;
        text-align: center !important;
        box-shadow: none !important;
        line-height: 1.1 !important;
        max-width: none !important;
    }
    .badge-container:not(.is-larger) .ffm-nastro-badge span {
        display: none !important;
    }
    .badge-container:not(.is-larger) .ffm-nastro-badge strong {
        font-size: 10px !important;
        letter-spacing: 0.1em !important;
        white-space: nowrap !important;
        font-weight: 700 !important;
    }
    .badge-container:not(.is-larger) .ffm-nastro-badge strong::before {
        content: "NASTRO FUNEBRE " !important;
        font-weight: 400 !important;
        opacity: 0.92 !important;
    }
    /* Single product: badge compacto en esquina */
    .badge-container.is-larger .ffm-nastro-badge {
        padding: 5px 9px !important;
        margin: 8px 0 0 8px !important;
        line-height: 1.15 !important;
        max-width: none !important;
    }
    .badge-container.is-larger .ffm-nastro-badge span {
        font-size: 9px !important;
    }
    .badge-container.is-larger .ffm-nastro-badge strong {
        font-size: 11px !important;
    }
}

/* ============================================================
   CSS migrado desde el Customizer (2026-05-28)
   Razón: el @import a Google Fonts en CSS inline impedía a
   WP Rocket localizar las fuentes y disparaba LCP de ~9s por
   font swap tardío. Las fuentes ahora se encolan vía
   wp_enqueue_style en functions.php.
   ============================================================ */

/* === Tipografía global (DM Sans + DM Serif Display) === */
body, p, li, td, th, input, textarea, select, button, a,
.header-top, .footer-1, .footer-1 p {
    
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    
}

/* === Banner esquinas redondeadas consegna === */
.ffm-banner-rounded.banner { border-radius: 20px; overflow: hidden; }

/* === Footer — iconos de pago y copyright === */
.payment-icons { display:flex; align-items:center; gap:10px; }
.payment-icon { display:flex; align-items:center; }
.payment-icon svg { height:28px; width:auto; filter:brightness(0) invert(1); opacity:0.85; }
.absolute-footer .copyright-footer { color:#888888 !important; font-size:13px !important; }

/* === Homepage productos — ocultar IVA inclusa y precio más grande === */
.woocommerce-price-suffix { display: none !important; }
.home .product-small .price,
.home .products .price { font-size: 20px !important; font-weight: 500 !important; }

/* ================================================
   FULL WIDTH — quitar sidebar en categorías
   ================================================ */

.tax-product_cat .col.large-3,
.archive .col.large-3 {
  display: none !important;
}

.tax-product_cat .col.large-9,
.archive .col.large-9 {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

.tax-product_cat .category-filtering,
.archive .category-filtering {
  display: none !important;
}

/* ================================================
   CABECERA DE PÁGINA DE CATEGORÍA
   ================================================ */

.woocommerce-breadcrumb {
  font-size: 13px !important;
  color: #000 !important;
  margin-bottom: 50px !important;
}
.woocommerce-breadcrumb a,
.woocommerce-breadcrumb a:visited { color: #000 !important; }
.woocommerce-breadcrumb a:hover { color: #0C3C7C !important; }

.tax-product_cat h1.page-title,
.tax-product_cat .woocommerce-products-header__title {
  
  font-size: 38px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  text-align: center !important;
  margin-bottom: 8px !important;
  margin-top: 32px !important;
}

.tax-product_cat .woocommerce-result-count,
.tax-product_cat .woocommerce-ordering select {
  font-size: 13px !important;
  color: #2C2C2C !important;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  color: #0C3C7C !important;
  border-color: #E8E2DC !important;
}
.woocommerce-pagination ul li .current {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}

.tax-product_cat .woocommerce-price-suffix,
.archive .woocommerce-price-suffix { display: none !important; }

/* ================================================
   DESCRIPCIÓN debajo del grid (vía PHP hook)
   ================================================ */

.tax-product_cat .term-description,
.archive .term-description {
  
  font-size: 15px !important;
  color: #7A7A7A !important;
  text-align: center !important;
  max-width: 680px !important;
  margin: 40px auto 24px !important;
  line-height: 1.75 !important;
  padding-top: 32px !important;
  border-top: 1px solid #E8E2DC !important;
}

/* ================================================
   GRID — 3 columnas
   ================================================ */

.tax-product_cat .products.row,
.archive .products.row {
  margin-left: -12px !important;
  margin-right: -12px !important;
  row-gap: 28px !important;
}

.tax-product_cat .product-small.col,
.archive .product-small.col {
  padding-left: 12px !important;
  padding-right: 12px !important;
  padding-bottom: 0 !important;
}

/* ================================================
   TARJETA
   ================================================ */

.tax-product_cat .product-small .box,
.archive .product-small .box {
  background: #FFFFFF !important;
  border: 1px solid #E8E4E0 !important;
  border-radius: 4px !important;
  overflow: visible !important;
  box-shadow: none !important;
  transition: box-shadow 0.25s ease, transform 0.22s ease !important;
}

.tax-product_cat .product-small .box:hover,
.archive .product-small .box:hover {
  box-shadow: 0 10px 32px rgba(0,0,0,0.11) !important;
  transform: translateY(-4px) !important;
}

/* IMAGEN 560x680 (ratio 14/17) — se muestra completa, sin recorte */
.tax-product_cat .product-small .box-image,
.archive .product-small .box-image {
  position: relative !important;
  aspect-ratio: 560 / 680 !important;
  overflow: hidden !important;
  background: #F5F2EF !important;
  border-radius: 4px 4px 0 0 !important;
}

.tax-product_cat .product-small .box-image .image-fade_in_back,
.archive .product-small .box-image .image-fade_in_back {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.tax-product_cat .product-small .box-image .image-fade_in_back a,
.archive .product-small .box-image .image-fade_in_back a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.tax-product_cat .product-small .box-image img,
.archive .product-small .box-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transition: transform 0.45s ease !important;
}

.tax-product_cat .product-small .box:hover .box-image img,
.archive .product-small .box:hover .box-image img {
  transform: scale(1.06) !important;
}

.tax-product_cat .image-tools,
.archive .image-tools { display: none !important; }

/* TEXTO centrado */
.tax-product_cat .product-small .box-text.box-text-products,
.archive .product-small .box-text.box-text-products {
  padding: 16px 15px 20px !important;
  text-align: center !important;
}

.tax-product_cat .product-small .box-text .product-cat,
.archive .product-small .box-text .product-cat { display: none !important; }

.tax-product_cat .product-small .box-text .name.product-title,
.archive .product-small .box-text .name.product-title {
  margin-bottom: 10px !important;
}

.tax-product_cat .product-small .box-text .name.product-title a,
.archive .product-small .box-text .name.product-title a {
  
  font-size: 17px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  display: block !important;
}

.tax-product_cat .product-small .box-text .name.product-title a:hover,
.archive .product-small .box-text .name.product-title a:hover {
  color: #0C3C7C !important;
}

.tax-product_cat .product-small .price,
.archive .product-small .price {
  
  font-size: 21px !important;
  font-weight: 700 !important;
  color: #0C3C7C !important;
  display: block !important;
  text-align: center !important;
}

/* ================================================
   RESPONSIVE
   ================================================ */

@media (max-width: 768px) {
  .tax-product_cat h1.page-title { font-size: 28px !important; }
}
@media (max-width: 480px) {
  .tax-product_cat .product-small .box-text .name.product-title a { font-size: 15px !important; }
  .tax-product_cat .product-small .price { font-size: 18px !important; }
}

/* ================================================
   TEXTO SEO — DESCRIPCIÓN DE CATEGORÍA
   ================================================ */

.tax-product_cat .term-description,
.archive .term-description {
  max-width: 900px !important;
  margin: 60px auto 40px !important;
  padding: 48px 20px 40px !important;
  border-top: 2px solid #E8E2DC !important;
  text-align: left !important;
}

.tax-product_cat .term-description h2,
.archive .term-description h2 {
  
  font-size: 26px !important;
  font-weight: 400 !important;
  color: #0C3C7C !important;
  margin-top: 48px !important;
  margin-bottom: 14px !important;
  line-height: 1.25 !important;
}

.tax-product_cat .term-description h2:first-child,
.archive .term-description h2:first-child {
  margin-top: 0 !important;
}

.tax-product_cat .term-description h3,
.archive .term-description h3 {
  
  font-size: 19px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  margin-top: 28px !important;
  margin-bottom: 8px !important;
  line-height: 1.3 !important;
}

.tax-product_cat .term-description p,
.archive .term-description p {
  
  font-size: 15px !important;
  color: #4A4A4A !important;
  line-height: 1.8 !important;
  margin-bottom: 12px !important;
  max-width: 860px !important;
}

/* ================================================
   ACORDEÓN — descripción de categoría
   ================================================ */

.tax-product_cat .term-description .accordion-set,
.archive .term-description .accordion-set {
  max-width: 860px !important;
  margin: 32px 0 0 !important;
  border-top: 1px solid #E8E2DC !important;
}

.tax-product_cat .term-description .accordion,
.archive .term-description .accordion {
  border-bottom: 1px solid #E8E2DC !important;
  margin: 0 !important;
}

.tax-product_cat .term-description .accordion-title,
.archive .term-description .accordion-title {
  
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #0C3C7C !important;
  padding: 18px 36px 18px 0 !important;
  display: block !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  position: relative !important;
}

.tax-product_cat .term-description .accordion-title:hover,
.archive .term-description .accordion-title:hover {
  color: #4A0F1A !important;
}

/* Icono + (acordeón cerrado) */
.tax-product_cat .term-description .accordion-title::after,
.archive .term-description .accordion-title::after {
  content: "+" !important;
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  color: #0C3C7C !important;
  
}

/* Icono − (acordeón abierto) — escape Unicode U+2212 */
.tax-product_cat .term-description .accordion.is-active .accordion-title::after,
.archive .term-description .accordion.is-active .accordion-title::after {
  content: "\2212" !important;
}

.tax-product_cat .term-description .accordion-content,
.archive .term-description .accordion-content {
  padding: 4px 0 20px !important;
}

.tax-product_cat .term-description .accordion-content p,
.archive .term-description .accordion-content p {
  
  font-size: 15px !important;
  color: #1A1A1A !important;
  line-height: 1.8 !important;
  margin-bottom: 12px !important;
}

.tax-product_cat .term-description .accordion-content strong,
.archive .term-description .accordion-content strong {
  color: #1A1A1A !important;
  font-weight: 700 !important;
}

.tax-product_cat .term-description > p,
.archive .term-description > p {
  
  font-size: 15px !important;
  color: #1A1A1A !important;
  line-height: 1.8 !important;
  margin-bottom: 20px !important;
}

.tax-product_cat .term-description .accordion-title i,
.archive .term-description .accordion-title i {
  display: none !important;
}

/* ================================================
   PRODUCT PAGE — Estilo profesional
   ================================================ */

.single-product .product_title.entry-title {
  
  font-size: 32px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  line-height: 1.2 !important;
  margin-bottom: 14px !important;
}

.single-product .price {
  
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #0C3C7C !important;
  margin-bottom: 16px !important;
  display: block !important;
}

.single-product .woocommerce-price-suffix {
  display: inline !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #7A7A7A !important;
}

.single-product .sku_wrapper {
  
  font-size: 13px !important;
  color: #7A7A7A !important;
  margin-bottom: 18px !important;
  display: block !important;
}
.single-product .sku_wrapper .sku {
  font-weight: 600 !important;
  color: #4A4A4A !important;
}

.single-product .woocommerce-product-details__short-description {
  
  font-size: 15px !important;
  color: #4A4A4A !important;
  line-height: 1.75 !important;
  margin-bottom: 24px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid #E8E2DC !important;
}
.single-product .woocommerce-product-details__short-description p {
  margin-bottom: 8px !important;
}

/* Campo nastro funebre */
.ffm-nastro-field {
  margin-bottom: 18px !important;
}
.ffm-nastro-field label {
  
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  display: block !important;
  margin-bottom: 7px !important;
}
.ffm-nastro-field .ffm-optional {
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: #7A7A7A !important;
  font-size: 12px !important;
}
.ffm-nastro-field input[type="text"] {
  width: 100% !important;
  border: 1px solid #D8D2CC !important;
  border-radius: 3px !important;
  padding: 11px 14px !important;
  
  font-size: 14px !important;
  color: #2C2C2C !important;
  box-sizing: border-box !important;
  background: #FAFAF9 !important;
  transition: border-color 0.2s !important;
}
.ffm-nastro-field input[type="text"]:focus {
  border-color: #0C3C7C !important;
  outline: none !important;
  background: #FFFFFF !important;
}

.single-product form.cart {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

.single-product .quantity {
  display: none !important;
}

.single-product .single_add_to_cart_button {
  display: block !important;
  width: 100% !important;
  background-color: #0C3C7C !important;
  color: #FFFFFF !important;
  
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  padding: 17px 24px !important;
  border-radius: 3px !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease !important;
  text-align: center !important;
  margin-bottom: 0 !important;
}
.single-product .single_add_to_cart_button:hover {
  background-color: #5a1620 !important;
}

/* === TRUST BADGES === */
.ffm-product-trust {
  margin-top: 20px !important;
}
.ffm-trust-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
  padding: 18px 0 16px !important;
  border-top: 1px solid #E8E2DC !important;
  border-bottom: 1px solid #E8E2DC !important;
  margin-bottom: 14px !important;
}
.ffm-trust-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
}
.ffm-trust-item svg {
  width: 20px !important;
  height: 20px !important;
  flex-shrink: 0 !important;
  color: #0C3C7C !important;
  margin-top: 2px !important;
}
.ffm-trust-item div {
  display: flex !important;
  flex-direction: column !important;
}
.ffm-trust-item strong {
  
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  line-height: 1.3 !important;
}
.ffm-trust-item span {
  
  font-size: 11px !important;
  color: #7A7A7A !important;
  line-height: 1.3 !important;
  margin-top: 2px !important;
}

.ffm-trust-payment {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  flex-wrap: wrap !important;
}
.ffm-pay-icon {
  height: 22px !important;
  width: auto !important;
  display: inline-block !important;
  vertical-align: middle !important;
  border-radius: 3px !important;
}

.single-product .woocommerce-product-gallery__image img {
  border-radius: 4px !important;
  width: 100% !important;
}

.single-product .flex-control-thumbs {
  display: flex !important;
  gap: 8px !important;
  margin-top: 10px !important;
  flex-wrap: wrap !important;
  padding: 0 !important;
  list-style: none !important;
}
.single-product .flex-control-thumbs li {
  width: 66px !important;
  height: 80px !important;
  margin: 0 !important;
}
.single-product .flex-control-thumbs li img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 3px !important;
  border: 2px solid #E8E2DC !important;
  cursor: pointer !important;
  transition: border-color 0.2s !important;
}
.single-product .flex-control-thumbs li img.flex-active {
  border-color: #0C3C7C !important;
}

.single-product .product-share-buttons,
.single-product .sharedaddy,
.single-product .a2a_kit,
.single-product .woocommerce-product-details__social-share {
  display: none !important;
}

.single-product .woocommerce-tabs ul.tabs {
  border-bottom: 2px solid #E8E2DC !important;
  margin-bottom: 28px !important;
  padding: 0 !important;
  background: transparent !important;
}
.single-product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin-right: 28px !important;
}
.single-product .woocommerce-tabs ul.tabs li a {
  
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #7A7A7A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 10px 0 !important;
  display: block !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -2px !important;
  background: transparent !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: #0C3C7C !important;
  border-bottom-color: #0C3C7C !important;
  background: transparent !important;
}
.single-product .woocommerce-Tabs-panel p {
  
  font-size: 15px !important;
  color: #4A4A4A !important;
  line-height: 1.8 !important;
}

.single-product .related.products > h2,
.single-product .upsells.products > h2 {
  
  font-size: 26px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  margin-bottom: 28px !important;
  padding-top: 40px !important;
  border-top: 1px solid #E8E2DC !important;
}

@media (max-width: 767px) {
  .single-product .product_title.entry-title { font-size: 24px !important; }
  .single-product .price { font-size: 22px !important; }
  .ffm-trust-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
}

.single-product .woocommerce-product-details__short-description { display: none !important; }
.single-product .social-share,
.single-product .product-share,
.single-product .share-buttons,
.single-product .a2a_kit,
.single-product [class*=share],
.single-product .addtoany_share_save_container,
.single-product .woocommerce-share { display: none !important; }

.ffm-sku-title {  font-size: 13px !important; color: #7A7A7A !important; margin: -8px 0 14px !important; letter-spacing: 0.04em !important; }
.ffm-sku-title span { font-weight: 600 !important; color: #4A4A4A !important; }
.single-product .product_meta .sku_wrapper { display: none !important; }

/* ================================================
   Página Contatti — mapa pegado al footer
   ================================================ */

.page-id-26 #main,
.page-id-26 .main-content,
.page-id-26 .content-area,
.page-id-26 article,
.page-id-26 .entry-content {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.page-id-26 .section:last-child,
.page-id-26 .ux-builder-content > div:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.page-id-26 .col-inner {
  padding: 0 !important;
}
.page-id-26 iframe {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: bottom !important;
}
.page-id-26 .row-full-width-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
}

#section_721028424 br { display: none !important; }
#section_721028424 .col-inner { padding: 0 !important; margin: 0 !important; }
.page-id-26 #main > div { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.page-id-26 #main { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.page-id-26 main#main { padding: 0 !important; }

/* ================================================
   TARJETAS DE PRODUCTO EN CATEGORÍAS — textos en negro
   ================================================ */
.tax-product_cat .ffm-product-cat,
.archive .ffm-product-cat { color: #000 !important; }

.tax-product_cat .ffm-iva-suffix,
.archive .ffm-iva-suffix { color: #000 !important; }

.tax-product_cat .ffm-product-ref,
.archive .ffm-product-ref {
  color: #000 !important;
  text-align: center !important;
  display: block !important;
  width: 100% !important;
}

/* ============================================================
   CSS migrado desde Flatsome > Avanzado > Custom CSS (2026-05-28)
   Razon: contenia @import a Google Fonts que disparaba LCP por
   font swap tardio. Las fuentes ahora se encolan via
   wp_enqueue_style en functions.php.
   ============================================================ */
/* ============================================
   FIORI FUNEBRI MILANO - Global + Homepage
   Inspired by Flores no Cais
   ============================================ */

/* --- TIPOGRAFÍA DM SERIF DISPLAY + DM SANS --- */
/* Body / párrafos / elementos de UI */
body, p, li, td, th, input, textarea, select, button, a,
.header-top, .footer-1, .footer-1 p {
  
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

/* Encabezados */
h1, .h1,
.product_title.entry-title,
.entry-title.product_title {
  
  font-size: 52px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}
h2, .h2 {
  
  font-size: 36px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
}
h3, .h3 {
  
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
}
h4, .h4,
.widget-title,

h5, h6 {
  
  font-weight: 600 !important;
}

/* Mobile */
@media (max-width: 767px) {
  h1, .h1 { font-size: 32px !important; }
  h2, .h2 { font-size: 26px !important; }
  h3, .h3 { font-size: 20px !important; }
}

/* --- HEADER (adaptado Napoli: fondo controlado por el Customizer) --- */
.header-wrapper {
  border-bottom: 1px solid #E8E2DC !important;
  box-shadow: none !important;
}
.header-main .flex-row,
.header-top .flex-row,
.header-bottom .flex-row {
  max-width: 100%;
  padding-left: 30px;
  padding-right: 30px;
}
.nav-dark .nav > li > a,
.header .nav > li > a,
.header-nav .nav > li > a {
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  transition: color 0.2s ease;
}
.header-top {
  border-bottom: none;
}
.header-top,
.header-top a,
.header-top .nav > li > a {
  font-size: 12px !important;
}
.header .cart-icon,
.header .account-icon {
  color: #FFFFFF !important;
}

/* --- CARDS DE PRODUCTO (global) --- */
.product-small .col-inner {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.product-small .box-image,
.product-small .image-cover {
  border-radius: 4px;
  overflow: hidden;
}
.product-small .box-image img {
  transition: transform 0.4s ease;
}
.product-small:hover .box-image img {
  transform: scale(1.04);
}
.product-small .box-text {
  padding: 14px 4px 8px !important;
  text-align: left !important;
  background: transparent !important;
}
.product-small .name,
.product-small .product-title,
.product-small .name a {
  
  font-size: 17px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  line-height: 1.3 !important;
  margin-bottom: 6px !important;
  text-decoration: none !important;
}
.product-small .price {
  
  font-size: 16px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
}
.product-small .price ins {
  color: #0C3C7C !important;
  text-decoration: none !important;
}
.product-small .add_to_cart_button,
.product-small .button.add_to_cart_button {
  display: none !important;
}
.onsale, .badge,
.callout .inner {
  background: #0C3C7C !important;
  color: white !important;
  
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 2px !important;
}

/* --- FICHA PRODUCTO --- */
.product .product_title,
.product-info .product_title {
  
  font-size: 30px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  line-height: 1.3 !important;
}
.product .price,
.product-info .price {
  
  font-size: 16px !important;
  color: #0C3C7C !important;
  font-weight: 400 !important;
}
.product .woocommerce-product-details__short-description {
  
  font-size: 16px;
  color: #1A1A1A;
  line-height: 1.75;
  border-top: 1px solid #E8E2DC;
  border-bottom: 1px solid #E8E2DC;
  padding: 20px 0;
  margin: 20px 0;
}
.single_add_to_cart_button,
button.single_add_to_cart_button {
  background: #0C3C7C !important;
  color: white !important;
  
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  padding: 16px 40px !important;
  border: none !important;
  transition: background 0.2s ease !important;
}
.single_add_to_cart_button:hover {
  background: #4A0F1A !important;
}
.product_meta {
  
  font-size: 12px;
  color: #1A1A1A;
  letter-spacing: 0.05em;
}
.woocommerce-tabs .tabs li a {
  
  font-size: 13px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #1A1A1A;
}
.woocommerce-tabs .tabs li.active a {
  color: #1A1A1A;
  border-bottom-color: #0C3C7C;
}

/* --- FOOTER --- */
.footer-wrapper {
  border-top: 3px solid #0C3C7C;
}
.footer-1 {
  background: #1A1A1A !important;
}
.footer-2,
.absolute-footer {
  background: #0F0F0F !important;
  color: #FFFFFF !important;
  font-size: 12px;
}
.footer-1 h3,
.footer-1 .widget-title {
  color: #FFFFFF !important;
  
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid #333;
  padding-bottom: 12px !important;
  margin-bottom: 16px !important;
}
.footer-1,
.footer-1 p,
.footer-1 li,
.footer-1 span,
.footer-1 td,
.footer-1 label,
.footer-1 h1,
.footer-1 h2,
.footer-1 h3,
.footer-1 h4,
.footer-1 h5,
.footer-1 h6 {
  color: #FFFFFF !important;
  
  font-size: 13px;
  line-height: 1.6;
}
.footer-1 a,
.footer-1 a:visited {
  color: #FFFFFF !important;
  transition: color 0.2s ease;
}
.footer-1 a:hover {
  color: #0C3C7C !important;
}
.footer-2,
.absolute-footer,
.absolute-footer p,
.absolute-footer span,
.absolute-footer li {
  color: #FFFFFF !important;
}
.absolute-footer a,
.absolute-footer a:visited {
  color: #FFFFFF !important;
}
.absolute-footer a:hover {
  color: #0C3C7C !important;
}

/* --- BUTTONS (global) --- */
.button.primary,
a.button.primary,
.button.alt,
a.button.alt,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: background 0.2s ease;
}
.button.primary:hover,
a.button.primary:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: #4A0F1A !important;
}
.button.is-outline,
a.button.is-outline {
  border: 1px solid #0C3C7C !important;
  color: #0C3C7C !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.button.is-outline:hover,
a.button.is-outline:hover {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}

/* --- BREADCRUMBS --- */
.breadcrumbs {
  
  font-size: 12px;
  color: #1A1A1A;
}
.breadcrumbs a { color: #1A1A1A; }
.breadcrumbs a:hover { color: #0C3C7C; }

/* --- LINKS --- */
a { color: #0C3C7C; transition: color 0.2s ease; }
a:hover { color: #4A0F1A; }

/* --- ACCORDION FAQ --- */
.accordion-title {
  
  font-size: 15px !important;
  color: #2C2C2C !important;
  border-color: #E8E2DC !important;
}

/* --- FORMS --- */
input[type=text], input[type=email], input[type=tel],
input[type=password], input[type=number], textarea, select {
  border: 1px solid #E8E2DC !important;
  border-radius: 2px !important;
  
  font-size: 14px;
  color: #2C2C2C;
}
input:focus, textarea:focus, select:focus {
  border-color: #0C3C7C !important;
}

/* ========================================
   HOMEPAGE SPECIFIC
   ======================================== */

/* --- SECCIÓN CONSEGNA — 2 columnas con ola --- */

@media (max-width: 767px) {
  
}

@media (max-width: 767px) {
  
}

@media (max-width: 767px) {
  
  
}

/* --- BANNER overflow para solapamiento --- */
.home .banner,
.home .banner-inner {
  overflow: visible !important;
}
.home .banner-wrap {
  overflow: visible !important;
}

/* Mobile — sin solapamiento */
@media (max-width: 767px) {
  .home .banner,
  .home .banner-inner {
    overflow: hidden !important;
  }
}

/* --- ICON BAR — tarjeta única estilo Flores no Cais --- */

@media (max-width: 900px) {
  
}
@media (max-width: 480px) {
  
}

/* --- BLOG CARDS --- */

/* --- SECCIÓN CON OLA (genérica) --- */

/* --- SECTION TITLE WITH SEPARATOR --- */
.section-title-sep {
  
  font-size: 36px !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
  color: #1A1A1A !important;
  text-align: center !important;
  margin-bottom: 8px !important;
}
.section-title-sep::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: #0C3C7C;
  margin: 14px auto 32px;
}

/* --- TITLE WITH LINES ON BOTH SIDES --- */
.ffm-title-lines {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  gap: 20px !important;
  color: #1A1A1A !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  margin-bottom: 10px !important;
  white-space: nowrap !important;
}
.featured-box h3, .featured-box p, .featured-box .box-desc, .featured-box .box-text p { color: #1A1A1A !important; }

/* --- MAPA CONTATTI FULL-WIDTH SIN ESPACIOS --- */
.page-id-26 iframe {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: bottom !important;
}
.page-id-26 .section:last-child,
.page-id-26 .section:last-child .row,
.page-id-26 .section:last-child .col {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
.page-id-26 .section:last-child .container {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ffm-title-lines::before,
.ffm-title-lines::after {
  content: '' !important;
  flex: 1 1 auto !important;
  display: block !important;
  height: 1px !important;
  background-color: rgba(123,31,46,0.30) !important;
  min-width: 30px !important;
}

/* --- PRODUCT GRID on homepage --- */
.home .products.columns-3 {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 0;
}
.home .products.columns-3 li.product {
  display: flex !important;
  flex-direction: column !important;
  width: 33.333% !important;
  float: none !important;
}
.home .products.columns-3 li.product .col-inner {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: 100% !important;
}
.home .products.columns-3 li.product .box-image {
  flex-shrink: 0;
}
/* Texto de la card: flex column para separar categoría / nombre / precio */
.home .products.columns-3 li.product .box-text {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 16px 8px !important;
}
/* Categoría — siempre arriba */
.home .products.columns-3 li.product .product-cat,
.home .products.columns-3 li.product [class*="product-cat"] {
  order: 1 !important;
  display: block !important;
  min-height: 24px;
  margin-bottom: 8px !important;
}
/* Nombre — altura fija para que el precio siempre quede a la misma altura */
.home .products.columns-3 li.product .name,
.home .products.columns-3 li.product .product-title {
  order: 2 !important;
  min-height: 64px !important;
  display: flex !important;
  align-items: flex-start !important;
  margin-bottom: 12px !important;
  flex-shrink: 0 !important;
}
/* Precio — siempre anclado abajo */
.home .products.columns-3 li.product .price-wrapper,
.home .products.columns-3 li.product .price {
  order: 3 !important;
  margin-top: auto !important;
  padding-top: 8px !important;
  border-top: 1px solid #E8E2DC;
}
.home .product-small .box-image img {
  height: 340px;
  width: 100%;
  object-fit: contain;
  background: #FAF7F4;
}

/* --- PRODUCT CARD — categoría en negrita + tamaños --- */
.product-small .product-cat,
.product-small .woocommerce-loop-product__cat,
.product-small .posted_in,
.product-small .sku_wrapper,
.product-small [class*="product-cat"] {
  display: block !important;
  
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #0C3C7C !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 6px !important;
}
.product-small .name,
.product-small .product-title,
.product-small .name a {
  font-size: 20px !important;
  line-height: 1.3 !important;
}
.product-small .price {
  font-size: 18px !important;
  font-weight: 500 !important;
}

/* --- WHY US SECTION - custom list --- */

/* --- CTA DARK BANNER BUTTON --- */
.cta-dark-btn {
  background: transparent !important;
  border: 1px solid #0C3C7C !important;
  color: #0C3C7C !important;
  
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 14px 36px !important;
  border-radius: 0 !important;
  display: inline-block;
  text-decoration: none;
  transition: all 0.2s ease;
}
.cta-dark-btn:hover {
  background: #0C3C7C !important;
  color: #1A1A1A !important;
}

/* --- BOTONES DEL BANNER HERO --- */
.home .banner .button:not(.is-outline) {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
  border: none !important;
  opacity: 1 !important;
  transition: background 0.25s ease !important;
}
.home .banner .button:not(.is-outline):hover {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}
.home .banner .button.is-outline {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
  border: none !important;
  opacity: 1 !important;
  transition: background 0.25s ease !important;
}
.home .banner .button.is-outline:hover {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}

/* --- RESPONSIVE --- */
@media (max-width: 767px) {
  .product-small .name,
  .product-small .name a {
    font-size: 14px !important;
  }
  .product .product_title {
    font-size: 24px !important;
  }
  .single_add_to_cart_button {
    width: 100% !important;
    text-align: center !important;
  }
  .header-main .flex-row {
    padding-left: 15px;
    padding-right: 15px;
  }
  .home .product-small .box-image img {
    height: 240px;
  }
}
/* [FFR] Banner cookies — responsive movil 2026-06-16 */
#moove_gdpr_cookie_info_bar { width: min(700px, calc(100vw - 32px)) !important; }
@media (max-width: 767px), (max-height: 620px) {
  body.overlay-visible #moove_gdpr_cookie_info_bar {
    height: auto !important; min-height: 0 !important; max-height: 92dvh !important;
    overflow-y: auto !important; justify-content: flex-start !important; padding: 16px 14px 18px !important;
  }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content { margin-top: 10px !important; }
}

/* [FFR] Banner cookies — botones en COLUMNA como Lyon (texto/logo reducidos para caber en la altura fija del JS) 2026-06-16 */
@media (max-width: 767px), (max-height: 620px) {
  #moove_gdpr_cookie_info_bar img { max-height: 42px !important; width: auto !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content { margin-top: 6px !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-cookie-notice p,
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content p { font-size: 0.82em !important; line-height: 1.32 !important; margin-bottom: 6px !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-button-holder { flex-direction: column !important; align-items: center !important; gap: 7px !important; margin: 10px 0 0 !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-button-holder .mgbutton { width: 92% !important; min-height: 42px !important; margin: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
}

/* [FFR] Banner cookies — CRECER a tamaño normal como Lyon: bottom:auto libera la altura (top:50%+bottom:0 estiraba a 422 e ignoraba height:auto) 2026-06-16 */
@media (max-width: 767px), (max-height: 620px) {
  body.overlay-visible #moove_gdpr_cookie_info_bar { bottom: auto !important; height: auto !important; min-height: 0 !important; max-height: 90dvh !important; overflow-y: auto !important; }
  #moove_gdpr_cookie_info_bar img { max-height: 56px !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-cookie-notice p,
  #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content p { font-size: 1em !important; line-height: 1.5 !important; margin-bottom: 10px !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-button-holder { flex-direction: column !important; align-items: center !important; gap: 8px !important; margin: 14px 0 0 !important; }
  #moove_gdpr_cookie_info_bar .moove-gdpr-button-holder .mgbutton { width: 92% !important; min-height: 46px !important; margin: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
}

/* [FFR] Banner cookies — logo: quitar el margin-top negativo (~-75px) que se le comia la cabeza al crecer la tarjeta 2026-06-16 */
@media (max-width: 767px), (max-height: 620px) {
  #moove_gdpr_cookie_info_bar img { margin-top: 0 !important; margin-bottom: 8px !important; }
}


/* === Override 2026-07-20: descripción de categoría a ANCHO COMPLETO + texto negro === */
.tax-product_cat .term-description,
.archive .term-description,
.tax-product_cat .term-description > p,
.archive .term-description > p,
.tax-product_cat .term-description p,
.archive .term-description p,
.tax-product_cat .term-description ul,
.archive .term-description ul,
.tax-product_cat .term-description ol,
.archive .term-description ol,
.tax-product_cat .term-description .accordion-set,
.archive .term-description .accordion-set {
  max-width: 100% !important;
}
.tax-product_cat .term-description p,
.archive .term-description p,
.tax-product_cat .term-description > p,
.archive .term-description > p,
.tax-product_cat .term-description li,
.archive .term-description li {
  color: #1A1A1A !important;
}

/* ============================================================
   NAPOLI FOOTER — barra inferior unica (v1.6, 2026-07-21)
   La barra legal (copyright + enlaces Note Legali/Privacy/Cookie/
   Termini) la pinta el plugin textos-legales-f10-pro en
   .tlf-footer-legal (hook wp_footer). Ocultamos la "absolute
   footer" nativa de Flatsome para NO duplicar el copyright:
   la parte estatica tiene una sola barra inferior.
   ============================================================ */
.absolute-footer { display: none !important; }

/* Separacion de la barra legal respecto a las columnas del footer */
.tlf-footer-legal { border-top: 1px solid rgba(255,255,255,0.08); }


/* =====================================================================
   SECCION 20 — CSS MIGRADO DEL CUSTOMIZER  (R1, 2026-07-30)
   =====================================================================
   Estas reglas vivian en *Flatsome > Advanced > Custom CSS*
   (theme_mod html_custom_css), donde se imprimian INLINE en el <head> de
   CADA pagina: 981 lineas / 27 KB por peticion, sin cachear, y fuera de git.
   R1 del runbook italia/HERENCIA-CLONES-MILANO-ROMA.md.

   ⚠️ VA AL FINAL DEL FICHERO A PROPOSITO. Es el lugar que ocupaba en la
      cascada (el CSS inline se imprime despues de todas las hojas): moverla
      arriba cambia quien gana los empates de especificidad.
   ⚠️ Se purgaron 319 lineas de CSS MUERTO heredado de Roma (7 secciones:
      ffr-consegna, ffr-icon-card, ffr-blog-card, ffr-wave, why-us-list,
      cta-dark-btn, section-title-sep). Verificado con 0 apariciones en el
      <body> de las 72 URLs del sitemap antes de tocar nada.
   ⚠️ El @import a Google Fonts se retiro (R7): las fuentes las encola
      functions.php desde /assets/fonts/. Ver infra/fuentes-propias-wp.php.
   ===================================================================== */

/* ============================================
   FIORI FUNEBRI TORINO - Global + Homepage
   Inspired by Flores no Cais
   ============================================ */

/* --- TIPOGRAFIA CORMORANT GARAMOND + MULISH --- */
/* R7: el @import a Google Fonts se retiro el 2026-07-30. Las 22 woff2 de
   Cormorant Garamond + Mulish se sirven del propio dominio y las encola
   flatsome-child/functions.php (ver infra/fuentes-propias-wp.php). NO reponerlo. */

/* Body / párrafos / elementos de UI */
body, p, li, td, th, input, textarea, select, button, a,
.header-top, .footer-1, .footer-1 p {
  font-family: 'Mulish', sans-serif !important;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

/* Encabezados */
h1, .h1,
.product_title.entry-title,
.entry-title.product_title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 52px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}
h2, .h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 36px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
}
h3, .h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
}
h4, .h4,
.widget-title {
  font-family: 'Mulish', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
h5, h6 {
  font-family: 'Mulish', sans-serif !important;
  font-weight: 600 !important;
}

/* Mobile */
@media (max-width: 767px) {
  h1, .h1 { font-size: 32px !important; }
  h2, .h2 { font-size: 26px !important; }
  h3, .h3 { font-size: 20px !important; }
}

/* --- HEADER --- */
.header-wrapper {
  border-bottom: 1px solid #E8E2DC;
  box-shadow: none !important;
}
.header-main .flex-row,
.header-top .flex-row,
.header-bottom .flex-row {
  max-width: 100%;
  padding-left: 30px;
  padding-right: 30px;
}
.nav-dark .nav > li > a,
.header .nav > li > a,
.header-nav .nav > li > a {
  font-family: 'Mulish', sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  transition: color 0.2s ease;
}
.header-top {
  border-bottom: none;
}
.header-top,
.header-top a,
.header-top .nav > li > a {
  font-family: 'Mulish', sans-serif !important;
  font-size: 12px !important;
}
.header .cart-icon,
.header .account-icon {
  color: #FFFFFF !important;
}
.header-wrapper {
  border-bottom: 1px solid #E8E2DC !important;
}

/* --- CARDS DE PRODUCTO (global) --- */
.product-small .col-inner {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.product-small .box-image,
.product-small .image-cover {
  border-radius: 4px;
  overflow: hidden;
}
.product-small .box-image img {
  transition: transform 0.4s ease;
}
.product-small:hover .box-image img {
  transform: scale(1.04);
}
.product-small .box-text {
  padding: 14px 4px 8px !important;
  text-align: left !important;
  background: transparent !important;
}
.product-small .name,
.product-small .product-title,
.product-small .name a {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  line-height: 1.3 !important;
  margin-bottom: 6px !important;
  text-decoration: none !important;
}
.product-small .price {
  font-family: 'Mulish', sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
}
.product-small .price ins {
  color: #0C3C7C !important;
  text-decoration: none !important;
}
.product-small .add_to_cart_button,
.product-small .button.add_to_cart_button {
  display: none !important;
}
.onsale, .badge,
.callout .inner {
  background: #0C3C7C !important;
  color: white !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 2px !important;
}

/* --- FICHA PRODUCTO --- */
.product .product_title,
.product-info .product_title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 30px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  line-height: 1.3 !important;
}
.product .price,
.product-info .price {
  font-family: 'Mulish', sans-serif !important;
  font-size: 16px !important;
  color: #0C3C7C !important;
  font-weight: 400 !important;
}
.product .woocommerce-product-details__short-description {
  font-family: 'Mulish', sans-serif;
  font-size: 16px;
  color: #1A1A1A;
  line-height: 1.75;
  border-top: 1px solid #E8E2DC;
  border-bottom: 1px solid #E8E2DC;
  padding: 20px 0;
  margin: 20px 0;
}
.single_add_to_cart_button,
button.single_add_to_cart_button {
  background: #0C3C7C !important;
  color: white !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  padding: 16px 40px !important;
  border: none !important;
  transition: background 0.2s ease !important;
}
.single_add_to_cart_button:hover {
  background: #082C5C !important;
}
.product_meta {
  font-family: 'Mulish', sans-serif;
  font-size: 12px;
  color: #1A1A1A;
  letter-spacing: 0.05em;
}
.woocommerce-tabs .tabs li a {
  font-family: 'Mulish', sans-serif !important;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #1A1A1A;
}
.woocommerce-tabs .tabs li.active a {
  color: #1A1A1A;
  border-bottom-color: #0C3C7C;
}

/* --- FOOTER (chiaro, coerente con il sito statico) --- */
.footer-wrapper {
  background: #F5F5F5 !important;
  border-top: 1px solid #E5E5E5 !important;
}
.footer-1 {
  background: #F5F5F5 !important;
}
.footer-1 h3,
.footer-1 .widget-title {
  color: #000000 !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  border-bottom: none !important;
  padding-bottom: 4px !important;
  margin-bottom: 16px !important;
}
.footer-1,
.footer-1 p,
.footer-1 li,
.footer-1 span,
.footer-1 td,
.footer-1 label,
.footer-1 h1,
.footer-1 h2,
.footer-1 h4,
.footer-1 h5,
.footer-1 h6 {
  color: #2C2C2C !important;
  font-family: 'Mulish', sans-serif;
  font-size: 14px;
  line-height: 1.7;
}
.footer-1 a,
.footer-1 a:visited {
  color: #000000 !important;
  transition: color 0.2s ease;
}
.footer-1 a:hover {
  color: #0C3C7C !important;
}
/* Barra legale inferiore */
.tlf-footer-legal {
  background: #F5F5F5 !important;
  border-top: 1px solid #E5E5E5 !important;
  color: #666666 !important;
}
.tlf-footer-legal a,
.tlf-footer-legal a:visited {
  color: #000000 !important;
}
.tlf-footer-legal a:hover {
  color: #0C3C7C !important;
}
/* Icone di pagamento e copyright su fondo chiaro */
.payment-icon svg {
  filter: brightness(0) !important;
  opacity: 0.55 !important;
}
.absolute-footer .copyright-footer,
.copyright-footer {
  color: #666666 !important;
}

/* --- BUTTONS (global) --- */
.button.primary,
a.button.primary,
.button.alt,
a.button.alt,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: background 0.2s ease;
}
.button.primary:hover,
a.button.primary:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: #082C5C !important;
}
.button.is-outline,
a.button.is-outline {
  border: 1px solid #0C3C7C !important;
  color: #0C3C7C !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.button.is-outline:hover,
a.button.is-outline:hover {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}

/* --- BREADCRUMBS --- */
.breadcrumbs {
  font-family: 'Mulish', sans-serif;
  font-size: 12px;
  color: #1A1A1A;
}
.breadcrumbs a { color: #1A1A1A; }
.breadcrumbs a:hover { color: #0C3C7C; }

/* --- LINKS --- */
a { color: #0C3C7C; transition: color 0.2s ease; }
a:hover { color: #082C5C; }

/* --- ACCORDION FAQ --- */
.accordion-title {
  font-family: 'Mulish', sans-serif !important;
  font-size: 15px !important;
  color: #2C2C2C !important;
  border-color: #E8E2DC !important;
}

/* --- FORMS --- */
input[type=text], input[type=email], input[type=tel],
input[type=password], input[type=number], textarea, select {
  border: 1px solid #E8E2DC !important;
  border-radius: 2px !important;
  font-family: 'Mulish', sans-serif;
  font-size: 14px;
  color: #2C2C2C;
}
input:focus, textarea:focus, select:focus {
  border-color: #0C3C7C !important;
}

/* ========================================
   HOMEPAGE SPECIFIC
   ======================================== */

/* --- BANNER overflow para solapamiento --- */
.home .banner,
.home .banner-inner {
  overflow: visible !important;
}
.home .banner-wrap {
  overflow: visible !important;
}

/* Mobile — sin solapamiento */
@media (max-width: 767px) {
  .home .banner,
  .home .banner-inner {
    overflow: hidden !important;
  }
}

/* --- PRODUCT GRID on homepage --- */
.home .products.columns-3 {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 0;
}
.home .products.columns-3 li.product {
  display: flex !important;
  flex-direction: column !important;
  width: 33.333% !important;
  float: none !important;
}
.home .products.columns-3 li.product .col-inner {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: 100% !important;
}
.home .products.columns-3 li.product .box-image {
  flex-shrink: 0;
}
/* Texto de la card: flex column para separar categoría / nombre / precio */
.home .products.columns-3 li.product .box-text {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 16px 8px !important;
}
/* Categoría — siempre arriba */
.home .products.columns-3 li.product .product-cat,
.home .products.columns-3 li.product [class*="product-cat"] {
  order: 1 !important;
  display: block !important;
  min-height: 24px;
  margin-bottom: 8px !important;
}
/* Nombre — altura fija para que el precio siempre quede a la misma altura */
.home .products.columns-3 li.product .name,
.home .products.columns-3 li.product .product-title {
  order: 2 !important;
  min-height: 64px !important;
  display: flex !important;
  align-items: flex-start !important;
  margin-bottom: 12px !important;
  flex-shrink: 0 !important;
}
/* Precio — siempre anclado abajo */
.home .products.columns-3 li.product .price-wrapper,
.home .products.columns-3 li.product .price {
  order: 3 !important;
  margin-top: auto !important;
  padding-top: 8px !important;
  border-top: 1px solid #E8E2DC;
}
.home .product-small .box-image img {
  height: 340px;
  width: 100%;
  object-fit: contain;
  background: #FAF7F4;
}

/* --- PRODUCT CARD — categoría en negrita + tamaños --- */
.product-small .product-cat,
.product-small .woocommerce-loop-product__cat,
.product-small .posted_in,
.product-small .sku_wrapper,
.product-small [class*="product-cat"] {
  display: block !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #0C3C7C !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 6px !important;
}
.product-small .name,
.product-small .product-title,
.product-small .name a {
  font-size: 20px !important;
  line-height: 1.3 !important;
}
.product-small .price {
  font-size: 18px !important;
  font-weight: 500 !important;
}

/* --- BOTONES DEL BANNER HERO --- */
.home .banner .button:not(.is-outline) {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
  border: none !important;
  opacity: 1 !important;
  transition: background 0.25s ease !important;
}
.home .banner .button:not(.is-outline):hover {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}
.home .banner .button.is-outline {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
  border: none !important;
  opacity: 1 !important;
  transition: background 0.25s ease !important;
}
.home .banner .button.is-outline:hover {
  background: #0C3C7C !important;
  color: #FFFFFF !important;
}

/* --- RESPONSIVE --- */
@media (max-width: 767px) {
  .product-small .name,
  .product-small .name a {
    font-size: 14px !important;
  }
  .product .product_title {
    font-size: 24px !important;
  }
  .single_add_to_cart_button {
    width: 100% !important;
    text-align: center !important;
  }
  .header-main .flex-row {
    padding-left: 15px;
    padding-right: 15px;
  }
  .home .product-small .box-image img {
    height: 240px;
  }
}
/* --- Peso encabezados serif pequeños (coherencia estático: sub-titoli 500) --- */
h3, .h3,
.product-small .name,
.product-small .name a,
.product-small .product-title,
.product .product_title,
.product-info .product_title {
  font-weight: 500 !important;
}

/* === FFT-CAT-CARD INI — tarjeta de producto de las CATEGORIAS, estilo Lyon === */
/* Fiori Funebri Torino — 2026-07-28
 *
 * ⚠️ UBICACIÓN REAL: este bloque vive DENTRO del theme_mod `html_custom_css`
 *    (Personalizador → "CSS Adicional") de la tienda /fioraio/. Esta copia del repo
 *    es la versión canónica. Se instala/reemplaza con `infra/aplicar-cat-card.php`.
 *    NO va en el child `style.css`: `html_custom_css` lo pisaría (gotcha documentado
 *    en CLAUDE.md, costó una sesión entera descubrirlo).
 *
 * QUÉ HACE
 * --------
 * Lleva la tarjeta de producto de las páginas de categoría al estilo de
 * `fleursdeuillyon.fr`. Referencia: internacional/francia/lyon/lyon-style.css
 * (bloque "LOOP DE PRODUCTOS") + lyon-loop-snippet.php.
 *
 * El HTML **ya era idéntico al de Lyon** antes de esto, heredado del clon de Napoli:
 * `ffm_before_title()` imprime el SKU sobre el título (misma función que
 * `fdl_loop_before_title()` en Lyon) y Flatsome pinta la categoría con su clase
 * nativa `.category`. Así que aquí solo hay estilo, ni una línea de PHP.
 *
 * Orden visual:  [imagen] · COD: PROD39-S · CORONE FUNEBRI · Nombre · Precio
 *
 * ⚠️⚠️ POR QUÉ LOS SELECTORES SON TAN LARGOS
 * -----------------------------------------
 * El child `style.css` OCULTA A PROPÓSITO el SKU y la categoría en la cuadrícula
 * (tiene incluso el comentario "Ocultar el sku_wrapper antiguo en la cuadrícula"):
 *
 *   línea  444: body:not(.home) div.product-small div.box-image + div.box-text
 *               .sku_wrapper           { display: none !important; }   → 5 clases
 *   línea 1299: .tax-product_cat .product-small .box-text .product-cat
 *                                      { display: none !important; }   → 4 clases
 *
 * Las dos llevan `!important`, así que **gana la especificidad, no el orden**. Un
 * selector de 3 clases como `body.tax-product_cat .product-small .sku_wrapper`
 * pierde y el SKU sigue invisible — comprobado midiendo estilos computados.
 * De ahí el prefijo `body.tax-product_cat.archive div.product-small
 * div.box-text.box-text-products`: **6 clases**, suficiente para ganar sin recurrir
 * al combinador de hermano adyacente (más frágil si cambia el markup de Flatsome).
 *
 * ⚠️ ÁMBITO: SOLO páginas de categoría (`body.tax-product_cat`), por petición
 *    expresa del usuario. La página `/negozio/` (que es `post-type-archive-product`),
 *    los productos relacionados y cualquier otra cuadrícula **conservan el estilo
 *    anterior**: alineado a la izquierda, título de 20px en peso 400 y sin SKU ni
 *    categoría visibles. Es una diferencia buscada, no un descuido.
 *
 * Paleta: azul #0C3C7C (acento, hace el papel de la terracota de Lyon) ·
 *         gris #8A8A8A (secundario) · tinta #1A1A1A.
 */

body.tax-product_cat.archive div.product-small div.box-text.box-text-products {
  padding: 18px 15px 20px !important;
  text-align: center !important;
}

/* SKU — el código del producto, en el azul de marca.
   Se REACTIVA aquí: el child theme lo oculta en toda la cuadrícula (línea 444). */
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .sku_wrapper {
  display: block !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #0C3C7C !important;
  text-transform: none !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 4px !important;
}

/* Categoría — gris discreto, para que no compita con el código.
   Se REACTIVA aquí: el child theme la oculta en archivos (línea 1299).
   `opacity: 1` es necesario porque Flatsome le añade la clase `.op-8`. */
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .product-cat,
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .category {
  display: block !important;
  font-family: 'Mulish', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #8A8A8A !important;
  opacity: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  margin-bottom: 6px !important;
}

/* Título — Cormorant, más grande y con algo más de peso que en el resto de la tienda */
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .name,
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .product-title,
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .name a {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  color: #1A1A1A !important;
  line-height: 1.2 !important;
  margin-bottom: 6px !important;
}

/* Precio */
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .price {
  font-family: 'Mulish', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
}

/* Sufijo del precio, el equivalente al "TVA incluse" de Lyon.
   ⚠️ En esta tienda la clase NO es la de WooCommerce (`woocommerce-Price-suffix`)
   sino la propia del child theme, **`.ffm-iva-suffix`** ("IVA Inclusa"). Solo sale en
   productos simples: en los variables el filtro de precio devuelve "A partire da: X"
   sin sufijo. */
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .price .ffm-iva-suffix {
  color: #8A8A8A !important;
  font-size: 0.7em !important;
  font-weight: 400 !important;
  margin-left: 4px !important;
  text-decoration: none !important;
}

/* Metadatos y reseñas que no se usan en este sector */
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .posted_in,
body.tax-product_cat.archive div.product-small div.box-text.box-text-products .tagged_as,
body.tax-product_cat.archive div.product-small .star-rating,
body.tax-product_cat.archive div.product-small .woocommerce-review-link {
  display: none !important;
}

@media (max-width: 767px) {
  body.tax-product_cat.archive div.product-small div.box-text.box-text-products .name,
  body.tax-product_cat.archive div.product-small div.box-text.box-text-products .name a {
    font-size: 19px !important;
  }
  body.tax-product_cat.archive div.product-small div.box-text.box-text-products .sku_wrapper {
    font-size: 12px !important;
  }
}
/* === FFT-CAT-CARD FIN === */