/* ==========================================
   FALCON THEME — Custom CSS
   Variables base — sobreescritas por customizer-css.php
   ========================================== */

:root {
    --falcon-primary:       #046BD2;
    --falcon-primary-hover: #0356a8;
    --falcon-dark:          #1a1a1a;
    --falcon-gray:          #6c757d;
    --falcon-light:         #f8f9fa;
    --falcon-border:        #e0e0e0;
    --falcon-badge-new:     #046BD2;
    --falcon-badge-sale:    #dc3545;
    --falcon-btn-radius:    6px;
    --falcon-logo-height:   50px;
}

/* Bootstrap primary override */
.btn-primary              { background-color: var(--falcon-primary); border-color: var(--falcon-primary); }
.btn-primary:hover        { background-color: var(--falcon-primary-hover); border-color: var(--falcon-primary-hover); }
.btn-outline-primary      { color: var(--falcon-primary) !important; border-color: var(--falcon-primary) !important; background-color: transparent; }
.btn-outline-primary:hover{ background-color: var(--falcon-primary) !important; border-color: var(--falcon-primary) !important; color: #fff !important; }
.text-primary             { color: var(--falcon-primary) !important; }
.bg-primary               { background-color: var(--falcon-primary) !important; }
.border-primary           { border-color: var(--falcon-primary) !important; }
a                         { color: var(--falcon-primary); }
a:hover                   { color: var(--falcon-primary-hover); }

/* ==========================================
   BODY
   ========================================== */

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    color: var(--falcon-dark);
    background-color: #fff;
}

/* ==========================================
   TOPBAR
   ========================================== */

.falcon-topbar a { text-decoration: none; }

/* ==========================================
   HEADER
   ========================================== */

header.falcon-header { background: #fff; }
.logo-img { height: var(--falcon-logo-height); width: auto; }

/* ==========================================
   NAVEGACIÓN / MEGA MENU
   ========================================== */

.falcon-nav-bar { border-top: 1px solid var(--falcon-border); }

.falcon-nav-pills .nav-link {
    color: var(--falcon-dark);
    font-size: 14px;
    padding: 10px 18px;
    transition: color 0.2s;
    border-radius: 0;
}
.falcon-nav-pills .nav-link:hover,
.falcon-nav-pills .nav-link.active {
    color: var(--falcon-primary);
    background: none;
}

/* Mega menu — se abre al pasar el ratón (CSS puro, sin JS) */
.mega-menu-dropdown { display: none; }

@media (min-width: 992px) {
    .falcon-nav-bar { position: relative; }
    .falcon-mega-item { position: static; }
    .falcon-mega-item > .mega-menu-dropdown {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 9999;
    }
    .falcon-mega-item:hover > .mega-menu-dropdown {
        display: block;
    }
    .falcon-nav-pills .falcon-mega-item:hover > .nav-link {
        color: var(--falcon-primary);
    }
}

/* Mega menu dropdown */
.mega-menu-dropdown {
    background: #fff;
    border: 1px solid var(--falcon-border);
    border-top: 3px solid var(--falcon-primary);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
    animation: falconFadeDown .18s ease;
}
.mega-menu-dropdown a {
    text-decoration: none;
    transition: color 0.15s;
    font-size: 13px;
}
.mega-menu-dropdown a:hover { color: var(--falcon-primary) !important; }
.mega-menu-dropdown .fw-bold { font-size: 13px; }

@keyframes falconFadeDown {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Dropdown account / cart */
#falconAccountDropdown + .dropdown-menu,
#falconCartDropdown + .dropdown-menu {
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    border: 1px solid var(--falcon-border);
}

/* ==========================================
   BREADCRUMB
   ========================================== */

.breadcrumb-item a { text-decoration: none; color: var(--falcon-primary); }
.breadcrumb-item.active { color: var(--falcon-gray); }

/* ==========================================
   PRODUCT CARDS
   ========================================== */

.product-card {
    border: 1px solid var(--falcon-border) !important;
    border-radius: 8px;
    transition: box-shadow 0.2s, transform 0.15s;
    overflow: hidden;
}
.product-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
    transform: translateY(-2px);
}

.product-card-img-link {
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    background: #fff;
}
.product-card-img-link img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 15px;
    transition: transform 0.3s;
}
.product-card:hover .product-card-img-link img {
    transform: scale(1.04);
}

.product-title {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 36px;
}

.product-price { font-size: 15px; }

/* Grid home — portada */
.falcon-home-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
}
.falcon-home-grid > * {
    width: 100% !important;
    min-width: 0 !important;
}

/* Grid de productos WooCommerce */
.woocommerce ul.products,
ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    padding: 0 !important;
    list-style: none !important;
}
.woocommerce ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Subcategorías: imagen contenida en la tarjeta (si WC no carga el template override) */
.woocommerce ul.products li.product-category a {
    text-decoration: none;
    display: block;
}
.woocommerce ul.products li.product-category a img {
    width: 100%;
    height: 160px;
    object-fit: contain;
    padding: 12px;
    background: #fff;
    border-bottom: 1px solid var(--falcon-border);
}
.woocommerce ul.products li.product-category h2 {
    font-size: 13px;
    font-weight: 600;
    padding: 8px 12px 10px;
    margin: 0;
    color: var(--falcon-dark);
    border: 1px solid var(--falcon-border);
    border-top: none;
    border-radius: 0 0 8px 8px;
}
.woocommerce ul.products li.product-category h2 .count {
    color: var(--falcon-gray);
    font-weight: 400;
    font-size: 11px;
}
.woocommerce ul.products li.product-category {
    border: 1px solid var(--falcon-border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.15s;
}
.woocommerce ul.products li.product-category:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
    transform: translateY(-2px);
}

@media (max-width: 991px) {
    .falcon-home-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 15px !important; }
    .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; gap: 15px !important; }
}
@media (max-width: 767px) {
    .falcon-home-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
    .product-title { font-size: 13px; min-height: auto; }
    .product-card .btn { font-size: 13px; padding: 8px; }
    /* Hero/banner max-height en móvil para evitar imágenes demasiado altas */
    .swiper-slide img,
    .falcon-banner img,
    .wp-block-cover,
    .elementor-widget-image img { max-height: 260px; object-fit: cover; width: 100%; }
    /* Reducir padding de contenedor en móvil */
    .container { padding-left: 12px !important; padding-right: 12px !important; }
    /* Secciones de la home más compactas */
    .home-section-title { font-size: 1.1rem; }
    .py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
}

/* Badges */
.badge-new  { background-color: var(--falcon-badge-new) !important; font-weight: 500; font-size: 11px; }
.badge-sale { background-color: var(--falcon-badge-sale) !important; font-weight: 500; font-size: 11px; }

/* ==========================================
   PRODUCT DETAIL — 2 COLUMN LAYOUT
   ========================================== */

/* Layout del producto individual gestionado por Bootstrap row/col
   en woocommerce/content-single-product.php */
.single-product .woocommerce-product-gallery { width: 100%; }
.single-product .entry-summary { width: 100%; }

/* Product gallery image */
.woocommerce div.product div.images img { object-fit: contain; background: #fff; max-width: 100%; }
.woocommerce-product-gallery__image a { display: block; }

/* Summary */
.single-product .product .summary { font-size: 15px; }

/* Título */
.single-product .product_title { font-size: 1.8rem; font-weight: 700; margin-bottom: 8px; line-height: 1.2; }

/* Precio */
.single-product .product .price {
    font-size: 26px;
    color: var(--falcon-primary);
    font-weight: 700;
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.single-product .product .price del {
    font-size: 16px;
    color: var(--falcon-gray);
    font-weight: 400;
}
.single-product .product .price ins {
    text-decoration: none;
}

/* Galería — imagen limpia sin caja */
.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery .woocommerce-product-gallery__image a {
    display: block;
    background: #fff;
    padding: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    object-fit: contain;
}
/* Miniaturas */
.woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.woocommerce-product-gallery .flex-control-thumbs li { list-style: none; width: 70px; }
.woocommerce-product-gallery .flex-control-thumbs li img {
    border: 1px solid var(--falcon-border);
    border-radius: 4px;
    cursor: pointer;
    opacity: .7;
    transition: opacity .2s, border-color .2s;
}
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
    opacity: 1;
    border-color: var(--falcon-primary);
}

/* Breadcrumb dentro del summary (single product) */
.falcon-product-breadcrumb {
    font-size: 13px;
    color: var(--falcon-gray);
    margin-bottom: 8px;
}
.falcon-product-breadcrumb a {
    color: var(--falcon-gray);
    text-decoration: none;
}
.falcon-product-breadcrumb a:hover { color: var(--falcon-primary); }
.falcon-product-breadcrumb span { margin: 0 4px; }

/* Categoría encima del título */
.falcon-product-category {
    font-size: 13px;
    font-weight: 600;
    color: var(--falcon-gray);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 4px;
}
.falcon-product-category a { color: var(--falcon-gray); text-decoration: none; }
.falcon-product-category a:hover { color: var(--falcon-primary); }

/* Cantidad */
.single-product .quantity { display: flex; align-items: center; gap: 0; }
.single-product .quantity .qty {
    width: 60px;
    text-align: center;
    border: 1px solid var(--falcon-border);
    border-radius: 0;
    padding: 8px 4px;
    font-size: 15px;
    -moz-appearance: textfield;
}
.single-product .quantity .qty::-webkit-outer-spin-button,
.single-product .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Botón añadir al carrito — forzar color primario del tema
   (sobreescribe SuperB2B y WooCommerce defaults) */
.single-product .single_add_to_cart_button,
.woocommerce .single_add_to_cart_button,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.superb2b-cart-btn,
[class*="superb2b"] button[type="submit"],
[class*="superb2b"] input[type="submit"] {
    background-color: var(--falcon-primary) !important;
    border-color: var(--falcon-primary) !important;
    color: #fff !important;
    padding: 10px 32px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    letter-spacing: .3px !important;
    border-radius: var(--falcon-btn-radius) !important;
    text-transform: uppercase !important;
}
.single-product .single_add_to_cart_button:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce button.button.alt:hover,
[class*="superb2b"] button[type="submit"]:hover {
    background-color: var(--falcon-primary-hover) !important;
    border-color: var(--falcon-primary-hover) !important;
}
/* Regla de cierre: cualquier botón submit dentro del cart form */
.single-product form.cart button[type="submit"] {
    background-color: var(--falcon-primary) !important;
    border-color: var(--falcon-primary) !important;
    color: #fff !important;
}
.single-product form.cart button[type="submit"]:hover {
    background-color: var(--falcon-primary-hover) !important;
}

/* Cart form */
.single-product form.cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 16px 0; }

/* Producto — meta info (SKU, categoría, marca) */
.product_meta { font-size: 13px; color: var(--falcon-gray); margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--falcon-border); }
.product_meta span { margin-right: 16px; display: inline-block; }
.product_meta a { color: var(--falcon-dark); text-decoration: none; font-weight: 500; }
.product_meta a:hover { color: var(--falcon-primary); }

/* ==========================================
   PRODUCT TABS — override color primario
   (woocommerce-general.css gestiona el layout base)
   ========================================== */

.woocommerce-tabs .wc-tabs li.active a {
    color: var(--falcon-primary);
    border-bottom-color: var(--falcon-primary);
}
.woocommerce-tabs .wc-tabs li a:hover { color: var(--falcon-primary); }

/* ==========================================
   CART
   ========================================== */

.woocommerce-cart-form .product-thumbnail img { width: 60px; height: 60px; object-fit: contain; border-radius: 4px; }
.woocommerce-cart-form .product-name a { text-decoration: none; color: var(--falcon-dark); font-weight: 500; }
.woocommerce-cart-form .product-price,
.woocommerce-cart-form .product-subtotal { color: var(--falcon-primary); font-weight: 600; }
.cart_totals { background: #fff; border: 1px solid var(--falcon-border); border-radius: 8px; padding: 20px; }
.wc-proceed-to-checkout .button { background: var(--falcon-primary) !important; border-radius: var(--falcon-btn-radius) !important; font-weight: 600; }

/* ==========================================
   CHECKOUT
   ========================================== */

/* Layout 2 columnas (reemplaza woocommerce-layout.css eliminado) */
.woocommerce .col2-set { display: flex; gap: 30px; width: 100%; }
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { flex: 1; min-width: 0; }

/* Form rows */
.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: calc(50% - 8px); display: inline-block; vertical-align: top; }
.woocommerce form .form-row-first { margin-right: 16px; }
.woocommerce form .form-row-wide { width: 100%; display: block; }
.woocommerce form .form-row label { display: block; font-weight: 500; font-size: 14px; margin-bottom: 4px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
    width: 100%; border: 1px solid var(--falcon-border); border-radius: 6px;
    padding: 10px 14px; font-size: 16px; box-sizing: border-box;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
    border-color: var(--falcon-primary); outline: none; box-shadow: 0 0 0 3px rgba(var(--falcon-primary-rgb, 13,110,253),.15);
}

/* Checkout layout principal: billing + order summary */
.woocommerce-checkout #customer_details { flex: 1; }
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review { background: #f8f9fa; border-radius: 8px; padding: 20px; }
.woocommerce-checkout #place_order {
    width: 100%; background: var(--falcon-primary); color: #fff; border: none;
    border-radius: var(--falcon-btn-radius); font-weight: 600; font-size: 16px; padding: 14px;
}

/* ==========================================
   MY ACCOUNT
   ========================================== */

/* Layout nav + contenido */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--falcon-border); }
.woocommerce-MyAccount-navigation ul li a {
    display: block; padding: 12px 15px; text-decoration: none;
    color: var(--falcon-dark); transition: background 0.2s;
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--falcon-light); color: var(--falcon-primary);
}

/* Página de direcciones — 2 columnas */
.woocommerce-MyAccount-addresses .col-1,
.woocommerce-MyAccount-addresses .col-2 { width: 100%; }
.woocommerce-MyAccount-addresses .woocommerce-Address {
    background: #f8f9fa; border: 1px solid var(--falcon-border);
    border-radius: 8px; padding: 20px; margin-bottom: 20px;
}
.woocommerce-MyAccount-addresses .woocommerce-Address-title {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--falcon-border);
}
.woocommerce-MyAccount-addresses .woocommerce-Address-title h3 { margin: 0; font-size: 16px; }

/* My Account — layout general con nav lateral */
.woocommerce-account .woocommerce {
    display: flex; gap: 30px; align-items: flex-start;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 220px; flex-shrink: 0; background: #fff;
    border: 1px solid var(--falcon-border); border-radius: 8px; overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-content { flex: 1; min-width: 0; }

/* Header — siempre ancho completo en mobile */
@media (max-width: 767px) {
    header.falcon-header .container,
    header.falcon-header .container-sm,
    .falcon-topbar .container,
    .falcon-topbar .container-sm,
    .falcon-nav-bar .container,
    .falcon-nav-bar .container-sm {
        max-width: 100% !important;
        width: 100% !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

/* My Account — login row: columnas a altura natural siempre */
.woocommerce-account .row.g-4 { align-items: flex-start !important; }

/* My Account — mobile */
@media (max-width: 767px) {
    .woocommerce-account .woocommerce {
        flex-direction: column; gap: 16px;
    }
    .woocommerce-account .woocommerce-MyAccount-navigation {
        width: 100%;
    }
    /* Reducir el espacio superior en mobile */
    .woocommerce-account .woocommerce > .row,
    .woocommerce-account .row.g-4 { margin-top: 0 !important; }
    /* Columnas a altura natural — evita que la col de login se estire */
    .woocommerce-account .row.g-4 { align-items: flex-start !important; }
    /* Login form: no desborda */
    .woocommerce-account .woocommerce,
    .woocommerce-form-login,
    .woocommerce-form-login input,
    .woocommerce-form-login .button {
        max-width: 100%; box-sizing: border-box;
    }
    .woocommerce-form-login { padding: 16px !important; }
    /* Evitar overflow horizontal solo en el contenido (no en html/body para no romper sticky) */
    .woocommerce-page .woocommerce,
    .woocommerce-account .entry-content,
    .site-content { overflow-x: clip; }
    /* reCAPTCHA: escalar para que quepa en pantallas pequeñas */
    .g-recaptcha {
        transform: scale(0.88);
        transform-origin: 0 0;
        margin-bottom: -10px;
    }
    /* Social login buttons */
    .woocommerce-social-login-buttons a,
    .woocommerce-social-login-buttons button,
    [class*="social-login"] a,
    [class*="social-login"] button { width: 100% !important; box-sizing: border-box !important; max-width: 100% !important; }
}

/* ==========================================
   LIVE SEARCH DROPDOWN
   ========================================== */

#falconSearchDropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0; right: 0;
    background: #fff;
    border: 1px solid var(--falcon-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    z-index: 9999;
    overflow: hidden;
}
#falconSearchDropdown.fsd-open { display: block; }
.fsd-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    text-decoration: none;
    color: var(--falcon-dark);
    border-bottom: 1px solid #f0f0f0;
    transition: background .15s;
}
.fsd-item:hover, .fsd-item.fsd-active { background: #f5f8ff; color: var(--falcon-dark); }
.fsd-item img { width: 44px; height: 44px; object-fit: contain; border-radius: 4px; flex-shrink: 0; background: #f8f9fa; }
.fsd-item-name { font-size: 13px; font-weight: 600; line-height: 1.3; flex: 1; min-width: 0;
    overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fsd-item-sku { font-size: 11px; color: #6c757d; margin-top: 2px; }
.fsd-item-price { font-size: 13px; font-weight: 700; color: var(--falcon-primary); white-space: nowrap; }
.fsd-item-badge { background: #dc3545; color: #fff; font-size: 10px; font-weight: 700;
    padding: 1px 5px; border-radius: 3px; white-space: nowrap; }
.fsd-footer {
    display: block; padding: 10px 14px; text-align: center;
    font-size: 13px; font-weight: 600; color: var(--falcon-primary);
    background: #f8f9fa; text-decoration: none;
}
.fsd-footer:hover { background: #edf2ff; }
.fsd-empty { padding: 20px; text-align: center; color: #6c757d; font-size: 13px; }
.fsd-loading { padding: 16px; text-align: center; }
.fsd-spinner { width: 20px; height: 20px; border: 2px solid #dee2e6;
    border-top-color: var(--falcon-primary); border-radius: 50%; animation: fsd-spin .6s linear infinite; display: inline-block; }
@keyframes fsd-spin { to { transform: rotate(360deg); } }

/* ==========================================
   FOOTER
   ========================================== */

footer.falcon-footer { font-size: 14px; }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin-bottom: 6px; }
.footer-links a { text-decoration: none; color: var(--falcon-gray); transition: color 0.2s; }
.footer-links a:hover { color: var(--falcon-primary); }
.footer-section-title { color: var(--falcon-dark); }

/* ==========================================
   HOME SECTIONS
   ========================================== */

.home-section-title {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 0;
    color: var(--falcon-dark);
}

.swiper-button-next, .swiper-button-prev {
    color: var(--falcon-primary) !important;
    width: 30px !important; height: 30px !important;
}
.swiper-button-next::after, .swiper-button-prev::after { font-size: 16px !important; }

/* Swiper pagination bullets — círculos correctos */
.swiper-pagination-bullet {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    display: inline-block !important;
    background: rgba(255,255,255,0.6) !important;
    opacity: 1 !important;
}
.swiper-pagination-bullet-active {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    background: #fff !important;
}

/* SuperB2B slider dots — evitar que flexbox los estire */
.superb2b-dots {
    align-items: center !important;
}
.superb2b-dots button {
    width: 12px !important;
    height: 12px !important;
    min-width: 12px !important;
    min-height: 0 !important;
    max-height: 12px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    line-height: 1 !important;
    font-size: 0 !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
}

/* ==========================================
   B2B / SuperB2B
   ========================================== */

.woocommerce-info,
.woocommerce-message { border-top-color: var(--falcon-primary); }
.woocommerce-error   { border-top-color: #dc3545; }

.superb2b-min-order-warning {
    background: #fff3cd; border: 1px solid #ffc107; border-radius: 8px; padding: 12px 16px;
}

/* Corazón de favoritos SuperB2B — override para mejor visibilidad */
.superb2b-heart {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    left: auto !important;
    z-index: 10 !important;
    font-size: 20px !important;
    color: #fff !important;
    background: rgba(0,0,0,0.35) !important;
    border-radius: 50% !important;
    width: 34px !important;
    height: 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    -webkit-text-stroke: 0 !important;
    text-shadow: none !important;
    transition: background 0.2s, color 0.2s !important;
}
.superb2b-heart:hover {
    background: rgba(231,76,60,0.85) !important;
    color: #fff !important;
    transform: scale(1.1) !important;
}
.superb2b-heart-active {
    color: #fff !important;
    background: rgba(231,76,60,0.85) !important;
    -webkit-text-stroke: 0 !important;
}
/* Imagen del producto con posición relativa para anclar el corazón */
.product-card-img-link { position: relative; display: block; }

/* ==========================================
   MOBILE OFFCANVAS
   ========================================== */

#falconMobileMenu { max-width: 340px; }
#falconMobileMenu .accordion-button:not(.collapsed) { color: var(--falcon-primary); box-shadow: none; background: none; }
#falconMobileMenu .accordion-button:focus { box-shadow: none; }
#falconMobileMenu .accordion-button { font-size: 15px; padding: 14px 20px; }
#falconMobileMenu .accordion-button::after { margin-left: auto; }

/* ==========================================
   UTILITIES
   ========================================== */

img.wp-post-image { max-width: 100%; height: auto; }
.woocommerce .star-rating { color: #f5a623; }
.woocommerce .woocommerce-breadcrumb { display: none; }
.woocommerce-result-count, .woocommerce-ordering { margin-bottom: 20px; }
.woocommerce div.product div.images img { object-fit: contain; background: #fff; }

/* Mini cart */
.falcon-mini-cart-content { min-height: 60px; }

/* Brands hover */
.falcon-brand-logo { display: inline-flex; align-items: center; }

/* ==========================================
   FOOTER WIDGETS
   ========================================== */

/* Widgets dentro de las columnas del footer */
.falcon-footer .footer-widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.falcon-footer .footer-widget ul li {
    margin-bottom: 6px;
}
.falcon-footer .footer-widget ul li a {
    text-decoration: none;
    color: var(--falcon-gray);
    transition: color 0.2s;
    font-size: 14px;
}
.falcon-footer .footer-widget ul li a:hover {
    color: var(--falcon-primary);
}
/* Widget de menú de nav en footer */
.falcon-footer .footer-widget .menu { padding: 0; list-style: none; margin: 0; }
.falcon-footer .footer-widget .menu li { margin-bottom: 6px; }
.falcon-footer .footer-widget .menu li a {
    text-decoration: none;
    color: var(--falcon-gray);
    font-size: 14px;
    transition: color 0.2s;
}
.falcon-footer .footer-widget .menu li a:hover { color: var(--falcon-primary); }
/* Widget title en footer */
.falcon-footer .footer-widget .widgettitle,
.falcon-footer .footer-widget .widget-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--falcon-dark);
}

/* ==========================================
   ELEMENTOR COMPATIBILITY
   ========================================== */

/* Elementor full-width: quitar padding de main cuando Elementor gestiona la página */
.elementor-page #main-content,
body.elementor-page > #main-content {
    padding: 0 !important;
}
/* Elementor canvas (popup, full-screen) */
.elementor-template-canvas #main-content {
    padding: 0;
}
/* Falcon full-width template */
body.falcon-full-width #main-content {
    padding: 0;
}
body.falcon-full-width .entry-content {
    width: 100%;
    max-width: 100%;
}
/* Elementor widgets dentro de áreas de widget del footer */
.falcon-footer .elementor-widget-wrap { padding: 0; }
.falcon-footer .elementor { width: 100%; }

/* ==========================================
   PERFORMANCE & ACCESSIBILITY
   ========================================== */

/* Font display swap for better text rendering */
@font-face { font-display: swap; }

/* Reduce layout shift on images */
img { height: auto; }
.product-card img, .woocommerce ul.products img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    width: 100%;
    height: auto;
}

/* Mobile performance: reduce animations on low-power devices */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Mobile: prevent horizontal scroll */
body { overflow-x: hidden; }

/* Tap target sizes on mobile */
@media (max-width: 767px) {
    .btn, button, a.nav-link, .accordion-button {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
    .accordion-button { min-height: 48px; }
}
