/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

.home .header-main .logo-header svg g {
    fill: var(--e-global-color-secondary) !important;
}
.home .header-main .elementor-menu-cart__toggle_wrapper svg path {
    stroke: var(--e-global-color-secondary) !important;
}
.home .header-main .cont-menu-desktop li.menu-item a {
    color: var(--e-global-color-secondary) !important;
}
.home .header-main .cont-menu-desktop li.menu-item a:hover {
    color: var(--e-global-color-dc6ff84) !important;
}
.home .header-main .cont-lang-switcher.desktop * {
    color: white !important;
}
body.off-canvas-open > button.iubenda-tp-btn.iubenda-cs-preferences-link {
    display: none !important;
}
body.off-canvas-open.home .header-main .elementor-menu-cart__toggle_wrapper svg path {
    stroke: var(--e-global-color-primary) !important;
}
body.off-canvas-open.home .header-main .logo-header svg g {
    fill: var(--e-global-color-primary) !important;
}
body.off-canvas-open {
        overflow: hidden !important;
        touch-action: none !important;
        -webkit-overflow-scrolling: auto !important;
    }
.cont-logo-footer {
    max-height: 10rem;
    overflow: hidden;
}
.cont-logo-footer .logo-footer svg {
    width: 90vw;
    height: auto;
}
.cont-loop-single-prodotto p.price {
    margin-bottom: 0;
}
.cont-grid-shop .e-loop-item-365.post-365 .title-loop-prodotto {
    padding: 0% 5% 0% 5%;
}
.cont-grid-prodotti-pag-vini .e-loop-item-365.post-365 .title-loop-prodotto {
    padding: 0% 5% 0% 5%;
}
.e-woocommerce-notices-wrapper .woocommerce-message {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    row-gap: 1rem;
}
.cont-tipo-degustazione strong {
    font-weight: 800;
}
/* Cutomize mobile menu */
.cont-menu-mobile a {
    color: var(--e-global-color-secondary);
}
/* Customize cart header */
.custom-cart-header .elementor-menu-cart__main {
    padding: 6rem 0;
    width: 40vw;
    max-width: 45rem;
}
.custom-cart-header .elementor-menu-cart__products.woocommerce-cart-form__contents {
    background-color: var(--e-global-color-primary); 
    padding: 2rem;
}
.custom-cart-header .elementor-menu-cart__subtotal {
    padding-inline: 2rem;
    margin-inline: 2rem;
}
.custom-cart-header .elementor-menu-cart__footer-buttons {
    padding-inline: 2rem;
    padding-top: 2rem;
}
.custom-cart-header .elementor-menu-cart__close-button {
    padding-inline: 1rem;
    margin-inline: 2rem;
}
.custom-cart-header .elementor-menu-cart__product {
    padding-bottom: 1rem;
}

/* Nascondi l'elemento add-to-cart-loop di default */
.add-to-cart-loop {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
/* Mostra l'elemento quando si va in hover sul contenitore */
.cont-loop-single-prodotto:hover .add-to-cart-loop {
    opacity: 1 !important;
    visibility: visible !important;
}
.widget-footer-iubenda {
    line-height: 1.4em;
}
/* Mostra sempre sui dispositivi touch */
@media (pointer: coarse), (max-width: 768px), (-webkit-touch-enabled: 1) {
    .add-to-cart-loop {
        opacity: 1;
        visibility: visible;
    }
}

/* Customizzazione selettore lingua mobile */
.cont-lang-switcher.mobile .wpml-elementor-ls {
    display: flex;
    justify-content: center;
    align-items: center;
}
.cont-lang-switcher.mobile .wpml-ls-item-en {
    order: 2;
}
.cont-lang-switcher.mobile .wpml-ls-item-it {
    order: 1;
}
.cont-lang-switcher.mobile .wpml-ls.wpml-ls-legacy-list-horizontal ul {
    display: flex;
    width: 35vw;
    justify-content: space-between;
}
.cont-lang-switcher .wpml-ls.wpml-ls-legacy-list-horizontal ul > li {
    filter: opacity(0.5);
}
.cont-lang-switcher .wpml-ls.wpml-ls-legacy-list-horizontal ul > li.wpml-ls-current-language {
    filter: opacity(1);
}
/* Customizzazione selettore lingua desktop */
.cont-lang-switcher.desktop .wpml-ls-statics-shortcode_actions {
    position: relative;
    display: inline-block;
    font-family: inherit;
}
.cont-lang-switcher.desktop .wpml-ls-statics-shortcode_actions ul {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}
/* Lingua corrente sempre visibile */
.cont-lang-switcher.desktop .wpml-ls-current-language {
    display: block;
}
.cont-lang-switcher.desktop .wpml-ls-current-language .wpml-ls-link {
    display: block;
    width: 4rem;
    transition: all 0.6s ease;
    cursor: pointer;
    position: relative;
}
/* Freccia dropdown */
.cont-lang-switcher.desktop .wpml-ls-current-language .wpml-ls-link::after {
    content: '▼';
    position: absolute;
    right: 10px;
    top: 55%;
    transform: translateY(-50%);
    font-size: 1rem;
    font-weight: 600;
    transition: transform 0.6s ease;
}
/* Hover sulla lingua corrente */
.cont-lang-switcher.desktop .wpml-ls-current-language .wpml-ls-link:hover {
   color: var(--e-global-color-f8efda1);
}
/* Altre lingue nascoste di default */
.cont-lang-switcher.desktop .wpml-ls-item:not(.wpml-ls-current-language) {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 1000;
}
/* Stili link altre lingue */
.cont-lang-switcher.desktop .wpml-ls-item:not(.wpml-ls-current-language) .wpml-ls-link {
    display: block;
    width: 4rem;
    transition: all 0.3s ease;
}
/* Mostra dropdown al hover */
.cont-lang-switcher.desktop .wpml-ls-statics-shortcode_actions:hover .wpml-ls-item:not(.wpml-ls-current-language) {
    display: block;
}
/* Ruota freccia quando aperto */
.cont-lang-switcher.desktop .wpml-ls-statics-shortcode_actions:hover .wpml-ls-current-language .wpml-ls-link::after {
    transform: translateY(-50%) rotate(180deg);
}

/* Checkput page customization */
.payment_box.payment_method_stripe {
    background-color: transparent !important;
    padding: 0 !important;
}
.payment_box.payment_method_stripe fieldset {
    border: none;
}

/* Customizzazione form contatti */
.elementor-field-option {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 1rem;
}

.elementor-field-option label {
    padding-left: 0;
    flex: 1;
    line-height: 1.4;
    cursor: pointer;
    font-size: 1rem;
}
/* Stilizzazione diretta del checkbox */
.elementor-acceptance-field {
    width: 1.5rem !important;
    height: 1.5rem !important;
    min-width: 1.5rem !important;
    min-height: 1.5rem !important;
    background-color: var(--e-global-color-6769b07) !important; /* Grigio chiaro #EFEFEF */
    border: 1px solid var(--e-global-color-primary) !important; /* Nero #1D1D1B */
    border-radius: 0 !important;
    cursor: pointer !important;
    
    /* Proprietà moderne */
    accent-color: var(--e-global-color-primary);
    -webkit-appearance: none;
    appearance: none;
    
    position: relative;
    transition: all 0.3s ease;
}

/* Stato checked */
.elementor-acceptance-field:checked {
    background-color: var(--e-global-color-primary) !important; /* Nero quando selezionato */
    border-color: var(--e-global-color-primary) !important;
}

/* Segno di spunta */
.elementor-acceptance-field:checked::before {
    content: "✓";
    position: absolute;
    color: var(--e-global-color-secondary) !important; /* Bianco #FFFFFF */
    font-size: 1.2rem;
    font-weight: bold;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

/* Hover effect */
.elementor-acceptance-field:hover {
    border-color: var(--e-global-color-f8efda1) !important; /* Nero semi-trasparente */
    box-shadow: 0 0 5px var(--e-global-color-f8efda1);
}

/* Focus */
.elementor-acceptance-field:focus {
    outline: 1px solid var(--e-global-color-primary);
    outline-offset: 1px;
}

.home .icon-menu-mobile-toggle svg line {
    stroke: white;
}
.icon-menu-mobile-toggle svg {
    overflow: visible;
}
.icon-menu-mobile-toggle.open svg line {
    stroke: black;
}
/* Customize mobile menu */
.line {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
}
/* Stato normale - hamburger */
.line.up {
    transform: translateY(0) rotate(0deg);
}
.line.down {
    transform: translateY(0) rotate(0deg);
}
/* Menu open styles */
.icon-menu-mobile-toggle.open .line.up {
    transform: translateY(3.5px) rotate(45deg);
}
.icon-menu-mobile-toggle.open .line.down {
    transform: translateY(-4.5px) rotate(-45deg);
}
.icon-menu-mobile-toggle-sticky.open .line.up {
    transform: rotate(45deg) translate(-1px, 1px);
}
.icon-menu-mobile-toggle-sticky.open .line.down {
    transform: rotate(-45deg) translate(0px, -1px);
}

#header_main_sub_container {
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out; 
}
/* Hide the second header when the user is at the top of the page */
#header_main_sub_container.hidden {    
    transform: translateY(-200%);
    pointer-events: none; /* Ensures it doesn't block clicks */
    z-index: 9999999 !important;
    border-bottom: none !important;
}

/* When the user scrolls beyond 150px, show the header */
#header_main_sub_container.show {
    transform: translateY(0);
    opacity: 1;
    visibility: visible; /* No need to animate, but we ensure it's visible */
    z-index: 9999999 !important;
}

.home #elementor-menu-cart__toggle_button svg {
    fill: white;
}
.home #elementor-menu-cart__toggle_button  .elementor-button-text{
    color: white;
}
.home #elementor-menu-cart__toggle_button .elementor-button-icon * {
    color: white;
}

/* Stile di base per input e select - solo per quelli che NON hanno valori */
#form-visite input:placeholder-shown,
#form-visite select.showing-placeholder {
    color: var(--e-global-color-primary) !important;
    font-size: 1.2rem;
    font-weight: 400;
}

/* Stile per input e select quando hanno un valore */
#form-visite input:not(:placeholder-shown),
#form-visite select:not(.showing-placeholder) {
    color: var(--e-global-color-text) !important;
    font-size: 1.2rem;
    opacity: 1;
    font-weight: 400;
}

/* ====== PLACEHOLDER STYLES PER INPUT ====== */

/* Stile per tutti i placeholder dei campi di input */
#form-visite input::placeholder {
    font-size: 1.2rem;
    font-weight: 400;
}

/* Per Firefox - placeholder degli input */
#form-visite input::-moz-placeholder {
    font-size: 1.2rem;
    font-weight: 400;
}

/* Per WebKit browsers (Chrome, Safari, Edge moderno) - placeholder degli input */
#form-visite input::-webkit-input-placeholder {
    font-size: 1.2rem;
    font-weight: 400;
}

/* Stile quando il campo input è in focus */
#form-visite input:focus::placeholder {
    font-weight: 400;
}

/* ====== SELECT STYLES ====== */

/* Stile generale per tutti i select */
#form-visite select {
    font-size: 1.2rem;
    font-weight: 400;
}

/* Stile per i select quando mostrano il placeholder (classe aggiunta da JavaScript) */
#form-visite select.showing-placeholder {
    font-size: 1.2rem;
    color: var(--e-global-color-f8efda1) !important;
    opacity: 0.6;
    font-weight: 400;
}

/* Stile per i select in focus quando mostrano il placeholder */
#form-visite select.showing-placeholder:focus {
    color: var(--e-global-color-primary) !important;
    font-weight: 400;
}

/* Stile per le opzioni placeholder (opzione vuota e disabled) */
#form-visite select option[value=""]:disabled {
    font-size: 1.2rem;
    color: var(--e-global-color-f8efda1) !important;
    opacity: 0.6;
    font-weight: 400;
}

/* Stile per le opzioni normali (non placeholder) */
#form-visite select option:not([value=""]) {
    color: var(--e-global-color-primary) !important;
    font-weight: 400;
}

/* Reset del colore quando il select ha un valore selezionato */
#form-visite select:not(.showing-placeholder) {
    color: var(--e-global-color-primary) !important;
    opacity: 1;
}

#form-visite input.flatpickr-input::placeholder,
#form-visite .flatpickr-input::placeholder {
    font-size: 1.2rem !important;
    color: var(--e-global-color-f8efda1) !important;
    opacity: 0.6 !important;
    font-weight: 400 !important;
}

/* Nascondi inizialmente i campi horeca */
.elementor-field-group-nome_attivita,
.elementor-field-group-dove_attivita {
    display: none !important;
}

.cont-link-pag-home * {
    overflow: visible !important;
}
.cont-grid-link-home .e-loop-item {
    border-style: solid;
    border-width: 0px 0px 1px 0px;
    border-color: var(--e-global-color-primary);
}
.cont-grid-link-home .e-loop-item:nth-child(6){
    border-width: 0px 0px 0px 0px;
}
.cont-link-hover {
    position: relative;
}
.img-home-hover {
    display: none !important; /* Le tue immagini rimangono nascoste */
    position: absolute;
    pointer-events: none;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.img-home-hover.show {
    display: block !important;
    opacity: 1;
}
.img-home-hover img {
    min-width: 35rem;
}

.current_page_item .elementor-item::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 8px;
  background-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="7" cy="7" r="7" fill="%231D1D1B"/></svg>');
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: text-bottom;
  position: relative;
}

/* Effetto zoom base sull'immagine prodotto shop */
.cont-img-loop-prodotto {
    overflow: hidden;
}
.cont-img-loop-prodotto img {
    transition: transform 0.3s ease;
}
.cont-img-loop-prodotto:hover img {
    transform: scale(1.2); /* Zoom del 10% */
}
.cont-loop-single-prodotto-pag-vini {
    overflow: hidden;
}
.cont-loop-single-prodotto-pag-vini img {
    transition: transform 0.3s ease;
}
.cont-loop-single-prodotto-pag-vini:hover img {
    transform: scale(1.2); /* Zoom del 10% */
}

.single-product .cont-main-heading br {
    display: none;
}
.single-product .woocommerce-message br {
    display: none;
}

body.privacy-policy h4 {
    text-transform: capitalize !important;
    margin-top: 2rem;
}

/* Touch-friendly per dispositivi touch */
@media (hover: none) and (pointer: coarse) {
    .elementor-acceptance-field {
        padding: 0.2rem;
    }
    
    .elementor-acceptance-field:hover {
        border-color: var(--e-global-color-primary) !important;
        box-shadow: none;
    }
}
@media screen and (min-width: 992px) {
    .elementor-field-type-acceptance {
        width: 70% !important;
    }
    .elementor-field-type-submit {
        width: 30% !important;
        justify-content: end !important;
    }
}
@media screen and (max-width: 1570px) {
    .cont-logo-footer {
        max-height: 8rem;
    }
    .custom-cart-header .elementor-menu-cart__main {
        width: 50vw;
    }
}
@media screen and (max-width: 1366px) {
    .cont-logo-footer {
        max-height: 7rem;
    }
    .custom-cart-header .elementor-menu-cart__main {
        width: 50vw;
    }
}
@media screen and (max-width: 1200px) {
    .cont-logo-footer {
        max-height: 6rem;
    }
    .widget-footer-iubenda {
        font-size: 1rem;
    }
}
@media screen and (max-width: 1024px) {
    .cont-logo-footer {
        max-height: 5rem;
    }
}
@media screen and (max-width: 992px) {
    .custom-cart-header .elementor-menu-cart__main {
        width: 70vw;
    }
}
@media screen and (max-width: 767px) {
    .info-footer .p {
        font-weight: 400;
    }
    .cont-logo-footer {
        max-height: 2rem;
    }
    .custom-cart-header .elementor-menu-cart__main {
        width: 90vw;
    }
    body.off-canvas-open {
            touch-action: none !important;
            -webkit-overflow-scrolling: auto !important;
    }
    .logo-europa-text-footer br {
        display: none;
    }
}
