/* 
Theme Name: I Love Disco
Description: Template creato per I Love Disco
Author: Leonardo Barni
Author URI: https://leonardobarni.it/
Template: hello-elementor
Version: 1.0.0
*/


/* DEFAULT SETTING */
/* ============================================================
   I LOVE DISCO — CSS CUSTOM PROPERTIES
   Incolla questo blocco in cima allo style.css,
   prima di qualsiasi altra regola.
   ============================================================ */

:root {

    /* ── COLORI PRINCIPALI ──────────────────────────────────── */
    --ild-magenta:        #ff00ff;
    --ild-magenta-dark:   #cc00cc;
    --ild-magenta-light:  #ff66ff;
    --ild-magenta-alpha:  rgba(255, 0, 255, 0.10);

    --ild-gold:           #c9a84c;
    --ild-gold-light:     #f0d080;
    --ild-gold-glow:      #ffe566;
    --ild-gold-alpha:     rgba(201, 168, 76, 0.15);

    /* ── NEUTRI / SFONDI ────────────────────────────────────── */
    --ild-black:          #080808;
    --ild-deep:           #0d0d0d;
    --ild-dark-deep:           #111008;
    --ild-dark:           #1a1a1a;
    --ild-border:         rgba(201, 168, 76, 0.20);
    --ild-border-light:   rgba(201, 168, 76, 0.08);

    /* ── TESTI ──────────────────────────────────────────────── */
    --ild-white:          #f5f0e8;
    --ild-white-pure:     #ffffff;
    --ild-grey:           #8a8070;
    --ild-grey-light:     rgba(245, 240, 232, 0.65);
    --ild-grey-muted:     rgba(138, 128, 112, 0.50);

    /* ── TIPOGRAFIA ─────────────────────────────────────────── */
    --ild-font-display:   'Bebas Neue', sans-serif;
    --ild-font-serif:     'Playfair Display', Georgia, serif;
    --ild-font-sans:      'DM Sans', sans-serif;

    --ild-size-xs:        10px;
    --ild-size-sm:        12px;
    --ild-size-base:      14px;
    --ild-size-md:        16px;
    --ild-size-lg:        20px;
    --ild-size-xl:        28px;
    --ild-size-2xl:       40px;
    --ild-size-3xl:       64px;

    --ild-weight-light:   300;
    --ild-weight-regular: 400;
    --ild-weight-medium:  500;
    --ild-weight-bold:    700;

    --ild-ls-tight:       0px;
    --ild-ls-normal:      1px;
    --ild-ls-wide:        3px;
    --ild-ls-wider:       5px;
    --ild-ls-widest:      8px;

    --ild-lh-tight:       1.1;
    --ild-lh-normal:      1.5;
    --ild-lh-loose:       1.8;

    /* ── SPAZIATURE ─────────────────────────────────────────── */
    --ild-space-xs:       8px;
    --ild-space-sm:       16px;
    --ild-space-md:       24px;
    --ild-space-lg:       40px;
    --ild-space-xl:       60px;
    --ild-space-2xl:      80px;
    --ild-space-3xl:      100px;

    /* ── LAYOUT ─────────────────────────────────────────────── */
    --ild-max-width:      1200px;
    --ild-container-px:   60px;

    /* ── TRANSIZIONI ────────────────────────────────────────── */
    --ild-ease:           all 0.3s ease-in-out;
    --ild-ease-slow:      all 0.6s ease;
    --ild-ease-cubic:     0.25s cubic-bezier(0.4, 0, 0.2, 1);

    /* ── BORDI & RAGGI ──────────────────────────────────────── */
    --ild-radius:         0px;       /* design squadrato, coerente con l'estetica */
    --ild-border-width:   1px;
    --ild-border-accent:  2px solid var(--ild-magenta);
    --ild-border-gold:    1px solid var(--ild-border);
    --ild-border-subtle:  1px solid var(--ild-border-light);

    /* ── OMBRE ──────────────────────────────────────────────── */
    --ild-shadow-sm:      0 1px 3px rgba(0, 0, 0, 0.4);
    --ild-shadow-md:      0 4px 16px rgba(0, 0, 0, 0.5);
    --ild-shadow-gold:    0 0 20px rgba(201, 168, 76, 0.25);
    --ild-shadow-magenta: 0 0 30px rgba(255, 0, 255, 0.20);

    /* ── Z-INDEX ────────────────────────────────────────────── */
    --ild-z-header:       1000;
    --ild-z-overlay:      900;
    --ild-z-modal:        9999;
    --ild-z-behind:       -1;

    /* ── HEADER ─────────────────────────────────────────────── */
    --ild-header-height:  70px;

}

/* ── USO RAPIDO ─────────────────────────────────────────────
   Esempi pronti da copiare nello style.css:

   color:            var(--ild-gold);
   color:            var(--ild-magenta);
   background-color: var(--ild-black);
   background-color: var(--ild-card);
   border:           var(--ild-border-gold);
   border:           var(--ild-border-accent);
   font-family:      var(--ild-font-display);
   font-family:      var(--ild-font-serif);
   font-family:      var(--ild-font-sans);
   font-size:        var(--ild-size-base);
   font-weight:      var(--ild-weight-bold);
   letter-spacing:   var(--ild-ls-wide);
   line-height:      var(--ild-lh-loose);
   padding:          var(--ild-space-xl) var(--ild-container-px);
   transition:       var(--ild-ease);
   box-shadow:       var(--ild-shadow-gold);
   max-width:        var(--ild-max-width);
   z-index:          var(--ild-z-header);
   ────────────────────────────────────────────────────────── */
/* width */
::-webkit-scrollbar {
  width: 6px;
}

/* Track */
::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px #eee;
  border-radius: 10px;
}

/* Handle */
::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 10px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
}
body{ background-color: var(--ild-dark-deep); }
body:not(.elementor-editor-active) .elementor-menu-anchor:before {
  content: "";
  display:block;
  height: 40px; /* fixed header height*/
  margin: -40px 0 0; /* negative fixed header height */
  visibility: hidden;
  pointer-events: none;

}
@media (max-width: 768px){

  body:not(.elementor-editor-active) .elementor-menu-anchor:before {
    content: "";
    display:block;
    height: 0px; /* fixed header height*/
    margin: 0; /* negative fixed header height */
    visibility: hidden;
    pointer-events: none;
  }

}
html.pum-open.pum-open-overlay.pum-open-scrollable body>[aria-hidden]{ padding-right: 4px;}

h1, h2, h3, h4, h5, h6, h3 a{  }
h3 span{ }
p, li, label, span{  font-family: var(--ild-font-sans);  }
span.elementor-button-text{ color:inherit;}
a{ }
button{ outline:none;}
.text-white h1, .text-white h2, .text-white h3, .text-white ul li, .text-white p, .text-white a, .text-white label, .text-white span{ color: #fff;}
.text-shadow h1, .text-shadow h2, .text-shadow h3,.text-shadow p{ text-shadow: 2px 2px 2px #000;}

.text-center{ text-align:center !important;}
*:focus {
    outline: none;
}
figcaption{ font-style: normal;}
/* elementor COLUMN */
/* ── Fix Elementor height collapse — versione corretta ── */

/* 1. Il wrapper Elementor del shortcode */
.elementor-widget-shortcode:has(.ild-events-grid), .elementor-widget-ild_events_grid {
    display: block;
    width:   100%;
}

/* 2. La griglia */
.ild-events-grid {
    position: relative;
    z-index:  0;
    /* NO overflow:hidden qui — lascia respirare le card */
}

/* 3. Le card: padding-top trick al posto di aspect-ratio
      Elementor capisce il padding ma non sempre aspect-ratio */
.ild-event-card {
    position: relative;
    overflow: hidden;
    background: var(--ild-card, #111008);
    cursor: pointer;
}

.ild-event-card::before {
    content:     '';
    display:     block;
    padding-top: 75%;          /* ratio 4:3 */
}

.ild-event-card.large::before {
    padding-top: 56.25%;       /* ratio 16:9 */
}

/* 4. Z-index espliciti e corretti */
.ild-event-card__link    { z-index: 1; }
.ild-event-card__overlay { z-index: 2; }
.ild-event-card__body    { z-index: 3; }
.ild-event-card__badge   { z-index: 4; }
.ild-event-card::before { content:''; display:block; padding-top: 75%; }
.ild-event-card--featured::before { padding-top: 56.25%; }

@media (max-width: 2000px){
	.elementor-column.elementor-col-30, .elementor-column[data-col="30"] {
      width: 30%;
  }
  .elementor-column.elementor-col-33, .elementor-column[data-col="33"] {
      width: 33.333%;
  }
  .elementor-column.elementor-col-40, .elementor-column[data-col="40"] {
      width: 40%;
  }
  .elementor-column.elementor-col-50, .elementor-column[data-col="50"] {
      width: 50%;
  }
  .elementor-column.elementor-col-60, .elementor-column[data-col="60"] {
      width: 60%;
  }
  .elementor-column.elementor-col-66, .elementor-column[data-col="66"] {
      width: 66.666%;
  }

  .elementor-column-wrap{ width: 100%;}
}

@media (max-width: 1024px){
  .elementor-row{ flex-direction: column;}
  .elementor-8 .elementor-element.elementor-element-9500f6e, .elementor-element .elementor-element-b61aac6, .elementor-12 .elementor-element.elementor-element-7ffda47{ display: none;}
  .elementor-8 .elementor-element.elementor-element-d55dc90, .elementor-8 .elementor-element.elementor-element-2be7b1e, .elementor-12 .elementor-element.elementor-element-e80db50, .elementor-12 .elementor-element.elementor-element-d221f3e{ margin-top: 0; }
  .elementor-12 .elementor-element.elementor-element-ecd9f63 > .elementor-element-populated{ padding: 20px;}
  .elementor-column{ width: 100% !important;}
  .elementor-section.elementor-section-height-full{ height: inherit;}
}
/* ADMIN SECTION*/
#wpadminbar span{ color:inherit;}

/* HEADER */
.header{ position: fixed; top: 0; z-index: 1000;background-color:#000; background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
    width: 100%; transition: all ease-in-out .3s; }
.header:hover{}
.header::before{ content:""; position: absolute; left:0; top: 0; width: 100%; height: 0; background-color: #000; transition: height ease-in-out .3s;}
.header.fixed { position: fixed;  top: 0;  z-index: 1000;  box-shadow:0px 0px 1px #000;}
.header.fixed::before{ height:100%;}
.logged-in .header{ top: 32px;}
.elementor-editor-active.logged-in .header{ top:0;}
.site-header .site-branding { width: 10%; order:1; padding: 10px; }
.site-header .site-navigation {width: 80%; flex: inherit;  order: 2;  }
.site-header .site-navigation.right-side{ display: flex; width: 10%; padding: 10px; justify-content:end;  }
.site-branding img, .site-branding svg { width: 110px; height:auto; padding: 0; transition: all ease-in-out .3s;}
.header.fixed .site-branding img, .header.fixed .site-branding svg { }
.header .site-branding svg g path{ fill:#fff;}
.site-header:not(.dynamic-header){ max-width: 100%; width:100%; padding-top: 10px; padding-bottom: 10px;}
.header-sticky-height {  width: 100%;  height: 0px;  display: block; }

.page-id-197 .header, .page-id-238 .header, .single-portfolio .header{ background: #000;}

.logo{ max-width: 500px; width: 80%; margin:0 auto; text-align: center; }
@media (max-width: 768px){
  .header{  }
  .header-sticky-height{  }
  .language-switcher{ position: absolute; right:50px;}
    .language-switcher a{ color:#1C1915;}

}

#wpadminbar a, #wpadminbar span{ color:#eee;}

/* NAVIGATION */
.site-navigation > div{ width: 100%; padding: 10px 0;}
.header.fixed.site-navigation .menu-main-menu-container{ padding: 0px 0;}

.site-header .site-navigation.left-side{ justify-content:start;} 

.site-navigation ul.menu{ display: flex; margin-bottom: 0; justify-content: center;}
.site-navigation ul.menu li{ display:inline-block; padding:0 10px;}

.site-header .site-navigation.right-side > div{ margin-right:20px;}
.site-navigation.mobile{ display: none;}
.site-header .site-navigation ul.menu > li a, .site-header .site-navigation ul.menu > li > span{  display: block; position: relative; color: var(--ild-white); padding: 8px 0; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 3px; transition:opacity ease-in-out .3s; }
.site-navigation ul.menu > li a:hover, .site-navigation ul.menu > li.current-menu-item  a{ color:var(--ild-magenta); }
/*.site-navigation ul.menu > li a::after{ display: block; width: 0; height: 1px; background-color: #3A3530; opacity:0.5; content: ""; position: absolute; left: 0; bottom: 5px; transition: all ease-in-out .3s;}
.site-navigation ul.menu > li:hover a::after, .site-navigation ul.menu > li.current-menu-item  a::after{ width: 100%; opacity:1;}*/
.site-navigation ul.menu > li.menu-item-194{ margin-left: 30px;}
.site-navigation ul.menu li.menu-item-has-children{ position:inherit; }
.site-navigation ul.menu li.menu-item-has-children:after{ content:none;}
.site-navigation ul.menu li.menu-item-has-children.wpml-ls-item{ position:relative;}
.site-navigation ul.menu li.menu-item-has-children.wpml-ls-item .sub-menu{ left:inherit; right:0;}
.site-navigation ul.menu li.menu-item-has-children > span{ position: absolute; right: 20px; top: 8px; z-index: 5;}

.site-navigation ul.menu li .sub-menu{ position:absolute; visibility:hidden; opacity:0; z-index:1000; min-width: inherit; width:100%; padding:10px 0; background-color:rgba(0,0,0,1); border:none; transition:all ease-in-out .3s; -webkit-transition:all ease-in-out .3s; -moz-transition:all ease-in-out .3s; list-style:none; text-align:center; 
  display: grid ;
    grid-template-rows: repeat(5, auto); 
  grid-auto-flow: column;
  gap: 8px 24px; /* spazio righe / colonne */
  list-style: none;
  margin: 0;}

.site-navigation ul.menu li > ul, .site-navigation ul.menu li:hover>ul, .site-navigation ul.menu li.menu-item-has-children:focus-within>ul{  display: flex !important; justify-content: center;}
.header.fixed .site-navigation ul.menu li .sub-menu{background-color:rgba(0,0,0,1); }
.site-navigation ul.menu li:hover>ul, .site-navigation ul.menu li:hover>ul.active{ visibility:visible ; opacity:1 ;  }
.site-navigation ul.menu > li ul.sub-menu li{ margin-right:0; border-bottom:none; text-align: left; transition: all ease-in-out .3s;}
.site-navigation ul.menu > li ul.sub-menu li:last-of-type{border-bottom:none;}
.site-navigation ul.menu > li ul.sub-menu li:hover{ background-color:#fff; color:#000; }
.site-navigation ul.menu > li.menu-item-193 ul.sub-menu li:hover{ background-color:transparent; }
.site-navigation ul.menu > li ul.sub-menu li a { display:block; padding:8px 10px; color:#fff; font-size:14px; line-height:1.5; text-transform:none; transition: all ease-in-out .3s;}
.site-navigation ul.menu > li ul.sub-menu li a:hover, .site-navigation ul.menu > li ul.sub-menu li a:hover span{ color:#000;  }
.site-navigation ul.menu > li.menu-item-222 ul.sub-menu li{ padding: 0; }
.site-navigation ul.menu > li ul.sub-menu li a::after{ content:none;}
.site-navigation ul.menu > li ul.sub-menu li a > img{ width:100%; max-width:225px;}
.site-navigation ul.menu li.wpml-ls-item ul.sub-menu{ width:50px; }
.site-navigation ul.menu li.wpml-ls-item ul.sub-menu li{ text-align: center; padding: 0;}

.site-navigation ul.menu li.menu-item.collection .sub-menu{ width: 370px; }

.mobile_menu_button{ display:none;
    position: absolute; top: 4px; right: 5px;  }
.c-hamburger {
  display: block;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  width: 50px;
  height: 50px;
  font-size: 0;
  text-indent: -9999px;
  appearance: none;
  box-shadow: none;
  border-radius: none;
  border: none;
  cursor: pointer;
  transition: background 0.3s;
}

.c-hamburger:focus {
  outline: none;
}
.c-hamburger span {
  display: block;
  position: absolute;
  left: 12px;
  right: 12px;
  height: 2px;
  background: var(--ild-grey-light);
}

.c-hamburger span::before,
.c-hamburger span::after {
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--ild-grey-light);
  content: "";
}

.c-hamburger span::before {
  top: -8px;
}

.c-hamburger span::after {
  bottom: -8px;
}

.c-hamburger--htx {
  background-color: transparent!important;
}

.c-hamburger--htx span {
  transition: background 0s 0.3s;
}
.c-hamburger--htx span::before,
.c-hamburger--htx span::after {
	transition-duration: 0.3s, 0.3s;
	transition-delay: 0.3s, 0s;
}
.c-hamburger--htx span::before {
  transition-property: top, transform;
}
.c-hamburger--htx span::after {
  transition-property: bottom, transform;
}
/* active state, i.e. menu open */
.c-hamburger--htx.is-active {
  background-color: transparent;
}
.c-hamburger--htx.is-active span {
  background: none;
  color:#cb0032;
}
.c-hamburger--htx.is-active span::before {
  top: 0;
  transform: rotate(45deg);
  color:#cb0032;
}
.c-hamburger--htx.is-active span::after {
  bottom: 0;
  transform: rotate(-45deg);
  color:#cb0032;
}
.c-hamburger--htx.is-active span::before,
.c-hamburger--htx.is-active span::after {
  transition-delay: 0s, 0.3s;
}

.spicewpsearchform { display: flex;
    opacity: 0; visibility: hidden;
    height: 100vh;
    width: 100%;
    position: absolute;
    left: 0;
    top: 100vh;
    margin-top: 0px;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.8);
    padding: 20px;
    font-size: 0;
    align-items: center;
    justify-content: center;
    transition: top 0.3s ease-in-out 0.3, opacity 0.3s ease-in-out 0.3s;

}
.spicewpsearchform.show{ top:0; opacity: 1; visibility: visible; transition: top 0.3s ease-in-out, opacity 0.3s ease-in-out 0.3s; }
.spicewpsearchform .search-close{ background-color: transparent !important; border: none !important; position: absolute; right: 40px; top:40px; font-size:20px; color: #fff;}
.spicewpsearchform form{ display: flex;}
.spicewpsearchform label{  vertical-align: middle; display: inline-block; width: calc(100% - 51px); box-sizing: border-box; }
.spicewpsearchform input{ width: 250px;}
.spicewpsearchform button[type="submit"]{ content: "f002"; font-family: "Font Awesome 5 Free"; display: inline-block; box-sizing: border-box; vertical-align: middle; background-color: #000; color:#fff; transition:  all ease-in-out .3s;}
/*.spicewpsearchform button[type="submit"]:hover svg{ background-color: #fff; color:#000; }*/

@media (max-width: 1024px){
	.site-header{ padding:0; }
  .site-navigation ul.menu{ margin-bottom: 0; flex-direction: column; align-items: center;}
  .site-header .site-branding { width: 100%; order:1;}
  .site-header .site-navigation { display:none; width: 100%; flex: inherit;  order: 2; background-color: var(--ild-black); }
  .site-header .site-navigation.right-side{ display: flex; width: 10%; padding:0; }
  .site-header .site-navigation.right-side img{ display: block;  }
  .site-header .site-navigation.left-side{  order: 3;  }
    .site-header .site-navigation.mobile{  flex-direction: column;}
    .site-header .site-navigation.mobile ul.menu{ display: flex; flex-direction: column; border-top: 1px solid #EDE8DF;}
    .site-header .site-navigation.mobile ul.menu li{ width: 100%; text-align: center;}
	.spicewpsearchform{ width: 100%;}
  .site-navigation ul.menu li.wpml-ls-item{ align-items: center; padding: 0; }
  .site-navigation ul.menu li.wpml-ls-item a{ width: 25%;}
  .site-navigation ul.menu li.wpml-ls-item span{ padding: 0; }
  .site-navigation ul.menu li.wpml-ls-item ul{ display: flex; width: 75% !important; margin-bottom: 0;  background-color: transparent;visibility: visible; opacity: 1; }
  .site-navigation ul.menu li.wpml-ls-item ul li{ width: 33.333%; padding: 0; background-color: transparent; border-bottom: none; }
  .site-navigation ul.menu li.wpml-ls-item ul li a{ width: 100%;  }
  .site-navigation ul.menu li.wpml-ls-item > span{ display: none;}
	.site-navigation ul.menu li .sub-menu{display:none !important;}
    .mobile_menu_button{ display:block;}

    .site-navigation.right-side .cta{ display: none;    }
}

/************
    COLUMN
************/

body.blog .site-main{ max-width:100%; }
body.blog .site-main .page-header{ padding: 60px 20px 40px;}

body.blog .site-main .page-title {position: relative;
   
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;}
body.blog .site-main .page-title .row-inner{  height: 70vh;}
body.blog .site-main .page-title .row-inner .columns h1 {
    position: absolute;
    width: 500px;
    bottom: calc(-50px);
    left: calc( 50% - 250px);
    padding: 20px;
    background-color: #818E79;
    color: #fff;
    text-align: center;
}
body.blog .site-main .page-content{ padding: 60px 0px 40px;}
.page-content.archive .post .post-content h3{
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    margin: 0 0 5px;
    color: #333;
}
.page-title h2{ font-size: 24px;}
.page-title h3{ margin-bottom: 5px; letter-spacing: 0.5px;}
.page-title p{ color: #fff; margin-bottom: 40px;}
.page-title a{ margin-right:20px;}
.page-title a:last-of-type{ margin-right:0px;}
.page-title{ position: relative; }
.page-title::before{ display: block; position: absolute; height: 100%; width: 100%; background-color: rgba(0,0,0,0.2);}
.clear{ clear: both;}
.row{ background-repeat:no-repeat; background-size:cover; background-position:center center; position: relative;}
.row.slide{ background-position:bottom center; }
.row.bg-texture{ background-repeat:repeat; background-size:10px; background-position:top left;}
.row .row-inner{ width:100%; max-width:1200px; margin:0 auto; position: relative; }
.row .row-inner::after{ display: block; content: ""; clear: both;}
.row .mask{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; background:rgba(0,0,0,0.8);}
.row.full-width .row-inner{ max-width:100%;}

.full-width .row .row-inner{ width:100%; max-width:1200px; }
.parallax .parallax-window .row-inner{position: relative; z-index: 2;}
.column_1-1{ width:100%; }
.column_1-2{ width:48%; }
.column_1-3{ width:30.6666%; }
.column_2-3{ width:65.3333%;}
.column_1-4{ width:22%;}
.column_3-4{ width:74%;}
.column_1-5{ width:16.8%; }
.column_2-5{ width:37.6%; }
.column_3-5{ width:58.4%; }
.column_4-5{ width:75.2%; }
.column_1-6{ width:13.333%; }
.column_5-6{ width:82.666%; }

.columns{ margin-bottom:20px; margin-right:4%; float:left;}
.columns p:first-child{ margin-bottom:0px;}
.row .row-inner p{ margin-bottom:20px;}
.row .row-inner p:last-of-type{ margin-bottom:0px;}
.columns.last{ margin-right:0 !important; margin-left:0 !important;}

.column_1-2.margin0{ width:50%;  }
.column_1-3.margin0{ width:33.0333%; }
.column_2-3.margin0{ width:66.666%; }
.column_1-4.margin0{ width:25%; }
.column_3-4.margin0{ width:75%; }
.column_1-5.margin0{ width:20%; }
.column_2-5.margin0{ width:40%; }
.column_3-5.margin0{ width:60%; }

.column_1-2.margin5{ width:calc(50% - 2.5px); }
.column_1-3.margin5{ width:calc(33.333% - 3.333px); }
.column_2-3.margin5{ width:calc(66.666% - 1.666px); }
.column_1-4.margin5{ width:calc(25% - 3.75px); }
.column_3-4.margin5{ width:calc(75% - 1.25px);  }
.column_1-5.margin5{ width:calc(20% - 4px);  }
.column_2-5.margin5{ width:calc(40% - 3px);}
.column_3-5.margin5{ width:calc(60% - 2px); }

.column_1-2.margin10{ width:calc(50% - 5px);  }
.column_1-3.margin10{ width:calc(33.333% - 6.666px); }
.column_2-3.margin10{ width:calc(66.666% - 3.333px);}
.column_1-4.margin10{ width:calc(25% - 7.5px); }
.column_3-4.margin10{ width:calc(75% - 2.5px); }
.column_1-5.margin10{ width:calc(20% - 8px); }
.column_2-5.margin10{ width:calc(40% - 6px); }
.column_3-5.margin10{ width:calc(60% - 4px); }

.column_1-2.margin20{ width:calc(50% - 10px);  }
.column_1-3.margin20{ width:calc(33.333% - 13.333px); }
.column_2-3.margin20{ width:calc(66.666% - 6.666px);}
.column_1-4.margin20{ width:calc(25% - 15px); }
.column_3-4.margin20{ width:calc(75% - 5px); }
.column_1-5.margin20{ width:calc(20% - 16px); }
.column_2-5.margin20{ width:calc(40% - 12px); }
.column_3-5.margin20{ width:calc(60% - 8px); }

.columns.margin0{ margin-bottom:0px; margin-right: 0px;}
.columns.margin5{ margin-bottom:5px; margin-right: 5px;}
.columns.margin10{ margin-bottom:10px; margin-right: 10px;}
.columns.margin20{ margin-bottom:20px; margin-right: 20px;}

.columns img{ width:auto; max-width:100%; height:auto; vertical-align:top;}

.row.padding0 .row-inner{ padding-top: 0; padding-left: 0; padding-right: 0; padding-bottom: 0;}

.same-height.row{ height:100%; min-height:100%;}
.same-height.row .row-inner{ display:table;height:100%;}
.same-height.row .row-inner .columns{ display:table-cell; height:100%; margin-right: 0px; float: none; vertical-align: middle; position: relative;}
.same-height.row .row-inner .columns.column_1-2{ width:50%;}
.same-height.row .row-inner .columns.column_1-3{ width:33.333%;}
.same-height.row .row-inner .columns.column_2-3{ width:66.666;}
.same-height.row .row-inner .columns.column_1-4{ width:25%;}
.same-height.row .row-inner .columns.column_1-5{ width:20%;}
.same-height.row .row-inner .columns.column_2-5{ width:40%;}
.same-height.row .row-inner .columns.column_3-5{ width:60%;}

.same-height.row .row-inner .columns p{ margin-bottom:20px;}
.same-height.row .row-inner .columns p:last-of-type{ margin-bottom:0px;}
.same-height.row .row-inner .columns .inner-box p:last-of-type{ margin-bottom:20px;}

.flex.row .row-inner{ display:flex; }
.flex.row.reverse .row-inner{ flex-direction: row-reverse;}

table td, table th{ border:none; }
table tbody>tr:nth-child(odd)>td, table tbody>tr:nth-child(odd)>th{ background-color: transparent;}
.sticky-100{
    position: sticky; top: 100px;}
@media (max-width: 1024px){
	
	.columns{ width: 100% !important; margin-right: 0px; padding-left: 20px; padding-right: 20px;}
  
}

body.single-collection .site-main{ max-width: 100% !important;}

/* FOOTER */
#site-footer{ margin-top: 0px; max-width: 100%; background-color: var(--ild-card);padding:0px 20px; }
.elementor-section.elementor-section-boxed>.elementor-container.footer-area{ max-width: 100%;  padding:60px 0px;  }
.site-footer .footer-area .row, .footer-copyright .row{ max-width: 100%; width: 100%; margin: 0 auto; padding: 0; align-items:start;}
.site-footer .footer-area{ background-position: center; background-size: cover;}
.footer-area .row{display:flex; }
.footer-area .row > div{ width: 20%;}
.footer-area .row > div:first-of-type{ }
.footer-area .footer_widget{}
.footer-area .footer_widget svg{ max-width:250px; width:100%; height:auto; }
.footer-area .footer_widget svg g path{ fill:#fff !important;}
.footer-area h4, .footer-area p, .footer-area ul li, .footer-area a, .footer-area i{ color: var(--ild-grey-light);  }
.footer-area h4, .footer-area p{ margin-top: 0; margin-bottom: 20px;}
.footer-area a:hover{ color: #FDFCF9;}
.footer-area ul{ list-style: none; padding-left: 0;}
.footer-area ul li{ line-height: 28px; margin-bottom: 0px; }
/*.footer-area ul li::before{ display:inline-block; content: ""; width: 5px; height: 1px; margin-right: 5px;background-color:#fff; vertical-align: middle; transition: all ease-in-out .3s;}
.footer-area ul li:hover::before{ width: 15px; }*/
.footer-area h4{ font-family:"Cormorant Garamond", sans-serif; font-size:1rem; color: var(--ild-gold); }
.footer-area p, .footer-area ul li, .footer-area a{ font-family:"DM Sans", sans-serif; font-size: 0.8rem !important;}
.footer-area a{ }
.footer-area .elementor-column{ justify-content:center;}
.social-footer a{ display: flex; align-items:center;  justify-content:center; margin-bottom: 10px; text-decoration:none;}
.social-footer a i{ font-size: 24px; width: 30px; text-align: center;}
.social-footer a span{display:none;}
.footer-copyright{ }
.footer-copyright .row{ display:flex; justify-content: space-between; border-top:1px solid rgba(255,255,255,.4); padding: 15px 0; text-align:center;}
.footer-copyright p{ font-size: 12px; text-align: center;  color:rgba(255,255,255,.4); }
.footer-copyright p a{ color:rgba(255,255,255,.4) }
body #cookie-law-info-bar {  padding: 15px 21%;}

.footer-mobile-menu{ position: fixed; z-index: 1000; bottom: 0; width: 100%; padding:0; display: none; background-color: #818E79; border-top: 1px solid #fff; }
.footer-mobile-menu .mobile_menu_button{ top:inherit; right: inherit; bottom: 0; left: calc(50% - 28px); background-color: #818E79; border:1px solid #fff;}
.footer-mobile-menu .whatsapp, .footer-mobile-menu .book-tel{ float: left; min-height: 40px; width: calc(50% - 28px); text-align: center; display: flex; align-items: center;  justify-content: center; }
.footer-mobile-menu .book-tel{ float: right;}
.footer-mobile-menu .whatsapp{ }
.footer-mobile-menu div i{ display: inline-block;  vertical-align: middle; margin-right: 10px; font-size: 24px; color: #fff;}
.footer-mobile-menu .whatsapp i{ font-size: 30px;}
.footer-mobile-menu .book-tel span{ display: inline-block;  vertical-align: middle; width: 80px; font-size: 16px;color: #fff;  text-align: left; }

.widget-logo-column{display: flex;  align-items: center; height: 100%;}
.widget-copy{ width:100%; margin-top:50px; }
.widget-copy p{ font-size:1rem;}

.grecaptcha-badge { visibility: hidden; }
@media (max-width: 1024px){
	#site-footer{ padding-bottom:45px;}
	.footer-mobile-menu{ display: block; }
	.grecaptcha-badge{ bottom:90px !important; }
	.widget-logo-column{ display:none ; height: auto;}
    .footer-area .row, .footer-copyright .row{ flex-direction: column;}
    .footer-area .row > div{ width: 100%;}
}

/* CONTENUTO */
h1.rs-layer-static{ text-shadow: 1px 1px 4px #000;}
.elementor-button.elementor-size-md{ text-transform: uppercase;}

.link-tours .elementor-element .elementor-widget-text-editor{ opacity:0; visibility:hidden; height:0; transition:all ease-in-out .3s;}
.link-tours .elementor-element:hover .elementor-widget-text-editor{ opacity:1; visibility:visible; height:50px; }



.booking-form{
	    position: sticky;
    top: 250px;
    box-shadow: 1px 1px 3px #ddd
}

#sunset-tour-form, #day-tour-form{ display:none;}
.booking-cta{ position:fixed; opacity:0; bottom:-100px; z-index:999; transition: all ease-in-out .3s;}
.booking-cta.show{ opacity:1; bottom:0px; }
.booking-cta p{ margin-bottom:0;}
.text-white h1, .text-white h2, .text-white h3, .text-white h4, .text-white h5, .text-white h6, .text-white p{ color: #fff;}
#wpsl-widget-form label{ margin-bottom:10px; color: #000; }
#wpsl-widget-form p{ display:inline-block; width: 70%;}
#wpsl-widget-form p:last-of-type{ width: 25%;}
#wpsl-widget-form input[type=submit], #wpsl-widget-form input[type=text]{ color: #000; border:none; border-radius: 0px;}
#wpsl-widget-form input[type=submit]{  font-family: Font Awesome\ 5 Free;  font-weight: bold; border:1px solid;}
#wpsl-widget-form input[type=submit]:hover{ color: #fff; background-color: #000; }


.text-over-img{}
.text-over-img a, .text-over-img span{ display: inline-block; position: absolute; padding: 15px; border:1px solid #fff; background-color: rgba(0,0,0,0.7); color:#fff; text-transform: uppercase; cursor:pointer;  left: calc(50% - 90px); z-index: 999;
  transition: all ease-in-out .3s;}
.text-over-img span.active{ margin-top:-50px;}
.text-over-img p{ display: block; opacity: 0; color: #fff; text-shadow: 1px 1px 1px #000; padding: 20px 20% 0; transition: opacity ease-in-out .3s;}
.text-over-img p:first-of-type{ display: block; opacity: 1; padding-top: 0; }
.text-over-img p.active{ opacity: 1;}

.bg-left .elementor-container::before{ content:""; position:absolute; width: 70vw; height:100%; background-color:#766049; top:60px; left:115px;}
.bg-right .elementor-container::before{ content:""; position:absolute; width: 70vw; height:100%; background-color:#766049; top:60px; right:85px;}
.bg-half-right .elementor-container::before{ content:""; position:absolute; width: 50vw; height:85%; ckground-color:#766049; top:140px; right:0;}
.bg-half-right.event .elementor-container::before{ background-color:#8690C7;}

.title-bg{ background-color:#C23C8E; margin-left: -125px;  margin-bottom: 40px; z-index:5;}
.title-bg.right{ margin-left:auto; margin-right: -125px; }
.title-bg .elementor-widget-container{ padding: 20px 40px;}
.elementor-widget-wrap>.elementor-element.title-bg{ width: auto;}
.scroll-down{ cursor:pointer;}
.scroll-down a{ display: block; height: 150px; width: 50px; margin: 0 auto; z-index: 1;}
.scroll-down::before{ content:""; z-index:9; bottom:0px; }
.scroll-down::before{  width:1px; height:100px; background-color:#fff; position:absolute; left:calc( 50% - 1px ); animation: elasticus 2s cubic-bezier(1, 0, 0, 1) infinite;  }

@-webkit-keyframes elasticus {
    0% {
        -webkit-transform-origin: 0% 0%;
        -ms-transform-origin: 0% 0%;
        -moz-transform-origin: 0% 0%;
        -o-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(1, 0);
        -ms-transform: scale(1, 0);
        -moz-transform: scale(1, 0);
        -o-transform: scale(1, 0);
        transform: scale(1, 0);
    }
    50% {
        -webkit-transform-origin: 0% 0%;
        -ms-transform-origin: 0% 0%;
        -moz-transform-origin: 0% 0%;
        -o-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        transform: scale(1, 1);
    }
    50.1% {
        -webkit-transform-origin: 0% 100%;
        -ms-transform-origin: 0% 100%;
        -moz-transform-origin: 0% 100%;
        -o-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        transform: scale(1, 1);
    }
    100% {
        -webkit-transform-origin: 0% 100%;
        -ms-transform-origin: 0% 100%;
        -moz-transform-origin: 0% 100%;
        -o-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(1, 0);
        -ms-transform: scale(1, 0);
        -moz-transform: scale(1, 0);
        -o-transform: scale(1, 0);
        transform: scale(1, 0);
    }
}

@media (max-width: 1024px){
	.bg-left .elementor-container::before, .bg-right .elementor-container::before{ width:95%; left:2.5%; right:inherit; }
	.bg-half-right .elementor-container::before{ width: 100vw; height:50%; top:inherit; bottom:0; right:0;}
	.scroll-down{ display:none; }
	.title-bg { margin-top: -85px; margin-left: 0;  }
	.title-bg.right{margin-right:inherit;}
}

.elementor-widget-text-editor ul, .elementor-widget-text-editor ol{ margin-bottom:20px;}
/*.elementor-widget-text-editor ul{ list-style: none; padding-left: 0;}
.elementor-widget-text-editor ul li{ line-height: 28px; margin-bottom: 0px; }
.elementor-widget-text-editor ul li::before{ display:inline-block; content: ""; width: 5px; height: 1px; margin-right: 5px;background-color:#EE7A9F; vertical-align: middle; transition: all ease-in-out .3s;}
.elementor-widget-text-editor ul li:hover::before{ width: 15px; }*/

/****** SLIDER *****/

.slider.fullscreen{ display: flex; align-items: center; text-align: center; justify-content: center;}
.slider.fullscreen .static-item{ position: absolute; z-index: 995;}
.slider.fullscreen .static-item h1, .slider.fullscreen .static-item h2, .slider.fullscreen .static-item p, .slider.fullscreen .static-item a{ color:#000;}
.slider.fullscreen .static-item a{ display: inline-block; min-width: 150px; padding:10px; border:1px solid #000; margin-right: 5px;}
.slider.fullscreen .static-item h1, .slider.fullscreen .static-item h2, .slider.fullscreen .static-item p{text-shadow: 1px 1px 5px #000;}
.slider.fullscreen .static-item p a:last-of-type{margin-right: 0;}
.slider.fullscreen .static-item p:last-of-type{ margin-top: 80px;}
.slider.fullscreen .owl-carousel .owl-item::before{ position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; opacity: 0.7;}
.owl-carousel .owl-stage-outer{ margin-bottom: 5px;}
.owl-carousel.related-product-gallery .owl-stage-outer{ border: none;}
.owl-carousel.related-product-gallery .owl-nav{ display: block !important;}
.owl-thumbs button{ width: 49px; height: auto; padding: 0; border-color: #ddd; margin: 0 5px 5px 0; border-radius: 0; border: 1px solid #fff;  }
.owl-thumbs button.active { border: 1px solid #000; }
.owl-thumbs button img{ transition: all ease-in-out .3s;}
.owl-thumbs button.active img{ opacity: 0.5; }
.owl-theme .owl-nav{  position: absolute; width: 100%; top: 45%;}
.owl-theme .owl-nav [class*=owl-]{  position: absolute; outline:none; }
.owl-theme .owl-nav [class*=owl-]:hover{     background-color: transparent !important;  color: #000 !important;  text-decoration: none;}
.owl-carousel .owl-nav button.owl-prev{ left: -40px; }
.owl-carousel .owl-nav button.owl-next{ right: -40px; }
.owl-theme .owl-nav [class*=owl-] i{ font-size: 28px; color: #000;}

.owl-carousel .item.flex{ display: flex; }
.owl-carousel .item.flex .item-text{ display: flex; flex-direction: column; justify-content: center;}
.owl-carousel .item.flex .item-text a{ color:#000; text-decoration: underline;}
.owl-carousel .item .item-image{display: flex; flex-direction:column; align-items: center; margin-bottom: 40px;font-size: 26px;  text-align: center;}
.owl-carousel .owl-item .item .item-image img{ max-height: 350px; width: auto; margin: 0 auto;}
.owl-carousel .owl-item .item .item-image span{ font-size:14px; padding-top:20px;}
.owl-carousel .owl-item .item .columns.item-image img{ max-height: 175px; width: auto; margin: 0 auto;}
.owl-carousel .item .item-text h3{ font-size: 26px; }

.owl-carousel.fullscreen .owl-slide {
 height: 100vh;
}

.owl-carousel.fullscreen.owl-theme .owl-nav [class*=owl-] i{ color:#fff;}

.lista-workshop h2{
    padding-left: calc((100vw - 1200px)/2);
}

.products-slider .owl-theme .owl-nav { position: absolute; width: 150px; top: -50px; right: calc((100vw - 1200px)/2);}
.products-slider .owl-carousel .owl-nav button.owl-next, .workshop-slider.owl-carousel .owl-nav button.owl-prev, .workshop-slider.owl-carousel button.owl-dot{outline: none; box-shadow: none;}

.owl-theme .owl-nav [class*=owl-] i{ color:#000;}

.products-slider .owl-nav {
    position: absolute;
    width: 160px;
    top: -50px;
    right:0;
	margin-top:0;
}

.products-slider .owl-nav [class*=owl-] {
    position: absolute
}

.products-slider .owl-nav [class*=owl-]:hover {
    background-color: initial!important;
    color: #000!important;
    text-decoration: none
}

.products-slider .owl-nav button.owl-prev {
    left: 0
}

.products-slider .owl-nav button.owl-next {
    right: 0
}

.products-slider .owl-nav [class*=owl-] i {
    font-size: 28px;
    color: #000;
}
.products-slider .item .post-content h3, .sector-in-prod .post .post-content .title h4{ font-family:"Electrolize",sans-serif; font-size:1.3rem; color:#000; text-align:center;}
.owl-carousel.project-slider{ }
.owl-carousel.project-slider .owl-nav button.owl-next i, .owl-carousel.project-slider .owl-nav button.owl-prev i{ font-size:26px; color:#fff; }

.variant-gallery .item .namevariant{ position: absolute; padding: 5px 0; text-align: center; width: 100%; bottom:0;  background: rgba(0,0,0,0.5);}
.variant-gallery .item .namevariant span{ font-size: 16px; color: #fff;}

.slider.default .gallery .gallery-item{ padding: 0 20px 20px 0;}
.elementor-image-gallery .gallery-item img { }
.gallery-container .slider{ display: none;}
.gallery-container .slider.active{ display: block;}
.link-galleria{ text-transform: uppercase;}
.link-galleria.active{ background-color: #fff; color:#000; }

.gallery{ font-size:0; margin-bottom:20px; }
.gallery .gallery-item{ display:inline-block; margin:0; padding:0 5px;}
.gallery.gallery-columns-4 .gallery-item{ width:25%; }

@media (max-width: 2000px){
  .owl-carousel .owl-nav button.owl-prev{ left: 40px; }
  .owl-carousel .owl-nav button.owl-next{ right: 40px; }
}

@media (max-width: 1200px){
  .owl-carousel .owl-nav button.owl-prev{ left: 0;}
  .owl-carousel .owl-nav button.owl-next{ right: 0;}
  .elementor-image-gallery .gallery-item img { max-width: 235px !important; }
	.workshop-slider.owl-theme .owl-nav{ width:80px; right:0;}
}
@media (max-width: 1024px){
	.products-slider .owl-nav{ width:85px;}
}
@media (max-width: 768px){
  .slider.fullscreen{ display: block; }
  .slider.fullscreen .static-item{ position: relative; padding: 20px;}
  .slider.fullscreen .static-item h1, .slider.fullscreen .static-item h2, .slider.fullscreen .static-item p, .slider.fullscreen .static-item a{ color: #000 !important; text-shadow: none;}
  .slider.fullscreen .static-item a{ border-color: #000 !important; margin-bottom: 20px;}
  .slider.fullscreen .static-item a:hover{ background-color: #000; color: #fff !important; }
  .owl-thumbs button{ width: 27px;}
  .link-galleria{ margin-bottom: 10px; margin-right: 0;}
  .slider.default .gallery .gallery-item{ padding: 0;}
  .owl-carousel .item.flex, .owl-carousel .item.flex .item-text{ display: block; text-align: center; }
  .owl-carousel .owl-item .item .item-image img {  max-width: inherit; max-height: 150px; width: auto; }
  .owl-carousel .owl-nav button.owl-prev{ left:0px;}
  .owl-carousel .owl-nav button.owl-next{ right:0px;}
}

/***** PRODUCT CAROUSEL ********/
.product-carousel{ position:relative; }
.product-carousel::before{ content:""; position:absolute; top:40%; left:0; width:100%; height:70%; z-index:-1; background-color:#f2f2f2;  }
.product-carousel .product-carousel-container{ width:100%; max-width:1140px; margin:0 auto;}
.product-carousel .product-carousel-container .product .info{ padding:20px; background-color:#ffffff; text-align:center; }
.product-carousel .product-carousel-container .product .info .post-content .title h4{ margin: 0;}
.product-carousel-container.owl-theme .owl-nav [class*=owl-] i{ color:#fff; }
/***** PRODUCT ********/

.product-link{ padding:0 20px 0 0; list-style:none;}
.product-link li{ padding:10px; background-color:#ffffff; transition:all ease-in-out .3s;}
.product-link li.active, .product-link li:hover{ background-color:#6AA573; }
.product-link li a{ display:block;}
.product-link li a img{ display:inline-block; vertical-align:middle; max-width:105px; margin-right:10px;}
.product-link li a span{ display:inline-block; vertical-align:middle;}

.container-product{ border-left: 1px solid #6AA573; }
.container-product .elementor-column-wrap .elementor-widget-wrap .product{ display:none;}
.container-product .elementor-column-wrap .elementor-widget-wrap .product.active{ display:block;}

.list-product-link{ margin-bottom: 40px;}
.list-product-link ul{ text-align: center; list-style: none;}
.list-product-link li{ display: inline-block; margin-right: 20px;}
.list-product-link li:last-of-type{ margin-right: 0;}
.list-product-link li a{ padding: 20px; border:1px solid #000; color: #000; transition: all ease-in-out .3s;}
.list-product-link li a.active, .list-product-link li a:hover{ background-color: #000; color: #fff;}
.product-gallery{ display: none; }
.product-gallery.active{ display: block; }
.product-gallery .product-description{ margin-bottom: 40px; padding: 0 20%; text-align: center;}

.product-item{ padding: 10px; background-color:transparent; border: 1px solid transparent; transition: all ease-in-out .3s; }
.product-item:hover{ background-color:#849286; border-color: #000;}
.product-item img{ padding: 20px; }

.woocommerce ul.products li.product .onsale, .woocommerce span.onsale{
    top: 0;
    right: 0;
    left: auto;
    margin: 0;
    width: 93px;
    height: 35px;
    line-height: 1.2;
    word-break: break-word;
    display: flex;
    align-items: center;
    background-color: #750000;
    border-radius: 0;
    justify-content: center;
    padding: 0 10px;
}
.woocommerce span.onsale{ right:inherit; left:0; margin: -1.5em 0 0 -1.5em; z-index:1;}
@media (max-width: 768px){

 	.dishes-list { padding-left: 0; }
	.product-link{ }
	.product-link li{ float:left; width:50%;}
	.product-link li a{ text-align:center; }
	.product-link li a img{ margin: 0 0 10px 0; }
	.product-link li a span{ font-size: 13px; }
	.container-product{ border-left:none; }
	#prodotti{ visibility: hidden;  height: 1px !important;  padding: 0; }
}

/****** POST *****/
body.single-post{ background-color: var(--ild-dark-deep);}
body.post-type-archive .site-main, body.tax-event-category .site-main, body.category .site-main{ max-width: 100%;}
body.post-type-archive .site-main .page-content, body.tax-event-category .site-main .page-content, , body.category .site-main .page-content{ max-width: 1140px; margin: 0 auto; padding: 60px 0;}

body.post-type-archive .site-main .page-title .row-inner, body.tax-event-category .site-main .page-title .row-inner, body.category .site-main .page-title .row-inner{ height: 75vh;}
body.post-type-archive .site-main .page-title h1, body.tax-event-category .site-main .page-title h1, body.category .site-main .page-title h1{
    position: absolute;
    width: 500px;
    bottom: calc(-50px);
    left: calc( 50% - 250px);
    padding: 20px;
    background-color: #8690C7;
    color: #fff;
    text-align: center;
  }
.terms-link{ list-style: none; display: flex; justify-content: center; gap:10px; }
.terms-link li a{ position: relative;color: #8690C7; text-decoration: none;}
.terms-link li a::after{ content: ""; position: absolute; bottom: -4px; left: 0; height: 1px; width: 0; background-color: #8690C7; transition: all ease-in-out .3s;}
.terms-link li a:hover::after{ width: 100%; }
.page-content.archive .post{ background-color: #f2f2f2; }
.page-content.archive .post .post-content{ padding: 20px;}
.page-content.archive .post .post-content h3{ margin: 0; }
.page-content.archive .post .post-content h3 a{ color:#000; }

.post-list .post .post-content{ background-color:#37725e; padding: 20px;}
.post-list .post .post-content h4, .post-list .post .post-content a, .post-list .post .post-content p{ color:#fff; }
.post-list .post .post-content a.read-more{ text-decoration:underline; }
.single-post h1, .single-workshop h1{ font-size:2.3rem;}
.single-post *{color:#ffffff;}
.post .post-header, .workshop .post-header { padding-top: 60px; padding-bottom: 20px;}
.post .post-header .columns, .workshop .post-header .columns{ padding:10px; }
.post .row.content, .workshop .row.content{ padding-top:40px; padding-bottom:40px;}
.post .post-content{}
.sidebar .widget{ background-color: #f2f2f2; padding: 20px; margin-bottom: 20px;}
.sidebar .widget a{ color: #000;}
.sidebar .widget .widget-title{ font-size:1.5rem; }
.widget .search-form{ font-size:0;}
.widget .search-form input[type=search]{ border-radius: 0;}
.widget .search-form button{ display:inline-block; vertical-align:middle; width:auto; min-width:50px; border:none;}

.workshop .row.content .date{ width: auto; position: absolute; top: -80px; left: 12px; background-color: #37725e; padding: 20px;}
.workshop .row.content .date span{ color:#fff; font-size:1.3rem;}
.workshop-subscriprion{ padding:10px;}

/* ============================================================
   I LOVE DISCO — BUTTON STYLES
   Dipendenze: variables.css deve essere caricato prima.
   ============================================================ */

/* ── BASE ───────────────────────────────────────────────────
   Stile di reset condiviso da tutti i bottoni .btn
   ─────────────────────────────────────────────────────────── */
.btn {
    display:          inline-flex;
    align-items:      center;
    justify-content:  center;
    gap:              10px;
    position:         relative;
    overflow:         hidden;

    font-family:      var(--ild-font-sans);
    font-size:        var(--ild-size-xs);
    font-weight:      var(--ild-weight-bold);
    letter-spacing:   var(--ild-ls-wide);
    text-transform:   uppercase;
    text-decoration:  none;
    white-space:      nowrap;
    line-height:      1;

    padding:          14px 36px;
    border-radius:    var(--ild-radius);
    border:           var(--ild-border-width) solid transparent;
    cursor:           pointer;
    outline:          none;
    -webkit-appearance: none;
    appearance:       none;
    transition:
            background-color  0.3s ease,
            border-color      0.3s ease,
            color             0.3s ease,
            box-shadow        0.3s ease,
            transform         0.25s ease;
}

.btn:focus-visible {
    outline: 2px solid var(--ild-gold);
    outline-offset: 3px;
}

.btn:active {
    transform: translateY(1px);
}

/* Icona opzionale */
.btn svg,
.btn i {
    font-size: 14px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}
.btn:hover svg,
.btn:hover i {
    transform: translateX(3px);
}

/* ── SHIMMER EFFECT (base per .btn con ::before) ─────────── */
.btn::before {
    content:    '';
    position:   absolute;
    top:        0;
    left:       -100%;
    width:      60%;
    height:     100%;
    background: linear-gradient(
            120deg,
            transparent 0%,
            rgba(255, 255, 255, 0.12) 50%,
            transparent 100%
    );
    transition: left 0.55s ease;
    pointer-events: none;
}
.btn:hover::before {
    left: 160%;
}

/* ── .btn.outline (default, bordo oro) ──────────────────────
   Bottone secondario: trasparente con bordo oro
   ─────────────────────────────────────────────────────────── */
.btn.outline,
.btn:not(.primary):not(.cta):not(.ghost):not(.danger) {
    background-color: transparent;
    color:            var(--ild-gold);
    border-color:     var(--ild-gold);
}
.btn.outline:hover,
.btn:not(.primary):not(.cta):not(.ghost):not(.danger):hover {
    background-color: var(--ild-gold);
    color:            var(--ild-black);
    box-shadow:       var(--ild-shadow-gold);
    transform:        translateY(-2px);
}

/* ── .btn.primary ───────────────────────────────────────────
   Bottone principale: oro pieno con testo nero
   ─────────────────────────────────────────────────────────── */
.btn.primary {
    background-color: var(--ild-gold);
    color:            var(--ild-black);
    border-color:     var(--ild-gold);
    font-weight:      var(--ild-weight-bold);
}
.btn.primary:hover {
    background-color: var(--ild-gold-light);
    border-color:     var(--ild-gold-light);
    color:            var(--ild-black);
    box-shadow:       var(--ild-shadow-gold);
    transform:        translateY(-2px);
}
.btn.primary:active {
    background-color: var(--ild-gold);
    transform:        translateY(0);
}

/* Variante scura: sfondo nero con testo oro */
.btn.primary.dark {
    background-color: var(--ild-black);
    color:            var(--ild-gold);
    border-color:     var(--ild-gold);
}
.btn.primary.dark:hover {
    background-color: var(--ild-gold);
    color:            var(--ild-black);
}

/* ── .btn.cta ───────────────────────────────────────────────
   Call to action principale: magenta pieno, massima attenzione
   ─────────────────────────────────────────────────────────── */
.btn.cta {
    background-color: var(--ild-magenta);
    color:            var(--ild-white-pure);
    border-color:     var(--ild-magenta);
    font-weight:      var(--ild-weight-bold);
    padding:          16px 25px;
    font-size:        11px;
    letter-spacing:   var(--ild-ls-wider);
    box-shadow:       0 0 0 0 var(--ild-magenta-alpha);
}
.btn.cta:hover {
    background-color: var(--ild-magenta-dark);
    border-color:     var(--ild-magenta-dark);
    box-shadow:       var(--ild-shadow-magenta), 0 6px 20px rgba(255, 0, 255, 0.30);
    transform:        translateY(-3px);
}
.btn.cta:active {
    background-color: var(--ild-magenta);
    transform:        translateY(0);
    box-shadow:       none;
}

/* Pulsazione glow per la CTA (usala su eventi importanti) */
.btn.cta.pulse {
    animation: ild-pulse 2.5s ease-in-out infinite;
}
@keyframes ild-pulse {
    0%, 100% { box-shadow: 0 0 0 0   rgba(255, 0, 255, 0.45); }
    50%       { box-shadow: 0 0 0 12px rgba(255, 0, 255, 0);   }
}

/* Variante invertita: bordo magenta, sfondo trasparente */
.btn.cta.outline {
    background-color: transparent;
    color:            var(--ild-magenta);
    border-color:     var(--ild-magenta);
}
.btn.cta.outline:hover {
    background-color: var(--ild-magenta);
    color:            var(--ild-white-pure);
    box-shadow:       var(--ild-shadow-magenta);
    transform:        translateY(-2px);
}

/* ── .btn.ghost ─────────────────────────────────────────────
   Bottone minimale: solo testo con freccia animata
   ─────────────────────────────────────────────────────────── */
.btn.ghost {
    background-color: transparent;
    color:            var(--ild-grey);
    border-color:     transparent;
    padding:          8px 0;
    letter-spacing:   var(--ild-ls-wide);
}
.btn.ghost::after {
    content:    '→';
    display:    inline-block;
    margin-left: 6px;
    transition: margin-left 0.3s ease;
}
.btn.ghost:hover {
    color:            var(--ild-gold);
    background-color: transparent;
    transform:        none;
    box-shadow:       none;
}
.btn.ghost:hover::after {
    margin-left: 12px;
}
.btn.ghost::before { display: none; } /* no shimmer sul ghost */

/* ── .btn.danger ────────────────────────────────────────────
   Azioni distruttive: magenta scuro/alert
   ─────────────────────────────────────────────────────────── */
.btn.danger {
    background-color: transparent;
    color:            var(--ild-magenta-light);
    border-color:     var(--ild-magenta-light);
}
.btn.danger:hover {
    background-color: var(--ild-magenta);
    color:            #fff;
    border-color:     var(--ild-magenta);
}

/* ── DIMENSIONI ─────────────────────────────────────────────
   Modificatori opzionali di dimensione
   ─────────────────────────────────────────────────────────── */
.btn.sm {
    font-size:      9px;
    padding:        9px 20px;
    letter-spacing: 2px;
}
.btn.lg {
    font-size:      12px;
    padding:        18px 52px;
    letter-spacing: var(--ild-ls-wider);
}
.btn.full {
    width:   100%;
    display: flex;
}

/* ── STATI ──────────────────────────────────────────────────
   Disabled e Loading
   ─────────────────────────────────────────────────────────── */
.btn:disabled,
.btn.disabled {
    opacity:        0.45;
    cursor:         not-allowed;
    pointer-events: none;
    transform:      none !important;
    box-shadow:     none !important;
}

.btn.loading {
    pointer-events: none;
    opacity:        0.75;
}
.btn.loading::after {
    content:      '';
    display:      inline-block;
    width:        12px;
    height:       12px;
    border:       2px solid rgba(255, 255, 255, 0.30);
    border-top-color: currentColor;
    border-radius: 50%;
    animation:    ild-spin 0.7s linear infinite;
    margin-left:  10px;
    flex-shrink:  0;
}
@keyframes ild-spin {
    to { transform: rotate(360deg); }
}

/* ── GRUPPO BOTTONI ─────────────────────────────────────────
   Affianca più bottoni con gap coerente
   ─────────────────────────────────────────────────────────── */
.btn-group {
    display:     flex;
    gap:         var(--ild-space-sm);
    flex-wrap:   wrap;
    align-items: center;
}
.btn-group.center { justify-content: center; }
.btn-group.right  { justify-content: flex-end; }

/* ── RESPONSIVE ─────────────────────────────────────────────
   Su mobile i bottoni diventano full-width
   ─────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    .btn-group         { flex-direction: column; }
    .btn-group .btn    { width: 100%; justify-content: center; }
}
.btn, .page-title a, .wpcf7-form input[type="submit"]{ display: inline-block; min-width: 180px; padding: 8px 10px; border:1px solid #fff; text-align: center; transition: all ease-in-out .3s; font-size: 18px;  text-transform: uppercase; }
.btn:hover, .page-title a:hover{ background-color:#000; color: #fff; }
.wpcf7-form input[type="submit"]{ background-color:var(--ild-magenta); color: #fff; }
.wpcf7-form input[type="submit"]:hover{ background-color:#fff; color: var(--ild-magenta); }

.btn.black{ color: #000; border-color:#000;}
.btn.black:hover{ color: #fff; background-color:#000;}

.btn.top40{ margin-top: 40px;}

@media (max-width: 768px){
  .btn{ margin-bottom: 10px; }
}

/* FORM */

.post-password-form{ max-width: 600px; margin: 40px auto 0; text-align: center;}
.post-password-form input[type=password]{ margin: 20px 0;}

.wpcf7-form{ }

.wpcf7-form input, .wpcf7-form textarea{ margin-bottom: 0px; border-radius: 0px; border:1px solid #ccc; background-color:#ffffff; font-size: 14px; }
.wpcf7-form select{ background-color:#ffffff; font-size: 14px; border:none; border: 1px solid #ccc; color:#666;}
.wpcf7-form textarea{ max-height: 80px; margin-bottom:0px; }
div.wpcf7 input[type="file"]{ width: 100%; margin-top: 10px; border:none;}
.wpcf7-form input[type="submit"]{ font-size: 16px; width: 100%; border-color:var(--ild-magenta); }
[type=button], [type=button], [type=submit], [type=submit], button, button{ border: 1px solid #AAB7AC; background-color: #AAB7AC; color: #fff; font-weight: bold;}
[type=button]:focus, [type=button]:hover, [type=submit]:focus, [type=submit]:hover, button:focus, button:hover{ background-color: #fff; color: #AAB7AC;}

select{ border-radius: 0px; border-top:none; border-left: none; border-right: none; padding: 10px 5px;  font-size: 14px;}
select option{  font-size: 14px;}
#wpsl-wrap .wpsl-search{ border-radius: 2px;}
.wpcf7-form a{ color:#fff; text-decoration: underline; }
.wpcf7-form label{ color:#fff; margin-bottom: 5px;}
.wpcf7-form .text-black label{color:#fff; }
.wpcf7 .ajax-loader{ position: absolute; }
.wpgdprc span{ font-size: 10px;}
.privacy-checkbox p{ display: flex; gap:10px;}
.wpcf7-acceptance span{ font-size:0.8rem;}

.wpcf7 form .wpcf7-response-output {
    text-align: center;
    margin: 0;
    padding: 0.5rem;
    border: none;
    width: 100%;
}
.wpcf7 form.sent .wpcf7-response-output {
    background-color: #46b450;
    border: none;
    color: #fff;
}
/* ── Wrapper generale ── */
.ild-cf7-wrap,
.wpcf7 {
    width: 100%;
    color: var(--ild-white, #f5f0e8);
    font-family: var(--ild-font-sans, 'DM Sans', sans-serif);
}

/* ── Griglia 2 colonne ── */
.ild-cf7-grid { display: grid; gap: 20px; }
.ild-cf7-grid--2 { grid-template-columns: 1fr 1fr; }

/* ── Campo ── */
.ild-cf7-field {
    display:        flex;
    flex-direction: column;
    gap:            7px;
    margin-bottom:  20px;
}

.ild-cf7-field:last-child { margin-bottom: 0; }

/* ── Label ── */
.ild-cf7-field > label,
.wpcf7 label {
    font-family:    var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color:          rgba(245,240,232,.45);
    line-height:    1;
}

.ild-cf7-field label abbr {
    text-decoration: none;
    color:           var(--ild-magenta, #ff00ff);
    margin-left:     3px;
}

/* ── Hint ── */
.ild-cf7-hint {
    font-size:   11px;
    color:       rgba(245,240,232,.30);
    font-style:  italic;
    line-height: 1.4;
    margin-top:  -4px;
}

/* ── Input, select, textarea ── */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="date"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
    width:            100%;
    background:       var(--ild-card, #111008);
    border:           1px solid rgba(201,168,76,.15);
    color:            var(--ild-white, #f5f0e8);
    font-family:      var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:        14px;
    font-weight:      300;
    padding:          13px 16px;
    outline:          none;
    transition:       border-color .25s, background .25s;
    border-radius:    0;
    appearance:       none;
    -webkit-appearance: none;
    box-sizing:       border-box;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
    border-color: var(--ild-gold, #c9a84c);
    background:   rgba(201,168,76,.04);
}

/* Placeholder */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
    color:   rgba(245,240,232,.20);
    font-style: italic;
}

/* Textarea */
.wpcf7 textarea {
    min-height: 140px;
    resize:     vertical;
    line-height: 1.65;
}

/* Select: freccia custom */
.wpcf7 select {
    background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23c9a84c'/%3E%3C/svg%3E");
    background-repeat:   no-repeat;
    background-position: right 14px center;
    padding-right:       36px;
    cursor:              pointer;
}
.wpcf7 select option{ color: var(--ild-black);}
/* Date input */
.wpcf7 input[type="date"] {
    color-scheme: dark;
}

/* ── File upload ── */
.wpcf7 input[type="file"] {
    width:         100%;
    background:    transparent;
    border:        1px dashed rgba(201,168,76,.25);
    color:         rgba(245,240,232,.50);
    font-family:   var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:     12px;
    padding:       14px 16px;
    cursor:        pointer;
    transition:    border-color .25s;
    box-sizing:    border-box;
}

.wpcf7 input[type="file"]:hover {
    border-color: var(--ild-gold, #c9a84c);
    color:        var(--ild-gold, #c9a84c);
}

.wpcf7 input[type="file"]::file-selector-button {
    background:     var(--ild-gold, #c9a84c);
    color:          #000;
    border:         none;
    padding:        7px 16px;
    font-family:    var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor:         pointer;
    margin-right:   14px;
    transition:     background .25s;
}

.wpcf7 input[type="file"]::file-selector-button:hover {
    background: var(--ild-gold-light, #f0d080);
}

/* ── Divisore sezione ── */
.ild-cf7-divider {
    display:     flex;
    align-items: center;
    gap:         16px;
    margin:      12px 0 24px;
}

.ild-cf7-divider span {
    font-family:    var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 4px;
    text-transform: uppercase;
    color:          var(--ild-white, #c9a84c);
    white-space:    nowrap;
}

.ild-cf7-divider::before,
.ild-cf7-divider::after {
    content:    '';
    flex:       1;
    height:     1px;
    background: rgba(201,168,76,.15);
}

/* ── Checkbox (Privacy / Marketing) ── */
.ild-cf7-field--privacy,
.ild-cf7-field--marketing {
    flex-direction: row;
    align-items:    flex-start;
    gap:            12px;
    margin-bottom:  16px;
}

.ild-cf7-field--privacy label,
.ild-cf7-field--marketing label {
    font-size:      12px;
    letter-spacing: 0;
    text-transform: none;
    font-weight:    300;
    color:          rgba(245,240,232,.60);
    line-height:    1.6;
    cursor:         pointer;
}

.ild-cf7-field--privacy label a,
.ild-cf7-field--marketing label a {
    color:           var(--ild-gold, #c9a84c);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Checkbox custom */
.wpcf7 input[type="checkbox"].ild-cf7-checkbox,
.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
    width:             18px;
    height:            18px;
    min-width:         18px;
    background:        var(--ild-card, #111008);
    border:            1px solid rgba(201,168,76,.25);
    appearance:        none;
    -webkit-appearance: none;
    cursor:            pointer;
    margin-top:        2px;
    position:          relative;
    transition:        background .2s, border-color .2s;
    border-radius:     0;
}

.wpcf7 input[type="checkbox"].ild-cf7-checkbox:checked,
.wpcf7 .wpcf7-acceptance input[type="checkbox"]:checked {
    background:   var(--ild-magenta, #ff00ff);
    border-color: var(--ild-magenta, #ff00ff);
}

.wpcf7 input[type="checkbox"].ild-cf7-checkbox:checked::after,
.wpcf7 .wpcf7-acceptance input[type="checkbox"]:checked::after {
    content:    '✓';
    position:   absolute;
    top:        50%;
    left:       50%;
    transform:  translate(-50%, -50%);
    font-size:  12px;
    color:      #fff;
    line-height: 1;
}

/* ── Submit ── */
.ild-cf7-submit { margin-top: 32px; }

.wpcf7 input[type="submit"].ild-cf7-btn,
.wpcf7 input[type="submit"] {
    display:        inline-flex;
    align-items:    center;
    gap:            8px;
    background:     var(--ild-magenta, #ff00ff);
    color:          #fff;
    border:         none;
    font-family:    var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:      11px;
    font-weight:    700;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding:        16px 48px;
    cursor:         pointer;
    transition:     background .3s, transform .2s;
    border-radius:  0;
    width:          auto;
}

.wpcf7 input[type="submit"]:hover {
    background:  #cc00cc;
    transform:   translateY(-2px);
}

.wpcf7 input[type="submit"]:active {
    transform: translateY(0);
}

/* ── Messaggi CF7 ── */
.wpcf7-response-output {
    font-family:  var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:    13px;
    padding:      14px 18px !important;
    margin:       16px 0 0 !important;
    border:       none !important;
    border-left:  3px solid var(--ild-gold, #c9a84c) !important;
    background:   rgba(201,168,76,.06) !important;
    color:        rgba(245,240,232,.80) !important;
    border-radius: 0 !important;
}

.wpcf7-mail-sent-ok {
    border-left-color: #5bef8a !important;
    background:        rgba(27,174,96,.08) !important;
    color:             #5bef8a !important;
}

.wpcf7-mail-sent-ng,
.wpcf7-aborted,
.wpcf7-validation-errors,
.wpcf7-spam-blocked {
    border-left-color: var(--ild-magenta, #ff00ff) !important;
    background:        rgba(255,0,255,.06) !important;
    color:             rgba(245,240,232,.80) !important;
}

/* ── Errori di validazione sui campi ── */
.wpcf7-not-valid {
    border-color: var(--ild-magenta, #ff00ff) !important;
}

.wpcf7-not-valid-tip {
    font-family:  var(--ild-font-sans, 'DM Sans', sans-serif);
    font-size:    11px;
    color:        var(--ild-magenta, #ff00ff) !important;
    margin-top:   5px;
    display:      block;
}

/* ── Spinner ── */
.wpcf7 .wpcf7-spinner {
    background-color: var(--ild-gold, #c9a84c) !important;
    margin-left:      12px;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .ild-cf7-grid--2 { grid-template-columns: 1fr; }

    .wpcf7 input[type="submit"],
    .wpcf7 input[type="submit"].ild-cf7-btn {
        width:   100%;
        justify-content: center;
    }
}

@media (max-width: 768px){
  .list-product-category .item, .product-list .elementor-container .elementor-row .elementor-column{ float: none; width: 100%; text-align: center;}
  .list-product-category .item.column_6{ width: 100%;}
	.product-content .elementor-element .elementor-row .gallery .elementor-column-wrap{ width:100%;}
	.product-content .elementor-element .elementor-row .elementor-column:last-of-type{ padding:10px 0;}
	body .site-main.product-category, body .site-main.swing-product, .product-category .page-content .elementor-element .elementor-container{ padding:0;}
	.swing-product .page-content .elementor-element .elementor-container{ padding:0 20px;}
	.product-category header.page-header .page-header-content{ padding: 100px 0;}
	.product-category .page-content{ padding:0 20px;}
  .footer-area ul li{ font-size: 15px;}
  .strati-lvt ol{ padding-left: 0;}
  .strati-lvt ol li{ font-size: 16px;}
  .book-table{ display: none;}
}

/* ── Variabili (già presenti nel tema, ridichiarate per sicurezza) */
.texo-cf7-form {
    --tx-dark:   #1C1915;
    --tx-mid:    #6B6259;
    --tx-bronze: #8C7355;
    --tx-sand:   #C8B99A;
    --tx-linen:  #F5F2EC;
    --tx-cream:  #EDE8DF;
    --tx-white:  #FDFCF9;
    --tx-serif:  'Cormorant Garamond', Georgia, serif;
    --tx-sans:   'DM Sans', sans-serif;
    --tx-ease:   .25s cubic-bezier(.4,0,.2,1);

    font-family: var(--tx-sans);
    color: var(--tx-dark);
}

/* ── Layout grid ── */
.texo-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}
@media (max-width: 640px) {
    .texo-form-row { grid-template-columns: 1fr; }
}

.texo-form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 1.25rem;
}
.texo-form-row .texo-form-field {
    margin-bottom: 0;
}

/* ── Label ── */
.texo-form-label {
    font-family: var(--tx-sans);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--tx-mid);
    display: block;
}
.texo-req {
    color: var(--tx-bronze);
    margin-left: 2px;
}

/* ── Input, select, textarea ── */
.texo-cf7-form .texo-input,
.texo-cf7-form .texo-select,
.texo-cf7-form .texo-textarea,
.wpcf7-form .texo-input,
.wpcf7-form .texo-select,
.wpcf7-form .texo-textarea {
    font-family: var(--tx-sans);
    font-size: 14px;
    font-weight: 400;
    color: var(--tx-dark);
    background: var(--tx-white);
    border: 1px solid rgba(28,25,21,.18);
    border-radius: 0;
    padding: 12px 16px;
    width: 100%;
    outline: none;
    transition: border-color var(--tx-ease), box-shadow var(--tx-ease);
    -webkit-appearance: none;
    appearance: none;
    line-height: 1.5;
}

.texo-cf7-form .texo-input:focus,
.texo-cf7-form .texo-select:focus,
.texo-cf7-form .texo-textarea:focus {
    border-color: var(--tx-bronze);
    box-shadow: 0 0 0 3px rgba(140,115,85,.08);
}

.texo-cf7-form .texo-input::placeholder,
.texo-cf7-form .texo-textarea::placeholder {
    color: rgba(28,25,21,.35);
}

/* Select: freccia custom */
.texo-cf7-form .texo-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238C7355' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 40px;
    cursor: pointer;
}

/* Textarea */
.texo-cf7-form .texo-textarea {
    resize: vertical;
    min-height: 130px;
}

/* ── Privacy checkbox ── */
.texo-form-privacy {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: 1.5rem;
    flex-direction: row !important;
}
.texo-form-privacy .wpcf7-form-control-wrap {
    flex-shrink: 0;
    margin-top: 2px;
}
.texo-cf7-form .texo-checkbox,
.texo-cf7-form input[type="checkbox"].texo-checkbox {
    width: 16px;
    height: 16px;
    accent-color: var(--tx-bronze);
    cursor: pointer;
    flex-shrink: 0;
    margin: 0;
}
.texo-privacy-text {
    font-size: 12px;
    color: var(--tx-mid);
    line-height: 1.6;
}
.texo-privacy-text a {
    color: var(--tx-bronze);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.texo-privacy-text a:hover { color: var(--tx-dark); }

/* Acceptance CF7 wrapper */
.texo-form-privacy .wpcf7-acceptance {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}
.texo-form-privacy .wpcf7-acceptance .wpcf7-list-item {
    margin: 0;
}
.texo-form-privacy .wpcf7-acceptance label {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    cursor: pointer;
}
.texo-form-privacy .wpcf7-acceptance label input {
    margin-top: 3px;
    flex-shrink: 0;
    accent-color: var(--tx-bronze);
    width: 16px;
    height: 16px;
}

/* ── Submit ── */
.texo-form-submit {
    margin-top: .5rem;
}
.texo-cf7-form .texo-btn-submit,
.wpcf7-form input[type="submit"].texo-btn-submit {
    font-family: var(--tx-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--tx-white);
    background: var(--tx-dark);
    border: 1px solid var(--tx-dark);
    border-radius: 0;
    padding: 15px 40px;
    cursor: pointer;
    transition: background var(--tx-ease), border-color var(--tx-ease);
    width: 100%;
    display: block;
    -webkit-appearance: none;
    appearance: none;
}
.texo-cf7-form .texo-btn-submit:hover {
    background: var(--tx-bronze);
    border-color: var(--tx-bronze);
}
.texo-cf7-form .texo-btn-submit:disabled,
.texo-cf7-form .texo-btn-submit.wpcf7-submit:disabled {
    opacity: .5;
    cursor: not-allowed;
}

/* ── Messaggi risposta ── */
.texo-form-response { margin-top: 1.25rem; }

/* Successo */
.wpcf7 .wpcf7-response-output {
    font-family: var(--tx-sans);
    font-size: 13px;
    padding: 14px 18px;
    border-radius: 0;
    border: none;
    margin: 1rem 0 0;
}
.wpcf7 .wpcf7-mail-sent-ok,
.wpcf7 form.sent .wpcf7-response-output {
    background: #E8F8F0;
    border-left: 3px solid #27AE60;
    color: #1E8449;
}
/* Errore */
.wpcf7 .wpcf7-validation-errors,
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
    background: #FDEDEC;
    border-left: 3px solid #C0392B;
    color: #922B21;
}
/* Spam */
.wpcf7 form.spam .wpcf7-response-output {
    background: #FEF9E7;
    border-left: 3px solid #D4AC0D;
    color: #7D6608;
}

/* ── Errori di validazione sui singoli campi ── */
.wpcf7-not-valid {
    border-color: #C0392B !important;
    box-shadow: 0 0 0 3px rgba(192,57,43,.08) !important;
}
.wpcf7-not-valid-tip {
    font-family: var(--tx-sans);
    font-size: 11px;
    color: #C0392B;
    margin-top: 5px;
    display: block;
    letter-spacing: .02em;
}

/* ── Spinner di invio ── */
.wpcf7-spinner {
    display: none !important; /* gestiamo noi il feedback */
}
.wpcf7 form.submitting .texo-btn-submit {
    opacity: .7;
    pointer-events: none;
    position: relative;
}
.wpcf7 form.submitting .texo-btn-submit::after {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid rgba(255,255,255,.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: texo-spin .7s linear infinite;
    margin-left: 10px;
    vertical-align: middle;
}
@keyframes texo-spin {
    to { transform: rotate(360deg); }
}
/**** WOOCOMMERCE****/
body.woocommerce-shop .content-area #main{ width:100%; max-width:1200px;}

body.tax-product_cat .content-area .site-main{ max-width:100%;}
body.tax-product_cat .content-area .site-main header{ position:relative; height:75vh; background-position:center; background-size:cover; background-repeat:no-repeat;}
body.tax-product_cat.term-complementi-arredo .content-area .site-main header{ background-position:top center;}
body.tax-product_cat .content-area .site-main header h1{ position:absolute; width:500px; bottom:calc(-50px); left:calc( 50% - 250px); padding:20px; background-color:#ee7a9f; color:#fff; text-align:center;}

body.tax-product_cat .content-area .site-main .container, .post-type-archive .site-main .page-content{ max-width:1140px; margin: 0 auto; padding:60px 0;}

.woocommerce ul.products li.product{ }
.woocommerce ul.products li.product > a{ display:block;  background-color:#000; text-align:center; }
.woocommerce ul.products li.product a img{ margin-bottom:0; opacity:1; transition: all ease-in-out .3s;}
.woocommerce ul.products li.product:hover a img{ opacity:0.6; }
.woocommerce ul.products li.product .product-data{ background-color:#fff; padding: 10px 0; text-align:center;   }
.woocommerce ul.products li.product .product-data h4{font-family: 'Montserrat', sans-serif; font-size: 1.2rem; margin: 0 0 5px; color:#333;}
.woocommerce ul.products li.product .price{ color:#333;}
.woocommerce ul.products li.product .product-data p{ margin: 0;}
.woocommerce ul.products li.product .button{ position:absolute; top:calc(50% - 65px); left:calc(50% - 100px); width:200px; text-align:center; background-color:#fff; border: 1px solid #333; opacity:0; visibility:hidden; font-family: 'Libre Bodoni', serif; font-weight: 500; font-size: 1.2rem; }
.woocommerce ul.products li.product:hover .button{ opacity:1; visibility:visible; }
.woocommerce div.product p.price, .woocommerce .product .woocommerce-variation-price span{ font-size:1.7rem; color:#000 ;}

@media (max-width: 768px){
	body.tax-product_cat .content-area .site-main header h1{ position:absolute; width:100%; bottom:calc(-50px); left:0;}
}

/*PRODUCT LIST */
.tax-product_cat .content-area .site-main .container .filter{ display: flex; justify-content: center;}
.product-category-desc{ background-position:center; background-size:cover; }
.product-category-desc .row-inner, .row.newsletter .row-inner{ padding:60px 0;}
.product-category-desc h2{ color:#fff; text-align: center;}
.product-category-desc p{ color:#fff; }

.row.newsletter h2, .row.newsletter p{ text-align: center;}
@media (max-width: 768px){
	body.tax-product_cat .content-area .site-main header{ height:35vh;}
	.woocommerce ul.products[class*=columns-] li.product:nth-child(2n), .woocommerce-page ul.products[class*=columns-] li.product:nth-child(2n){ clear:}
}
/* PRODUCT */
.woocommerce.single-product .content-area .site-main{ max-width:100%;}
.woocommerce.single-product .content-area .site-main .breadcrumb-container{ margin-bottom:40px; padding:10px 0; background-color:#ee7a9f;  }
.woocommerce .woocommerce-breadcrumb a, .woocommerce .woocommerce-breadcrumb{ font-family: 'Montserrat', sans-serif; font-size:0.8rem; color:#fff;}
.woocommerce.single-product .content-area .site-main .product, .woocommerce.single-product .content-area .site-main .woocommerce-notices-wrapper, .woocommerce.single-product .content-area .site-main .breadcrumb-container .woocommerce-breadcrumb{ max-width:1140px; margin:0 auto;}
.woocommerce.single-product .content-area .site-main .product .container_summary{ display:flex; align-items:center;}
.woocommerce.single-product .content-area .site-main .product .container_summary .woocommerce-product-gallery, .woocommerce.single-product .content-area .site-main .product .container_summary .summary{ width:50%; padding: 10px;}

/*.product_cat-black-friday-2023 .container_summary .summary .woocommerce-Price-amount.amount{ text-decoration:line-through; }
.product_cat-black-friday-2023 .container_summary .summary .woocommerce-Price-amount.amount + span{ text-decoration:none;  font-weight:bold; margin-left:10px;}*/
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins{ text-decoration:none;}
.woocommerce div.product div.summary{ text-align:center;}
.product-type-variable .summary > p.price{ }
.woocommerce div.product form.cart .variations{ margin-bottom:0;}
.woocommerce div.product form.cart .variations th{ display:none;}
.woocommerce div.product form.cart table td{ background-color:transparent; text-align:center; padding-bottom:0;}
.woo-variation-swatches .variable-items-wrapper{ display:flex; justify-content: center;}

.woo-variation-swatches .wvs-style-squared.variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item{ flex:1;}
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item){ box-shadow:var(--wvs-item-box-shadow,0 0 0 1px #000000); }
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item.selected:not(.no-stock){ background-color:#000;}
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item.selected:not(.no-stock) span{ color:#fff;}
.woocommerce div.product form.cart div.quantity{ display:none !important;}
.woocommerce-variation.single_variation{ margin-bottom:20px;}
.woocommerce-variation.single_variation::after{ content:""; display:block; clear:both; }
.single_variation_wrap{ margin-bottom:30px;}
.woocommerce div.product form.cart .single_add_to_cart_button.button{ width:100%; background-color:#000; color:#fff; font-weight: 400; text-transform: uppercase; font-size: 1.1rem;}
.woocommerce div.product form.cart .single_add_to_cart_button.button.disabled{  }

.woocommerce div.product .woocommerce-tabs ul.tabs li, .woocommerce div.product .woocommerce-tabs ul.tabs::before ,.woocommerce div.product .woocommerce-tabs ul.tabs li::after, .woocommerce div.product .woocommerce-tabs ul.tabs li::before{ border-color:#000; border-radius:0;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{ background-color:#fff;}

.related.products{ position:relative; }
.related.products h2{ text-align:center;}
.related.products::before{     content: ""; position: absolute; top: 40%; left: 0; width: 100%; height: 70%; z-index: -1; background-color: #ee7a9f; }
.related.products .container{ max-width:1140px; margin:0 auto;}
.related.products .container .products .product{ margin-right:3.875%;}
.related.products .container .products .product:last-of-type{ margin-right:0px;}

.woocommerce-checkout .col2-set, .woocommerce-page .col2-set, .woocommerce-checkout .woocommerce-checkout-review-order{ float:left; width:50%;}
.woocommerce-checkout .woocommerce-checkout-review-order{ padding:0 10px;}
.woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1, .woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-2{ float:none; width:100%; margin-bottom:20px; padding: 0 10px;}
#order_review_heading{ float:left; padding:0 10px;}

.woocommerce-page .col2-set#customer_login{ float:none; width:100%;}
.woocommerce-page .col2-set#customer_login .col-1, .woocommerce-page .col2-set#customer_login .col-2{ float:left; width:48%;}

.woocommerce #content table.cart td.actions .input-text, .woocommerce table.cart td.actions .input-text, .woocommerce-page #content table.cart td.actions .input-text, .woocommerce-page table.cart td.actions .input-text{ width:200px;}

.woocommerce ul#shipping_method li::before, #add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::after, #add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::before, .woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::after, .woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::before, .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::after, .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before{ content:none;}

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt{ float:none; width:100%; background-color:#C23C8E;}

@media (max-width: 992px){
	.woocommerce-checkout .col2-set, .woocommerce-page .col2-set, .woocommerce-checkout .woocommerce-checkout-review-order{ float:none; width:100%;}
	.woocommerce form .form-row-first, .woocommerce-page form .form-row-first, .woocommerce form .form-row-last, .woocommerce-page form .form-row-last{ float:none; width:100%;}
}

@media (max-width: 768px){
	.woocommerce.single-product .content-area .site-main{ padding:0; }
	.woocommerce.single-product .content-area .site-main .breadcrumb-container, .woocommerce div.product .woocommerce-tabs .panel{ padding:10px;}
	.woocommerce div.product .woocommerce-tabs ul.tabs li { padding: 0px 10px; font-size: 12px; }
	.woocommerce.single-product .content-area .site-main .product .container_summary{ flex-direction:column;}
	.woocommerce.single-product .content-area .site-main .product .container_summary .woocommerce-product-gallery, .woocommerce.single-product .content-area .site-main .product .container_summary .summary { width: 100%; }
	.related.products::before{ top:30%;}
	.related.products .container .products .product{ width:90%; margin:0 auto 20px; float:none; }
	.woocommerce.single-product ul.products[class*=columns-] li.product:nth-child(2n), .woocommerce-page.single-product ul.products[class*=columns-] li.product:nth-child(2n){ float:none; }
	.related.products .container .products .product:last-of-type{ margin-right:auto;}
	.woocommerce ul.products li.product .button{ display:none;}
}

/**** CART & CHECKOUT ****/
.woocommerce .woocommerce-cart-form{ float:left; width:67%; padding:0 10px 0 0;}
.woocommerce .cart-collaterals, .woocommerce-page .cart-collaterals{ float:left; width:33%; padding:0 0 0 10px;}
.woocommerce .cart-collaterals h2, .woocommerce-page .cart-collaterals h2{ display:none;}
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals{ width:100%; }

.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea{ background-color: #f2f2f2; border:none;}
.select2-container--default .select2-selection--single { background-color: #f2f2f2; border: none; border-radius: 0; height: 35px;}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 35px; }
@media (max-width: 992px){
	.woocommerce .woocommerce-cart-form, .woocommerce .cart-collaterals, .woocommerce-page .cart-collaterals{ float:none; width:100%; padding:0;}
	.woocommerce-cart table.cart td.actions .coupon .input-text, .woocommerce-cart table.cart td.actions .coupon .button{ width:100%;}
}

/**** COOKIE BAR ****/
@media (max-width: 768px){

	div.wpgdprc-consent-bar div.wpgdprc-consent-bar__content{ display:block; padding:20px 20px 60px; }
	div.wpgdprc-consent-bar div.wpgdprc-consent-bar__column{ display:inline-block;}
	div.wpgdprc-consent-bar div.wpgdprc-consent-bar__column:first-of-type{ display:block;}
}

.texo-category-grid {display: grid; gap: 2px; }
.texo-category-grid.texo-cols-2 { grid-template-columns: repeat(2,1fr); }
.texo-category-grid.texo-cols-3 { grid-template-columns: repeat(3,1fr); }
.texo-category-grid.texo-cols-4 { grid-template-columns: repeat(4,1fr); }
.texo-category-grid.texo-cols-5 { grid-template-columns: repeat(5,1fr); }
.texo-category-grid.texo-cols-6 { grid-template-columns: repeat(6,1fr); }

@media (max-width: 900px) {
    .texo-category-grid.texo-cols-4,
    .texo-category-grid.texo-cols-5,
    .texo-category-grid.texo-cols-6 { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 500px) {
    .texo-category-grid { grid-template-columns: 1fr !important; }
}

/* ── Il link wrappa tutto: è lui che porta l'aspect-ratio ── */
.texo-cat-item {
    position: relative;
    display: block;
    text-decoration: none;
    /* aspect-ratio sul link diretto — niente position:relative qui */
}

/* ── Wrapper immagine: padding-top trick (universale mobile) ── */
.texo-cat-item__img {
    position: relative;
    width: 100%;
    padding-top: 133%; /* ratio 3:4 → 4/3 * 100 = 133.33% */
    overflow: hidden;
    display: block;
}

.texo-cat-item__img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s ease;
}
.texo-cat-item:hover .texo-cat-item__img img { transform: scale(1.05); }

.texo-cat-item__placeholder {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #EDE8DF, #C8B99A);
}

.texo-cat-item__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28,25,21,.7) 0%, transparent 55%);
    transition: opacity .3s;
}

/* ── Info: position relative all'img wrapper, non al link ── */
.texo-cat-item__info {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 1.25rem;
    z-index: 1;
    /* sta dentro .texo-cat-item__img che è il positioned ancestor */
}

.texo-cat-item__name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.4rem;
    font-weight: 300;
    color: #FDFCF9;
    display: block;
    margin-bottom: .3rem;
    line-height: 1.15;
}
.texo-cat-item__count {
    font-family: 'DM Sans', sans-serif;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
}
/* Fix altezza widget shortcode Elementor con category grid */

.elementor-widget-shortcode:has(.texo-category-grid) {
    display: block;
    width: 100%;
}

.elementor-widget-shortcode:has(.texo-category-grid) .elementor-widget-container {
    display: block;
    width: 100%;
    font-size: 0; /* elimina whitespace inline tra i figli */
}
