/************************************************/
/*** # VARIABLES ********************************/
/************************************************/

:root {
    --color-fff: #fff;
	--color-black: #000;
    --color-f7: #f7f7f7;

    --main-container-max-width: 1400px;

    --tablet-breakpoint: 1140px;
    --mobile-breakpoint: 767px;
	
	--header-height: 70px;
	
	--logo-negozio-width: 160px;
}


/************************************************/
/*** # ELEMENTOR GLOBAL STYLES ******************/
/************************************************/
.color-primary {
    color: var(--e-global-color-primary) !important
}

.color-secondary {
    color: var(--e-global-color-secondary) !important
}

.color-text {
    color: var(--e-global-color-text) !important
}

.color-accent {
    color: var(--e-global-color-accent) !important
}

.color-fff {
    color: var(--color-fff) !important
}

.bg-color-primary {
    background-color: var(--e-global-color-primary) !important
}

.bg-color-secondary {
    background-color: var(--e-global-color-secondary) !important
}

.bg-color-text {
    background-color: var(--e-global-color-text) !important
}

.bg-color-accent {
    background-color: var(--e-global-color-accent) !important
}

.bg-color-fff {
    background-color: var(--color-fff) !important
}

.bg-color-f7 {
    background-color: var(--color-f7) !important
}

.text-primary {
    font-family: var(--e-global-typography-primary-font-family);
    font-size: var(--e-global-typography-primary-font-size);
    font-weight: var(--e-global-typography-primary-font-weight);
    line-height: var(--e-global-typography-primary-line-height);
    letter-spacing: var(--e-global-typography-primary-letter-spacing);
    word-spacing: var(--e-global-typography-text-word-spacing);

}

.text-secondary {
    font-family: var(--e-global-typography-secondary-font-family);
    font-size: var(--e-global-typography-secondary-font-size);
    font-weight: var(--e-global-typography-secondary-font-weight);
    line-height: var(--e-global-typography-secondary-line-height);
    letter-spacing: var(--e-global-typography-secondary-letter-spacing);
    word-spacing: var(--e-global-typography-text-word-spacing);
}

.text-accent {
    font-family: var(--e-global-typography-accent-font-family);
    font-size: var(--e-global-typography-accent-font-size);
    font-weight: var(--e-global-typography-accent-font-weight);
    line-height: var(--e-global-typography-accent-line-height);
    letter-spacing: var(--e-global-typography-accent-letter-spacing);
    word-spacing: var(--e-global-typography-text-word-spacing);
}

.text-normal {
    font-family: var(--e-global-typography-text-font-family);
    font-size: var(--e-global-typography-text-font-size);
    font-weight: var(--e-global-typography-text-font-weight);
    line-height: var(--e-global-typography-text-line-height);
    letter-spacing: var(--e-global-typography-text-letter-spacing);
    word-spacing: var(--e-global-typography-text-word-spacing);
}



/************************************************/
/*** # MAIN RULES *******************************/
/************************************************/
html {
	font-size: 18px; /*REM*/
}
body {
    font-family: "Barlow Local", sans-serif;
	padding-top: var(--header-height);
}

e.con {overflow: hidden}

strong,
b,
.strong,
.bold {
    font-weight: bold
}

i,
em {
    font-style: italic
}





/* - - - - - - - - - - - - - - - - - - - - - - -
   SEZIONE PROMOZIONI IN PAGINA NEGOZIO
- - - - - - - - - - - - - - - - - - - - - - - - */
.promo-container {
    margin:0 auto;
    background-color: #ebebeb;
}

.promo-container>div:first-child{
    max-width:1140px; 
}

.promo-row {
    background-color: #ebebeb;
    padding-top: 60px;
    padding-bottom: 40px;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
}

.promo-content .gallery {
    display: flex;
    flex-flow: row wrap;
    gap: 15px;
    justify-content: center;
    padding-top: 10px;
}
.promo-content .gallery-item {
    margin:0px;
    padding: 0px;
    max-width: 30%;
}

.promo-img {
    width: 30%;}

.promo-content{
    width: 70%;}

.promo-content img {max-width:100px}
.promo-content .emoji {max-width: 20px}

.promo-img, .promo-content {
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    padding: 10px 40px 10px 40px;
}

@media (max-width: 767px){
    .promo-img, .promo-content{
        width: 100%;}

    .promo-row { padding-top: 40px;}

    .promo-content .gallery-item {max-width: 45%;}

    .promo-img, .promo-content {
        padding: 10px;
    }
}



/* - - - - - - - - - - - - - - - - - - - - - - -
   SWIPER SLIDER
   come da specifiche tutte le immagini degli slider saranno 1920x800,
   quindi in 12:5
- - - - - - - - - - - - - - - - - - - - - - - - */
.swiper.idea-slider { 
    width: 100%; 
    height: auto;
	aspect-ratio: 12 / 5;
}

.swiper.idea-slider .swiper-slide {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.swiper.idea-slider .swiper-button-next, .swiper-button-prev {
    top: 80% !important;
    background-image: unset;
    opacity: 0.8;
}

.swiper.idea-slider .swiper-button-next:after, .swiper.idea-slider .swiper-button-prev:after {
    font-size: 25px !important;
    font-weight: bold;
}


@media (max-width: 767px){ .swiper.idea-slider .swiper-button-next, .swiper.idea-slider .swiper-button-prev{top: 90% !important} }



/* mapplic fixes */
.mapplic-tooltip-wrap .mapplic-image {object-fit:contain; padding:10px;}
.mapplic-tooltip-close {border:0px !important}
.mapplic-icon.mapplic-icon-cross{width:18px !important; height:18px !important}
.mapplic-sidebar-toggle .mapplic-icon-sidebar {fill: var(--e-global-color-text) !important}
.mapplic-button.mapplic-clear-button{display:none !important}





/* TABELLE ORARI */

table.tabella-orari {margin:0 auto; font-size:unset}
table.tabella-orari td, table.tabella-orari th {
border-left: 0px;
border-right: 0px;
}

.orario-title {
	color: var(--e-global-color-primary);
	text-align: center;
	text-transform: uppercase
}

hr.barb_orari {
    width: 45%;
    min-width: 200px;
    margin: 0 auto;
    margin-top: 5px;
    margin-bottom: 10px;
}
.tabella-orari-semplice td {background-color: transparent; border-top:0px; border-left: 0px; border-right:0px}
.tabella-orari-semplice tr:last-child td {border-bottom:0px}
.tabella-orari-semplice {max-width:340px; margin: 0 auto}
.tabella-orari-semplice td:first-child {width: 200px}
.tabella-orari-semplice td {width: 160px}
.tabella-orari-semplice td {padding: 5px 0px 5px 0px}

.tabella-orari th { height: 20px; border-top:0px; text-align:right}
.tabella-orari th:first-child {text-align: left}

.tabella-orari td:not(:first-child) {text-align: right}

.variazione-color {color: #ff7676}
.barrato {text-decoration: line-through}

.tabella-orari td, .tabella-orari th { padding:10px }
.tabella-orari th span {font-size: 1.2em; font-weight: bold;}

#hours_week_table tr { height: 50px }
#hours_variations_table_desk tr { height: 50px }

#hours_week_table td {min-width: 180px; }
#hours_variations_table_desk td {min-width: 180px; }

.variazioni-orarie-contaier { margin-top: 40px; margin-bottom: 40px;}


.orario-settimana-contaier-mobile {display: none;
	text-align: center;
    width: 100%; }

@media (max-width: 767px) {
    .orario-settimana-contaier-mobile {display: inline-block}
	    .variazioni-orarie-contaier, .orario-settimana-contaier { display: none }
}


/* Style the tab */
.tab {
    overflow: hidden;
    border: 1px solid #ccc;
    background-color: #f1f1f1;
}

/* Style the buttons that are used to open the tab content */
.tab button {
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
}

.tablinks {
width:50%;
}

.tab button.active {
background-color: #ccc;
}

.tabcontent {
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;
}

.negozio_hero {line-height: 0px}
.negozio_hero img {width: 100%; max-height: 800px; object-fit:cover }

img.negozio-logo-orari-speciali {width: 100px !important; height:100px !important; object-fit:contain}

.orario-specifico-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
}
.orario-specifico-title {padding-left:20px}
.orario-specifico-negozio {
    margin-bottom: 40px;
    padding-top: 4px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f3f3f3;
}


.negozio-info-section a {
	color: var(--e-global-color-primary);
}
.negozio-info-section p {
	padding-bottom:10px
}
.negozio-info-section .fas {color: var(--e-global-color-secondary)}
.negozio-social-icon .fab {color:var(--e-global-color-primary)}
.negozio-social-icon i {font-size: 30px;}
.negozio-social-section {
	display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
	margin-top:10px
}
/* - - - - - - - - - - - - - - - - - - - - - - -
   SHORTCODE LISTINGS
- - - - - - - - - - - - - - - - - - - - - - - - */

.grid-servizi {
    display: grid;
    gap:  40px;
    grid-template-columns: repeat(6, 1fr);  
    width:100%;
}
@media (max-width: 1140px) {.grid-servizi {grid-template-columns: repeat(4, 1fr) } }
@media (max-width: 767px)  {.grid-servizi {grid-template-columns: repeat(2, 1fr)  } }

.servizio {
    text-align: center;
}

.servizio-img-container {
    padding: 20px;
    background-color: #ebebeb;
    border-radius: 20px;
    width: 120px;
    height: 120px;
    margin: 0 auto;
}

.servizio-img {
    width: 100%;
    max-width: 80px !important;
    height: 80px !important;
    object-fit: contain;
}


.grid-promozioni {
    display: grid;
    column-gap: 20px;
    row-gap: 40px;
    grid-template-columns: repeat(4, 1fr); 
    width:100%;
    padding:20px
}
@media (max-width: 1140px) {.grid-promozioni {grid-template-columns: repeat(2, 1fr) } }
@media (max-width: 767px)  {.grid-promozioni {grid-template-columns: 1fr } }

.promo-grid-item{
    background: #fff;
    box-shadow: 0px 0px 10px 0px rgb(0 0 0 / 25%);
    padding: 20px;
    text-align: left;
    display: flex;
    flex-direction: column
}

.promo-grid-img {
    width:100%;
    max-width: 400px !important;
    max-height: 400px;
    object-fit: cover;
}

.promo-grid-title {
    font-size: 26px !important;
    line-height: 26px;
}

.promo-grid-content {flex-grow:1}
.promo-grid-show-more {color: var(--e-global-color-accent)}





.shop-listing-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(5,1fr);
    grid-auto-rows: 1fr
}
@media (max-width: 1140px) {.shop-listing-grid {grid-template-columns: repeat(4, 1fr) } }
@media (max-width: 767px) {.shop-listing-grid {grid-template-columns: repeat(2, 1fr) } }


.negozio-grid-item {
    position:relative;
    z-index: 1;
    border: 2px solid var(--e-global-color-accent);
    padding: 10px;
    min-height: 280px;
}

.negozio-grid-item-overlay {
    position: absolute;
    top: 0px;
    left:0px;
    width:100%;
    height: 100%;
    background-color: var(--e-global-color-accent);
    opacity: 0;
    transition: opacity 0.5s;
    z-index: 2;
}
.negozio-grid-item-overlay:hover {
    opacity: 0.2;
}

.negozio-grid-img {
    width: 210px !important;
    max-height: 210px;
    object-fit: contain;
    display: block;
    position: absolute;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%);
}

@media (max-width: 1140px) {.negozio-grid-img {width:150px !important; max-height: 150px } }
@media (max-width: 767px) {.negozio-grid-img {width:120px !important; max-height:  120px } .negozio-grid-item {min-height: 200px;} }

.promo-badge {
    position: absolute;
    bottom: 0px;
    right: 0px;
    width: 50px;
    height: 50px;
    background: #fff;
    cursor: pointer;
    z-index: 3;

}
.map-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 50px;
    height: 50px;
    cursor: pointer;
    z-index: 3;
}



.shop-listing-tipologie-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0;
    margin: 0;
    margin-bottom: 20px;
}
.tipologia-filter-button {
    background: transparent;
    padding: 5px 10px 5px 10px;
    border: 1px solid var(--e-global-color-text);
    margin: 5px 10px 5px 5px;
    cursor: pointer;
    font-size: 20px;
    text-align: center
}
.tipologia-filter-button-active {
    background: var(--e-global-color-accent);
    color: #fff !important;
}

.tipologia-filter-button:hover:not(.tipologia-filter-button-active) {
    background: #EBEBEB;
}

.no_events_result {text-align: center;}
.no_events_result h4{ font-size: 26px;}
.no_events_result img {width:100%; height:auto; max-width: 680px}


/* - - - - - - - - - - - - - - - - - - - - - - -
# HEADER
- - - - - - - - - - - - - - - - - - - - - - - - */

/* spazio per admin bar se utente loggato */
body.logged-in:not(.elementor-editor-active) #header {
    top: 32px
}

body.logged-in:not(.elementor-editor-active) #header_logo {
    top: 32px
}
	
@media (max-width: 781px) {
    body.logged-in:not(.elementor-editor-active) #header {
        top: 46px
    }
	body.logged-in:not(.elementor-editor-active) #header_logo {
		top: 46px
	}
}

#header {
    position: fixed;
	top: 0px;
	width: 100%;
	z-index: 10;
	
}

#header_logo {
	position: fixed;
	top: 0;
    left: var(--padding-block-start);
	line-height: 0;
}
#header_logo svg{
	width: auto;
    height: clamp(80px, 7vw, 130px);
    padding: 8px 12px;
	transition: height .3s ease
}

#header.scrolled #header_logo svg {
	height: var(--header-height);
}

.header_content {
	height: var(--header-height);
}


#header_nav_menu {
    position: absolute;
    top:-350px;
    right:20px;
	transition: top .35s ease;
}
#header_nav_menu.open {
	top:var(--header-height);
	transition: top .6s ease;
}
#header_nav_menu li {text-align: right}
#header_nav_menu li a{
	font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
	display: inline;
}
@media (max-width:767px) {
	#header_nav_menu {
		right:0px;}
}

/* safari fix */
.header_content .elementor-widget-icon:nth-child(3) .elementor-icon,
.header_content .elementor-widget-icon:nth-child(5) .elementor-icon {max-width: .1em;}


/* - - - - - - - - - - - - - - - - - - - - - - -
# FOOTER
- - - - - - - - - - - - - - - - - - - - - - - - */
.footer_separator {
    height: 170px;
    width: 1px;
    background-color: var(--color-fff);
    margin: 7px auto;
}
.footer_menu {
    line-height:1.7em !important}

footer a {
	transition: color .4s ease
}

footer a:hover {color: var(--e-global-color-ae5d139) !important}

.sub_footer a{
	text-decoration: underline !important;
}

.sub_footer p {
	font-size: 0.8em;
	line-height: 1
}

/* - - - - - - - - - - - - - - - - - - - - - - -
# DIAMANTE
- - - - - - - - - - - - - - - - - - - - - - - - */


a.elementor-button.elementor-button-link .elementor-button-text::after {
  content: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 14"%3E%3Cpolygon points="31 7.48 25.04 13.44 24.53 12.93 29.88 7.58 1 7.58 1 6.87 29.88 6.87 24.08 1.07 24.58 .56 31 6.97 31 7.48" fill="%23161F43" stroke-width="0"/%3E%3C/svg%3E');
  	display: inline-block;
    width: 2em;
    position: relative;
    top: 0.3em;
    margin-left: 0.8em;
}

.white_arrow a.elementor-button.elementor-button-link .elementor-button-text::after {
  content: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 14"%3E%3Cpolygon points="31 7.48 25.04 13.44 24.53 12.93 29.88 7.58 1 7.58 1 6.87 29.88 6.87 24.08 1.07 24.58 .56 31 6.97 31 7.48" fill="%23ffffff" stroke-width="0"/%3E%3C/svg%3E');
}


body.home .elementor-widget-loop-carousel .e-loop-item.post .elementor-element.e-flex {
	width: 80%;
}

body.home .elementor-widget-loop-carousel:has(.e-loop-item.post) .elementor-swiper-button { 
	display: none
}
body.home .elementor-widget-loop-carousel:has(.e-loop-item.post:nth-child(3)) .elementor-swiper-button { 
	display: inline-flex !important
}

body.home #home_eventi:not(:has(.e-loop-item)) {display: none}
body.home #home_promo:not(:has(.e-loop-item)) {display: none}


body.home .elementor-widget-shortcode:has(.tabella-orari-semplice) .elementor-shortcode > .pt-20 {display: none}

.e-loop-item.promozione .elementor-heading-title {font-weight: 400 !important}
.e-loop-item.promozione img {
	aspect-ratio: 1;
    object-fit: cover;
}

upper {
	text-transform:uppercase;
}

/* FIX MOBILE HOME SLIDER */
.e-con.e-flex:has(.swiper.idea-slider) {
	flex-wrap: nowrap;
}

#hamburger_icon {
  width: 35px;
  height: 25px;
  position: relative;
  margin: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
}

#hamburger_icon span {
  display: block;
  position: absolute;
  height: 4px;
  width: 100%;
  background: #fff;
  border-radius: 8px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out;
}


#hamburger_icon span:nth-child(1) {
  top: 0px;
}

#hamburger_icon span:nth-child(2),#hamburger_icon span:nth-child(3) {
  top: 10px;
}

#hamburger_icon span:nth-child(4) {
  top: 20px;
}

#hamburger_icon.open span:nth-child(1) {
  top: 10px;
  width: 0%;
  left: 50%;
}

#hamburger_icon.open span:nth-child(2) {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

#hamburger_icon.open span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

#hamburger_icon.open span:nth-child(4) {
  top: 10px;
  width: 0%;
  left: 50%;
}


/* NEGOZI LOOP ELEMENTOR */
.negozio_loop_item_simple img{
	width: var(--logo-negozio-width) !important;
	aspect-ratio: 1;
    object-fit: contain;
}
.negozio_loop_item { 
	padding: 10px
}
.negozio_loop_item img{
	width: var(--logo-negozio-width) !important;
	aspect-ratio: 1;
    object-fit: contain;
}

/* .filtro_negozi button[data-filter="bar-ristorazione"]{
	display:none
} */

/* LOGO NEGOZIO PAGINA NEGOZIO */
.logo_negozio_pagina_negozio img {
	width: calc(var(--logo-negozio-width) * 2) !important;
    border: 1px solid var(--e-global-color-text);
    padding: 20px;
    aspect-ratio: 1;
    object-fit: contain;
}

/* LOGO NEGOZIO IN PROMO */
.nego_di_promozione {
	border: 1px solid var(--e-global-color-text);
	padding: 30px;
	text-align:center;
	margin-block: 20px;

}
@media (max-width:1140px) {
	.nego_di_promozione {
		width: calc(var(--logo-negozio-width) + 100px);
	}	
}

.nego_di_promozione img {
	width: var(--logo-negozio-width) !important;
    aspect-ratio: 1;
    object-fit: contain;
}
.nego_di_promozione a {
	border: 1px solid var(--e-global-color-text);
	background-color: var(--color-fff);
	color: var(--e-global-color-text);
	padding: 10px;
	position: relative;
	bottom: -30px;
}
.nego_di_promozione a:hover {
	background-color: var(--e-global-color-secondary);
	color: var(--color-fff);
}

.form_contatti a {color: var(--e-global-color-text) !important; text-decoration: underline !important}
.form_contatti textarea {resize:none}




/* widget contenuto articolo (news ed eventi) */
.elementor-widget-theme-post-content a {
	color: var(--e-global-color-primary);
}

/****************************************************************************************/
/* # CUSTOM PADDINGS ********************************************************************/
/* classi impostate tramite controllo iniettato nel widget 'container' di elementor     */
/****************************************************************************************/

/* default -> non inserisco regole */
.e-con.h_padding_default {}

.e-con.v_padding_default {}

.e-con.h_padding_medium {
    padding-left: 5vw;
    padding-right: 5vw;
    padding-left: 5dvw;
    padding-right: 5dvw;
}

.e-con.h_padding_big {
    padding-left: 10vw;
    padding-right: 10vw;
    padding-left: 10dvw;
    padding-right: 10dvw;
}

.e-con.v_padding_medium {
    padding-top: 5vh;
    padding-bottom: 5vh;
    padding-top: 5dvh;
    padding-bottom: 5dvh;
}

.e-con.v_padding_big {
    padding-top: 10vh;
    padding-bottom: 10vh;
    padding-top: 10dvh;
    padding-bottom: 10dvh;
}

/* se non default, reset elementor padding */
.e-con.h_padding_none,
.e-con.h_padding_medium .e-con-inner,
.e-con.h_padding_big .e-con-inner,
.e-con.h_padding_none .e-con-inner {
    padding-left: 0px;
    padding-right: 0px;
}

.e-con.v_padding_none,
.e-con.v_padding_medium .e-con-inner,
.e-con.v_padding_big .e-con-inner,
.e-con.v_padding_none .e-con-inner {
    padding-top: 0px;
    padding-bottom: 0px;
}

@media (max-width:1140px) {
    .e-con.h_padding_medium {}

    .e-con.v_padding_big {
/* 		padding-top: 6vh;
		padding-bottom: 6vh;
		padding-top: 6dvh;
		padding-bottom: 6dvh; */
	}

    .e-con.v_padding_medium {}

    .e-con.v_padding_big {}
}



/* POLICIES E COOKIE BANNER */
.policies ol {list-style:decimal}
.policies ul {list-style:disc}
.policies ol, .policies ul {margin-left: 40px}
.policies p { margin-bottom: 10px}
.policies a { color: var(--e-global-color-secondary) !important}
.policies * { word-wrap: break-word !important; }
.policies table {max-width: 100%;}
.cky-consent-container *,
.cky-preference-center * {
font-family: var(--e-global-typography-text-font-family) !important;
}
.cky-consent-container button.cky-btn {
    font-size: 15px !important;
}

/* COOKIE BANNER */
#cookie-notice {
	background: #fff !important;
	box-shadow: 0px 0px 3px 0px #a2a2a2;
}
#cookie-notice .cookie-notice-container {
	color: #000 !important;
}
#cookie-notice #cn-notice-text a{
	color: var(--e-global-color-primary) !important;
	text-decoration: underline !important;
}
#cookie-notice #cn-accept-cookie {
	color: #fff !important;
	background-color: var(--e-global-color-primary) !important;
}
#cn-close-notice { display: none !important}