/*
Theme Name:   Flatsome Child
Theme URI:    https://fiorifunebrinapoli.it
Description:  Fiori Funebri Napoli — Fioraio funebre a Napoli
Author:       Flor10
Template:     flatsome
Version:      2.3
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
    20.  TIPOGRAFÍA Y ACENTOS (migrado del Custom CSS, 28-07-2026)
   ============================================================ */

/* =============================================================
   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:           #0077A8;
    --ffm-dark-secondary: #0E3948;
    --ffm-gold:           #00A2DD;
    --ffm-gold-light:     #33B4E4;
    --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);
}h1, h2, h3, h4, h5, h6{
    color: var(--ffm-dark);
    line-height: 1.3;
}h2{ margin-bottom: 15px; }

/* =============================================================
   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;
    padding: 15px 20px;
}
.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;
}

/* 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;
}

/* ⚠️ 28-07-2026 — La tarjeta de producto es LA MISMA en las tres vistas
   (home, categoría y tienda): mismo markup de Flatsome y mismo estilo, que
   vive en la SECCIÓN 20 con selectores globales `.product-small …`.
   Aquí había overrides `body:not(.home)` que la hacían distinta en la
   cuadrícula (contenedor centrado, título 1.25em/700 en azzurro, precio
   1.05em/700) y dos bloques para clases que NO existen en el markup
   (`.ffm-product-cat`, `.ffm-product-ref`: las imprimía un snippet de Milano
   que aquí no está). Retirados para que las tres vistas sean iguales.
   Si algún día se quiere diferenciar la cuadrícula, hacerlo con una regla
   nueva y explícita, no reponiendo estas. */

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

/* ⚠️ NO ocultar el `sku_wrapper` de la cuadrícula (28-07-2026).
   Aquí había un `display:none !important` heredado de Milano, donde el código
   se imprimía aparte con `.ffm-product-ref`. En esta tienda ese snippet no
   existe: el código sale en el `sku_wrapper` nativo ("COD: PROD41-S"), así que
   ocultarlo dejaba las fichas de categoría y tienda SIN código, mientras que
   en la home sí se veía. Su estilo (11px, azzurro, mayúsculas) está en la
   sección 20, junto con el de la categoría. */

/* 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 #0077A8 !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;
}

/* Blindaje del ancho del banner (28-07-2026). Moove declara este contenedor
   como `display:inline-block`, y un inline-block NO se ajusta al ancho del
   padre: crece con su contenido. Con el modal a `min(700px, 100vw - 32px)` eso
   puede desbordar en pantallas estrechas. Se fuerza a bloque con `box-sizing`.
   El padding lateral se deja como lo pone Moove (40px) para no cambiar el
   aspecto en escritorio; solo se acorta en el @media de móvil de abajo.
   Mismo blindaje en la fachada: `src/assets/css/cookie-banner.css`.
   (Medido con JS: en un viewport de 492px el modal ocupa 460px y el texto 424px,
   todo dentro; no había desbordamiento real.) */
#moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
#moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
@media (max-width: 767px), (max-height: 620px) {
    #moove_gdpr_cookie_info_bar {
        overflow-x: hidden !important;
    }
    #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container {
        padding: 10px 16px !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: #0077A8 !important;
    border: 1px solid #0077A8 !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: #0077A8 !important;
    background-color: white !important;
    border: 1px solid #0077A8 !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: #0E3948;
    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;
    }
}

/* === 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: #0E3948 !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: #0E3948 !important;
  border-color: #E8E2DC !important;
}
.woocommerce-pagination ul li .current {
  background: #0E3948 !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; }

/* ⚠️ 28-07-2026 — Tarjeta IGUAL en las tres vistas.
   Este bloque hacía que la cuadrícula de categoría y de tienda NO se pareciera
   a la de la home: ocultaba la CATEGORÍA (`display:none` sobre `.product-cat`),
   centraba el texto y cambiaba el nombre (17px/400) y el precio (21px/700 en
   petrol #0E3948). Retirado: ahora mandan las reglas globales
   `.product-small …` de la SECCIÓN 20 — código y categoría en azzurro #0077A8
   (11px, mayúsculas), nombre 20px Cormorant #1A1A1A y precio 18px/500 —, que
   es exactamente lo que ya se veía en la home.
   Solo se conserva el hover del título, que la home no define: */
.tax-product_cat .product-small .box-text .name.product-title a:hover,
.archive .product-small .box-text .name.product-title a:hover {
  color: #0E3948 !important;
}/* ================================================
   RESPONSIVE
   ================================================ */

@media (max-width: 768px){
  .tax-product_cat h1.page-title { font-size: 28px !important; }
}/* (28-07-2026: los tamaños de móvil de la tarjeta también se unifican con los
   de la home — sección 20, @media 767px — así que aquí ya no se redefinen.) */

/* ================================================
   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: #0E3948 !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: #0E3948 !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: #0077A8 !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: #0E3948 !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: #0E3948 !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: #0E3948 !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: #0E3948 !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: #0E3948 !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: #0E3948 !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: #0E3948 !important;
  border-bottom-color: #0E3948 !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
   ================================================ */
/* (28-07-2026: retirada una regla para `.ffm-product-cat`, clase que no existe
   en el markup de esta tienda — la imprimía un snippet de Milano.) */

.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;
}/* 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;
}
.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 .add_to_cart_button,
.product-small .button.add_to_cart_button {
  display: none !important;
}
.footer-2,
.absolute-footer {
  background: #0F0F0F !important;
  color: #FFFFFF !important;
  font-size: 12px;
}.footer-1 h3,
.footer-1 .widget-title{

  font-size: 11px !important;
}
.footer-1 a,
.footer-1 a:visited {
  color: #FFFFFF !important;
  transition: color 0.2s ease;
}
.footer-1 a:hover {
  color: #00A2DD !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: #00A2DD !important;
}
.breadcrumbs a { color: #1A1A1A; }

/* --- 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;
}
.home .product-small .box-image img {
  height: 340px;
  width: 100%;
  object-fit: contain;
  background: #FAF7F4;
}
.home .banner .button:not(.is-outline):hover {
  background: #00A2DD !important;
  color: #FFFFFF !important;
}
.home .banner .button.is-outline {
  background: #00A2DD !important;
  color: #FFFFFF !important;
  border: none !important;
  opacity: 1 !important;
  transition: background 0.25s ease !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); }


/* =============================================================
   20. TIPOGRAFÍA Y ACENTOS — MIGRADO DEL CUSTOM CSS DE FLATSOME
   (28-07-2026)

   Estas reglas vivían en Flatsome > Advanced Options > Custom CSS
   (theme_mod `html_custom_css`): 832 líneas que se imprimían inline
   en el <head> de CADA página de la tienda. Se traen aquí para tener
   UNA sola hoja de estilos: versionable en git, cacheable por el
   navegador y sin duplicar reglas.

   Qué aportan (por eso no se pueden borrar):
     - TODA la tipografía Cormorant Garamond + Mulish. Las secciones
       1-19 no declaran `font-family`: se vaciaron el 27-07-2026 al
       retirar las DM Serif/DM Sans heredadas de Milano.
     - El remapeo de acentos a azzurro #0077A8 (paleta Eterna).

   Qué se eliminó al unificar:
     - El CSS muerto del clon de Roma (prefijo `ffr-` = Fiori Funebri
       Roma, diseño "Flores no Cais"): .ffr-consegna, .ffr-icon-card,
       .ffr-blog-card, .ffr-wave, .why-us-list, .section-title-sep,
       .cta-dark-btn y el grid `.home .products.columns-3` (selector
       inexistente: Flatsome emite `large-columns-3`). Ninguna de esas
       clases aparecía en el markup de la home (post 902, rehecha con
       UX Builder), ni en la categoría, ni en la ficha de producto.
     - Las declaraciones de las secciones de arriba que este bloque
       ya sobrescribía (venían de una migración anterior hecha en
       MILANO el 28-05-2026, con los colores viejos petrol #0E3948 y
       #4A0F1A). Estaban ahí sin pintar nada.

   ⚠️ VA AL FINAL A PROPÓSITO: en el <head> el custom CSS de Flatsome
   se imprimía DESPUÉS de esta hoja, así que ganaba los empates de
   especificidad. Manteniéndolo al final se preserva exactamente la
   cascada anterior. No subir estas reglas a las secciones de arriba
   sin comprobar el render.
   ============================================================= */

/* --- TIPOGRAFÍA CORMORANT GARAMOND + MULISH --- */

/* 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;
}
.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;
}
.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: #0077A8 !important;
  text-decoration: none !important;
}
.onsale,
.badge,
.callout .inner {
  background: #0077A8 !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: #0077A8 !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: #0077A8 !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: #0E3948 !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: #0077A8;
}

/* --- FOOTER --- */
.footer-wrapper {
  border-top: 3px solid #0077A8;
}
.footer-1 {
  background: #1A1A1A !important;
}
.footer-1 h3,
.footer-1 .widget-title {
  color: #FFFFFF !important;
  font-family: 'Mulish', sans-serif !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-family: 'Mulish', sans-serif;
  font-size: 13px;
  line-height: 1.6;
}

/* --- 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: #0077A8 !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: #0E3948 !important;
}
.button.is-outline,
a.button.is-outline {
  border: 1px solid #0077A8 !important;
  color: #0077A8 !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.button.is-outline:hover,
a.button.is-outline:hover {
  background: #0077A8 !important;
  color: #FFFFFF !important;
}

/* --- BREADCRUMBS --- */
.breadcrumbs {
  font-family: 'Mulish', sans-serif;
  font-size: 12px;
  color: #1A1A1A;
}
.breadcrumbs a:hover { color: #0077A8;
}

/* --- LINKS --- */
a { color: #0077A8; transition: color 0.2s ease;
}
a:hover { color: #0E3948;
}

/* --- 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: #0077A8 !important;
}

/* --- 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: #0077A8 !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: #0077A8 !important;
  color: #FFFFFF !important;
  border: none !important;
  opacity: 1 !important;
  transition: background 0.25s ease !important;
}
.home .banner .button.is-outline:hover {
  background: #0077A8 !important;
  color: #FFFFFF !important;
}
