.be-heroicon {
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 100%;
    width: 22px;
    height: 22px;
}
.be-heroicon-archive-box{
    background-image: url('../img/heroicons/archive-box.svg');
}
.be-heroicon-shield-check{
    background-image: url('../img/heroicons/shield-check.svg');
}
.be-heroicon-wrench-screwdriver{
    background-image: url('../img/heroicons/wrench-screwdriver.svg');
}
.be-heroicon-credit-card{
    background-image: url('../img/heroicons/credit-card.svg');
}
.be-heroicon-x-mark{
    background-image: url('../img/heroicons/x-mark.svg');
}

.elementor-row.flex-col {
    flex-direction: column;
}
.elementor-row.gap-2 {
    gap: 0.5rem;
}
.elementor-row.gap-4 {
    gap: 1rem;
}

.elementor-widget-product-grid .elementor-button-link {
    background-color: #fff;
    color: #000;
    border-radius: 16px;
    border: 2px solid #000;
    display: block;
    padding: 12px 24px;
}

/** LINK **/
#checkout #wrapper a:hover,
#checkout #wrapper a:focus,
#checkout #wrapper a:active{
    color: initial!important;
}

/** HEADER **/
@media(max-width: 767px) {
	#menu-customer-name span:first-of-type {
		display: none;
	}
}

/** FORM **/
form .btn-primary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #fff;
    width:75%;
    border: 2px solid #000;
    background-color: #000;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}
form .btn-primary:hover {
    background-color: #000;
}
.form-control-label {
    text-align: left;
}
.form-group .form-control:focus {
    outline: none;
    border-color: initial;
    border-radius: 3px;
}
.input-group.focus {
    outline: none;
}
.input-group button[data-action=show-password] .fa-eye {
    display:none;
}
.form-group .form-control-floating {
    padding-top: 1.25rem;
    padding-bottom: 0.5rem;
}
.form-group .form-control-floating + .form-label-floating {
    position: absolute;
    left: 1rem;
    top: 0px;
    padding: 1rem 1rem;
    pointer-events: none;
    transition: 0.2s;
    font-weight: 400;
    line-height: 1.25;
    margin-bottom: 0;
    width: calc(100% - 2rem);
    font-size: 1rem;
    color: #7a7a7a;
    z-index: 3;
}
.form-group .input-group .form-control-floating + .form-label-floating {
    left: 0;
}
.form-group .form-control-floating:focus + .form-label-floating,
.form-group .form-control-floating:valid + .form-label-floating {
    top: -0.75rem;
    font-size: 12px;
    opacity: 0.75;
}
select.form-control-floating.form-control:not([size]):not([multiple]) {
	height: auto;
	padding-left: 1rem;
}
.forgotten-password .form-fields label.required {
    width: calc(100% - 2rem)!important;
    text-align: left;
}
.forgotten-password .form-fields .center-email-fields button, .forgotten-password .form-fields .email input {
    height: auto;
}
.forgotten-password .form-fields .center-email-fields button {
    width: auto;
}
.js-address-form .form-group-alias {
	display:none;
}
.form-group-optional {
	position: relative;
}
.form-group-optional .form-control-floating {
	padding-right: 80px;
}
.form-group-optional .form-control-comment {
	font-size: 12px;
    opacity: 0.75;
    width: fit-content;
    position: absolute;
    line-height: 50px;
    padding-top: 0;
    /* padding-bottom: 0.5rem; */
    right: 1rem;
    bottom: 0;
}

/** BLOCK CARTMODAL **/
.blockcart .cart-products-count {
    position: absolute;
    top: -5px;
    left: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 20px;
    height: 20px;
    background-color: #A7ADFC;
    color: #000;
    border-radius: 50%;
    font-size: 12px;
}

.cart-products-count::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: 1px solid #A7ADFC;
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
    z-index: -1;
    animation: wave-effect 2s infinite ease-out;
}

@keyframes wave-effect {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }

    100% {
        transform: translate(-50%, -50%) scale(2);
        opacity: 0;
    }
}

#blockcart-modal * {
    font-size: inherit;
}
#blockcart-modal .modal-header,
#blockcart-modal .modal-body {
    background-color:rgba(242, 242, 242, 0.91);
}
#blockcart-header {
    border-color: #f4f4f4;
}
#blockcart-modal .modal-title i.material-icons,
#blockcart-modal .product-name {
    color: #151515;
}
#blockcart-modal .cart-content .page-content.page-cms ul.product-total, #blockcart-modal .cart-content p.product-total, .page-content.page-cms #blockcart-modal .cart-content ul.product-total {
    background-color: transparent;
}
#blockcart-modal .divide-right {
    border-color: #f4f4f4;
}
#blockcart-modal .cart-content .page-content.page-cms ul.cart-products-count, #blockcart-modal .cart-content p.cart-products-count, .page-content.page-cms #blockcart-modal .cart-content ul.cart-products-count {
    font-size: inherit;
    color: #000;
    font-weight: normal;
}
#blockcart-modal .cart-content .page-content.page-cms ul .label, #blockcart-modal .cart-content .page-content.page-cms ul .value, #blockcart-modal .cart-content p .label, #blockcart-modal .cart-content p .value, .page-content.page-cms #blockcart-modal .cart-content ul .label, .page-content.page-cms #blockcart-modal .cart-content ul .value, .page-order-detail .order-items .order-item .desc .name {
    font-weight: normal;
}
#blockcart-modal .cart-content p.product-total .label,
#blockcart-modal .cart-content p.product-total .value {
    font-weight: 600;
}
#blockcart-modal .btn-primary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #fff;
    border: 2px solid #000;
    background-color: #000;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}
#blockcart-modal .btn-secondary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #000;
    border: 2px solid #000;
    background-color: transparent;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}

/** CART **/
.card {
    background-color: transparent;
}
#cart .has-discount.product-price,
#cart .product-discount .regular-price,
#cart .product-price {
    color: inherit;
    font-weight: normal;
}
#cart .bootstrap-touchspin input.form-control {
    width: 100%;
    line-height: 20px;
    border-color: #000;
    font-size: 15px;
    min-height: 40px;
    padding: 5px 14px;
    padding-right: 1.5em;
    border-radius: 3px;
    color: #373a3c;
    vertical-align: middle;
}
#cart .bootstrap-touchspin .input-group-btn-vertical {
    position: absolute;
    right: 0;
    z-index: 2;
}
#cart .bootstrap-touchspin .btn-touchspin {
    border: none;
    background-color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}
#cart .bootstrap-touchspin .btn-touchspin i {
    position: relative;
}
#cart .product-line-grid-right .cart-line-product-actions .remove-from-cart {
    margin-top: 0;
}
#cart .product-line-grid-body>.product-line-info>.label {
    font-weight: normal;
}
#cart .product-line-grid-body>.product-line-info>a.label:hover,
#cart .product-line-grid-body>.product-line-info>a.label:focus,
#cart .product-line-grid-body>.product-line-info>a.label:active {
    color: inherit;
}
#cart .product-line-info label {
    font-weight: 600;
}
#cart .cart-summary-line .value {
    font-weight: normal;
}
#cart .card-block.cart-summary-totals .cart-summary-line.cart-total .value {
    font-weight: 700;
}
#cart .btn-primary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #fff;
    border: 2px solid #000;
    background-color: #000;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}
#cart .cart-grid-body .card-block h1 {
    font-weight: 700;
    font-size: 1.375rem;
    text-transform: none;
}
#cart .block-promo .promo-code form {
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
}
#cart .block-promo .promo-input {
    width: calc(100% - 95px);
    padding: 12px 14px;
    margin:0;
}
#cart .block-promo .promo-code .btn-secondary {
    margin: 0;
    padding-top: 9px;
    padding-bottom: 9px;
    border: 1px solid #000;
}

/** CHECKOUT **/
#checkout section.checkout-step {
    background-color: transparent!important;
}
body#checkout section.checkout-step .step-title {
    font-weight: 700;
    font-size: 1.375rem;
    text-transform: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
#checkout .done {
    color: #000000;
}
body#checkout section.checkout-step.-reachable.-current .step-number {
    background-color: #151515;
}
body#checkout section.checkout-step .address-item.selected {
    border-color: #151515;
    border-radius: 3px;
    border-width: 1px;
}
#checkout .custom-radio {
    display:inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    min-height: 1.25rem;
}
#checkout .custom-radio input {
    display: none;
}
#checkout .custom-radio input[type=radio]:checked+span {
    position: relative;
    top: auto;
    left: auto;
    background-color: #151515;
    width: 6px;
    height: 6px;
}
#checkout .btn-primary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #fff;
    border: 2px solid #000;
    background-color: #000;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}
body#checkout section.checkout-step .address-footer {
    display:flex;
    align-items: center;
    justify-content: center;
}
body#checkout section.checkout-step .address-footer a {
    width: 50%;
    margin: 0;
}
body#checkout section.checkout-step .address-item {
    border-color: #ddd;
    border-width: 1px;
    border-radius: 3px;
}
#checkout .cart-summary-products .h3 {
    font-size: inherit;
    text-transform: none;
    margin-bottom: 1.5rem;
}
#checkout .cart-summary-products .col-summary-price {
    display: flex;
    flex-direction: column;
    align-items: end;
    justify-content: space-between;
}
#checkout .cart-summary-products .product-price {
    display: block;
    max-width: 100%;
    color: inherit;
    margin-bottom: 0.5rem;
}
body#checkout .cart-grid-right .card .cart-summary-subtotals-container .cart-summary-line .value {
    font-weight: 400;
}
#checkout .block-promo .promo-code form {
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
}
#checkout .block-promo .promo-input {
    width: calc(100% - 95px);
    padding: 12px 14px;
    margin:0;
}
#checkout .block-promo .promo-code .btn-secondary {
    margin: 0;
    padding-top: 10px;
    padding-bottom: 10px;
}
#checkout .btn-secondary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #000;
    border: 2px solid #000;
    background-color: transparent;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}
body#checkout section.checkout-step .delivery-options>.row {
    border-right: none;
}
body#checkout section.checkout-step .delivery-options .delivery-option label .carrier:not(.carrier-hasLogo)>.col-xs-12 {
    padding-left: 0;
}
body#checkout section.checkout-step .payment-options .payment-option {
    display: flex;
    align-items: start;
    gap: 1rem;
}
body#checkout section.checkout-step .payment-options label {
    margin-bottom: 0;
}
#checkout section.checkout-step .payment-options .custom-radio input[type=radio] {
    position: absolute;
    top: 0;
}
body#checkout section.checkout-step .delivery-options .delivery-option label {
    width: 100%;
}
body#checkout section.checkout-step .payment-options label {
    text-align: left;
}
body#checkout section.checkout-step .payment-options label img {
    max-height: 32px;
}
#checkout .btn-primary.disabled {
    opacity: 0.5;
}
body#checkout #conditions-to-approve .custom-checkbox span.error {
    border-color: red;
}

/** Stripe **/
.js-stripe-payment-form {
	margin-bottom: 20px;
}
.p-PaymentElement .p-BillingAddressForm {
    display: none !important;
}

/** CUSTOMER ACCOUNT **/
.page-my-account #content .links a:hover i {
    color: initial;
}

/** AUTHENTICATION **/
#authentication .page-header {
    padding: 1rem;
    max-width: 640px;
    margin: 0 auto;
}
#authentication .page-content {
    border-radius: 3px;
}
#authentication .btn-primary {
    font-family: "GoogleSans Display", sans-serif;
    font-size: 15px;
    text-transform: none;
    color: #fff;
    width:100%;
    border: 2px solid #000;
    background-color: #000;
    display: inline-block;
    line-height: 1;
    padding: 12px 24px;
    border-radius: 3px;
    fill: currentColor;
    text-align: center;
    font-weight: normal;
    transition: .5s;
}
#authentication #login-form {
    width: 75%;
    margin: 0 auto;
}
#authentication form .form-control {
    width: 100%;
    border-radius: 3px;
    border-color: #000;
}
#authentication form .input-group {
    width: 100%;
    margin: 0 auto;
}
#authentication form .input-group.focus {
    outline: none;
}
#authentication form .input-group .form-control {
    width: 100%;
    padding-right: 40px;
}
#authentication form .input-group .form-control:focus {
    outline: none;
}
#authentication form .input-group .input-group-btn {
    position: absolute;
    right:0;
}
#authentication form .input-group .input-group-btn .btn {
    color: #000;
    background-color: transparent;
    height: 100%;
    border: 1px solid transparent;
    font-size: 14px;
    z-index:3;
}
#authentication form .input-group .input-group-btn .btn:hover,
#authentication form .input-group .input-group-btn .btn:focus {
    border: none;
    outline: none;
}
#authentication .no-account {
    margin-top: 2rem;
}
.page-my-account #content .links a i {
    padding-bottom: 1.4rem;
}
.page-my-account #content .links a span.link-item {
    padding-top: 2rem;
    padding-bottom: 2rem;
    color: #000;
    font-weight: 500;
}

/** PRODUCT **/
.ce-product-variants input[type=radio]:disabled + span {
    border-color: #aaa !important;
    color: #aaa!important;
    background-color: transparent!important;
}

/** BLOCKCART **/
#_desktop_cart .blockcart .elementor-cart__toggle {
    text-align: center;
}
#_desktop_cart .blockcart .elementor-cart__toggle .elementor-button {
    color: #000000;
    border: none;
    display: flex;
    align-items: center;
    justify-content:start;
    flex-direction: row-reverse;
    font-size: 16px;
    padding: 12px 0px;
    width: 100%;
    margin-right: -20x;
}
#_desktop_cart .blockcart .elementor-cart__toggle .elementor-button .elementor-button-icon {
    font-size: 22px;
}
#_desktop_cart .blockcart .elementor-cart__container:not(.elementor-cart--shown) {
    background-color: transparent;
    transform: scale(0);
    transition: background-color .4s, transform 0s .4s;
}
#_desktop_cart .blockcart .elementor-cart__footer-buttons {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
#_desktop_cart .blockcart .elementor-cart__footer-buttons > div {
    width: calc(50% - 5px);
}
@media (max-width: 767px) {
    #_desktop_cart .blockcart .elementor-cart__footer-buttons > div {
        width: 100%;
    }
}

/** CUSTOMER ACCOUNT **/
#_desktop_user_info .elementor-nav {
    margin-left: auto;
    margin-right: auto;
}
#_desktop_user_info .menu-item a:not(.elementor-sub-item):hover {
    color: #151515;
} 
#_desktop_user_info .elementor-nav .sub-menu.sub-menu-open {
    z-index: 3;
    width:auto;
    min-width: 10em;
    display:block;
    max-width: 1000px;
    top: auto;
    left:0;
    margin-left: 0;
    margin-top: 0;
}

/* Forget password */
@media(min-width: 768px){
    .ce-password-recovery .elementor-form-fields-wrapper {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
    }
    .ce-password-recovery .elementor-form-fields-wrapper .elementor-field-group:nth-child(1) {
        flex-grow: 3;
    }
    .ce-password-recovery .elementor-form-fields-wrapper .elementor-field-group.elementor-field-type-email {
        flex-grow: 2;
        width: auto;
    }
    .ce-password-recovery .elementor-form-fields-wrapper .elementor-field-group.elementor-field-type-submit {
        width: auto;
    }
    .ce-password-recovery .elementor-form-fields-wrapper .elementor-field-group.elementor-field-type-submit button {
        height: 48.75px;
    }
}
.ce-password-recovery .elementor-form-fields-wrapper .elementor-field-group.elementor-field-type-submit button {
        height: 48.75px;
        width: 100%;
    }
.ce-password-recovery input[type='email'] {
    padding-top: 1.25rem;
    line-height: 1.25;
    padding-bottom: 0.5rem;
}
.ce-password-recovery label {
    width: calc(100% - 2rem) !important;
    text-align: left;
    position: absolute;
    left: 0rem;
    top: 0;
    padding: 1rem 1rem;
    pointer-events: none;
    transition: 0.2s;
    font-weight: 400;
    line-height: 1.25;
    margin-bottom: 0;
    width: calc(100% - 2rem);
    font-size: 1rem;
    color: #7a7a7a;
    z-index: 3;
}
.ce-password-recovery .elementor-field-type-password input {
    min-height: 48.75px;
    padding-top: 1.25rem;
    line-height: 1.25;
    padding-bottom: 0.5rem;
}
.ce-password-recovery .elementor-field-type-email.form-control-floating label {
    top: -.75rem;
    font-size: 12px;
    opacity: .75;
}
.ce-password-recovery .elementor-field-type-password.form-control-floating label {
    top: -.75rem;
    font-size: 12px;
    opacity: .75;
}

.form-group select.form-control-floating+.form-label-floating {
    top: -.75rem;
    font-size: 12px;
    opacity: .75;
}

/** Etiqueta desde (miniaturas) **/
.ce-product-before-price {
    display: none;
    width: 100%;
    font-size: 12px;
    font-weight: 400;
}
.elementor-widget-product-miniature-price .ce-product-before-price {
    display: block;
}

/** CUSTOMER CART RULE **/
#my-account .link-item {
    border-radius: 16px;
}
#my-account #discounts-link .link-item {
    background-color: #DEE1FD;
    outline: 2px solid #d8dbf4;
}
#discount .h1 {
    display: none;
}
#we-wallets {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
}
#we-wallets .we-wallets-title {
    text-transform: uppercase;
    font-weight: 600;
    width: 100%;
    margin-bottom: 0;
    color: #000;
    margin-bottom: -16px;
}
.customer-cart-rule {
    padding: 32px;
    width: calc(50% - 32px);
    border: 1px solid rgba(0, 0, 0, 0.25);
    border-radius: 16px;
    display: flex;
    justify-content: start;
    align-items: stretch;
    gap: 32px;
}
.customer-cart-rule p {
    color: #000;
    margin: 0;
}
.customer-cart-rule .cart-rule-code {
    font-weight: 600;
    line-height: 24px;
    margin-bottom: 8px;
    cursor: pointer;
    position: relative;
}
.customer-cart-rule .cart-rule-code .cart-rule-copied {
    display: none;
    background-color: #333;
    color: #fff;
    border-radius: 16px;
    position: absolute;
    top: calc(-100%);
    left: 50px;
    font-size: 12px;
    padding: 0px 16px;
}
.customer-cart-rule .cart-rule-left {
    width: 60%;
    display: flex;
    gap: 16px;
    align-items: center;
}
.customer-cart-rule .cart-rule-right {
    width: 40%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.customer-cart-rule .cart-rule-value {
    text-align: right;
    font-weight: 600;
    line-height: 24px;
    margin-bottom: 8px;
}
.customer-cart-rule .cart-rule-available,
.customer-cart-rule .cart-rule-used {
    text-align: right;
}
.customer-cart-rule .cart-rule-used {
    color: red;
}
.customer-cart-rule .cart-rule-available {
    color: green;
}
.customer-cart-rule .cart-rule-date-to {
    font-size: 12px;
    color: rgba(0,0,0,0.6);
}
@media(max-width: 991px) {
    body#discount section#content {
        padding: 32px;
    }
    .customer-cart-rule {
        gap: 16px;
    }
    .customer-cart-rule .cart-rule-left {
        width: 70%;
    }
    .customer-cart-rule .cart-rule-right {
        width: 30%;
    }
}
@media(max-width: 767px) {
    body#discount section#content {
        padding: 32px 16px;
    }
    .customer-cart-rule {
        width: 100%;
        padding-left: 16px;
        padding-right: 16px;
        gap: 16px;
    }
}

/*********************/
/** NEW STYLES 2026  */
/*********************/

/* Be Header 2026 */

/** Header Global */
header .be-col-mobile-menu,
header .be-header-nav,
header .be-header-right,
header .be-header-logo {
    width: auto!important;
    min-width: none!important;
    flex-grow: 0;
}
header .be-header-search {
    flex-grow:1;
}
header .be-header-right > .elementor-column-wrap .elementor-widget-wrap {
    gap: 16px;
}

header .be-header > .elementor-container > .elementor-row {
    justify-content: space-between;
}
/* 1. Menú offcanvas */
/* ================================================================
   1. MENÚ PRINCIPAL (OFFCANVAS IZQUIERDO - 300px)
   ================================================================ */
header .be-mobile-menu .elementor-nav__container {
    display: block !important; 
    visibility: visible !important; 
    position: fixed !important;
    top: 0;
    left: 0;
    width: 300px;
    max-width: 80%;
    height: 100vh !important;
    background-color: #151515;
    z-index: 99999;
    /* Estado inicial: escondido a la izquierda */
    transform: translateX(-110%) !important; 
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
    overflow: visible !important; /* VITAL para ver el submenú a la derecha */
    padding-top: 60px;
    margin-top: 0!important;
    font-size: 16px!important;
}

/* Abrir menú principal */
header .be-mobile-menu .elementor-menu-toggle.elementor-active + .elementor-nav__container {
    transform: translateX(0) !important;
}

/* Forzar que la lista no se oculte por el JS de Elementor */
header .be-mobile-menu .elementor-nav__container ul.elementor-nav {
    height: 100%;
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: calc(100vh - 60px) !important;
}
header .be-mobile-menu .elementor-nav__container ul.elementor-nav > li:nth-last-child(3) {
    margin-top: auto !important;
}
header .be-mobile-menu .elementor-nav__container ul.elementor-nav > li:last-child {
    margin-bottom: 32px !important;
}
header .be-mobile-menu .elementor-nav__container ul.elementor-nav .be-submenu-open {
    color: #fff!important;
}

/* ================================================================
   2. SUBMENÚ DE PRODUCTOS (DESPLIEGUE LATERAL POR CLIC)
   ================================================================ */
header .be-mobile-menu ul.elementor-nav li .sub-menu.be-products-menu-grid {
    position: fixed !important;
    top: 0 !important;
    left: 100% !important; /* Pegado al borde derecho del menú padre */
    width: 300px !important;
    height: 100vh !important;
    background-color: #55595C !important;
    border-left: 1px solid #eeeeee !important;
    margin: 0 !important;
    padding: 20px 0px !important;
    z-index: -1 !important;
    
    /* Estado inicial: escondido detrás del padre */
    display: block !important;
    transform: translateX(-100%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s !important;
    overflow-y: auto !important;
}

/* Clase activa para el submenú (se activa vía JS con el CLIC) */
header .be-mobile-menu ul.elementor-nav li.be-submenu-open {
    background-color: #55595C;
}
header .be-mobile-menu ul.elementor-nav li.be-submenu-open > .sub-menu.be-products-menu-grid {
    transform: translateX(0) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Estilo de los productos */
.be-products-menu-grid .menu-item-product-card {
    list-style: none !important;
    width: 100% !important;
}

.be-products-menu-grid .menu-item-product-card a {
    color: #fff !important;
    transition: background-color 0.1s ease;
}
.be-products-menu-grid .menu-item-product-card a:hover {
    color: #fff !important;
    background-color: #000!important;
    transition: background-color 0.1s ease;
}

.be-products-menu-grid .p-name {
    display: block;
}
.be-products-menu-grid .p-title-category {
    font-size: 18px;
    padding: 10px 20px;
    color: #fff;
}

/* ================================================================
   3. BOTONES Y OVERLAY
   ================================================================ */
.be-menu-mobile-close-wrapper {
    position: absolute;
    top: 20px;
    left: 10px;
    z-index: 100001;
}

#be-menu-mobile-close {
    background: transparent;
    border: none;
    cursor: pointer;
}
#be-menu-mobile-close .ceicon-close {
    color: #fff;
}

/* Overlay oscuro al abrir */
header .be-mobile-menu .elementor-menu-toggle.elementor-active::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,0.5);
    z-index: 99998;
}

/** Nav secondary */
header .be-header-nav .elementor-item {
    padding-left: 16px!important;
    padding-right: 16px!important;
}

/** Search Bar */
header .be-header-search .elementor-search__container {
    padding: 8px!important;
}
header .be-header-search .elementor-search__container .elementor-search__input {
    padding-left: 16px!important;
    padding-right: 16px!important;
}
header .be-header #_desktop_cart .blockcart .elementor-cart__toggle .elementor-button {
    color: #fff;
}
/** Col right */
header .be-header-right .ce-user-menu .elementor-item {
    padding-left: 0px!important;
    padding-right: 0px!important;
}
header .be-header-right .ce-user-menu i {
    color: #fff;
}

header .be-mobile-menu .be-header-submenu {
    display: flex !important;
    justify-content: start;
    align-items: center;
    flex-wrap: nowrap;
    padding: 10px 16px;
    /*border-bottom: 1px solid rgba(255,255,255,0.1);*/
}
.mt-5 {
    margin-top: 20px !important;
}
@media(min-width:768px) {
    .be-mobile-menu .elementor-nav li a {
        font-size: 16px;
    }
    .be-mobile-menu .elementor-nav > li > a,
    .be-mobile-menu .elementor-nav li.be-header-submenu,
    .be-mobile-menu .elementor-nav li.menu-item-product-card-section a {
        font-size: 1.25rem;
        font-weight: 700;
    }
}

/* El botón de vuelta atrás */
header .be-mobile-menu .be-back-arrow {
    display: none;
    color: #fff !important;
    font-size: 20px;
    padding: 10px;
    line-height: 1;
    cursor: pointer;
}

/* Asegurar que el título no tenga padding extra ahora que está en flex */
.be-header-submenu .p-title-category {
    display: inline-block;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 20px;
}
/*.be-header-submenu .p-name.p-title-category {
    margin-bottom: 20px;
    padding: 0!important;
}*/

@media(min-width:768px) {
    header .be-header > .elementor-container {
        max-width: calc(100% - 128px)!important;
    }
}
@media(max-width: 767px) {
    /** Menú offcanvas */
    .be-mobile-menu .elementor-nav__container {
        width: 100%!important;
        max-width: 100%!important;
        background-color:#151515!important;
    }
    header .be-header .be-header-search {
        width: auto!important;
        cursor: pointer;
    }
    header .be-header .be-header-form-search {
        display: none!important;
        padding: 8px;
        position: fixed;
        top: 62px;
        z-index: 99999;
        /* Estado inicial: Escondido arriba */
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        
        /* Transición que imita slideDown (rápida y lineal) */
        transition: transform 0.4s ease-in-out, opacity 0.3s ease-in-out;
        
        /* Estética opcional para que se vea sobre el contenido */
        background: #ffffff; 
        box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    }
    header .be-mobile-menu .be-header-submenu {
        padding: 10px 5px!important;
    }
    /* Estado Activo: El efecto de bajada */
    header .be-header .be-header-form-search.is-open {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }
    .be-mobile-menu .elementor-menu-toggle {
        padding-left: 16px;
        padding-right: 16px;
    }
    .be-mobile-menu .elementor-nav__container .menu-item {
        z-index: 1;
    }
    .be-mobile-menu .elementor-nav__container a:not(#e) {
        color: #fff!important;
    }
    header .be-mobile-menu .elementor-nav__container ul.elementor-nav .be-submenu-open {
        z-index: 10;
    }
    header .be-mobile-menu ul.elementor-nav li .sub-menu.be-products-menu-grid {
        left: 0% !important; /* Pegado al borde derecho del menú padre */
        width: 100%!important;
        max-width: 100%!important;
        z-index: 10!important;
        padding-top: 0px !important;
        padding-bottom: 8px !important;
    }
    #be-menu-mobile-close {
        color: #fff;
    }

    header .be-mobile-menu .be-back-arrow{
        display: inline-block;
    }
    .be-header-submenu {
        position: sticky;
        top: 0;
        z-index: 11;
    }
} 

/** Be top carousel */
header .be-header-top > .elementor-container {
    max-width: 100%!important;
}
header .be-top-carousel {
    background-color: #55595C;
    padding: 0 72px 0 25px;
    display: flex;
    gap: 32px;
    align-items: center;
    justify-content: space-between;
}
header .be-top-carousel .be-marquee-wrapper {
    contain: layout style; /* Aísla el elemento para que no afecte al resto del DOM */
}
header .be-top-carousel .be-main-item {
    flex-grow:0;
    color: #fff!important;
}
header .be-top-carousel .be-marquee-wrapper {
    /* Fuerza el uso de la GPU */
    transition-timing-function: linear !important;
    will-change: transform; 
    backface-visibility: hidden;
    flex-grow: 1;
    height: 52px!important;
}
#product .be-ultra-swiper {
    height: 52px;
}
#product .be-ultra-swiper .swiper-slide {
    display: flex;
}
.be-ultra-swiper .swiper-wrapper {
    transition-timing-function: linear !important;
    will-change: transform;
}

header .be-top-carousel .be-item {
    color: #fff!important;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 0;
}
#index header .be-top-carousel .be-item {
    padding: 16px 0!important;
}

/* 1. Creamos el espacio lateral para que el texto no toque los bordes */
.be-ultra-swiper {
    position: relative;
    padding: 0 50px !important; /* Ajusta este valor según el ancho de tu flecha */
    overflow: hidden;
}

/* 2. Ajustamos las flechas para que se queden en los extremos del padding */
.be-ultra-swiper .swiper-button-prev,
.be-ultra-swiper .swiper-button-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    background-color: #55595C;
    z-index: 10;
    margin: 0; /* Reset de márgenes de Swiper */
}

.be-ultra-swiper .swiper-button-prev {
    left: 0px; /* Pegada al borde izquierdo */
}

.be-ultra-swiper .swiper-button-next {
    right: 0px; /* Pegada al borde derecho */
}

/* 3. Evitamos que el texto se "corte" bruscamente al entrar/salir */
.be-ultra-swiper .swiper-wrapper {
    z-index: 1;
}

/* 4. Estilo de icono (v3/v4 compatible) */
.be-ultra-swiper .swiper-button-prev::after,
.be-ultra-swiper .swiper-button-next::after {
    font-size: 12px;
    font-weight: bold;
    color: #000;
    width: 24px;
    height: 24px;
    background-color: #B5B8BD;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 5. Mantenemos el efecto de ocultar en los extremos */
.be-ultra-swiper .swiper-button-disabled {
    opacity: 0 !important;
    visibility: hidden;
}

/* Ajuste para los enlaces y el arrastre */
.be-ultra-swiper a {
    -webkit-user-drag: none;
    user-select: none;
}

/* Evita que el navegador intente arrastrar el enlace como un objeto físico */
.be-ultra-swiper a {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
    
    /* Evita que se seleccione el texto mientras arrastras */
    user-select: none;
    -webkit-user-select: none;
}

/* Mejora visual del cursor */
.be-ultra-swiper {
    cursor: grab;
}

.be-ultra-swiper:active {
    cursor: grabbing;
}
@media(max-width: 767px) {
    header .be-top-carousel {
        padding: 0 16px;
        gap: 16px;
    }
    header .be-top-carousel .be-marquee-wrapper {
        border-right: 1px solid rgba(0, 0, 0, 0.2);
        padding-right: 16px;
    }
    .be-ultra-swiper {
        padding: 0!important;
    }
    .be-ultra-swiper .swiper-button-prev,
    .be-ultra-swiper .swiper-button-next {
        display: none;
    }
}

/**-----------------------------------------------**/
/**              FICHA DE PRODUCTO                **/
/**-----------------------------------------------**/
#product #wrapper {
    background-color: #fff!important;
}

.be-product-info .be-product-image-block img {
    mix-blend-mode: multiply;
    filter: contrast(1.1); /* Opcional: mejora el recorte */
}
.be-product-info-block .be-last-word,
.be-product-info-mobile .be-last-word {
    font-size: 16px;
    line-height: 24px;
    display: block;
}
.be-product-info-block .ce-product-price-regular {
    order: 1;
}
.be-product-info-block .ce-tax-shipping-delivery-label {
    display: none;
}
.be-product-btn-add-to-cart .elementor-button {
    width: 100%;
}
.be-product-info-block .ce-product-variants__radio {
    width: calc(33.33% - 8px)!important;
}
.be-product-description .elementor-nav-tabs {
    border-top: 2px solid #B5B8BD;
    border-bottom: 2px solid #B5B8BD;
    padding-top: 0!important;
    padding-bottom: 0!important;
}
.be-product-description .elementor-nav-tabs  .elementor-nav {
        display: flex;
    flex: 1 0 auto;
    position: relative;
    transition: .2s all cubic-bezier(.4, 0, .2, 1);
    white-space: nowrap;
    justify-content: center;
}
.be-product-description .elementor-nav-tabs  .elementor-nav li a {
    text-transform: uppercase;
}
#be-product-panels .tab-pane {
    padding-left: 16px;
    border-left: 2px solid #DFE1FB;
    margin-bottom: 32px;
}
#be-product-panels .tab-pane p {
    color: #000;
}

#product .ce-product-price {
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 36px;
}
/* Botón deshabilitado */
.ce-out-of-stock {
    background-color: #fdfdfd !important;
    border: 1px dashed #e0e0e0 !important;
    color: #cccccc !important;
    pointer-events: none; /* Evita cualquier clic */
    user-select: none;
}

.be-product-additionalinfo {
    justify-content: center;
    gap: 16px;
}
.be-product-additionalinfo * {
    color: #000;
}
.be-panel-content p {
    margin-bottom: 8px;
}
.be-panel-content p:last-of-type {
    margin-bottom: 0px;
}
.be-product-additionalinfo .elementor-row {
    width: max-content;
}
.be-product-readmore a {
    color: #A7ADFC!important;
    font-weight: 700;
}
.be-product-readmore a:hover,
.be-product-readmore a:focus {
    text-decoration: none;
    color: #A7ADFC!important;
}
#be-modal-info-state {
    border-radius: 8px;
}
#be-modal-info-state .modal-header {
    border: none;
}
#be-modal-info-state .modal-body {
    padding-bottom: 3rem;
}
#be-modal-info-state .menu-item {
    width: calc(33.33% - 16px);
} 
#be-modal-info-state .menu-item a {
    text-align: center!important;
    border: 1px solid #55595C!important;
    display: flex;
    justify-content: center;
    border-radius: 8px;
}
#product .elementor-swiper-button i {
    border-radius: 50px;
    background-color: #55595C;
    padding: 8px;
    font-size: 12px;
}

@media(min-width: 767px) {
    #product #wrapper > .container {
        max-width: 1140px;
    }
    .be-product-description .elementor-widget-container {
        max-width: 760px;
        margin: 0 auto;
    }
    .be-product-additionalinfo {
        gap: 5rem!important; 
    }
    .be-product-description .elementor-nav-tabs .elementor-item-active::after {
        background-color:  #55595C!important;
        height: 2px!important;
    }
    .be-product-description .elementor-nav-tabs .elementor-nav li a:hover {
        background-color:  #F6F6F6!important;

    }
}
@media(max-width: 767px) {
    .be-product-description .elementor-nav-tabs .elementor-nav {
        flex: auto;
        flex-wrap: wrap;
    }
    .be-product-description .elementor-nav-tabs .elementor-nav li {
        width: 100%;
    }
    .be-product-description .elementor-nav-tabs .elementor-item {
        display: flex;
        justify-content: center;
    }
    .be-product-description .elementor-nav-tabs .elementor-item-active::after {
        background-color:  #B5B8BD!important;
        height: 2px!important;

    }
    .be-product-action {
        margin-left: -16px;
        margin-right: -16px;
        width: calc(100%);
        position: fixed!important;
        bottom: 0;
        background-color: #fff!important;
        z-index: 10;
    }
    .be-product-additionalinfo .elementor-row.gap-4 {
       width: 100%; 
    }
    .be-product-additionalinfo .elementor-row {
            width: 100%;
            flex-wrap: nowrap;
            justify-content: center;
    }
}

/* Be Miniature 2026 */
div[data-elementor-type="product-miniature"] .elementor-section-wrap {
    border-radius: 8px!important;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
    transform: translateY(0px);
    transition: transform 0.3s ease-in-out;
}
div[data-elementor-type="product-miniature"] .elementor-section-wrap:hover {
    transform: translateY(-8px);
    transition: transform 0.3s ease-in-out;
}


/* Modal sequra */
.be-product-financiacion p {
    cursor: pointer;
}
#financiacionModal .modal-dialog {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
#financiacionModal .modal-content {
    border-radius: 16px;
}
#financiacionModal .modal-header {
    display: flex;
    -ms-flex-align: start;
    align-items: center;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 1rem 1.725rem;
    border-bottom: none;
}
#financiacionModal .modal-header .close {
    opacity: 1;
    margin-top: 0;
}
#financiacionModal .modal-header .close  i {
    width: 22px;
    height: 22px;
    display: block;
}
#financiacionModal .modal-header::after {
    content:none;
}
#financiacionModal .modal-header .modal-title {
    text-transform: uppercase;
    font-weight: 700;
    color:#000;
    font-size: 18px;
}
#financiacionModal .modal-body {
    padding-left: 1.725rem;
    padding-right: 1.725rem;
}
#financiacionModal .modal-body p {
    color:#000;
    font-size: 16px;
}
#financiacionModal .be-product-modal-sequra {
    padding-top: 16px;
}
#financiacionModal .modal-body .be-intro-financiado {
    border-bottom: 1px solid rgba(0,0,0,.1);
}
#financiacionModal .modal-body .modal-subtitle {
    font-weight: 700;
    color:#000;
}
.be-product-modal-sequra {
    display: flex;
    justify-content: center;
}
.sequra-promotion-widget {
    width: 400px;
    max-width: 400px!important;
}

/** Carrito  **/
/* Seleccionamos el contenedor que ya tiene la clase row de Bootstrap */
#cart #wrapper,
#checkout #wrapper {
    padding-top: 0;
}
#checkout #content {
    margin-bottom: 0!important;
}
#cart #wrapper > .container,
#checkout #wrapper > .container {
    width: 100%;
}
.cart-grid.row {
    display: flex !important;
    flex-wrap: wrap; /* Permite que en móvil bajen las columnas */
    align-items: stretch !important; /* Fuerza a que ambas midan lo mismo */
    /*background: linear-gradient(to right, #F6F6F6 66.6%, #FFFFFF 66.6%) !important;*/
    min-height: 500px; /* Para que cubra el alto de la pantalla si hay pocos productos */
    margin-bottom: 0;
}
#checkout .cart-grid.row {
    min-height: 850px;
}

/* Ajustamos las columnas para que no pierdan su comportamiento */
.cart-grid-body.col-lg-8, 
.cart-grid-right.col-lg-4 {
    display: flex !important;
    flex-direction: column !important;
    float: none !important; /* Eliminamos el float de Bootstrap que rompe el flex */
}
.cart-grid-body {
    justify-content: center;
}
.cart-grid-right {
    background-color: #fff;
}
.cart-overview .cart-items {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.cart-overview .cart-items .cart-item {
    background-color: #fff;
    border-radius: 8px;
}

.cart-overview .product-line-grid {
    display: flex;
    align-items: stretch;
}
.cart-overview .product-line-actions {
    display: flex;
    flex-direction: column;
}
.cart-overview .product-line-actions > .row {
    display: flex;
    flex-direction: column-reverse;
    justify-content: space-between;
    align-items: end;
    height: 100%;
}
.cart-overview .product-line-actions > .row * {
    text-align: right;
}
.cart-overview .product-line-actions > .row::after {
    display: none;
}
.cart-overview .product-line-actions .product-price {
    line-height: 16px;
}
#cart .product-line-grid-body>.product-line-info>.label.product-name {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.5rem;
}
#cart .product-line-grid-body>.product-line-info.product-attributes .value {
    font-size: 14px;
    line-height: 24px;
    font-weight: 400;
}
#cart .product-line-grid-body {
    display: flex;
    flex-direction: column;
}
#cart .product-line-grid-body .qty {
    margin-top: auto;
    padding: 0;
    padding-top: 8px;
}
#cart .btn-buy-continue {
    text-align: left;
    margin-left: 16px;
    padding: 4px 16px 4px 8px;
    border-radius: 8px;
    border: 1px solid #000;
    display: inline;
    width: fit-content;
}

/* Opcional: Si quieres que el bloque de la derecha (blanco) sea el 30% exacto 
   en lugar del 33% que da col-lg-4 por defecto */
@media (min-width: 992px) {
    .cart-grid-body.col-lg-8 {
        flex: 0 0 60% !important;
        max-width: 60% !important;
        padding-left: 165px;
        padding-right: 165px;
    }
    .cart-grid-right.col-lg-4 {
        flex: 0 0 40% !important;
        max-width: 40% !important;
        background-color: #FFFFFF !important; /* Asegura el blanco puro aquí */
        align-items: center;
        justify-content: center;
    }
    .cart-grid-right.col-lg-4 .card {
        width: 450px;
    }
    /* Ajustamos el degradado del padre al 70% exacto */
    .cart-grid.row {
        background: linear-gradient(to right, #F6F6F6 70%, #FFFFFF 70%) !important;
    }
}
@media(max-width: 991px) {
    .product-line-grid-left,
    .product-line-grid-body,
    .product-line-grid-right {
        padding-left: 8px;
        padding-right: 8px;
    }
    .cart-grid-right  {
        padding-top: 32px;
        padding-bottom: 32px;
        background-color:#fff;
        border-radius: 8px;
        margin-top: 32px;
        margin-left: 16px;
        margin-right: 16px;
    }

    #cart .cart-detailed-actions {
        padding-bottom: 0;
    }
}