:root{
    --breakpoint-mobile: 768px;
    --breakpoint-tablet: 1024px;
    --breakpoint-desktop: 1440px;

    --my-font-display: "DM Sans", sans-serif;
    --my-font-primary: "DM Sans", sans-serif;

    --my-font-size-xs: 16px;
    --my-font-size-lg: 18px;

    --my-bs-gutter-x: 20px;
    --my-el-gutter-x: 20px;
}

.font-display { font-family: var(--my-font-display) !important; }
.font-primary { font-family: var(--my-font-primary) !important; }

a {
    color: #253CA5;
}

html.lenis, html.lenis body {
    height: auto;
}
.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
overscroll-behavior: contain;
}
.lenis.lenis-stopped {
    overflow: hidden;
}
.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

/* Helpers  */
.w-auto { width: auto !important; min-width: auto !important; }
.position-relative { position: relative !important; }
.overflow-visible { overflow: visible !important; }
.opacity-10 { opacity: 0.1 }
.opacity-20 { opacity: 0.2 }
.opacity-30 { opacity: 0.3 }
.opacity-40 { opacity: 0.4 }
.opacity-50 { opacity: 0.5 }
.opacity-60 { opacity: 0.6 }
.opacity-70 { opacity: 0.7 }
.opacity-80 { opacity: 0.8 }
.opacity-90 { opacity: 0.9 }
.opacity-100 { opacity: 1 }


/**
* Body
**/
body{
    font-family: var(--my-font-display);
    font-size: var( --my-font-size-lg );
    font-weight: 300;
    line-height: 140%;
    color: var(--my-color-darkblue);
    /* background-color: #F2EFEA; */
}
main{
    overflow: hidden;
}

/*h1, h2, h3, h4, h5, h6 {
    font-family: var(--my-font-2);
    font-weight: 300;
}*/

p {
    text-wrap: balance;
    font-family: var(--my-font-display) !important;
}

/**
* Elementor
*/
.page-header {
    display: none !important;
}



/**
* Elementor Button

.elementor-widget-button {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0 !important;
}
.elementor-widget-button::after {
    content: "";
    width: 48px;
    height: 48px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background-color: var( --e-global-color-accent );
    background-image: url(/wp-content/uploads/2026/06/arrow-next.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 15px 10px;
}
.elementor-button {
    height: 48px !important;
}
*/


/**
* Custom Button
*/
/*.single-product .qm-plan-cycle-panel-title,
.single-product .qm-plan-addons { display: none; }
*/
.woocommerce button {
    padding: 0;
    border-radius: 0;
}
[type=submit] {
    display: inline-flex;
    align-items: center;
    padding: 10px 15px !important;
    border-radius: 12px !important;
    border: var(--e-global-color-accent) !important;
    background: var(--e-global-color-accent) !important;
    color: #fff;
    /* transition: all .35s; */

    font-family: var(--my-font-primary) !important;
    font-size: 18px;
    font-weight: 500;
    line-height: 100%;
}

.btn {
    display: inline-flex;
    align-items: center;
    padding: 0 !important;
    border-radius: 0 !important;
    border:none !important;
    background: transparent !important;

    font-family: var(--my-font-primary) !important;
    font-size: 18px;
    font-weight: 500;
    line-height: 100%;
}
.btn > span {
    display: inline-flex;
    align-items: center;
    height: 48px;
    border-radius: 12px;
    background: var(--e-global-color-accent);
    color: #fff;
    transition: all .35s;
}
.btn > span:nth-child(1) {
    padding: 15px 30px;
    font-size: 18px;
    line-height: 100%;
    font-weight: 500;
}
.btn > span:nth-child(2) {
    width: 48px;
    justify-content: center;
}
.btn:hover > span {
    background-color: #002853;
}

.btn-orange > span{
    background-color: #FF8360;
    color: var( --e-global-color-text );
}
.btn-orange:hover > span {
    background-color: #EB6642;
}

.btn-white > span{
    background-color: #fff;
    color: var( --e-global-color-text );
}
.btn-white:hover > span {
    background-color: #C6C8D4;
}

.btn.disabled { opacity: 0.6; }

/* Bottone "Procedi al pagamento" disattivato in pagina carrello quando sono presenti più piani —
   vedi qm_maybe_disable_proceed_to_checkout() in woo-addons.php */
.qm-checkout-disabled {
    opacity: 0.6;
    pointer-events: none;
    cursor: not-allowed;
}


.btn-joe {
    display: flex;
    padding: 8px 14px;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    border-radius: 12px;
    background: rgba(29, 29, 27, 0.20);
    backdrop-filter: blur(15px);
    font-size: 12px;
    font-weight: 500;
    line-height: 120%;
    color: #fff !important;
}
.btn-joe img { width: 140px; }

/* 
* Elementor Tab
*/
.e-n-tabs-heading {
    flex-basis: 33.33% !important;
}
.e-n-tab-title {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 30px !important;
    padding: 20px !important;
    border-radius: 12px !important;
    border: solid 1px #fff !important;
    width: fit-content !important;
}
.e-n-tab-title::after {
    content: "";
    width: 15px; height: 10px;
    mask-image: url(/wp-content/uploads/2026/06/arrow-next.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    background-color: #fff;
}
.e-n-tab-title[aria-selected="true"],
.e-n-tab-title:hover {
    border: solid 1px var( --e-global-color-secondary ) !important;
    background: var( --e-global-color-secondary ) !important;
}
.e-n-tab-title[aria-selected="true"]::after,
.e-n-tab-title:hover::after {
    background-color: var(--e-global-color-text);
}




/** 
* Header Toggler
* */
.navbar-toggler {
    /* position: absolute;
    top: 20px;
    right: 20px; */
    position: relative;
    width: 36px;
    height: 36px;
    padding: 13px 10px !important;
    background-color: #fff !important;
    border: none !important;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    z-index: 1040;
}
@media (hover: hover){
    .navbar-toggler:hover{ cursor: pointer; }
}
.navbar-toggler:focus{
    box-shadow: none;
}
/* Focus da tastiera visibile (audit A01): solo :focus-visible, il click col mouse resta senza anello. */
.navbar-toggler:focus-visible{
    outline: 2px solid var(--e-global-color-secondary);
    outline-offset: 2px;
}
.navbar-toggler span{
    display: block;
    background-color: #1D1D1B;
    height: 2px;
    width: 16px;
    position: relative;
    right: 0;
    opacity: 1;

    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
}
.navbar-toggler span:last-child{
    margin-bottom: 0;
}
.navbar-toggler span:nth-child(1),
.navbar-toggler span:nth-child(2){
    -webkit-transition: transform .35s ease-in-out;
    -moz-transition: transform .35s ease-in-out;
    -o-transition: transform .35s ease-in-out;
    transition: transform .35s ease-in-out;
}
.navbar-toggler.collapsed span{
    background-color: #1D1D1B;
}
.navbar-toggler.collapsed span:nth-child(1) {
    position: absolute;
    top: 17px;
    left: 10px;
    -webkit-transform: rotate(145deg);
    -moz-transform: rotate(145deg);
    -o-transform: rotate(145deg);
    transform: rotate(145deg);
    opacity: 1;
}
.navbar-toggler.collapsed span:nth-child(2){
    position: absolute;
    top: 17px;
    left: 10px;
    -webkit-transform: rotate(-145deg);
    -moz-transform: rotate(-145deg);
    -o-transform: rotate(-145deg);
    transform: rotate(-145deg);
    opacity: 1;
}


/**
* Navbar
**/
.navbar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1041;
    background-color: transparent;
    /*height: 100px;*/
    transition: all .35s ease-in-out;
}
.nav-logo { display: inline-block; }
.nav-logo > svg{ width: 195px /*260px*/; height: auto !important; transition: all .35s ease-in-out; }
/* .navbar .btn-login-wrap { position: relative; width: 156px; }
.navbar .btn-login-wrap .elementor-widget-html { position: absolute; top: 0; left: 0; width: 100%; }
.navbar .btn-login.btn-white { display: none; }
.navbar .btn-login:not(.btn-white) { display: inline-flex; } */

/* Area utente header ([qm_login_button]): 1 bottone da ospite, 3 affiancati da loggato
   (Dashboard / Il mio account / Carrello) — vedi qm_render_login_button_shortcode(). */
.btn-login-wrap { display: inline-flex; align-items: center; gap: 8px; }

.nav-scroll .navbar {
    background-color: transparent; /*var(--e-global-color-accent);*/
    backdrop-filter: blur(10px);
    height: calc(93px - 20px);
    padding-top: 10px;
    padding-bottom: 10px;
}
.nav-scroll .navbar::before {
    content: "";
    position: absolute; inset: 0; background-color: var(--e-global-color-accent); opacity: 0.8;
}
.nav-scroll .nav-logo > svg{ width: 150px; }
/* .nav-scroll .navbar .btn-login.btn-white { display: inline-flex; }
.nav-scroll .navbar .btn-login:not(.btn-white) { display: none; } */
.nav-scroll .navbar .btn-login:not(.btn-dashboard) > span{ background-color: #fff; color: var( --e-global-color-text ); }
.nav-scroll .navbar .btn-login:not(.btn-dashboard):hover > span { background-color: #C6C8D4; }
.nav-scroll .navbar .btn-login:not(.btn-dashboard) svg path { fill: var(--e-global-color-text); }
.nav-scroll .navbar .btn-login:not(.btn-dashboard) svg circle { fill: var(--e-global-color-text); }
.nav-scroll .navbar .btn-login.btn-cart:not(.btn-dashboard) svg path { fill: transparent; }
.nav-scroll .navbar .btn-login.btn-cart:not(.btn-dashboard) svg path { stroke: var(--e-global-color-text); }
.nav-scroll .navbar .elementor-nav-menu a.elementor-item{ color: #fff !important; }
.nav-scroll .navbar .elementor-nav-menu a.elementor-item-active,
.nav-scroll .navbar .elementor-nav-menu a.elementor-item:hover { color: var(--e-global-color-secondary) !important; }
/*.nav-scroll .nav-logo > svg path{ fill: var(--e-global-color-accent); }*/
.nav-scroll nav .logo img {width: 135px!important;}

@media(min-width: 767px) {
    .nav-scroll nav .logo img {
        width: 170px!important;
    }
}

.navbar .elementor-nav-menu--main .elementor-nav-menu a, 
.navbar .elementor-nav-menu--main .elementor-nav-menu a.highlighted, 
.navbar .elementor-nav-menu--main .elementor-nav-menu a:focus, 
.navbar .elementor-nav-menu--main .elementor-nav-menu a:hover {
    padding: 13px 8px !important;
}


@media screen and (max-width: 1023px){
    .navbar .btn-login-wrap { width: auto; gap: 6px; }
    /* solo l'icona (.qm-login-ico) resta visibile; "Il mio account" e "Carrello" sono già solo-icona */
    .navbar .btn-login > span:not(.qm-login-ico) { display: none !important;}
    .navbar .btn-login > .qm-login-ico { width: 36px; height: 36px; border-radius: 12px; }
}
@media screen and (max-width: 767px){
    .navbar { height: 90px; }
    .nav-scroll .navbar { height: calc(77px - 20px); }
    .nav-logo > svg{ width: 167px; height: auto !important; }
    .nav-scroll .nav-logo > svg{ width: 120px; height: auto !important; }
}


/**
* Navbar Mobile
*/
.navbar-mobile{
    position: fixed; inset: 0; z-index: -100; opacity: 0;
    -webkit-transition: all .35s;
    -moz-transition: all .35s;
    transition: all .35s;
}
.navbar-mobile-inner{
    position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040;
    -webkit-transform: translateX(100vw);
    -moz-transform: translateX(100vw);
    transform: translateX(100vw);
    -webkit-transition: all .35s;
    -moz-transition: all .35s;
    transition: all .35s;
}

body.navbar-mobile-opened .navbar-mobile{
    z-index: 1040;
    opacity: 1;
}
body.navbar-mobile-opened .navbar-mobile-inner{
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    transform: translateX(0);
}

/* Area utente nel menu mobile ([qm_login_button] al posto del vecchio Login statico, audit F03):
   bottoni bianchi con icona scura come il vecchio btn-white, la Dashboard resta arancione.
   Da loggato sono 3 bottoni: vanno a capo se non stanno in riga. */
.navbar-mobile .btn-login-wrap { flex-wrap: wrap; }
.navbar-mobile .btn-login:not(.btn-dashboard) > span { background-color: #fff; color: var( --e-global-color-text ); }
.navbar-mobile .btn-login:not(.btn-dashboard):hover > span { background-color: #C6C8D4; }
.navbar-mobile .btn-login:not(.btn-dashboard) svg path,
.navbar-mobile .btn-login:not(.btn-dashboard) svg circle { fill: var(--e-global-color-text); }
.navbar-mobile .btn-login.btn-cart svg path { fill: transparent; stroke: var(--e-global-color-text); }


/**
* Appbar
*/
.appbar {
    position: fixed; bottom: 20px; right: 20px; left: auto;
    display: inline-flex !important;
    z-index: 1039 !important;
    width: auto !important;
}

/*
* Hero Wrap
*/
.hero-bg {
    position: absolute; inset: 0;
    background: #FF8360;
    background: linear-gradient(150deg, rgba(255, 131, 96, 1) 0%, rgba(246, 128, 97, 1) 8%, rgba(221, 122, 101, 1) 21%, rgba(182, 113, 109, 1) 38%, rgba(127, 99, 118, 1) 57%, rgba(58, 82, 131, 1) 78%, rgba(0, 68, 142, 1) 100%);
}


.parola-gradiente {
  background: linear-gradient(90deg, 
    #FF8360 0%, 
    #00448E 100%
  ); 
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block; /* Garantisce che il gradiente si calcoli correttamente sulla larghezza della parola */
}



/**
* Scroller
*/
.scroller {
    width: 100% !important;
    overflow-x: hidden !important;
}
.scroller__inner {
    padding-block: 1rem !important;
    display: flex !important;
    flex-direction: row !important;
    /* flex-wrap: wrap !important; */
    gap: 1.5rem !important;
}
.scroller[data-animated="true"] {
    overflow: hidden !important;
    -webkit-mask: linear-gradient(90deg, transparent,white 20%,white 80%, transparent) !important;
    mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent) !important;
}
.scroller[data-animated="true"] .scroller__inner {
    width: max-content !important;
    flex-wrap: nowrap !important;
    animation: scroll var(--_animation-duration, 40s) var(--_animation-direction, forwards) linear infinite !important;
}
.scroller[data-direction="right"] {
    --_animation-direction: reverse;
}
.scroller[data-direction="left"] {
    --_animation-direction: forwards;
}
.scroller[data-speed="1"] {
    --_animation-duration: 60s;
}
.scroller[data-speed="2"] {
    --_animation-duration: 55s;
}
.scroller[data-speed="3"] {
    --_animation-duration: 50s;
}
.scroller[data-speed="fast"] {
    --_animation-duration: 20s;
}
.scroller[data-speed="slow"] {
    --_animation-duration: 60s;
}
@keyframes scroll {
    to {
        transform: translate(calc(-50% - 0.5rem));
    }
}

.brand-list {
    margin: 0;
    padding-inline: 0;
    list-style: none;
}
.brand-list > div {
    padding: .75rem;
    /* background: var(--clr-primary-400);
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem -0.25rem var(--clr-primary-900); */
}
.brand-list > div > img{
    height: 100px;
    filter: grayscale(100%);
    margin: 0 3rem;
}
@media screen and (max-width: 767px){
    .brand-list > div > img{ height: 80px !important; margin: 0 1.5rem !important; }
}
@media screen and (min-width: 768px){
    .brand-list > div > img{ height: 100px !important; }
}






.section-bg-expertise {
    position: absolute; inset: 0;
}



/**
* Swiper
*/
.swiper-visible .swiper {
    overflow: visible !important;
}

/**
* Swiper Review
*/
.swiper-review .swiper-pagination {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 16px !important;
    top: auto !important;
    bottom: -130px !important;
    height: 50px;
}
.swiper-review .swiper-pagination-bullet {
    opacity: 1 !important;
    position: relative !important;
    width: 1px !important;
    height: 20px !important;
    background-color: var(--e-global-color-text) !important;
    transition: all .35s ease-in-out;
}
.swiper-review .swiper-pagination-bullet-active {
    width: 1px !important;
    height: 50px !important;
}
.swiper-review .swiper-pagination-bullet::before {
    opacity: 0;
    content: "";
    position: absolute;
    top: calc(50% - 7px);
    left: calc(50% - 7px);
    display: inline-block;
    width: 14px;
    height: 14px;
    background-color: var(--e-global-color-secondary);
    transition: all .35s ease-in-out;
}
.swiper-review .swiper-pagination-bullet-active::before { 
    opacity: 1;
}




/**
* Form
*/
.form-layer-1,
.form-layer-2,
.form-layer-3 {
    padding: 32px;
    border-radius: 24px;
}
.form-layer-1 {
    color: #FFF;
    background-color: var(--e-global-color-accent);
    backdrop-filter: blur(15px);
    margin-bottom: 24px;
}
.form-layer-2 {
    background: rgba(255, 255, 255, 0.40);
    backdrop-filter: blur(25px);
    margin-bottom: 24px;
}

@media screen and (min-width: 768px) {
    .form-row { display: flex; flex-wrap: wrap; column-gap: 20px; }
    .form-row::before { display: none !important; }
    .form-row::after { display: none !important; }
    .form-col { width: calc(50% - 10px); }
}

.form-group { margin-bottom: 16px; }
.form-group p { margin-bottom: 0 !important; }
.form-label { display: none; }
.form-control {
    border-radius: 12px !important;
    padding: 8px 16px;
    border: solid 1px #fff !important;
    background: rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(15px);
}

.form-layer-1 input, .form-layer-1 textarea {color: #fff; font-family: var(--my-font-display); font-weight: 500; letter-spacing: 5%;}

::placeholder { color: #fff; font-family: var(--my-font-display); font-weight: 500; letter-spacing: 5%; opacity: 75%;}
::-moz-placeholder { color: #fff; font-family: var(--my-font-display); font-weight: 500; letter-spacing: 5%; opacity: 75%;}
::-webkit-placeholder { color: #fff; font-family: var(--my-font-display); font-weight: 500; letter-spacing: 5%; opacity: 75%;}

.wpcf7-form input[type="radio"],
.wpcf7-form input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: inline-block;
    width: 18px;
    height: 18px;
    padding: 0 !important;
    margin: 0 !important;
    background-color: transparent;
    border: solid 2px var(--e-global-color-text);
    /*background-image: url(../images/icons/radio-bg.svg);*/
    background-repeat: no-repeat;
    background-position: center;
    background-size: 70%;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
}
.wpcf7-form input[type="radio"]:checked,
.wpcf7-form input[type="checkbox"]:checked {
    background-image: url(../images/icons/check.svg);
}
.wpcf7-radio .wpcf7-list-item,
.wpcf7-checkbox .wpcf7-list-item,
.wpcf7-acceptance .wpcf7-list-item {
    margin: 0;
}
.wpcf7-acceptance input[type="checkbox"] {
    width: 18px;
    height: 18px;
}
.acceptance-label a { text-decoration: underline !important; }

.form-check {display: flex; gap: 16px; }
.form-check label { margin: 0 !important; padding: 0 !important; font-family: var(--my-font-display); font-weight: 400; font-size: 16px; line-height: 1.4em; letter-spacing: 5%;}
.form-check a{ color: var(--e-global-color-text) !important; text-decoration: underline !important; }






.gradient-text {
    background: linear-gradient(90deg, #FF8360 0%, #00448E 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
}
a.elementor-sub-item {
background-color: #00448E !important;
color: white;
border-radius: 12px;
}
.elementor-sub-item.elementor-item-active {
    background-color: #002853 !important;
    color: white;
    border-radius: 12px;
}
.elementor-nav-menu--dropdown {
background-color: #00448E !important;
color: white;
border-radius: 12px;
}
.elementor-nav-menu--dropdown .elementor-item.elementor-item-active, .elementor-nav-menu--dropdown .elementor-item.highlighted, .elementor-nav-menu--dropdown .elementor-item:focus, .elementor-nav-menu--dropdown .elementor-item:hover, .elementor-sub-item.elementor-item-active, .elementor-sub-item.highlighted, .elementor-sub-item:focus, .elementor-sub-item:hover{
	background-color: #002853 !important;
}
ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:focus, ul.elementor-nav-menu--dropdown a:hover {
     border-inline-end: 8px solid transparent;
}



/*
.blob-stage {  position: relative;  width: 100%;  max-width: 620px;  aspect-ratio: 1 / 1; }
.blob-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
*/
.blob-stage {  position: absolute;  top: 0; left: 0;  width: 100%;  height: 100%; }
.blob-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }


/* Notifiche CF7 */
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.sent .wpcf7-response-output {color: #FFFFFF; letter-spacing: 5%; font-family: var(--my-font-display); text-align: center;}




/*
* Footer
*/
footer .elementor-widget-nav-menu .elementor-nav-menu .elementor-item {
    font-family: var(--my-font-display) !important;
}




/**
* Woocommerce
**/
:root :where(.wp-element-button, .wp-block-button__link) {
    background-color: #253CA5 !important;
    border-width: 0;
    color: #fff !important;
    font-family: inherit;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    padding-top: calc(0.667em + 2px);
    padding-right: calc(1.333em + 2px);
    padding-bottom: calc(0.667em + 2px);
    padding-left: calc(1.333em + 2px);
    text-decoration: none;
    text-transform: inherit;
    border-radius: 30px;
    text-decoration: none !important;
}

/* Pagina prodotto Piano: card Elementor (sostituisce la galleria), gap e summary nativo affiancati su griglia 5/12, 1/12, 6/12 */
.woocommerce div.product {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0;
}
/* Descrizione lunga del piano: riga a tutta larghezza sopra le due colonne (anche da mobile: order 0 < 1, 2) */
.woocommerce div.product .qm-plan-product-description {
    flex: 0 0 100%;
    margin-bottom: 40px;
}
.woocommerce div.product .qm-plan-product-description,
.woocommerce div.product .qm-plan-product-description * {
    color: #FFFFFF;
}
.woocommerce div.product .qm-plan-product-description,
.woocommerce div.product .qm-plan-product-description p {
    font-size: 18px;
}
/* Descrizione breve: tutto bianco */
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-product-details__short-description * {
    color: #FFFFFF;
}
/* Titolo addon e label addon: annulla il bianco del Codice personalizzato Elementor, selettori più specifici */
.woocommerce div.product span.qm-plan-cycle-panel-title,
.woocommerce div.product ul.qm-plan-addons li label {
    color: inherit;
}
.woocommerce div.product .qm-plan-product-card {
    flex: 0 0 41.6667%; /* 5/12 */
}
.woocommerce div.product .qm-plan-product-gap {
    flex: 0 0 8.3333%; /* 1/12 */
}
.woocommerce div.product .summary.entry-summary {
    flex: 0 0 50%; /* 6/12 */
}
@media screen and (max-width: 767px) {
    .woocommerce div.product {
        flex-direction: column;
    }
    .woocommerce div.product .qm-plan-product-card,
    .woocommerce div.product .summary.entry-summary {
        flex-basis: 100%;
    }
    .woocommerce div.product .qm-plan-product-gap {
        display: none;
    }
    /* Mobile: summary (prezzo/CTA) sopra, card piano sotto — ordine invertito rispetto al desktop */
    .woocommerce div.product .summary.entry-summary {
        order: 1;
    }
    .woocommerce div.product .qm-plan-product-card {
        order: 2;
    }
}

/* Piani QM: checkbox/radio custom, tab ciclo mensile/annuale, toast carrello (ex wp_head inline in woo-shortcodes.php) */
input[type="radio"],
input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: inline-block;
    width: 18px;
    height: 18px;
    padding: 0 !important;
    margin: 0 !important;
    background-color: transparent;
    border: solid 2px #fff;
    /*background-image: url(../images/icons/radio-bg.svg);*/
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
    -webkit-border-radius: 2px !important;
    -moz-border-radius: 2px !important;
    border-radius: 2px !important;
    &:checked {
        background-color: #fff;
        /* background-image: url(../images/icons/check.svg); */
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%231B1B1B' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")
    }
}

.input-text {
    display: block;
    margin-top: -3px;
}
.input-title {
    display: block;
    font-size: 16px;
    font-weight: 700;
}
.input-title {
    display: block;
    font-size: 16px;
    font-weight: 400;
}

.woocommerce-breadcrumb { display: none !important; }
.single-product .related.products {
    display: none !important;
}
.qm-toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9999;
    max-width: 320px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 16px !important;
    border-radius: 8px !important;
    font-size: 14px;
    line-height: 1.4;
    color: #1D1D1B;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
}
.qm-toast--error { background: #c0392b; color: #fff; }
.qm-toast--success { background: #2e7d32; }
.qm-toast__text { flex: 1; }
.qm-toast__close {
    flex-shrink: 0;
    background: transparent;
    border: 0;
    padding: 0;
    margin: -2px -2px 0 0;
    font-size: 20px;
    line-height: 1;
    color: inherit;
    cursor: pointer;
}

.qm-plan-cycle-tabs__nav {
    position: relative;
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    margin-bottom: 16px;
    border-radius: 12px;
    background: rgba(0, 0, 0, .18);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.qm-plan-cycle-tabs__slider {
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 4px;
    width: 0;
    border-radius: 12px;
    background: #FF8360;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
    transition: left .25s ease, width .25s ease;
}
.qm-plan-cycle-tab {
    position: relative;
    z-index: 1;
    padding: 12px 6px !important;
    border: none;
    border-radius: 8px !important;
    background: transparent !important;
    color: #1D1D1B;
    cursor: pointer;
    line-height: 1 !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    transition: color .2s ease;
}
.qm-plan-cycle-tab.active,
.qm-plan-cycle-tab:hover {
    color: #1D1D1B;
    font-weight: 500;
    background: transparent;
}
.qm-plan-cycle-tab__badge {
    position: absolute;
    top: -10px;
    right: -6px;
    background: #1D1D1B;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 999px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .35);
    white-space: nowrap;
}
.qm-plan-cycle-panel {
    display: none;
}
.qm-plan-cycle-panel.active {
    display: block;
}
.qm-plan-cycle-panel-price {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 8px;
}




/* Woocommerce My Account */
body:not(.logged-in) li.li-account { display: none !important; }

.woocommerce-MyAccount-navigation-link.woocommerce-MyAccount-navigation-link--downloads {
    display: none !important;
}
@media screen and (min-width: 1280px) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
        width: 25%;
    }
    .woocommerce-account .woocommerce-MyAccount-content {
        width: 73%;
    }
}

/* Woocommerce Address */
.woocommerce .woocommerce-customer-details address,
.wc-block-components-additional-fields-list {
    padding: 32px !important;
    border-radius: 30px;
    background-color: #F5F4F4;
    margin-bottom: 30px;
    border: none !important;
}

/* Woocommerce Tabella */
body.woocommerce-account h1,
body.woocommerce-account h2 { 
    margin: 2rem 0 !important; 
}
@media screen and (min-width: 768px){
    .woocommerce table tbody tr td:last-child,
    .woocommerce table .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }
}
@media screen and (max-width: 768px){
    .woocommerce table tbody tr td:last-child,
    .woocommerce table .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }
    .woocommerce table .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions::before {
        width: 100% !important;   
        text-align: left !important;
    }
}


/* Woocommerce Bottoni */
.button,
.woocommerce-button,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button,
:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit,
:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button,
:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button,
:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button{
    display: inline-flex !important;
    align-items: center !important;
    height: auto !important;
    border-radius: 12px !important;
    background: var(--e-global-color-accent) !important;
    color: #fff !important;
    transition: all .35s !important;
		
    padding: 10px 15px !important;
    font-size: 18px !important;
    line-height: 100% !important;
    font-weight: 500 !important;
}



/* Alert */
.woocommerce-error, .woocommerce-info, .woocommerce-message {
    padding: 32px 32px 32px 3.5em;
    border-radius: 30px;
    background-color: #F5F4F4;
    border: none !important
}
.woocommerce-error::before, .woocommerce-info::before, .woocommerce-message::before {
    top: 32px;
}



/* Form */
.wp-block-woocommerce-checkout-order-summary-block {
    border-radius: 12px !important;
}
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
    padding: 32px;
    border-radius: 30px;
    background-color: #F5F4F4;
    margin-bottom: 30px;
    border: none !important
}
.woocommerce form.checkout_coupon a, .woocommerce form.login a, .woocommerce form.register a {
    color: var(--e-global-color-primary) !important;
}

@media screen and (min-width: 768px){
    .woocommerce form.login {
        width: 100%;
        max-width: 500px !important;
        margin: auto !important
    }
}
.woocommerce form .password-input, .woocommerce-page form .password-input {
    width: 100%;
}
.woocommerce form.login .form-row {
    justify-content: space-between;
}
.woocommerce .woocommerce-form-login .woocommerce-form-login__submit {
    margin-right: 0;
    float: right;
}


.woocommerce form .form-row .woocommerce-input-wrapper, 
.woocommerce form .form-row label:not(.woocommerce-form-login__rememberme), 
.woocommerce form .form-row .input-text, 
.woocommerce form .form-row select {
    width: 100%;
}

.woocommerce form .form-row .input-text, .woocommerce form .form-row select {
    border-radius: 12px !important;
    padding: 8px 16px;
    border: solid 1px var(--e-global-color-primary) !important;
    background: rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(15px);padding: .5rem 1rem;
    transition: all .3s;
    width: 100%;
}

input[type="radio"], input[type="checkbox"] {
    border: solid 2px var(--e-global-color-primary) !important;
}



.wc-block-components-form .wc-block-components-text-input input[type=email], 
.wc-block-components-form .wc-block-components-text-input input[type=number], 
.wc-block-components-form .wc-block-components-text-input input[type=password], 
.wc-block-components-form .wc-block-components-text-input input[type=tel], 
.wc-block-components-form .wc-block-components-text-input input[type=text], 
.wc-block-components-form .wc-block-components-text-input input[type=url], 
.wc-block-components-text-input input[type=email], 
.wc-block-components-text-input input[type=number], 
.wc-block-components-text-input input[type=password], 
.wc-block-components-text-input input[type=tel], 
.wc-block-components-text-input input[type=text], 
.wc-block-components-text-input input[type=url],
.wc-blocks-components-select .wc-blocks-components-select__select {
    border-radius: 12px !important;
    border: solid 1px var(--e-global-color-primary) !important;
    /* padding: 8px 16px !important; */
}



/* select 2 */
:where(.woocommerce) .select2-container .select2-dropdown, :where(.woocommerce) .select2-container .select2-selection {
    border-radius: 12px !important;
    border: solid 1px var(--e-global-color-primary) !important;
}
:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 8px 16px !important;
}
.select2-dropdown {
    color: var(--e-global-color-primary) !important;
    border: solid 1px var(--e-global-color-primary) !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
    border: solid 1px var(--e-global-color-primary) !important;
    color: #fff !important;
}
.select2-search--dropdown .select2-search__field {
    border-radius: 12px !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] {
    background-color: var(--e-global-color-accent);
}

/* Footer: niente sezione form contatti su account, carrello, checkout e riepilogo ordine
   (order-received ha anche la classe woocommerce-checkout) */
body.woocommerce-account #sezione-form-footer,
body.woocommerce-cart #sezione-form-footer,
body.woocommerce-checkout #sezione-form-footer {
    display: none !important;
}

.btn-cart { display: none !important; }


body.woocommerce-page .page-header .entry-title, body.woocommerce-page .site-footer .footer-inner, body.woocommerce-page .site-footer:not(.dynamic-footer), body.woocommerce-page .site-header .header-inner, body.woocommerce-page .site-header:not(.dynamic-header), body.woocommerce-page:not([class*=elementor-page-]) .site-main {
    max-width: 1440px !important;
}
@media screen and (max-width: 1480px){
    body.woocommerce-page .page-header .entry-title, body.woocommerce-page .site-footer .footer-inner, body.woocommerce-page .site-footer:not(.dynamic-footer), body.woocommerce-page .site-header .header-inner, body.woocommerce-page .site-header:not(.dynamic-header), body.woocommerce-page:not([class*=elementor-page-]) .site-main {
        width: 100% !important;
        padding-left: 20px;
        padding-right: 20px;
    }
}
/*
 * Hero home: sfondo con reduced motion (2026-11-09, audit P05)
 *
 * Lo "Sfondo di fallback" del video Elementor (container dc5f140, Home – NEW) non è responsive:
 * è impostato su hero-background-mobile.webp (786 px) per tutti i dispositivi. Da tablet in su,
 * con prefers-reduced-motion, main.js toglie il video e resterebbe l'immagine mobile sgranata:
 * qui si rimette quella desktop. Senza reduced motion il video la copre, quindi non serve
 * scaricarla. Breakpoint mobile Elementor: max 767px.
 */
@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
    body .elementor-3521 .elementor-element.elementor-element-dc5f140:not(.elementor-motion-effects-element-type-background) {
        background-image: url("/wp-content/uploads/2026/11/hero-background-desktop-scaled.webp");
    }
}
