/* ==========================================================================
   Categoría - Estilos específicos (solo lo que Bootstrap NO cubre)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Product Card
   -------------------------------------------------------------------------- */
.nv-catalog-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.nv-catalog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.nv-catalog-card__title:hover {
    color: var(--nv-main) !important;
}

/* Imagen de producto - altura fija para consistencia */
.nv-catalog-card__img {
    height: 200px;
    object-fit: contain;
}

/* --------------------------------------------------------------------------
   Filter Accordion - colores NV (verde/amarillo)
   -------------------------------------------------------------------------- */
.nv-filter-accordion {
    border-radius: 0.5rem;
    overflow: hidden;
}

.nv-filter-header {
    background-color: var(--nv-footer-top-bg) !important;
    color: #1a1a1a !important;
    font-weight: 600;
    font-size: 0.875rem;
    padding: 0.875rem 1rem;
    border: none;
    border-bottom: 1px solid #dedede;
    transition: all 0.2s ease;
}

.nv-filter-header:not(.collapsed) {
    background-color: #fff !important;
    border-left: 3px solid var(--nv-main);
}

.nv-filter-header:hover {
    background-color: #fff !important;
}

.nv-filter-header:focus,
.nv-filter-header:focus-visible,
.nv-filter-header:active {
    box-shadow: none !important;
    outline: none !important;
}

.accordion-button.nv-filter-header:not(.collapsed) {
    box-shadow: none !important;
}

.nv-filter-header::after {
    display: none !important;
}

.nv-filter-chevron {
    font-size: 0.75rem;
    color: #6c757d;
    transition: transform 0.2s ease, color 0.2s ease;
}

.nv-filter-header:not(.collapsed) .nv-filter-chevron {
    transform: rotate(180deg);
    color: var(--nv-main);
}

.nv-filter-header:hover .nv-filter-chevron {
    color: var(--nv-main);
}

/* --------------------------------------------------------------------------
   Filter items
   -------------------------------------------------------------------------- */
.nv-filter-item {
    display: flex;
    align-items: center;
    padding: 0.25rem 0;
    transition: background-color 0.15s ease;
    border-radius: 0.25rem;
}

.nv-filter-item:hover {
    background-color: var(--nv-footer-top-bg);
    padding-left: 0.5rem;
    margin-left: -0.5rem;
    padding-right: 0.5rem;
    margin-right: -0.5rem;
}

.nv-filter-item .form-check-label {
    cursor: pointer;
    color: #555;
    font-size: 0.875rem;
    transition: color 0.15s ease;
}

.nv-filter-item:hover .form-check-label {
    color: #1a1a1a;
}

.nv-filter-check {
    cursor: pointer;
}

.nv-filter-check:checked {
    background-color: var(--nv-main);
    border-color: var(--nv-main);
}

.nv-filter-check:focus {
    border-color: var(--nv-main);
    box-shadow: 0 0 0 0.2rem rgba(190, 214, 5, 0.25);
    outline: none;
}

/* --------------------------------------------------------------------------
   NopAccelerate filter scrollbar - NV colors
   -------------------------------------------------------------------------- */
.nopAcc-filter .checkbox-list {
    max-height: 320px;
    overflow-y: auto !important;
}

.nopAcc-filter .checkbox-list .mCustomScrollBox {
    max-height: none !important;
    overflow: visible !important;
}

.nopAcc-filter .checkbox-list .mCSB_scrollTools {
    display: none !important;
}

.nopAcc-filter .checkbox-list::-webkit-scrollbar {
    width: 6px;
}

.nopAcc-filter .checkbox-list::-webkit-scrollbar-track {
    background: var(--nv-footer-top-bg);
    border-radius: 3px;
}

.nopAcc-filter .checkbox-list::-webkit-scrollbar-thumb {
    background: var(--nv-main-dark);
    border-radius: 3px;
}

.nopAcc-filter .checkbox-list::-webkit-scrollbar-thumb:hover {
    background: var(--nv-main);
}

.nopAcc-filter .checkbox-list {
    scrollbar-width: thin;
    scrollbar-color: var(--nv-main-dark) var(--nv-footer-top-bg);
}

/* --------------------------------------------------------------------------
   Category Hero Banner — mismo patrón que #contacto-hero
   -------------------------------------------------------------------------- */
#catalog-hero {
    min-height: 400px;
    border-bottom: 4px solid var(--nv-main);
}

/* --------------------------------------------------------------------------
   Category Breadcrumb
   -------------------------------------------------------------------------- */
.nv-catalog-breadcrumb {
    background-color: var(--nv-footer-top-bg);
}

.nv-catalog-breadcrumb .breadcrumb {
    background: none;
    padding: 0;
    margin: 0;
}

.nv-catalog-breadcrumb .breadcrumb ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
}

.nv-catalog-breadcrumb .breadcrumb li {
    display: flex;
    align-items: center;
    font-size: 0.8125rem;
    color: #6c757d;
}

.nv-catalog-breadcrumb .breadcrumb a {
    color: #555;
    text-decoration: none;
    transition: color 0.15s ease;
}

.nv-catalog-breadcrumb .breadcrumb a:hover {
    color: var(--nv-main-dark);
}

.nv-catalog-breadcrumb .breadcrumb .delimiter {
    color: var(--nv-main);
    font-weight: 700;
    font-size: 0.75rem;
    padding: 0 0.375rem;
}

.nv-catalog-breadcrumb .breadcrumb .current-item {
    color: #1a1a1a;
    font-weight: 600;
}

/* --------------------------------------------------------------------------
   Catalog Selectors (ordenar, productos por página, vista)
   -------------------------------------------------------------------------- */
.nv-selector {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    width: auto !important;
    min-width: 130px;
}

/* --------------------------------------------------------------------------
   View mode toggle buttons
   -------------------------------------------------------------------------- */
.nv-viewmode-btn {
    border: 1px solid #dee2e6;
    color: #6c757d;
    background-color: #fff;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.nv-viewmode-btn:hover {
    background-color: var(--nv-footer-top-bg);
    border-color: var(--nv-main);
    color: var(--nv-main-dark);
}

.nv-viewmode-btn.active,
.nv-viewmode-btn:active {
    background-color: var(--nv-main) !important;
    border-color: var(--nv-main) !important;
    color: #fff !important;
}

.nv-viewmode-btn:focus,
.nv-viewmode-btn:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(190, 214, 5, 0.25);
    outline: none;
}

/* --------------------------------------------------------------------------
   Price range slider - NV colors
   -------------------------------------------------------------------------- */
.nv-price-slider {
    height: 6px;
    background: var(--nv-footer-top-bg);
    border: none;
    border-radius: 3px;
    margin-top: 0.5rem;
}

.nv-price-slider .ui-slider-range {
    background: var(--nv-main);
    border-radius: 3px;
}

.nv-price-slider .ui-slider-handle {
    width: 18px;
    height: 18px;
    top: -6px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid var(--nv-main-dark);
    cursor: grab;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.nv-price-slider .ui-slider-handle:hover,
.nv-price-slider .ui-slider-handle:focus {
    transform: scale(1.2);
    box-shadow: 0 2px 8px rgba(190, 214, 5, 0.4);
    outline: none;
}

.nv-price-slider .ui-slider-handle:active {
    cursor: grabbing;
}

/* --------------------------------------------------------------------------
   Paginado
   -------------------------------------------------------------------------- */
.pager ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.pager li a,
.pager li span {
    display: block;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    text-decoration: none;
    color: #1a1a1a;
    background-color: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    transition: all 0.15s ease-in-out;
}

.pager li a:hover {
    color: #fff;
    background-color: var(--nv-main-dark);
    border-color: var(--nv-main-dark);
}

.pager li.current-page span {
    color: #1a1a1a;
    background-color: var(--nv-main);
    border-color: var(--nv-main);
    font-weight: 600;
}

.pager li.total-summary {
    color: #6c757d;
    font-size: 0.875rem;
    padding-right: 0.5rem;
}

/* --------------------------------------------------------------------------
   List mode — card horizontal (imagen izquierda, contenido derecha)
   -------------------------------------------------------------------------- */
.product-list .nv-catalog-card {
    flex-direction: row;
    align-items: stretch;
    transform: none !important;
}

.product-list .nv-catalog-card:hover {
    transform: none !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.product-list .nv-catalog-card__img-wrapper {
    flex: 0 0 200px;
    width: 200px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #dee2e6;
    padding: 1rem !important;
}

.product-list .nv-catalog-card__img {
    height: 160px;
}

.product-list .nv-catalog-card__body {
    flex: 1;
    padding: 1rem 1.25rem !important;
    justify-content: center;
}

.product-list .nv-catalog-card__body .btn-nv {
    width: fit-content !important;
    align-self: flex-end;
    margin-top: auto;
}

/* Necesario para que el flex-direction funcione en el article */
.product-list .nv-catalog-card {
    display: flex;
}

/* --------------------------------------------------------------------------
   Color squares en filtros de especificación
   -------------------------------------------------------------------------- */
.nv-color-square {
    width: 18px;
    height: 18px;
    display: inline-block;
    flex-shrink: 0;
    border-radius: 3px;
    border: 1px solid #dee2e6;
}

#nav-principal .nav-logo-full{display:none}#nav-principal .nav-logo-isotipo{display:block}@media(min-width:768px){#nav-principal .nav-logo-full{display:block}#nav-principal .nav-logo-isotipo{display:none}}#header-top{transition:transform .3s ease,opacity .3s ease}#header-top.nav-hidden{position:fixed;top:0;left:0;right:0;z-index:1031;transform:translateY(-100%);opacity:0;pointer-events:none}#nav-principal{transition:box-shadow .3s ease}#nav-principal.nav-sticky{position:fixed;top:0;left:0;right:0;z-index:1030;animation:navSlideDown .3s ease}@keyframes navSlideDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}#nav-principal .nav-link{font-size:.875rem;font-weight:500;text-transform:uppercase;padding:.5rem .75rem;transition:color .2s ease}#nav-principal .nav-link:hover{color:var(--nv-main)!important}@media(min-width:992px){#nav-principal .dropdown:hover>.dropdown-menu{display:block}}#nav-principal .navbar-nav>.dropdown{position:relative!important}#nav-principal .mega-dropdown{left:-100%;right:auto;width:fit-content;border:0;border-radius:.5rem;box-shadow:0 4px 20px rgba(0,0,0,.1)}.mega-dropdown-inner{display:flex;gap:2rem;max-width:1320px;margin:0 auto;padding:0 1rem}.mega-dropdown-col{display:flex;flex-direction:column;min-width:180px}.mega-dropdown-col--two{min-width:320px}.submenu{font-weight:600;font-size:.9375rem;text-transform:uppercase;padding:.5rem 0;margin-bottom:.5rem;border-bottom:2px solid var(--nv-main);display:block;text-decoration:none;color:#1a1a1a;transition:color .2s ease}.submenu:hover{color:var(--nv-main)}.submenu.submenu-title{cursor:default;pointer-events:none}.submenu.submenu-title:hover{color:#1a1a1a}.mega-dropdown-link{font-size:.875rem;text-transform:uppercase;padding:.375rem 0;text-decoration:none;color:#6a6c74;transition:color .2s ease}.mega-dropdown-link:hover{color:var(--nv-main)}.nv-offcanvas{background-color:var(--nv-main)!important}.nv-bg-texture{opacity:.22;pointer-events:none;z-index:0}.nav-accordion .accordion-item{background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.4)}.nav-accordion .accordion-item:last-child{border-bottom:0}.nav-accordion .accordion-button{background:transparent;color:#fff;font-weight:500;font-size:1rem;padding:1rem 0;box-shadow:none;border:0;border-radius:0}.nav-accordion .accordion-button:focus{box-shadow:none}.nav-accordion .accordion-button:not(.collapsed){background:transparent;color:#fff;box-shadow:none}.nav-accordion .accordion-chevron{transition:transform .3s ease}.nav-accordion .accordion-button:not(.collapsed) .accordion-chevron{transform:rotate(180deg)}.nav-accordion .accordion-body{background:rgba(255,255,255,.05);padding:.5rem 1rem;border-radius:.5rem;margin-bottom:.5rem}.nav-accordion .nav-mobile-link{color:#fff;font-weight:500;font-size:1.3rem;padding:1rem 0;text-decoration:none;display:block}.nav-accordion .nav-mobile-link::after{display:none}.nav-mobile-sublink{opacity:.85;transition:opacity .2s ease;font-size:.9375rem}.nav-mobile-sublink:hover{opacity:1;color:var(--nv-main)!important}.social-icon{width:40px;height:40px;transition:background-color .2s ease,color .2s ease}.social-icon:hover{background-color:var(--nv-secondary-dark,#e0b400)!important;color:#1a1a1a!important}.nv-nav-thumb-col{min-width:unset}.nv-nav-thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:.5rem 0}.nv-nav-thumb-item{display:flex;flex-direction:column;align-items:center;gap:1.4rem;padding:1.5rem;border-radius:.5rem;transition:background-color .2s ease;color:#1a1a1a;text-align:center}.nv-nav-thumb-item:hover{background-color:rgba(190,214,5,.12)}.nv-nav-thumb-img{width:100px;height:100px;object-fit:contain}.nv-nav-thumb-label{font-size:.75rem;font-weight:600;color:#1a1a1a;text-transform:uppercase;line-height:1.2;letter-spacing:.02em}.nv-nav-thumb-item:hover .nv-nav-thumb-label{color:var(--nv-main-dark)}.nv-nav-thumb-grid--mobile{gap:.25rem;padding:.25rem 0}.nv-nav-thumb-grid--mobile .nv-nav-thumb-item{gap:.5rem;padding:.5rem}.nv-nav-thumb-grid--mobile .nv-nav-thumb-img{width:60px;height:60px}
.nav-mobile-category{color:#fff;font-weight:600;font-size:.9375rem;padding:.75rem 0 .25rem;display:block;border-bottom:1px solid rgba(255,255,255,.35);margin-top:.5rem}.nav-mobile-category-link{color:#fff;font-weight:600;font-size:.9375rem;padding:.75rem 0 .25rem;display:block;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);margin-top:.5rem;transition:color .2s ease}.nav-mobile-category-link:hover{color:rgba(255,255,255,.75)}.nav-mobile-sublink{opacity:.85;transition:opacity .2s ease;font-size:.9375rem}.nav-mobile-sublink:hover{opacity:1;color:var(--nv-main)!important}#navAccordion .accordion-button{font-size:1.3rem;padding:1rem 0}#navAccordion .accordion-button::after{display:none}.nv-nav-thumb-grid--mobile{display:flex;flex-direction:column;gap:0;padding:0}.nv-nav-thumb-grid--mobile .nv-nav-thumb-item{flex-direction:row;align-items:center;gap:.75rem;padding:.6rem 0;border-radius:0;text-align:left;border-bottom:1px solid rgba(255,255,255,.12)}.nv-nav-thumb-grid--mobile .nv-nav-thumb-item:last-child{border-bottom:0}.nv-nav-thumb-grid--mobile .nv-nav-thumb-img{flex-shrink:0;width:48px;height:48px}.nv-nav-thumb-grid--mobile .nv-nav-thumb-label{color:#fff;font-size:.9375rem;text-transform:none;letter-spacing:0}
.ui-datepicker{z-index:1080!important}.k-overlay{position:fixed;top:0;left:0;z-index:1060;width:100%;height:100%;background-color:#000;opacity:.5}.nopAjaxCartPanelAjaxBusy,.miniProductDetailsPanelAjaxBusy{position:absolute;z-index:1070;width:auto;height:auto;background:url('../Plugins/SevenSpikes.Nop.Plugins.AjaxCart/Themes/DefaultClean/Content/img/loader.gif') no-repeat fixed 50% 50%;opacity:.7}.addProductVariantToCartErrors{color:#c00}.addProductVariantToCartErrors ul{margin:20px}.addProductVariantToCartErrors li{margin:0 0 10px 0}.productQuantityTextBox{float:left;width:20px;text-align:center;font-size:16px}.product-list .item-box .ajax-cart-button-wrapper{display:inline-block}.product-list .item-box .productQuantityTextBox,.product-list .item-box .productQuantityDropdown{width:42px;height:40px}.product-grid .item-box .ajax-cart-button-wrapper{display:inline-block;width:66%}.ajax-cart-button-wrapper .product-box-add-to-cart-button{width:100%}.ajax-cart-button-wrapper .productQuantityDropdown{min-width:0}.product-grid .item-box .productQuantityTextBox,.product-grid .item-box .productQuantityDropdown{width:25%;height:40px}.product-grid .item-box .productQuantityTextBox~.product-box-add-to-cart-button,.product-grid .item-box .productQuantityDropdown~.product-box-add-to-cart-button{width:75%}.product-grid .item-box .add-to-compare-list-button,.product-grid .item-box .add-to-wishlist-button{width:17%}@media all and (min-width:1001px) and (max-width:1366px){.product-grid .item-box .productQuantityTextBox~.product-box-add-to-cart-button,.product-grid .item-box .productQuantityDropdown~.product-box-add-to-cart-button{font-size:13px}}.ajaxCart{flex-flow:column;position:absolute;padding:0!important;width:500px;background:#fff;text-align:left;box-shadow:0 0 2px rgba(0,0,0,.3);z-index:1070}.ajaxCart li{list-style:none}.ajaxCart .k-window-titlebar{margin:0!important;padding:14px 35px 14px 10px;min-height:46px;border-bottom:1px solid #ddd;background:#efefef}.ajaxCart .k-window-titlebar-actions{position:absolute;top:16px;right:14px;font-size:0;z-index:1}.ajaxCart .k-window-titlebar .k-button{display:block;width:16px;height:16px;border:0;background:url(../Plugins/SevenSpikes.Nop.Plugins.AjaxCart/Themes/DefaultClean/Content/img/close.png) no-repeat center;font-size:0}.ajaxCart .k-window-titlebar .k-icon{display:none}.productAddedToCartWindowTitle{position:absolute;top:0;left:0;padding:13px 35px 13px 15px;font-size:18px;color:#444}.productAddedToCartWindow,.miniProductDetailsView{padding:0;color:#444}.productAddedToCartItem{padding:20px;overflow:hidden}.productAddedToCartWindowImage{float:left;overflow:hidden;margin:0!important;width:210px;height:210px;text-align:left}.productAddedToCartWindowImage a{display:block;overflow:hidden;line-height:0}.productAddedToCartWindowImage img{max-width:100%}.productAddedToCartWindowDescription{margin:0 0 0 230px;padding:7px 0 0;width:auto}.productAddedToCartWindowDescription h1{margin:0 0 15px;font-weight:normal;font-size:18px;color:#444}.productAddedToCartWindowDescription h1 a{color:#333}.productAddedToCartWindowDescription strong{display:block;margin-bottom:10px;font-size:20px;color:#4ab2f1}.productAddedToCartWindowDescription span{display:block;margin-bottom:3px;color:#444}.productAddedToCartWindowSummary{clear:both;padding:12px 12px 30px;border-top:1px solid #ddd;text-align:center}.productAddedToCartWindowSummary a{display:inline-block;color:#4ab2f1;font-size:15px}.productAddedToCartWindowSummary a:hover{text-decoration:underline}.productAddedToCartWindowSummary div{margin:15px 0 0}.ajaxCart .productAddedToCartWindowCheckout{padding:12px 32px;border:0;color:#fff;font-size:14px;cursor:pointer;background:#4ab2f1;text-transform:uppercase}.ajaxCart .productAddedToCartWindowCheckout:hover{background:#248ece}.miniProductDetailsView:focus,.productAddedToCartWindow:focus{outline:-webkit-focus-ring-color auto 0}.miniProductDetailsView h1{margin-bottom:10px;color:#333;text-transform:uppercase;font-weight:bold;font-size:12px;text-shadow:1px 1px 0 #eee}.miniProductDetailsView .product-name{position:absolute;top:0;left:0;padding:12px 35px 12px 15px;width:500px;height:auto;overflow:hidden;text-shadow:none;font-size:18px;text-transform:none;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#444}.ajaxCart .product-details-page{padding:0}.miniProductDetailsView .product-variant-line{margin:0}.ajaxCart .product-overview-line{border-top:1px solid #ddd}.ajaxCart .product-overview-line:first-child{border-top:0}.miniProductDetailsView .product-essential{margin:0;overflow:hidden;padding:20px;border:0}.miniProductDetailsView .product-essential .gallery{display:block;float:left;overflow:hidden;width:210px;margin:0}.miniProductDetailsView .product-essential .picture{margin:0;overflow:hidden;width:auto!important;height:auto!important;line-height:normal!important}.miniProductDetailsView .product-essential .picture img{z-index:0!important}.ajaxCart .overview{width:auto;float:none;margin:0 0 0 230px;padding:7px 0 0}.miniProductDetailsView h1{font-size:18px;color:#444;font-weight:normal;text-transform:none;margin:0 0 15px;text-shadow:none}.miniProductDetailsView .short-description{margin:0 0 15px;padding-top:0;border-top:0}.miniProductDetailsView .overview .prices .product-price{color:#4ab2f1}.miniProductDetailsView .prices{margin-bottom:10px}.miniProductDetailsView .customer-entered-price{margin-bottom:10px}.miniProductDetailsView .enter-price-input{padding:4px;width:69px}.miniProductDetailsView .product-overview-line .add-to-cart{margin:0;overflow:hidden}.ajaxCart .qty-input,.miniProductDetailsView .add-info input[type="text"]{margin:0;width:43px;height:43px;font-size:16px;padding:0;float:left}.nopAjaxCartProductVariantAddToCartButton{float:left}.ajaxCart .product-collateral{margin:0;padding:20px 20px 0}.miniProductDetailsView .message-error{display:block;float:left;clear:both;margin:10px 0 0 0;font-weight:bold;text-align:left;font-size:14px;color:#c00}.miniProductDetailsView .message-error li{margin:5px 0}.ajaxCart .attributes{margin:0 0 15px}.ajaxCart .attributes dt{margin:0 0 2px}.ajaxCart .attributes .option-list li{margin:5px 0}.ajaxCart .attributes .attribute-squares li{margin:5px 10px 5px 0}.miniProductDetailsView .giftcard{margin:0;padding:20px;background:#fff}.ajaxCart .product-grid{margin:0 0 30px}.ajaxCart .product-grid .title{margin:0 0 10px;padding:0 20px 8px;text-align:left;font-size:20px}.ajaxCart .product-grid .item-grid{padding:0 15px;height:185px;overflow:hidden}.ajaxCart .product-grid .item-box{text-align:left;width:33.3333%;padding:0 5px;margin:0}.ajaxCart .product-grid .item-box .picture{margin:0 0 5px;background:none}.ajaxCart .product-grid .item-box .details{padding:0}.ajaxCart .product-grid .item-box .product-title{height:34px;margin:0;font-size:14px;line-height:1.2;color:#444}.ajaxCart .item-box .add-info,.ajaxCart .item-box .description,.ajaxCart .item-box .quick-view-button,.ajaxCart .item-box .product-rating-box{display:none!important}.ajaxCart .addProductToCartErrors{padding:20px;color:#444}
/* ==========================================================================
   NanoVistaTheme - Estilos Globales
   ========================================================================== */

/* --------------------------------------------------------------------------
   Variables CSS - Colores de marca
   -------------------------------------------------------------------------- */
:root {
    /* Tipografía */
    --nv-font: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    /* Color main */
    --nv-main:       #bed605;
    --nv-main-dark:  #9aac04;
    --nv-main-light: #cee237;

    /* Color secondary */
    --nv-secondary:       #FAC903;
    --nv-secondary-dark:  #d4a800;
    --nv-secondary-light: #fbd535;

    /* Footer */
    --nv-footer-top-bg:      #f1f1f1;
    --nv-footer-bottom-bg:   #b4b4b4;
    --nv-footer-text:        #393939;
    --nv-footer-link:        #393939;
    --nv-footer-link-hover:  #bed605;
    --nv-footer-heading:     #1a1a1a;
    --nv-footer-social-bg:   #393939;
    --nv-footer-social-size: 36px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*, *::before, *::after {
    font-family: var(--nv-font);
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* --------------------------------------------------------------------------
   Utilidades de color - main
   Bootstrap no tiene estos colores
   -------------------------------------------------------------------------- */

/* Texto */
.text-nv-main       { color: var(--nv-main)       !important; }
.text-nv-main-dark  { color: var(--nv-main-dark)  !important; }
.text-nv-main-light { color: var(--nv-main-light) !important; }

/* Background */
.bg-nv-main       { background-color: var(--nv-main)       !important; }
.bg-nv-main-dark  { background-color: var(--nv-main-dark)  !important; }
.bg-nv-main-light { background-color: var(--nv-main-light) !important; }

/* Texto - secondary */
.text-nv-secondary       { color: var(--nv-secondary)       !important; }
.text-nv-secondary-dark  { color: var(--nv-secondary-dark)  !important; }
.text-nv-secondary-light { color: var(--nv-secondary-light) !important; }

/* Background - secondary */
.bg-nv-secondary       { background-color: var(--nv-secondary)       !important; }
.bg-nv-secondary-dark  { background-color: var(--nv-secondary-dark)  !important; }
.bg-nv-secondary-light { background-color: var(--nv-secondary-light) !important; }

/* --------------------------------------------------------------------------
   Utilidad - fondo light del tema
   -------------------------------------------------------------------------- */
.nv-bg-light {
    background-color: var(--nv-footer-top-bg);
}

/* --------------------------------------------------------------------------
   Iconos de redes sociales - header
   -------------------------------------------------------------------------- */
.nv-social-icon {
    width: 28px;
    height: 28px;
    font-size: 0.875rem;
    transition: opacity 0.2s ease;
}

.nv-social-icon:hover {
    opacity: 0.8;
}

/* --------------------------------------------------------------------------
   Background img - utilidad global para secciones con foto de fondo
   -------------------------------------------------------------------------- */
.nv-bg-img {
    z-index: 0;
    pointer-events: none;
}

/* --------------------------------------------------------------------------
   Shade oscuro - overlay para secciones con fondo fotográfico
   -------------------------------------------------------------------------- */
.nv-shade-dark {
    isolation: isolate;
}

.nv-shade-dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(89deg, rgba(0,0,0,.70) 0%, rgba(0,0,0,.40) 100%);
    pointer-events: none;
    z-index: 1;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

/* CTA */
#nv-cta .btn-dark {
    border-radius: 0.375rem;
    letter-spacing: 0.03em;
}

/* Top section */
.nv-footer-top {
    background-color: var(--nv-footer-top-bg);
    border-top: 3px solid var(--nv-main);
}

/* Bottom section */
.nv-footer-bottom {
    background-color: var(--nv-footer-bottom-bg);
}

/* Heading de columna */
.nv-footer-heading {
    font-size: 0.8125rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nv-footer-heading);
    margin-bottom: 1rem;
}

/* Texto genérico */
.nv-footer-text {
    color: var(--nv-footer-text);
}

/* Links */
.nv-footer-link {
    color: var(--nv-footer-link);
    text-decoration: none;
    font-size: 0.875rem;
    transition: color 0.2s ease;
}

.nv-footer-link:hover {
    color: var(--nv-footer-link-hover);
}

/* Iconos sociales en footer */
.nv-footer-social {
    width: var(--nv-footer-social-size);
    height: var(--nv-footer-social-size);
    background-color: var(--nv-footer-social-bg);
    color: #fff;
    font-size: 0.9rem;
    transition: background-color 0.2s ease;
}

.nv-footer-social:hover {
    background-color: var(--nv-main);
    color: #fff;
}

/* Bottom text + links */
.nv-footer-bottom-text {
    color: #fff;
}

.nv-footer-bottom-link {
    color: #fff;
    text-decoration: none;
    transition: color 0.2s ease;
}

.nv-footer-bottom-link:hover {
    color: var(--nv-main);
}

/* --------------------------------------------------------------------------
   Botón amarillo NV - hover lift
   -------------------------------------------------------------------------- */
.btn-nv {
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease !important;
}

.btn-nv:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

/* Variante amarilla - oscurece en hover */
.btn-nv.bg-nv-secondary:hover {
    background-color: var(--nv-secondary-dark) !important;
}

/* Variante oscura - fondo negro, texto blanco */
.btn-nv-dark {
    background-color: #1a1a1a !important;
    color: #fff !important;
    border: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

.btn-nv-dark:hover {
    background-color: #333 !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

/* --------------------------------------------------------------------------
   Back to Top
   -------------------------------------------------------------------------- */
.nv-back-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 44px;
    height: 44px;
    background-color: var(--nv-secondary);
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    z-index: 999;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.nv-back-top::after {
    font-family: 'bootstrap-icons';
    content: '\F145';
    color: #1a1a1a;
    font-size: 1.25rem;
    line-height: 1;
}

.nv-back-top:hover {
    background-color: var(--nv-secondary-dark);
    transform: translateY(-2px);
}

.nv-back-top.visible {
    display: flex;
}

/* --------------------------------------------------------------------------
   Hero figura decorativa - bottom sobresaliente
   -------------------------------------------------------------------------- */
.nv-hero-figura {
    bottom: -25px;
}

@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}
