/**
PRIMARY
*/

@font-face {
    font-family: 'Libre Caslon Display';
    src: url('../fonts/primary/LibreCaslonDisplay-Regular.woff2') format('woff2'),
        url('../fonts/primary/LibreCaslonDisplay-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/**
SECONDARY
*/

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Black.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Bold.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-BlackItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-BlackItalic.woff') format('woff');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-BoldItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-ExtraBold.woff2') format('woff2'),
        url('../fonts/secondary/Jost-ExtraBold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-ExtraBoldItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-ExtraBoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-ExtraLight.woff2') format('woff2'),
        url('../fonts/secondary/Jost-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-ExtraLightItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-ExtraLightItalic.woff') format('woff');
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Italic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Light.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-LightItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Medium.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-MediumItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Regular.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-SemiBold.woff2') format('woff2'),
        url('../fonts/secondary/Jost-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-SemiBoldItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-SemiBoldItalic.woff') format('woff');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-Thin.woff2') format('woff2'),
        url('../fonts/secondary/Jost-Thin.woff') format('woff');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Jost';
    src: url('../fonts/secondary/Jost-ThinItalic.woff2') format('woff2'),
        url('../fonts/secondary/Jost-ThinItalic.woff') format('woff');
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}

/**
VARIABLES
*/
:root {
    /* Fonts */
    --font-family-primary: 'Libre Caslon Display', sans-serif;
    --font-family-secondary: 'Jost', sans-serif;

    --font-family-base: var(--font-family-secondary);
    --font-family-megamenu: var(--font-family-secondary);
    --font-family-slider: var(--font-family-secondary);
    --font-family-heading: var(--font-family-primary);
    --font-family-senary: var(--font-family-secondary);
    --font-family-septenary: var(--font-family-secondary);

    /* Weights */
    --font-weight-thin: 100;
    --font-weight-extra-light: 200;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --font-weight-black: 900;

    /* Headings */
    --h1-size: 3.25rem;       /* 52px */
    --h1-line-height: 4.25rem;  /* 68px */
    --h2-size: 3rem;          /* 48px */
    --h2-line-height: 3.625rem; /* 58px */
    --h3-size: 2.5rem;        /* 40px */
    --h3-line-height: 3rem;     /* 48px */
    --h4-size: 2rem;          /* 32px */
    --h4-line-height: 2.375rem; /* 38px */
    --h5-size: 1.5rem;         /* 24px */
    --h5-line-height: 1.875rem; /* 30px */
    --h6-size: 1.25rem;        /* 20px */
    --h6-line-height: 1.5rem;   /* 24px */

    /* Buttons */
    --btn-bg-sec: #fff;
    --btn-bg-hover-sec: #E3DCD5;
    --btn-color-sec: #1C1A19;
    --btn-color-hover-sec: #1C1A19;
    --btn-bg-disabled: #C1C1C1;
    --btn-color-disabled: #919191;
    --btn-bg-disabled-hover: #F1F1F1;
    --btn-color-disabled-hover: #C1C1C1;

    /* Product List */

}

/**
BASE
*/
p, .p {
    color: #5A5652;
}

#page {
    overflow: initial;
}
#page #wrapper > .row {
    margin-left: 0;
    margin-right: 0;
}
#page #wrapper > .row #content-wrapper {
    padding-left: 0;
    padding-right: 0;
}

.full-width {
    width: 100%;
}

/*.elementor-section-wrap section:not(.sticky-section-container) {
    overflow: hidden;
}*/

/**
HEADINGS
*/
h1,
.h1 {
    font-family: var(--font-family-primary);
    font-size: var(--h1-size);
    line-height: var(--h1-line-height);
}
h2,
.h2 {
    font-family: var(--font-family-primary);
    font-size: var(--h2-size);
    line-height: var(--h2-line-height);
}
h3,
.h3 {
    font-family: var(--font-family-primary);
    font-size: var(--h3-size);
    line-height: var(--h3-line-height);
}
h4,
.h4 {
    font-family: var(--font-family-primary);
    font-size: var(--h4-size);
    line-height: var(--h4-line-height);
}
h5,
.h5 {
    font-family: var(--font-family-primary);
    font-size: var(--h5-size);
    line-height: var(--h5-line-height);
}
h6,
.h6 {
    font-family: var(--font-family-primary);
    font-size: var(--h6-size);
    line-height: var(--h6-line-height);
}

.linklist-toggle.h6 {
    font-family: var(--font-family-secondary);
    font-weight: var(--font-weight-regular);
}

.occhiello {
    font-size: 14px;
    letter-spacing: 3px;
}

/**
TYPOGRAPHY – MOBILE
*/
@media (max-width: 767px) {
    :root {
        --h1-size: 2rem;           /* 32px */
        --h1-line-height: 2.5rem;  /* 40px */
        --h2-size: 1.75rem;        /* 28px */
        --h2-line-height: 2.25rem; /* 36px */
        --h3-size: 1.5rem;         /* 24px */
        --h3-line-height: 2rem;    /* 32px */
        --h4-size: 1.5rem;        /* 20px */
        --h4-line-height: 2rem;/* 26px */
    }
}

/**
HEADER
*/
header#header {
    position: fixed;
    top: 0;
    z-index: 10;
    width: 100%;
    background-color: #fff;
}

header#header .widget-html img {
    height: auto;
}

@media (max-width: 991px) {
    .off-canvas-nav-megamenu .nav li.dropdown .caret {
        top: 0;
        left: 0;
        right: 0;
        text-align: right;
        display: flex;
        justify-content: flex-end;
        width: 100%;
        padding-right: 15px;
        height: 54px;
        align-items: center;
    }
    .off-canvas-nav-megamenu .navbar-nav {
        max-height: calc(100vh - 100px);
        max-height: calc(100svh - 100px);
        overflow: auto;
    }
    .off-canvas-nav-megamenu .navbar-nav .leo-widget .widget-html {
        display: none;
    }
    .off-canvas-nav-megamenu .navbar-nav .dropdown-menu-inner {
        overflow: hidden;
        padding-bottom: 20px;
    }
}

/**
HERO
*/
#hero-slider .slick-slide {
    padding-left: 0;
    padding-right: 0;
}
#hero-slider .slick-slide .block-carousel-image-container.image {
    height: calc(100vh - 80px);
    height: calc(100svh - 80px);
    display: flex;
    justify-content: center;
    align-items: center;
}
#hero-slider .slick-slide .block-carousel-image-container.image .ap-more-info {
    display: none;
}
#hero-slider .slick-slide .block-carousel-image-container.image .item-title {
    display: none;
}
@media (min-width: 992px) {
    #hero-slider .slick-slide .block-carousel-image-container.image {
        height: 100vh;
        height: 100svh;
    }
}

/**
SLIDER
*/
.no-padding-slide .slick-slide {
    padding-left: 0;
    padding-right: 0;
}
.LeoBlockCarousel.elementor-slick-slider,
.elementor-LeoProductCarousel-wrapper {
    overflow: hidden;
}

/**
BUTTONS
*/
.btn-primary, .btn-secondary, .btn-tertiary {
    line-height: 20px;
    font-size: 16px;
    padding: 10px 20px;
}
.btn-secondary, .btn-tertiary {
    text-transform: none;
    font-weight: normal;
    background-color: var(--btn-bg-sec);
    color: var(--btn-color-sec);
}
.btn-secondary.outline {
    border: solid 1px var(--btn-color-sec);
}
.btn-secondary:hover, .btn-tertiary:hover {
    background-color: var(--btn-bg-hover-sec);
    color: var(--btn-color-hover-sec);
}
.btn-primary:disabled, .btn-secondary:disabled, .btn-tertiary:disabled {
    background-color: var(--btn-bg-disabled);
    color: var(--btn-color-disabled);
}
.btn-primary:hover:disabled, .btn-secondary:hover:disabled, .btn-tertiary:hover:disabled {
    background-color: var(--btn-bg-disabled-hover);
    color: var(--btn-color-disabled-hover);
}

/**
PRODUCT LIST
*/
.leo-plist-style-4.plist-fiama-custom > .row {
    margin-left: -3px;
    margin-right: -3px;
}
.leo-plist-style-4.plist-fiama-custom > .row .ajax_block_product {
    padding-left: 3px;
    padding-right: 3px;
}
.leo-plist-style-4.plist-fiama-custom .thumbnail-container {
    box-shadow: none;
}
.leo-plist-style-4.plist-fiama-custom .thumbnail-container img {
    width: 100%;
}
.leo-plist-style-4.plist-fiama-custom .thumbnail-container .product-meta {
    padding: 10px 15px;
}
.leo-plist-style-4.plist-fiama-custom .thumbnail-container .product-title {
    height: auto;
    font-family: var(--font-family-secondary);
    font-weight: var(--font-weight-medium);
}
.leo-plist-style-4.plist-fiama-custom .thumbnail-container .product-title a {
    font-size: 1rem;
}
.leo-plist-style-4.plist-fiama-custom .thumbnail-container .product-price-and-shipping {
    font-size: 1rem;
}

.block-category {
    padding: 0px 15px;
}
@media (min-width: 768px) {
    .block-category {
        padding: 0px 30px;
    }
}
#category-left-column-content {
    padding: 0px 15px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}
@media (min-width: 768px) {
    #category-left-column-content {
        grid-template-columns: 1fr 1fr;
        padding: 0px 30px;
    }
}
#category-left-column-content .block-categories .title_block {
    display: none;
}
#category-left-column-content .block-categories .category-top-menu .category-sub-menu {
    display: flex;
    gap: 0px;
    flex-wrap: wrap;
}
@media (min-width: 768px) {
    #category-left-column-content .block-categories .category-top-menu .category-sub-menu {
        gap: 30px;
    }
}
#category-left-column-content .block-categories .category-top-menu .category-sub-menu a {
    letter-spacing: 3px;
    font-size: 14px;
    text-transform: uppercase;
}

body#category #wrapper {
    overflow: hidden;
}
body#category #wrapper #content-wrapper {
    padding-left: 0;
    padding-right: 0;
}

/**
PAGINATION
*/
.pagination {
    background-color: transparent;
    margin-bottom: 30px;
    padding-bottom: 0;
}
@media (min-width: 992px) {
    .pagination {
        margin-bottom: 100px;
    }
}
.pagination .page-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
}
.pagination .page-list li {
    padding: 0;
}
.pagination .page-list li a {
    min-width: 40px;
    text-align: center;
}
.pagination .page-list li:not(.current) a.js-search-link:not(.previous):not(.next) {
    color: #A3A3A3;
}
.pagination .page-list li.current a.js-search-link {
    text-decoration: underline;
    font-weight: 500;
}
.pagination .page-list li a.next {
    margin-left: 25px;
}
.pagination .page-list li a.previous {
    margin-right: 25px;
}

/**
FILTRI
*/
#search_filters_wrapper {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
@media (min-width: 768px) {
    #search_filters_wrapper {
        justify-content: flex-end;
    }
}
#search_filters .occhiello {
    text-transform: uppercase;
    text-decoration: underline;
}

#search_filters .facets-wrapper .facets-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.35);
    z-index: 200;
}

#search_filters .facets-wrapper .facets-container {
    position: fixed;
    top: 0;
    right: -420px;
    width: 100%;
    max-width: 380px;
    height: 100vh;
    background-color: #fff;
    z-index: 201;
    overflow: hidden;
    padding: 60px 30px 80px;
    transition: right 0.35s ease;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.08);
}
#search_filters .facets-wrapper .facets-container .facets-content {
    overflow-y: auto;
    height: 100%;
    padding-right: 15px;
}
#search_filters .facet .facet-label a {
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 3px;
    text-transform: uppercase;
}
body.active-faceted-filter #search_filters .facets-wrapper .facets-overlay {
    display: block;
}
body.active-faceted-filter #search_filters .facets-wrapper .facets-container {
    right: 0;
}

body.active-faceted-filter #search_filters .facets-wrapper .facets-container .facet {
    border-bottom: 1px solid #E1E1E1;
    padding-bottom: 20px;
    margin-bottom: 20px;
}
body.active-faceted-filter #search_filters .facets-wrapper .facets-container .facet-list {
    /*max-height: 40vh;
    overflow-y: auto;*/
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

#search_filters .facets-close {
    position: absolute;
    top: 18px;
    right: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: #1C1A19;
    transition: opacity 0.2s;
}
#search_filters .facets-close:hover {
    opacity: 0.6;
}
#search_filters .btn[data-close-filters] {
    position: absolute;
    bottom: 20px;
    left: 30px;
    right: 30px;
}

/**
FORM
*/
#footer .block_newsletter .gdpr_consent {
    margin-top: 1rem;
}
.custom-checkbox label {
    display: flex;
}
#footer .block_newsletter p {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.9rem;
    color: inherit;
}
.two-columns-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/**
REGISTRAZIONE, LOGIN
*/
body#authentication #wrapper,
body#password #wrapper {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - 400px);
    padding-top: 130px;
    padding-bottom: 60px;
}
@media (min-width: 992px) {
    body#authentication #wrapper,
    body#password #wrapper {
        padding-top: 130px;
        padding-bottom: 100px;
    }
}
body#registration #wrapper {
    margin-top: 60px;
    margin-bottom: 60px;
}
body#registration #main,
body#authentication #main,
body#password #main {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;

    padding: 20px;

    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    -o-box-shadow: none;
    -ms-box-shadow: none;
    box-shadow: none;
    border-radius: 10px;
    background: white;

    border: solid 1px #c1c1c1;
}
body#registration #main .page-content,
body#authentication #main .page-content,
body#password #main  .page-content {
    margin-bottom: 0;
}
.forgot-password,
.already-account,
.bottom-info {
    margin-top: 30px;
    text-align: center;
}

.form-group .form-control-label,
.form-group .form-control-label,
.form-group .form-control-label {
    width: 100%;
    text-align: left;
}
.form-group .js-input-column,
.form-group .js-input-column,
.form-group .js-input-column {
    width: 100%;
}
.form-group .form-control-comment,
.form-group .form-control-comment,
.form-group .form-control-comment {
    width: 100%;
}

.form-group {
    margin-bottom: 0;
}
.form-footer {
    margin-top: 30px;
}

/**
CONTATTI
*/
@media (min-width: 992px) {
    body#contact #wrapper {
        margin-top: 60px;
    }
}
body#contact .contact-form {
    border: solid 1px #C1C1C1;
    border-radius: 10px;
}

/**
ACCOUNT
*/
body#my-account #content-wrapper,
body#identity #content-wrapper,
body#history #content-wrapper,
body#order-slip #content-wrapper,
body#module-psgdpr-gdpr #content-wrapper,
body#module-ps_emailalerts-account #content-wrapper,
body#addresses #content-wrapper {
    padding-bottom: 60px;
}
@media (min-width: 992px) {
    body#my-account #content-wrapper,
    body#identity #content-wrapper,
    body#history #content-wrapper,
    body#order-slip #content-wrapper,
    body#module-psgdpr-gdpr #content-wrapper,
    body#module-ps_emailalerts-account #content-wrapper,
    body#addresses #content-wrapper {
        padding-top: 100px;
        padding-bottom: 100px;
    }
}

body#my-account #content-wrapper .links a span.link-item {
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    -o-box-shadow: none;
    -ms-box-shadow: none;
    box-shadow: none;
    border: solid 1px #C1C1C1;
    border-radius: 10px;
    font-weight: 400;
}

/**
CARRELLO
*/
.cart-grid-body .cart-card {
    border-radius: 10px;
    border: solid 1px #C1C1C1;
    padding-bottom: 20px;
}
.cart-grid-body .cart-card .continue-shopping {
    margin-top: 30px;
    text-align: center;
}
.product-line-grid-body > .product-line-info.attribute-info,
.product-line-grid-body > .product-line-info.attribute-info > .label {
    color: #5A5652;
    font-weight: 400;
}
@media (min-width: 992px) {
    body#cart #content-wrapper {
        padding-bottom: 100px;
        padding-top: 100px;
    }
}

/**
CHECKOUT
*/
body#checkout section.checkout-step .js-address-form .radio-block {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}
body#checkout section.checkout-step .delivery-options {
    margin-top: 30px;
    margin-bottom: 30px;
}
body#checkout section.checkout-step .payment-options {
    margin-top: 30px;
}
@media (min-width: 992px) {
    body#checkout #content-wrapper {
        padding-bottom: 100px;
        padding-top: 100px;
    }
}

/**
PAGINE
*/
.page-content.page-cms {
    padding: 0;
}
body#cms #content-wrapper {
    overflow: hidden;
}
.breadcrumb {
    display: none;
}

/**
DETTAGLIO PRODOTTO
*/
.product-variants.js-product-variants {
    margin-top: 2rem;
}
.right-detail-info {
    display: flex;
    justify-content: center;
}
.detail-info-product {
    max-width: 630px;
    padding-left: 15px;
    padding-right: 15px;
}
#main.product-detail > .row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.product-cover {
    display: flex;
    justify-content: center;
}
body#product #wrapper .container-fluid {
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
}
.cover-slider-img {
    width: 100%;
    position: relative;
}

.cover-slider-img .slick-slide {
    padding-left: 0;
    padding-right: 0;
    position: relative;
}
.cover-slider-img .slick-slide img {
    width: 100%;
}
/* Cover slider – Slick track: transizione esplicita per garantire l'animazione anche dopo swipe touch */
.cover-slider-img .slick-track {
    -webkit-transition-property: -webkit-transform;
    transition-property: transform;
    -webkit-transition-timing-function: ease;
    transition-timing-function: ease;
}

/* Cover slider – Slick arrows */
.cover-slider-img .slick-prev,
.cover-slider-img .slick-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9;
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.85);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.cover-slider-img .slick-prev.slick-arrow {
    left: 30px;
}

.cover-slider-img .slick-next.slick-arrow {
    right: 30px;
}

.cover-slider-img .slick-prev:hover,
.cover-slider-img .slick-next:hover {
    background-color: rgba(255, 255, 255, 1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.cover-slider-img .slick-prev::before,
.cover-slider-img .slick-next::before {
    font-family: 'FontAwesome';
    font-size: 18px;
    color: #333;
    line-height: 1;
    opacity: 1;
}

.cover-slider-img .slick-prev::before {
    content: '\f053'; /* fa-chevron-left */
}

.cover-slider-img .slick-next::before {
    content: '\f054'; /* fa-chevron-right */
}

.cover-slider-img .slick-disabled {
    opacity: 0.35;
    pointer-events: none;
}

/**
CART SIDEBAR
*/

/* Il wrapper diventa un layer full-screen che contiene overlay + panel */
.leo-dropdown-cart.defaultcart.dropdown {
    position: fixed !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    z-index: -1 !important;
    visibility: hidden !important;
    opacity: 1 !important;
    pointer-events: none !important;
    transition: none !important;
}
.leo-dropdown-cart.defaultcart.dropdown.show {
    z-index: 11 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

/* Overlay semi-trasparente */
.leo-dropdown-cart-overlay {
    position: fixed !important;
    inset: 0 !important;
    background-color: rgba(0, 0, 0, 0.4) !important;
    z-index: 10 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.35s ease !important;
}
.leo-dropdown-cart.show .leo-dropdown-cart-overlay {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Panel laterale fisso a destra */
.leo-dropdown-cart-content {
    position: fixed !important;
    top: 0 !important;
    right: -420px !important;
    bottom: 0 !important;
    left: auto !important;
    width: 380px !important;
    height: 100vh !important;
    max-height: 100vh !important;
    background-color: #fff !important;
    z-index: 11 !important;
    border: none !important;
    border-top: none !important;
    overflow-y: auto !important;
    padding: 60px 0px 100px !important;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1) !important;
    transition: right 0.35s ease !important;
}
.leo-dropdown-cart.show .leo-dropdown-cart-content {
    right: 0 !important;
}

/* Pulsante chiudi (X) */
.leo-cart-close-btn {
    position: absolute;
    top: 18px;
    right: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: #1C1A19;
    transition: opacity 0.2s;
    z-index: 1;
}
.leo-cart-close-btn:hover {
    opacity: 0.6;
}

.leo-dropdown-cart.defaultcart.dropdown .leo-dropdown-list-item {
    height: calc(100vh - 230px) !important;
    overflow: auto;
}
.leo-dropdown-cart.defaultcart.dropdown .leo-dropdown-list-item .leo-dropdown-cart-item {
    width: 100% !important;
    padding-left: 30px;
    padding-right: 30px;
    border: 0;
}
.leo-dropdown-cart.defaultcart.dropdown .leo-dropdown-list-item .leo-dropdown-cart-item .leo-remove-from-cart {
    position: relative;
    top: 0;
    right: 0;
}

.leo-dropdown-cart-item .additional-info,
.leo-dropdown-cart-item .additional-info .label {
    font-size: 14px;
    color: #5A5652;
}
.leo-dropdown-cart-item .additional-info {
    margin-bottom: 10px;
}

.leo-dropdown-cart.defaultcart.dropdown .leo-dropdown-bottom {
    padding-top: 20px;
    border-top: solid 1px #c1c1c1;
    padding-left: 30px;
    padding-right: 30px;
}
.leo-dropdown-cart.defaultcart.dropdown .leo-dropdown-bottom .leo-dropdown-cart-total .label {
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: 14px;
}
.leo-dropdown-cart.defaultcart.dropdown .leo-dropdown-bottom .leo-dropdown-cart-total .value {
    font-size: 14px;
}

/* Bottoni azione carrello in fondo al panel */
.leo-cart-dropdown-action {
    position: absolute;
    bottom: 20px;
    left: 25px;
    right: 25px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.leo-cart-dropdown-action .cart-dropdow-button {
    text-align: center;
}