/* Energy Consulting - foglio di stile unico del sito.
   Unisce, nello stesso ordine di prima: style-main.css, styles-menu.css, responsive.css, restyle.css, mobile.css.
   Le regole del vecchio tema mai usate dalle pagine sono state tolte. */


/* ==========================================================================
   FOGLIO DI STILE ORIGINALE DEL VECCHIO SITO (IMPAGINAZIONE DI BASE)  (era style-main.css)
   ========================================================================== */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {margin: 0;padding: 0;border: 0;font-size: 100%;vertical-align: baseline;}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {display: block;}
blockquote, q { quotes: none; }
blockquote:before, blockquote:after,
q:before, q:after { content: ""; content: none; }

html {overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }

body
{
   padding: 0;
   margin:0;
   color: #404040;
      font-size: 14px;
   font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
   font-weight: normal;
   font-style: normal;
}
h1 {
	font-size: 20px;
	color: #666;
}
h2 {
	font-size: 18px;
	color: #666;
}
h3 {
	font-size: 16px;
	color: #666;
}
h4 {
	font-size: 14px;
	color: #158ABC;
}
h5 {
	font-size: 9px;
	color: #666;
}
h6 {
	font-size: 8px;
	color: #666;
}
h1,h2,h3,h4,h5,h6 {
	font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
    font-style: normal;
    font-weight: normal;
}

/* ~~ Selettori tag/elemento ~~ */
ul, ol, dl { /* A causa delle differenze tra i browser, è buona norma impostare a zero il margine e la spaziatura interna negli elenchi. Per uniformità, potete specificare qui i valori desiderati, oppure nelle voci di elenco (LI, DT, DD) contenute negli elenchi. Tenete presente che le impostazioni effettuate qui verranno applicate a cascata all'elenco .nav a meno che non scegliate di scrivere un selettore più specifico. */
	padding: 0;
	margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
	margin-top: 0;	 /* La rimozione del margine superiore permette di aggirare il problema che si crea quando i margini possono fuoriuscire dal div che li contiene. Il margine inferiore che rimane permetterà di distanziare gli elementi che seguono. */
 /* L'aggiunta di una spaziatura ai lati degli elementi contenuti nei div, anziché ai div stessi, consente di evitare ogni calcolo matematico relativo ai riquadri. Come metodo alternativo si può anche utilizzare un div nidificato con spaziatura laterale. */
}
a
{
    -webkit-transition: all 0.3s ease-in-out;-moz-transition: all 0.3s ease-in-out;-o-transition: all 0.3s ease-in-out;-ms-transition: all 0.3s ease-in-out;transition: all 0.3s ease-in-out;
}
a img { /* Questo selettore rimuove il bordo blu predefinito visualizzato in alcuni browser intorno a un'immagine quando è circondata da un collegamento.  */
	border: none;
}

/* ~~ L'applicazione di stili ai collegamenti del sito deve rispettare questo ordine, compreso il gruppo di selettori che creano l'effetto hover. ~~ */
a:link {
	color: #009ae1;
	text-decoration: none; /* A meno che non vogliate personalizzare i collegamenti in un modo molto particolare, è bene applicare la sottolineatura per permetterne una rapida identificazione visiva. */
}

a:visited {
	color: #009ae1;
	text-decoration: none;
}
a:hover, a:active, a:focus { /* Questo gruppo di selettori conferisce alla navigazione tramite tastiera gli stessi effetti hover che si producono quando si usa il mouse. */
	text-decoration: none;
	color: #4B942A;
}

/* ~~ Questo contenitore a larghezza fissa circonda gli altri div ~~ */
.container {
	width: 1000px;
	background-color: #ffffff;
	margin: 0 auto; 
}

/* ~~ All'intestazione non viene assegnata una larghezza. Estenderà l'intera larghezza del layout. Contiene un'immagine segnaposto da sostituire con il vostro logo collegato ~~ */
.header 
{
    width:960px;
    float:left;
    padding: 44px 20px 20px 20px;
    height:200px;
}
.logo
{ 
  background:url('images-main/logo-energy.jpg') left no-repeat;
  height:100%;
  z-index: auto;
}

.main
{
    width: 960px;
    float:left;
    padding: 20px 20px 20px 20px;
}
.content
{
    width: 660px;
    float:left;
}
.sidebar
{
    width: 300px;
    float:right;
}

/*vecchio content
.content 
{
	
   background: #FFFFFF;
   margin:0 auto;
   padding-left:30px;
   padding-right:20px;
   margin-top: 10px;
   font-size: 14px;
   font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
   font-weight: normal;
   font-style: normal;
   min-height: 100%;
   left: 0;
   top: 0;
   cursor:default;
   overflow:hidden;
}*/

/*vecchia sidebar
.sidebar1 {
	float: right;
	width: 250px;
	padding-bottom: 10px;
	visibility: visible;
	overflow: hidden;
	font-family:inherit;
	font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
	font-size:12px;
	margin-bottom:5%;
}
*/

.vmenu
{
	display:block;
	clear:both;
}

.block
{
	  background: #F9FAFB;
   -webkit-border-radius:8px 8px 0 0;
   -moz-border-radius:8px 8px 0 0;
   border-radius:8px 8px 0 0;
   -webkit-box-shadow:0 0 3px 2px rgba(0, 0, 0, 0.2);
   -moz-box-shadow:0 0 3px 2px rgba(0, 0, 0, 0.2);
   box-shadow:0 0 3px 2px rgba(0, 0, 0, 0.2);
   margin:10px;
}

.block ul>li:before
{
   content:url('images/blockbullets.png');
   margin-right:6px;
   bottom: 2px;
   position:relative;
   display:inline-block;
   vertical-align:middle;
   font-size:0;
   line-height:0;
   margin-left: -12px;
}
.opera .block ul>li:before
{
   /* Vertical-align:middle in Opera doesn't need additional offset */
    bottom: 0;
}

.block li
{
   font-size: 13px;
   font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
   line-height: 125%;
   color: #1487B8;
}

.block ul>li, .block ol
{
   padding: 0;
}

.block ul>li
{
   padding-left: 12px;
}

/* ~~ Gli stili dell'elenco di navigazione (rimovibili se scegliete di utilizzare un menu flyout reimpostato come Spry) ~~ */
ul.nav 
{
    list-style: none;
	width:200px;
	position:relative;
	right:-17px;
}
ul.nav li {
	border-bottom: 1px solid #FFF; /* Crea la separazione tra i pulsanti */
	
}
ul.nav a, ul.nav a:visited { /* Raggruppando questi selettori si fa in modo che i collegamenti mantengano l'aspetto di pulsante anche dopo che sono stati visitati */
	padding-left: 15px;
	padding-bottom:5px;
	padding-top:5px;
	display: block;
	width: 100%;
	text-decoration: none;
	background-color: #B4EB89;
	min-height:24px;
	vertical-align:middle;
	line-height: 24px;
	color:#FFF;
	
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* Cambia il colore dello sfondo e del testo per la navigazione tramite mouse e tastiera */
	background-color: #A0DC84;
	color: #fff;
	
}
ul.vmenu>li>a:before
{
   content:url('images-main/vmenuitemicon.png');
   margin-right:5px;
   bottom: 2px;
   position:relative;
   display:inline-block;
   vertical-align:middle;
   font-size:0;
   line-height:0;
}
ul.vmenu>li>a.active:before
{
   content:url('images-main/vmenuactiveitemicon.png');
   margin-right:5px;
   bottom: 2px;
   position:relative;
   display:inline-block;
   vertical-align:middle;
   font-size:0;
   line-height:0;
}
ul.vmenu li li a:before
{
   content:url('/images-main/vmenusubitemicon.png');
   margin-right:10px;
   bottom: 1px;
   position:relative;
   display:inline-block;
   vertical-align:middle;
   font-size:0;
   line-height:0;
}
ul.vmenu li li a:hover:before
{
   content:url('images-main/vmenuhoveredsubitemicon.png');
   margin-right:10px;
   bottom: 1px;
   position:relative;
   display:inline-block;
   vertical-align:middle;
   font-size:0;
   line-height:0;
}
.breadcrumb
{
    
    margin-bottom:20px;
    font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
    font-size: 12px;
    color: #c0c0c0;
}

.breadcrumb a:visited
{
    color: #c0c0c0;
}

/* ELENCO PUNTATO*/
ul, ol 
{ 
	padding: 8px 15px 15px 25px; 
	 list-style-type: circle;

}	
	/** FINE ELENCO PUNTATO**/

/*** Post ***/
.post
{
    padding: 10px 10px 10px 10px;
}

	/* Post title */
	.post h1 	{margin-bottom: 20px;}
	.post h1 a{display: block;font-size: 38px;line-height:40px;font-weight: bold;letter-spacing: -1px;}
	.post p{line-height:18px;}

	hr{border-bottom: 1px solid #ccc;border-top:none;border-left:none;border-right:none;margin:25px 0 20px 0;}

/* ~~ FOOTER ~~ */
#footer
{
    width: 960px;
    float:left;
    padding: 20px 20px 20px 20px;
    background:#eeeeee;
    text-align:left;
}

.left
{
	float:left;
}

#footer a
{
font-size: 11px;
color:#828282;
text-decoration:none;	
}
#footer a:hover
{
color: #404040;
text-decoration: none;
}
#footer h4, #footer h4 a
{
	font-size:12px;
	
text-transform: uppercase;
margin: 10px 0px;
font-weight: 400;

}
.footer_copiright
{
    font-size: 11px;
    color:#cccccc;
    text-decoration: none;
	text-align:center;
	background-color: #fff;
	width:960px;
	margin:0 auto;
	float:left;
	padding: 0px 20px 10px 20px;

}
.footer_copiright_text
{
	
	padding-top:6px;
	width:300px;
	text-align:center;
	display:inline-block;
}
.footer_powered 
{
    font-size: 9px;
    text-align: center;
    color:#cccccc;
    text-decoration: none;
    width:960px;
    
}

.footer_powered a:link
{
    text-decoration:none;
    color: #009ae1;
}

/* ~~ Classi float/clear varie ~~ */

/* NOTE LEGALI FORM */

/* FINE NOTE LEGALI FORM */

/* TABELLE */

.table
{
    
	margin:5px;
	padding:0px;
	border:1px solid #cccccc;
	-moz-border-radius-bottomleft:5px;
	-webkit-border-bottom-left-radius:5px;
	border-bottom-left-radius:5px;
	-moz-border-radius-bottomright:5px;
	-webkit-border-bottom-right-radius:5px;
	border-bottom-right-radius:5px;
	-moz-border-radius-topright:5px;
	-webkit-border-top-right-radius:5px;
	border-top-right-radius:5px;
	-moz-border-radius-topleft:5px;
	-webkit-border-top-left-radius:5px;
	border-top-left-radius:5px;
}
.table table{
    border-collapse: collapse;
    border-spacing: 0;
	width:100%;
	height:100%;
	margin:0px;
	padding:0px;
}
.table tr:last-child td:last-child {
	-moz-border-radius-bottomright:5px;
	-webkit-border-bottom-right-radius:5px;
	border-bottom-right-radius:5px;
}
.table table tr:first-child td:first-child {
	-moz-border-radius-topleft:5px;
	-webkit-border-top-left-radius:5px;
	border-top-left-radius:5px;
}
.table table tr:first-child td:last-child {
	-moz-border-radius-topright:5px;
	-webkit-border-top-right-radius:5px;
	border-top-right-radius:5px;
}.table tr:last-child td:first-child{
	-moz-border-radius-bottomleft:5px;
	-webkit-border-bottom-left-radius:5px;
	border-bottom-left-radius:5px;
}

.table td{
	vertical-align:middle;	
	background-color:#ffffff;
	border:1px solid #ccc;
	border-width:px 1px 1px 0px;
	text-align:left;
	padding:5px;
	font-size:14px;
	font-family:Helvetica;
	font-weight:normal;
	color:#666666;
}
.table tr:last-child td{
	border-width:0px 1px 0px 0px;
}.table tr td:last-child{
	border-width:0px 0px 1px 0px;
}.table tr:last-child td:last-child{
	border-width:0px 0px 0px 0px;
}
.table tr:first-child td{
	background:-o-linear-gradient(bottom, #ffffff 5%, #ffffff 100%);	
	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #ffffff) );
	background:-moz-linear-gradient( center top, #ffffff 5%, #ffffff 100% );
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#ffffff");	
	background: -o-linear-gradient(top,#ffffff,ffffff);
	background-color:#ffffff;
	border:1px solid #ccc;
	text-align:center;
	border-width:0px 0px 1px 1px;
	font-size:14px;
	font-family:Helvetica;
	font-weight:bold;
	color:#666666;
	padding-bottom:20px;
}
.table tr:first-child:hover td{
	background:-o-linear-gradient(bottom, #ffffff 5%, #ffffff 100%);	
	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #ffffff) );
	background:-moz-linear-gradient( center top, #ffffff 5%, #ffffff 100% );
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#ffffff");	
	background: -o-linear-gradient(top,#ffffff,ffffff);
    background-color:#ffffff;
}
.table tr:first-child td:first-child{
	border-width:0px 0px 1px 0px;
}
.table tr:first-child td:last-child{
	border-width:0px 0px 1px 1px;
}

/* FINE TABELLE */

.button
{
   border: 0;
   border-collapse: separate;
   -webkit-background-origin: border !important;
   -moz-background-origin: border !important;
   background-origin: border-box !important;
   background: #a0dc84;
   -webkit-border-radius:3px;
   -moz-border-radius:3px;
   border-radius:3px;
   border-width: 0;
   padding:0 20px;
   margin:0 auto;
   height:31px;
}

a.button,
a.button:link,
a:link.button:link,
body a.button:link,
a.button:visited,
body a.button:visited,
input.button,
button.button
{
   text-decoration: none;
   font-size: 14px;
   font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
   font-weight: normal;
   font-style: normal;
   position:relative;
   display: inline-block;
   vertical-align: middle;
   white-space: nowrap;
   text-align: center;
   color: #FFFFFF;
   margin: 0 5px 0 0 !important;
   overflow: visible;
   cursor: pointer;
   text-indent: 0;
   line-height: 31px;
   -webkit-box-sizing: content-box;
   -moz-box-sizing: content-box;
   box-sizing: content-box;
}

.button img
{
   margin: 0;
   vertical-align: middle;
}

input, select, textarea{
   vertical-align: middle;
   font-size: 14px;
   font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
   font-weight: normal;
   font-style: normal;
}

.block select 
{
   width:96%;
}

input.button
{
   float: none !important;
   -webkit-appearance: none;
    top: 1px;
    left: -10px;
    width: 66px;
}

.button.active, .button.active:hover
{
   background: #5BB332;
   -webkit-border-radius:3px;
   -moz-border-radius:3px;
   border-radius:3px;
   border-width: 0;
   padding:0 20px;
   margin:0 auto;
}
.button.active, .button.active:hover {
   color: #FFFFFF !important;
}

.button.hover, .button:hover
{
   background: #71C9EF;
   -webkit-border-radius:3px;
   -moz-border-radius:3px;
   border-radius:3px;
   border-width: 0;
   padding:0 20px;
   margin:0 auto;
}
.button.hover, .button:hover {
   color: #FFFFFF !important;
}
/* INPUT TEXT */
input[type="text"], input[type="password"], input[type="email"], input[type="url"], textarea
{
   background: #F9FAFB;
   background: -webkit-linear-gradient(top, #ededed 0, #EFF2F5 40%, #F2F5F7 50%, #F2F5F7 100%) no-repeat;
   background: -moz-linear-gradient(top, #ededed 0, #EFF2F5 40%, #F2F5F7 50%, #F2F5F7 100%) no-repeat;
   background: -o-linear-gradient(top, #ededed 0, #EFF2F5 40%, #F2F5F7 50%, #F2F5F7 100%) no-repeat;
   background: -ms-linear-gradient(top, #ededed 0, #EFF2F5 40%, #F2F5F7 50%, #F2F5F7 100%) no-repeat;
   -svg-background: linear-gradient(top, #ededed 0, #EFF2F5 40%, #F2F5F7 50%, #F2F5F7 100%) no-repeat;
   background: linear-gradient(to bottom, #ededed 0, #EFF2F5 40%, #F2F5F7 50%, #F2F5F7 100%) no-repeat;
   -webkit-border-radius:2px;
   -moz-border-radius:2px;
   border-radius:2px;
   border:1px solid #7BCF54;
   margin:0 auto;
}
input[type="text"], input[type="password"], input[type="email"], input[type="url"], textarea
{
   width: 100%;
   padding: 5px 0;
   color: #315F1B !important;
   font-size: 14px;
   font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
   font-weight: normal;
   font-style: normal;
   text-shadow: none;
   padding-left: 10px;
}

form.search input{
   -webkit-appearance: none;
   top:0;
   right:0;
}

form.search>input{
   bottom:0;
   left:0;
   vertical-align: middle;
}

form.search input[type="submit"]{
   border-radius: 0;
   margin:0 auto;
}
form.search input[type="submit"]{
   position:absolute;
   left:auto;
   display:block;
   border:none;
   background:url('images/searchicon.png') center center no-repeat;
   width:24px;
   height: 100%;
   padding:0;
   color: #FFFFFF !important;
   cursor: pointer;
}

/* FINE INPUT TEXT */

/* IMMAGINI FONTI RINNOVABILI */
.img-rinnovabili-sx
{
    float:left;
    display: inline-block;
    width:30%;
    margin: 0px auto;
    padding: 5px;
    border-right: 1px dashed #ccc;
    text-align:center;
}
.img-rinnovabili-ultimo
{
    float:left;
    display: inline-block;
    width:30%;
    margin: 0px auto;
    padding: 5px;
    border-right: 0px solid;
    text-align:center;
}

.img-rinnovabili a
{
    margin: 0px auto;
    clear:both;
    margin-top:10px;
}

/* FINE IMMAGINI FONTI RINNOVABILI */

/* BARRE TRATTEGGIATE ORIZZONTALI */

/* FINE BARRE TRATTEGGIATE ORIZZONTALI */

/* BANNER CONTACT */

/* FINE BANNER CONTACT */

/* INIZIO 3 BANNER HOME */

/* FINE 3 BANNER HOME */

/* INIZIO FACEBOOK FOLLOW */

/* FINE FACEBOOK FOLLOW */

/* INIZIO PULSANTE TORNA SU */

#tasto_top
{
    background:url(../../Scripts/upbtn/img/up1.png);
    width:45px; height:46px;
    display: none; z-index:1000; 
    position:fixed; top:100%; 
 margin-top:-75px; right:2px; 
 margin-left:10px; opacity:.8; 
 text-decoration:none; 
 }
#tasto_top:hover
{
    background:url(../../Scripts/upbtn/img/up2.png); 
    width:45px; height:46px; 
    display: none; z-index:1000; 
    position:fixed; top:100%; 
 margin-top:-75px; right:2px;
  margin-left:10px; opacity:.8;
   text-decoration:none; 
   transition-duration: 1s;
   }
 
 /* FINE PULSANTE TORNA SU */


/* ==========================================================================
   MENU PRINCIPALE  (era styles-menu.css)
   ========================================================================== */
/* @import Google Fonts rimosso (http, bloccato su https e non usato dal menu) */
#cssmenu,
#cssmenu ul,
#cssmenu ul li,
#cssmenu ul li a,
#cssmenu #menu-button {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  line-height: 1;
  display: block;
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
#cssmenu:after,
#cssmenu > ul:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}
#cssmenu #menu-button {
  display: none;
}
#cssmenu {
  width: 1000px;
  margin:0 auto;
  font-family: 'Century Gothic', Arial, 'Arial Unicode MS', Helvetica, Sans-Serif;
  line-height: 1;
  background: #ffffff;
   position:fixed;
    top: 0px;
    z-index:9999;
    border-bottom: 2px solid #009ae1;
}
#menu-line {
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  background: #009ae1;
  -webkit-transition: all 0.25s ease-out;
  -moz-transition: all 0.25s ease-out;
  -ms-transition: all 0.25s ease-out;
  -o-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
}
#cssmenu > ul > li {
  float: left;
}

#cssmenu > ul > li > a {
  padding: 20px;
  font-size: 12px;
  text-decoration: none;
  text-transform: uppercase;
  color: #000000;
  -webkit-transition: color .2s ease;
  -moz-transition: color .2s ease;
  -ms-transition: color .2s ease;
  -o-transition: color .2s ease;
  transition: color .2s ease;
}
#cssmenu > ul > li:hover > a,
#cssmenu > ul > li.active > a {
  color: #009ae1;
}
#cssmenu > ul > li.has-sub > a {
  padding-right: 25px;
}
#cssmenu > ul > li.has-sub > a::after {
  position: absolute;
  top: 21px;
  right: 10px;
  width: 4px;
  height: 4px;
  border-bottom: 1px solid #000000;
  border-right: 1px solid #000000;
  content: "";
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
  -webkit-transition: border-color 0.2s ease;
  -moz-transition: border-color 0.2s ease;
  -ms-transition: border-color 0.2s ease;
  -o-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}
#cssmenu > ul > li.has-sub:hover > a::after {
  border-color: #009ae1;
}
#cssmenu ul ul {
  position: absolute;
  left: -9999px;
}
#cssmenu li:hover > ul {
  left: auto;
}

#cssmenu ul ul ul {
  margin-left: 100%;
  top: 0;
}

#cssmenu ul ul li {
  height: 0;
  -webkit-transition: height .2s ease;
  -moz-transition: height .2s ease;
  -ms-transition: height .2s ease;
  -o-transition: height .2s ease;
  transition: height .2s ease;
}
#cssmenu ul li:hover > ul > li {
  height: 32px;
}
#cssmenu ul ul li a {
  padding: 10px 5px;
  width: 200px;
  font-size: 12px;
  background: #009ae1;
  text-decoration: none;
  color: #ffffff;
  -webkit-transition: color .2s ease;
  -moz-transition: color .2s ease;
  -ms-transition: color .2s ease;
  -o-transition: color .2s ease;
  transition: color .2s ease;
}
#cssmenu ul ul li:hover > a,
#cssmenu ul ul li a:hover {
  color: #104160;
}
#cssmenu ul ul li.has-sub > a::after {
  position: absolute;
  top: 13px;
  right: 10px;
  width: 4px;
  height: 4px;
  border-bottom: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
  content: "";
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
  -webkit-transition: border-color 0.2s ease;
  -moz-transition: border-color 0.2s ease;
  -ms-transition: border-color 0.2s ease;
  -o-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}

#cssmenu ul ul li.has-sub:hover > a::after {
  border-color: #ffffff;
}
@media all and (max-width: 768px), only screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 1024px), only screen and (min--moz-device-pixel-ratio: 2) and (max-width: 1024px), only screen and (-o-min-device-pixel-ratio: 2/1) and (max-width: 1024px), only screen and (min-device-pixel-ratio: 2) and (max-width: 1024px), only screen and (min-resolution: 192dpi) and (max-width: 1024px), only screen and (min-resolution: 2dppx) and (max-width: 1024px) {
  #cssmenu {
    width: 100%;
  }
  #cssmenu ul {
    width: 100%;
    display: none;
  }
  
  #cssmenu ul li,
  #cssmenu ul ul li,
  #cssmenu ul li:hover > ul > li {
    width: 100%;
    height: auto;
    border-top: 1px solid rgba(120, 120, 120, 0.15);
  }
  #cssmenu ul li a,
  #cssmenu ul ul li a {
    width: 100%;
  }
  #cssmenu > ul > li{
    float: none;
    display: block;
  }
  #cssmenu ul ul li a {
    padding: 20px 20px 20px 30px;
    font-size: 12px;
    color: #000000;
    background: none;
  }
  #cssmenu ul ul li:hover > a,
  #cssmenu ul ul li a:hover {
    color: #000000;
  }
  #cssmenu ul ul ul li a {
    padding-left: 40px;
  }
  #cssmenu ul ul,
  #cssmenu ul ul ul {
    position: relative;
    left: 0;
    right: auto;
    width: 100%;
    margin: 0;
  }
  #cssmenu > ul > li.has-sub > a::after,
  #cssmenu ul ul li.has-sub > a::after {
    display: none;
  }
  #menu-line {
    display: none;
  }
  #cssmenu #menu-button {
    display: block;
    padding: 20px;
    color: #000000;
    cursor: pointer;
    font-size: 12px;
    text-transform: uppercase;
  }
  #cssmenu #menu-button::after {
    content: '';
    position: absolute;
    top: 20px;
    right: 20px;
    display: block;
    width: 15px;
    height: 2px;
    background: #000000;
  }
  #cssmenu #menu-button::before {
    content: '';
    position: absolute;
    top: 25px;
    right: 20px;
    display: block;
    width: 15px;
    height: 3px;
    border-top: 2px solid #000000;
    border-bottom: 2px solid #000000;
  }
  #cssmenu .submenu-button {
    position: absolute;
    z-index: 10;
    right: 0;
    top: 0;
    display: block;
    border-left: 1px solid rgba(120, 120, 120, 0.15);
    height: 52px;
    width: 52px;
    cursor: pointer;
  }
  #cssmenu .submenu-button::after {
    content: '';
    position: absolute;
    top: 21px;
    left: 26px;
    display: block;
    width: 1px;
    height: 11px;
    background: #000000;
    z-index: 99;
  }
  #cssmenu .submenu-button::before {
    content: '';
    position: absolute;
    left: 21px;
    top: 26px;
    display: block;
    width: 11px;
    height: 1px;
    background: #000000;
    z-index: 99;
  }
  #cssmenu .submenu-button.submenu-opened:after {
    display: none;
  }
}


/* ==========================================================================
   ADATTAMENTO TABLET E SMARTPHONE DEL VECCHIO SITO  (era responsive.css)
   ========================================================================== */
@media (min-width: 768px) and (max-width: 980px) {

	/* Structure 768 to 1000 */
	.container 		{width: 748px;margin: 0 auto;}
	.header 		{width: 708px;float:left;padding: 40px 20px 20px 20px;height:100%;} 
	.mainmenu		{width: 100%;float:left;}
	.main 			{width: 708px;float:left;padding: 20px 20px 20px 20px;}
	.content 		{width: 470px;float:left;}
	.sidebar 		{width: 210px;float:right;}
	#footer			{width: 708px;float:left;padding: 30px 20px 10px 20px;}
	.mainmenu		{display:block;}
	.footer_copiright{width: 708px;float:left;padding: 30px 20px 10px 20px;}
	.footer_powered {width: 708px;float:left;padding: 30px 20px 10px 20px;}
	.logo           {background:url(images-main/logo-energy-tablet.jpg) no-repeat; height:180px;width:708px;margin:0 auto;}

}

@media (max-width: 767px) {

	/* Structure  < 767 */
	body{padding:10px;background:#fff;}
	.container 		{width:100%;margin: 0 auto;}
	.header 		{width:100%;padding: 40px 0 0px 0px;height:100%;} 
	.mainmenu		{width:100%;float:left;}
	.main 			{width:100%;float:left;padding: 20px 0 0 0;}
	.content 		{width:100%;float:left;}
	.sidebar 		{width:100%;float:right;padding: 20px 0 0 0px;}
	#footer			{width:100%;float:left;padding: 20px 0 0 0px;}
	.footer_copiright{width: 100%;float:left;padding: 20px 0px 0px 0px;}
	.footer_powered {width: 100%;float:left;padding: 20px 0px 0px 0px;}
	.logo           {background:url(images-main/logo-energy-mini.jpg) no-repeat; height:222px;width:300px;margin:0 auto;}
	.breadcrumb     {display:none;}
	
	#slider         {display:none;}

	/* Header */
 	.search{display:none;}
	
	.mainmenu			{display:none;}
	.mainmenu ul li 	{float: none;}	
	
	/* Sidebar */
	.widget{width:48%;float:left;}
	.widget:first-child{margin-right:4%;!important}

	#footer p     {margin-left:10px;}
		
}


/* ==========================================================================
   RESTYLE: ASPETTO MODERNO, COMPONENTI, PAGINE  (era restyle.css)
   ========================================================================== */
/* ==========================================================
   Ritocco tipografico e nuovo footer (versione PHP).
   Stessa impaginazione del sito originale: cambiano solo
   caratteri, dimensioni, spaziature e aspetto del footer.
   Il menu in alto NON viene toccato.
   Font ospitati sul sito (niente Google Fonts esterno = ok GDPR).
   ========================================================== */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/montserrat-500.woff2) format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/montserrat-600.woff2) format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/montserrat-700.woff2) format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/open-sans-400.woff2) format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 400; font-display: swap; src: url(fonts/open-sans-400-italic.woff2) format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/open-sans-600.woff2) format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/open-sans-700.woff2) format('woff2'); }

:root {
  --ec-testo: #3b4148;
  --ec-titoli: #24323f;
  --ec-blu: #009ae1;
  --ec-verde: #8cc63f;
  --ec-footer: #24323f;
  --ec-footer-scuro: #1b2631;
}

/* ---------- testo ---------- */
body {
  font-family: 'Open Sans', Arial, Helvetica, sans-serif;
  color: var(--ec-testo);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.post { font-size: 16px; line-height: 1.75; }
.post p, .post li { line-height: 1.75; }
.post b, .post strong { font-weight: 600; color: #2b3138; }
.post a:hover { text-decoration: underline; }

/* ---------- titoli ---------- */
h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', Arial, Helvetica, sans-serif; }
.post h1, .post > h3:first-child {
  font-size: 26px; line-height: 1.25; font-weight: 600; color: var(--ec-titoli);
  letter-spacing: -0.2px; margin-bottom: 22px; padding-bottom: 12px; position: relative;
}
.post h1::after, .post > h3:first-child::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 48px; height: 3px; border-radius: 2px; background: var(--ec-verde);
}
.post h1 b { font-weight: 700; }
.post h2 { font-size: 21px; font-weight: 600; color: var(--ec-titoli); margin-bottom: 12px; }
.post h3 { font-size: 18.5px; font-weight: 600; color: var(--ec-titoli); }
.post h4 { font-size: 16px; font-weight: 600; color: var(--ec-blu); letter-spacing: .1px; }

/* percorso (breadcrumb) */
.breadcrumb { font-family: 'Open Sans', Arial, sans-serif; font-size: 12.5px; letter-spacing: .2px; }

/* riquadro "Contattaci senza impegno" */

/* pulsanti verdi (Convenzioni, Company Profile, Edicola, Invia...) */

input.button, .post input[type="submit"] { font-family: 'Montserrat', Arial, sans-serif; font-weight: 600; color: #fff; cursor: pointer; }

/* ---------- colonna di destra (inc/sidebar.php) ---------- */
.sidebar { padding-top: 10px; }
.side-box {
  background: #fff; border: 1px solid #e3e8ec; border-radius: 10px;
  box-shadow: 0 2px 10px rgba(36, 50, 63, .06);
  margin: 0 0 22px 10px; overflow: hidden;
}
.side-head { padding: 13px 18px 11px; border-bottom: 1px solid #edf1f4; background: #f7f9fa; position: relative; }
.side-head::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ec-verde); }
.side-head h3 { margin: 0; font-family: 'Montserrat', Arial, sans-serif; font-size: 15px; font-weight: 600; color: var(--ec-titoli); letter-spacing: .2px; }
.side-body { padding: 16px 18px 18px; font-size: 14.5px; line-height: 1.55; color: var(--ec-testo); }

.side-quot-link { display: block; padding: 14px 18px 18px; text-align: center; }
.side-quot-link img { width: 230px; max-width: 100%; height: auto; display: block; margin: 0 auto 10px; transition: transform .25s; }
.side-quot-link:hover img { transform: scale(1.03); }
.side-text { display: block; font-size: 13.5px; line-height: 1.5; color: #5b6670; margin-bottom: 14px; }

.side-btn, a.side-btn:link, a.side-btn:visited {
  display: inline-block; background: var(--ec-blu); color: #fff; border-radius: 6px;
  padding: 9px 16px; font-family: 'Montserrat', Arial, sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .2px;
  transition: background .15s;
}
.side-quot-link:hover .side-btn, a.side-btn:hover { background: #0085c4; color: #fff; text-decoration: none; }
.side-btn-full { display: block !important; text-align: center; margin-top: 14px; background: var(--ec-verde) !important; }
.side-btn-full:hover { background: #7ab52f !important; }

.side-news-item { padding: 0 0 14px; margin: 0 0 14px; border-bottom: 1px dashed #dfe5ea; }
.side-date { display: inline-block; font-size: 11.5px; font-weight: 600; color: #fff; background: var(--ec-verde); border-radius: 4px; padding: 1px 8px; margin-bottom: 6px; letter-spacing: .3px; }
.side-news-title { font-family: 'Montserrat', Arial, sans-serif; font-weight: 600; font-size: 14px; color: var(--ec-titoli); line-height: 1.4; margin-bottom: 3px; }
.side-news-text { font-size: 13.5px; color: #5b6670; }
.side-more { display: inline-block; margin-top: 4px; font-size: 13px; font-weight: 600; }
.side-all { display: block; text-align: right; font-size: 13px; font-weight: 600; }

.side-line { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 10px; }
.side-line svg { width: 17px; height: 17px; flex: 0 0 17px; fill: var(--ec-blu); margin-top: 2px; }
.side-line a { color: var(--ec-testo); }
.side-line a:hover { color: var(--ec-blu); }

/* ---------- sito piu' largo sugli schermi grandi ---------- */
@media (min-width: 1220px) {
  .container, #cssmenu { width: 1180px; }
  .header { width: 1140px; }
  .main { width: 1140px; }
  .content { width: 800px; }
  .sidebar { width: 320px; }
  #footer { width: 1140px; }
  .footer_copiright, .footer_powered { width: 1140px; }
  /* i tre riquadri della home distribuiti su tutta la larghezza */

}

/* ---------- footer ---------- */
#footer {
  background: var(--ec-footer);
  position: relative; z-index: 0;
  margin-top: 30px;
  padding-top: 38px; padding-bottom: 26px;
}
/* fasce scure a tutta larghezza senza toccare l'HTML */
html { overflow-x: clip; }
/* le colonne sono "float": il contenitore deve racchiuderle, altrimenti body resta alto pochi pixel
   e Safari su iPhone non disegna parte della pagina (colonna laterale bianca) */
#form1, .container, .main { display: flow-root; }
#footer::before, .footer_copiright::before, .footer_powered::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: 50%;
  width: 100vw; transform: translateX(-50%); z-index: -1;
  background: var(--ec-footer-scuro);
}
#footer::before { background: var(--ec-footer); border-top: 3px solid var(--ec-blu); top: -3px; }

#footer h4, #footer h4 a {
  font-family: 'Montserrat', Arial, sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: .9px; color: #fff; line-height: 1.35;
}
#footer h4 {
  display: block; margin: 0 0 14px 0; padding-bottom: 10px; position: relative;
  min-height: 33px;            /* titoli su una o due righe: le colonne restano allineate */
  display: flex; align-items: flex-end;
}
#footer h4::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; background: var(--ec-verde);
}
#footer a { font-size: 13px; color: #b9c4ce; transition: color .15s; }
#footer a:hover { color: #fff; }
#footer a[href="#"] { color: #8c99a6; cursor: default; }   /* voci senza pagina */
#footer a[href="#"]:hover { color: #8c99a6; }

.footer_copiright, .footer_powered {
  background: var(--ec-footer-scuro);
  position: relative; z-index: 0;
  color: #8c99a6; font-size: 12.5px;
}
.footer_copiright { padding-top: 16px; padding-bottom: 2px; }
.footer_copiright_text { width: auto; padding-top: 0; }
.footer_powered { font-size: 11.5px; padding: 2px 20px 18px 20px; clear: both; }
.footer_powered a:link, .footer_powered a:visited { color: #b9c4ce; }
.footer_powered a:hover { color: #fff; }

/* tablet */

/* smartphone */
@media (max-width: 767px) {
  .post { font-size: 16px; }
  .post h1, .post > h3:first-child { font-size: 22px; }
  #footer { padding: 30px 6px 18px 6px; box-sizing: border-box; }
  
  .footer_copiright, .footer_powered { width: 100%; box-sizing: border-box; }
  .side-box { margin-left: 0; }
}

/* ---------- pagina Contatti ---------- */
.cf-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 6px 0 30px; }
.cf-card { display: flex; gap: 14px; align-items: flex-start; background: #f7f9fa; border: 1px solid #e6ebef; border-radius: 10px; padding: 16px 18px; }
.cf-card h4 { margin: 0 0 4px; font-size: 13px !important; text-transform: uppercase; letter-spacing: .8px; color: #6b7782 !important; }
.cf-card p { margin: 0; line-height: 1.55; }
.cf-ico { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; background: var(--ec-blu); display: flex; align-items: center; justify-content: center; }
.cf-ico svg { width: 20px; height: 20px; fill: #fff; }

.cf-box { background: #fff; border: 1px solid #e3e8ec; border-radius: 12px; box-shadow: 0 4px 18px rgba(36, 50, 63, .07); padding: 26px 28px 28px; }
.cf-box h2 { margin: 0 0 4px; font-size: 21px; }
.cf-intro { color: #5b6670; margin: 0 0 20px; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cf-field { margin-bottom: 16px; }
.cf-field label { display: block; font-weight: 600; font-size: 13.5px; color: var(--ec-titoli); margin-bottom: 6px; }
.cf-req { color: #d9534f; }
.cf-form input[type="text"], .cf-form input[type="email"], .cf-form input[type="tel"], .cf-form textarea {
  display: block; width: 100%; box-sizing: border-box; height: auto;
  border: 1px solid #cfd7de; border-radius: 8px; background: #fbfcfd;
  padding: 11px 13px; font: 15px/1.4 'Open Sans', Arial, sans-serif; color: var(--ec-testo);
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.cf-form textarea { resize: vertical; min-height: 130px; }
.cf-form input:focus, .cf-form textarea:focus { outline: none; border-color: var(--ec-blu); background: #fff; box-shadow: 0 0 0 3px rgba(0, 154, 225, .15); }
.cf-form .cf-invalid input, .cf-form .cf-invalid textarea { border-color: #d9534f; background: #fff8f8; }
.cf-err { display: block; color: #c9302c; font-size: 12.5px; margin-top: 5px; }
.cf-privacy { background: #f7f9fa; border-radius: 8px; padding: 12px 14px; margin: 4px 0 18px; font-size: 13px; line-height: 1.55; color: #5b6670; }
.cf-check { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.cf-check input { margin-top: 3px; width: 17px; height: 17px; flex: 0 0 17px; accent-color: var(--ec-verde); }
.cf-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cf-btn { background: var(--ec-verde); color: #fff; border: 0; border-radius: 8px; padding: 13px 28px; font: 600 15px 'Montserrat', Arial, sans-serif; letter-spacing: .3px; cursor: pointer; transition: background .15s, transform .1s; }
.cf-btn:hover { background: #7ab52f; }
.cf-btn:active { transform: translateY(1px); }
.cf-note { font-size: 12.5px; color: #8a949d; }
.cf-alert { border-radius: 8px; padding: 12px 16px; margin-bottom: 18px; font-weight: 600; }
.cf-ok { background: #edf7e3; color: #3d6e12; border: 1px solid #cfe8b5; }
.cf-errore { background: #fdeeee; color: #a3211b; border: 1px solid #f3c9c7; }
.cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 767px) {
  .cf-cards, .cf-row { grid-template-columns: 1fr; gap: 10px; }
  .cf-row { gap: 0; }
  .cf-box { padding: 18px 16px 20px; }
  .cf-btn { width: 100%; }
}

/* ---------- intestazione: logo e loghi delle certificazioni centrati ---------- */
.logo { background-position: center center !important; }
.header > a { display: block; height: 100%; }

/* ---------- riquadro "prima consulenza gratuita" (banner_contatti) ---------- */
.cta-box {
  clear: both; display: flex; align-items: center; gap: 20px;
  margin: 28px 0 22px; padding: 22px 24px; border-radius: 14px; color: #fff;
  background: linear-gradient(120deg, #0a8fd4 0%, #0077b6 55%, #1b5f8c 100%);
  box-shadow: 0 8px 24px rgba(0, 119, 182, .22); position: relative; overflow: hidden;
}
.cta-box::after { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255,255,255,.07); }
.cta-ico { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; }
.cta-ico svg { width: 28px; height: 28px; fill: #fff; }
.cta-text { flex: 1; min-width: 0; line-height: 1.4; position: relative; z-index: 1; }
.cta-kicker { display: inline-block; font: 600 11px 'Montserrat', Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; background: var(--ec-verde); color: #fff; padding: 3px 9px; border-radius: 20px; margin-bottom: 7px; }
.cta-text strong { display: block; font: 600 18px/1.3 'Montserrat', Arial, sans-serif; color: #fff !important; margin-bottom: 3px; }
.cta-sub { font-size: 14px; color: rgba(255,255,255,.85); }
.cta-actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; position: relative; z-index: 1; }
a.cta-btn:link, a.cta-btn:visited { display: block; text-align: center; background: #fff; color: #0077b6; font: 700 14px 'Montserrat', Arial, sans-serif; padding: 11px 20px; border-radius: 8px; white-space: nowrap; transition: transform .15s, box-shadow .15s; }
a.cta-btn:hover { color: #005a8a; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.18); text-decoration: none; }
a.cta-tel:link, a.cta-tel:visited { display: flex; align-items: center; justify-content: center; gap: 6px; color: #fff; font-size: 13.5px; font-weight: 600; white-space: nowrap; }
a.cta-tel:hover { color: #fff; text-decoration: underline; }
.cta-tel svg { width: 15px; height: 15px; fill: #fff; }
.cta-box.cta-verde { background: linear-gradient(120deg, #9ccf52 0%, #7ab52f 55%, #5d9424 100%); box-shadow: 0 8px 24px rgba(106,168,43,.25); }
.cta-box.cta-verde a.cta-btn:link, .cta-box.cta-verde a.cta-btn:visited { color: #4f8a1c; }
.cta-box.cta-scuro { background: linear-gradient(120deg, #34495c 0%, #2b3a48 55%, #1f2b36 100%); box-shadow: 0 8px 24px rgba(31,43,54,.25); }
.cta-box.cta-scuro a.cta-btn:link, .cta-box.cta-scuro a.cta-btn:visited { color: #2b3a48; }
.cta-sub { display: block; }

/* ---------- schede di download (scheda_download) ---------- */
a.dl-card:link, a.dl-card:visited {
  clear: both; display: flex; align-items: center; gap: 16px; max-width: 520px;
  margin: 12px 0; padding: 14px 16px; border: 1px solid #e1e7ec; border-radius: 12px; background: #fff;
  color: var(--ec-testo); text-decoration: none; box-shadow: 0 2px 8px rgba(36,50,63,.05);
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
a.dl-card:hover { border-color: var(--ec-blu); box-shadow: 0 6px 18px rgba(0,154,225,.15); transform: translateY(-1px); text-decoration: none; }
.dl-file { position: relative; flex: 0 0 40px; width: 40px; height: 48px; }
.dl-file svg { width: 40px; height: 48px; display: block; }
.dl-file b { position: absolute; left: 0; right: 0; bottom: 8px; text-align: center; color: #fff; font: 700 10px 'Montserrat', Arial, sans-serif; letter-spacing: .5px; }
.dl-info { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.dl-info strong { font: 600 15px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
.dl-desc { font-size: 13px; color: #5b6670; margin-top: 2px; }
.dl-meta { font-size: 12px; color: #8a949d; margin-top: 3px; letter-spacing: .3px; }
.dl-btn { display: inline-flex; align-items: center; gap: 6px; background: var(--ec-blu); color: #fff; border-radius: 8px; padding: 9px 14px; font: 600 13px 'Montserrat', Arial, sans-serif; white-space: nowrap; transition: background .15s; }
.dl-btn svg { width: 17px; height: 17px; fill: #fff; }
a.dl-card:hover .dl-btn { background: #0085c4; }

/* icona PDF accanto ai link a documenti nel testo (es. Edicola) */
.post a[href$=".pdf"]:not(.dl-card):not(.home-card):not(.cert-card):not(.ed-card)::before {
  content: ""; display: inline-block; width: 13px; height: 16px; margin-right: 5px; vertical-align: -2px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 48'%3E%3Cpath d='M4 0h22l14 14v30a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z' fill='%23e8463f'/%3E%3Cpath d='M26 0l14 14H30a4 4 0 0 1-4-4V0z' fill='%23ff9d97'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ---------- home: i tre riquadri (Convenzioni, Company Profile, Edicola) ---------- */
.home-cards { clear: both; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 8px; margin-bottom: 10px; }
a.home-card:link, a.home-card:visited {
  display: flex; flex-direction: column; padding: 22px 20px 20px; border-radius: 14px; min-height: 220px;
  color: #fff; text-decoration: none; position: relative; overflow: hidden;
  box-shadow: 0 6px 18px rgba(36,50,63,.12); transition: transform .2s, box-shadow .2s;
}
a.home-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(36,50,63,.18); text-decoration: none; color: #fff; }
a.home-card::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 140px; height: 140px; border-radius: 50%; background: rgba(255,255,255,.08); }
.hc-blu { background: linear-gradient(140deg, #19a9ec, #0077b6); }
.hc-verde { background: linear-gradient(140deg, #9bd04f, #5f9e22); }
.hc-scuro { background: linear-gradient(140deg, #3a5068, #24323f); }
.hc-ico { width: 52px; height: 52px; border-radius: 12px; background: rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.hc-ico svg { width: 30px; height: 30px; color: #fff; }
.hc-title { font: 600 18px 'Montserrat', Arial, sans-serif; margin-bottom: 6px; }

@media (min-width: 768px) and (max-width: 980px) {
  .home-cards { grid-template-columns: 1fr; }
  a.home-card:link, a.home-card:visited { min-height: 0; }
}
@media (max-width: 767px) {
  .cta-box { flex-direction: column; align-items: flex-start; padding: 20px; gap: 14px; }
  .cta-actions { width: 100%; }
  .home-cards { grid-template-columns: 1fr; gap: 12px; }
  a.home-card:link, a.home-card:visited { min-height: 0; }
  a.dl-card:link, a.dl-card:visited { gap: 12px; }
  .dl-btn { padding: 8px 10px; font-size: 12px; }
}

/* ---------- pagina La Struttura ---------- */
.st-intro { font-size: 15.5px; color: #4a535c; margin-bottom: 22px !important; }
.st-org { margin: 10px 0 6px; }
.st-label { display: block; text-align: center; font: 600 11.5px 'Montserrat', Arial, sans-serif; letter-spacing: 1.4px; text-transform: uppercase; color: #8a949d; margin-bottom: 12px; }
.st-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.st-single { grid-template-columns: minmax(0, 1fr); max-width: 50%; margin: 0 auto; }
.st-conn { width: 2px; height: 26px; margin: 10px auto; background: repeating-linear-gradient(to bottom, #b9c6d0 0 5px, transparent 5px 9px); }
.st-card { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid #e3e8ec; border-radius: 12px; padding: 16px 18px; box-shadow: 0 2px 10px rgba(36,50,63,.05); border-top: 4px solid var(--ec-blu); transition: transform .2s, box-shadow .2s; }
.st-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(36,50,63,.10); }
.st-card h3 { margin: 1px 0 5px !important; font: 600 15px 'Montserrat', Arial, sans-serif !important; color: var(--ec-titoli) !important; padding: 0 !important; }
.st-card h3::after { display: none !important; }
.st-card p { margin: 0; font-size: 13.8px; line-height: 1.55; color: #555f68; text-align: left; }
.st-ico { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 11px; display: flex; align-items: center; justify-content: center; background: #e6f5fc; }
.st-ico svg { width: 23px; height: 23px; fill: none; stroke: var(--ec-blu); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.st-verde { border-top-color: var(--ec-verde); }
.st-verde .st-ico { background: #eef7e3; } .st-verde .st-ico svg { stroke: #6aa82b; }
.st-scuro { border-top-color: var(--ec-titoli); }
.st-scuro .st-ico { background: #e8edf1; } .st-scuro .st-ico svg { stroke: var(--ec-titoli); }
@media (max-width: 767px) {
  .st-grid { grid-template-columns: 1fr; gap: 10px; }
  .st-single { max-width: none; }
}

/* ---------- pagina Global Service: schema a raggiera ---------- */
.gs-wrap { margin: 26px 0 8px; padding: 24px 22px 26px; border-radius: 16px; background: linear-gradient(180deg, #f5fafd 0%, #eef6f0 100%); border: 1px solid #e3ecf1; }
.gs-head { text-align: center; color: #5b6670; margin: 0 0 20px !important; font-size: 14.5px; }
.gs-hub-grid { display: grid; grid-template-columns: minmax(0, 1fr) 210px minmax(0, 1fr); gap: 0 26px; align-items: center; }
.gs-col { display: flex; flex-direction: column; gap: 12px; }
.gs-center { display: flex; justify-content: center; align-items: center; position: relative; align-self: stretch; }
/* linee che collegano i servizi al centro */
.gs-center::before { content: ""; position: absolute; left: -26px; right: -26px; top: 50%; height: 2px; background: repeating-linear-gradient(90deg, #a9c7d8 0 6px, transparent 6px 11px); }
.gs-center::after { content: ""; position: absolute; left: 50%; top: 50%; bottom: -24px; width: 2px; background: repeating-linear-gradient(180deg, #a9c7d8 0 6px, transparent 6px 11px); }
.gs-hub { position: relative; z-index: 1; width: 180px; height: 180px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, #2bb3f0 0%, #0083c6 55%, #0a5f92 100%); box-shadow: 0 14px 34px rgba(0, 119, 182, .35); }
.gs-hub-ring { position: absolute; inset: -12px; border-radius: 50%; border: 2px solid rgba(140, 198, 63, .55); animation: gs-pulse 3s ease-in-out infinite; }
@keyframes gs-pulse { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.06); opacity: .35; } }
.gs-hub-in { text-align: center; color: #fff; line-height: 1.1; }
.gs-hub-in small { display: block; font: 600 9.5px 'Montserrat', Arial, sans-serif; letter-spacing: 1px; text-transform: uppercase; opacity: .85; margin-bottom: 6px; padding: 0 22px; line-height: 1.3; }
.gs-hub-in strong { font: 700 22px/1.05 'Montserrat', Arial, sans-serif; letter-spacing: 1.5px; color: #fff !important; }

.gs-item { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #e1e8ed; border-radius: 12px; padding: 11px 13px; text-decoration: none !important; color: var(--ec-testo) !important; box-shadow: 0 2px 8px rgba(36,50,63,.05); transition: transform .18s, box-shadow .18s, border-color .18s; position: relative; z-index: 1; }
a.gs-item:hover { transform: translateY(-2px); border-color: var(--ec-blu); box-shadow: 0 8px 18px rgba(0,154,225,.14); }
.gs-ico { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 10px; background: #e6f5fc; display: flex; align-items: center; justify-content: center; transition: background .18s; }
.gs-ico svg { width: 21px; height: 21px; fill: none; stroke: var(--ec-blu); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .18s; }
a.gs-item:hover .gs-ico { background: var(--ec-blu); }
a.gs-item:hover .gs-ico svg { stroke: #fff; }
.gs-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.gs-txt strong { font: 600 13.5px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
.gs-txt small { font-size: 12px; color: #7a858f; margin-top: 2px; }
.gs-col-dx .gs-item:nth-child(even) .gs-ico, .gs-col-sx .gs-item:nth-child(even) .gs-ico { background: #eef7e3; }
.gs-col-dx .gs-item:nth-child(even) .gs-ico svg, .gs-col-sx .gs-item:nth-child(even) .gs-ico svg { stroke: #6aa82b; }
div.gs-item { opacity: .8; }
.gs-bottom { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 24px; position: relative; }
.gs-bottom::before { content: ""; position: absolute; left: 16%; right: 16%; top: -12px; height: 2px; background: repeating-linear-gradient(90deg, #a9c7d8 0 6px, transparent 6px 11px); }
.gs-bottom .gs-item { flex-direction: column; text-align: center; gap: 8px; padding: 14px 10px; }
.gs-bottom .gs-txt { align-items: center; }

@media (max-width: 980px) {
  .gs-hub-grid { grid-template-columns: 1fr; gap: 12px; }
  .gs-center { order: -1; margin-bottom: 8px; }
  .gs-center::before, .gs-center::after, .gs-bottom::before { display: none; }
  .gs-bottom { grid-template-columns: 1fr; margin-top: 12px; }
  .gs-bottom .gs-item { flex-direction: row; text-align: left; padding: 11px 13px; }
  .gs-bottom .gs-txt { align-items: flex-start; }
  .gs-wrap { padding: 18px 14px; }
}

/* ---------- pagina Certificati ---------- */

.cert-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
a.cert-card:link, a.cert-card:visited { display: flex; flex-direction: column; background: #fff; border: 1px solid #e1e8ed; border-radius: 14px; overflow: hidden; color: var(--ec-testo); text-decoration: none; box-shadow: 0 3px 12px rgba(36,50,63,.06); transition: transform .2s, box-shadow .2s, border-color .2s; }
a.cert-card:hover { transform: translateY(-3px); border-color: var(--ec-blu); box-shadow: 0 12px 26px rgba(0,119,182,.16); text-decoration: none; }
.cert-prev { position: relative; display: block; height: 150px; background: #eef3f6; overflow: hidden; border-bottom: 1px solid #e6ecf0; }
.cert-prev > img { position: absolute; left: 50%; top: 14px; width: 82%; transform: translateX(-50%); box-shadow: 0 4px 14px rgba(0,0,0,.14); border-radius: 3px 3px 0 0; transition: transform .3s; background: #fff; }
a.cert-card:hover .cert-prev > img { transform: translateX(-50%) translateY(-4px) scale(1.02); }
.cert-logo { position: absolute; right: 10px; bottom: 10px; width: 58px; height: 58px; border-radius: 50%; background: #fff; box-shadow: 0 3px 10px rgba(0,0,0,.15); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.cert-logo img { max-width: 46px; max-height: 46px; }
.cert-body { display: flex; flex-direction: column; padding: 14px 16px 16px; flex: 1; }

.cert-body strong, .cert-assoc strong { font: 600 15.5px/1.3 'Montserrat', Arial, sans-serif; color: var(--ec-titoli) !important; margin-bottom: 6px; }

.cert-btn { display: flex; align-items: center; gap: 7px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #edf1f4; font: 600 13px 'Montserrat', Arial, sans-serif; color: var(--ec-blu); }
.cert-btn svg { width: 18px; height: 18px; fill: var(--ec-blu); }
.cert-btn small { margin-left: auto; white-space: nowrap; font: 400 11.5px 'Open Sans', Arial, sans-serif; color: #8a949d; }
.cert-assoc { display: flex; align-items: center; gap: 18px; margin-top: 20px; padding: 16px 20px; border: 1px dashed #cfd9e0; border-radius: 14px; background: #fafcfd; }
.cert-assoc img { width: 120px; height: auto; flex: 0 0 auto; }
.cert-assoc > div { display: flex; flex-direction: column; }
@media (max-width: 980px) { .cert-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .cert-grid { grid-template-columns: 1fr; } .cert-assoc { flex-direction: column; text-align: center; } }

/* ---------- pagina Edicola ---------- */

.ed-anni { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.ed-anni a:link, .ed-anni a:visited { display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px; border-radius: 30px; border: 1px solid #d6e0e7; background: #fff; color: var(--ec-titoli); font: 600 14px 'Montserrat', Arial, sans-serif; text-decoration: none; transition: all .15s; }
.ed-anni a small { font: 600 11px 'Open Sans', Arial, sans-serif; background: #eef3f6; color: #6b7782; border-radius: 10px; padding: 1px 7px; }
.ed-anni a:hover { border-color: var(--ec-blu); color: var(--ec-blu); text-decoration: none; }
.ed-anni a.on { background: var(--ec-blu); border-color: var(--ec-blu); color: #fff; box-shadow: 0 4px 12px rgba(0,154,225,.25); }
.ed-anni a.on small { background: rgba(255,255,255,.25); color: #fff; }

.ed-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
a.ed-card:link, a.ed-card:visited { display: flex; flex-direction: column; border: 1px solid #e1e8ed; border-radius: 12px; overflow: hidden; background: #fff; color: var(--ec-testo); text-decoration: none; box-shadow: 0 2px 8px rgba(36,50,63,.05); transition: transform .18s, box-shadow .18s, border-color .18s; }
a.ed-card:hover { transform: translateY(-3px); border-color: var(--ec-blu); box-shadow: 0 10px 22px rgba(0,119,182,.15); text-decoration: none; }
.ed-cover { position: relative; height: 92px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; background: linear-gradient(140deg, #2bb3f0, #0a6fa8); }
a.ed-card:nth-child(4n+2) .ed-cover { background: linear-gradient(140deg, #9bd04f, #5f9e22); }
a.ed-card:nth-child(4n+3) .ed-cover { background: linear-gradient(140deg, #3a5068, #24323f); }
a.ed-card:nth-child(4n+4) .ed-cover { background: linear-gradient(140deg, #19a0d8, #1b5f8c); }
.ed-mese { font: 700 24px/1 'Montserrat', Arial, sans-serif; letter-spacing: 1.5px; }
.ed-anno { font: 600 12px 'Montserrat', Arial, sans-serif; opacity: .85; margin-top: 3px; letter-spacing: 1px; }
.ed-ext { position: absolute; top: 8px; right: 8px; font: 700 9.5px 'Montserrat', Arial, sans-serif; background: rgba(255,255,255,.22); border-radius: 4px; padding: 2px 6px; letter-spacing: .5px; }
.ed-info { display: flex; flex-direction: column; padding: 10px 12px 12px; line-height: 1.35; }
.ed-info strong { font: 600 14px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
.ed-info small { font-size: 12px; color: #7a858f; margin-top: 2px; }
.ed-open { margin-top: 8px; font: 600 12.5px 'Montserrat', Arial, sans-serif; color: var(--ec-blu); }
.ed-nav { display: flex; justify-content: space-between; margin-top: 22px; }
.ed-nav a:link, .ed-nav a:visited { font: 600 14px 'Montserrat', Arial, sans-serif; padding: 9px 16px; border-radius: 8px; background: #f2f6f8; color: var(--ec-titoli); text-decoration: none; }
.ed-nav a:hover { background: var(--ec-blu); color: #fff; text-decoration: none; }
@media (max-width: 980px) { .ed-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .ed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .ed-anni a:link, .ed-anni a:visited { padding: 7px 13px; } }

/* ---------- schede tema (Mercati dell'energia, Energie rinnovabili) ---------- */
.tema-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 22px 0 8px; }
a.tema-card:link, a.tema-card:visited { display: flex; flex-direction: column; align-items: flex-start; padding: 22px 20px 20px; background: #fff; border: 1px solid #e1e8ed; border-radius: 14px; color: var(--ec-testo); text-decoration: none; box-shadow: 0 3px 12px rgba(36,50,63,.06); transition: transform .2s, box-shadow .2s, border-color .2s; position: relative; overflow: hidden; }
a.tema-card::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 4px; background: var(--tc); }
a.tema-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(36,50,63,.12); border-color: var(--tc); text-decoration: none; }
.tema-blu { --tc: #009ae1; --tb: #e6f5fc; }
.tema-verde { --tc: #6aa82b; --tb: #eef7e3; }
.tema-arancio { --tc: #f39a1e; --tb: #fff3e2; }
.tema-ico { width: 62px; height: 62px; border-radius: 16px; background: var(--tb); color: var(--tc); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; transition: background .2s, color .2s; }
.tema-ico svg { width: 36px; height: 36px; }
a.tema-card:hover .tema-ico { background: var(--tc); color: #fff; }
.tema-card strong { font: 600 17px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli) !important; margin-bottom: 6px; }
.tema-txt { font-size: 13.5px; line-height: 1.5; color: #5b6670; flex: 1; }
.tema-link { margin-top: 14px; font: 600 13.5px 'Montserrat', Arial, sans-serif; color: var(--tc); }
@media (max-width: 767px) { .tema-grid { grid-template-columns: 1fr; gap: 12px; } }

/* ---------- pagine tematiche: intestazione, elenchi, correlati ---------- */
.tema-scuro { --tc: #24323f; --tb: #e8edf1; }
.tema-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tema-hero { display: flex; gap: 20px; align-items: center; padding: 20px 22px; margin: 0 0 22px; border-radius: 14px; background: var(--tb); border-left: 5px solid var(--tc); }
.tema-hero-ico { flex: 0 0 74px; width: 74px; height: 74px; border-radius: 18px; background: #fff; color: var(--tc); display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(36,50,63,.08); }
.tema-hero-ico svg { width: 42px; height: 42px; }

.tema-hero p { margin: 0 !important; font-size: 15.5px; line-height: 1.6; color: #2f3840; font-weight: 600; text-align: left !important; }
.tema-hero p b { font-weight: 700; }
.post > h4 { margin: 26px 0 8px !important; }
.check-list { list-style: none; margin: 4px 0 10px !important; padding: 0 !important; display: grid; gap: 8px; }
.check-list li { position: relative; padding: 10px 14px 10px 42px; background: #f7f9fa; border: 1px solid #e8edf1; border-radius: 10px; line-height: 1.55; }
.check-list li::before { content: ""; position: absolute; left: 13px; top: 12px; width: 18px; height: 18px; border-radius: 50%; background: var(--ec-verde) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 12px; }
.correlati { margin: 30px 0 4px; padding-top: 18px; border-top: 1px solid #e6ebef; }
.correlati > span { display: block; font: 600 11.5px 'Montserrat', Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #8a949d; margin-bottom: 10px; }
.correlati > div { display: flex; flex-wrap: wrap; gap: 10px; }
a.corr:link, a.corr:visited { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px 9px 10px; border-radius: 30px; border: 1px solid #dfe6eb; background: #fff; color: var(--ec-titoli); font: 600 13.5px 'Montserrat', Arial, sans-serif; text-decoration: none; transition: all .15s; }
a.corr svg { width: 22px; height: 22px; color: var(--tc); background: var(--tb); border-radius: 50%; padding: 4px; box-sizing: content-box; }
a.corr:hover { border-color: var(--tc); color: var(--tc); text-decoration: none; }
@media (max-width: 767px) {
  .tema-hero { flex-direction: column; align-items: flex-start; padding: 18px; }
  .tema-hero-ico { width: 60px; height: 60px; flex-basis: 60px; }
  .tema-grid:has(> :nth-child(4):last-child) { grid-template-columns: 1fr; }
}

/* ---------- mega menu (computer) ---------- */
#megamenu { display: none; }
@media (min-width: 981px) {
  #cssmenu { display: none !important; }
  #megamenu {
    display: block; position: fixed; top: 0; left: 50%; transform: translateX(-50%); z-index: 9999;
    width: 1000px; background: #fff; border-bottom: 2px solid var(--ec-blu); box-shadow: 0 2px 10px rgba(36,50,63,.06);
    font-family: 'Montserrat', Arial, sans-serif;
  }
  .mm-bar { list-style: none; margin: 0; padding: 0 10px; display: flex; }
  .mm-voce { position: static; }
  .mm-voce.mm-rel { position: relative; }
  .mm-top {
    display: flex; align-items: center; gap: 6px; height: 52px; padding: 0 16px; border: 0; background: none; cursor: pointer;
    font: 600 12.5px 'Montserrat', Arial, sans-serif; letter-spacing: .6px; text-transform: uppercase; color: #2b3640 !important;
    text-decoration: none !important; position: relative; white-space: nowrap;
  }
  .mm-top svg { width: 10px; height: 7px; transition: transform .2s; color: #8a96a0; }
  .mm-top::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: -2px; height: 3px; border-radius: 3px 3px 0 0; background: var(--ec-blu); transform: scaleX(0); transition: transform .2s; }
  .mm-voce:hover > .mm-top, .mm-voce.open > .mm-top, .mm-voce.mm-on > .mm-top { color: var(--ec-blu) !important; }
  .mm-voce:hover > .mm-top::after, .mm-voce.open > .mm-top::after, .mm-voce.mm-on > .mm-top::after { transform: scaleX(1); }
  .mm-voce.open > .mm-top svg { transform: rotate(180deg); color: var(--ec-blu); }

  .mm-pan {
    position: absolute; left: 0; right: 0; top: 100%; margin-top: 2px; padding: 24px 26px 22px;
    background: #fff; border-radius: 0 0 14px 14px; box-shadow: 0 18px 40px rgba(36,50,63,.16);
    opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .18s, transform .18s, visibility 0s .18s;
  }
  /* "ponte" invisibile: il pannello non si chiude passando dal menu al sottomenu */
  .mm-pan::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
  .mm-voce.open > .mm-pan { opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .18s, visibility 0s; }
  .mm-pan-small { left: 0; right: auto; min-width: 220px; padding: 12px 8px; border-radius: 0 0 12px 12px; }

  .mm-cols { display: grid; gap: 26px; }
  
  .mm-n4 { grid-template-columns: repeat(4, 1fr); }
  .mm-tit { display: block; font: 700 11px 'Montserrat', Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #6aa82b; padding-bottom: 8px; margin-bottom: 6px; border-bottom: 1px solid #edf1f4; }
  .mm-col ul, .mm-small { list-style: none; margin: 0; padding: 0; }
  .mm-col a, .mm-small a { display: block; padding: 6px 8px; margin: 0 -8px; border-radius: 6px; font: 500 13.5px/1.35 'Open Sans', Arial, sans-serif; color: #3b4148 !important; text-decoration: none !important; transition: background .12s, color .12s, padding .12s; }
  .mm-col a:hover, .mm-small a:hover { background: #eef7fc; color: var(--ec-blu) !important; padding-left: 12px; }
  .mm-col a.on { color: var(--ec-blu) !important; font-weight: 600; }
  .mm-box { display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; border-radius: 12px; color: #fff !important; text-decoration: none !important; background: linear-gradient(140deg, #19a9ec, #0077b6); min-height: 150px; }
  .mm-box strong { font: 600 16px 'Montserrat', Arial, sans-serif; margin-bottom: 6px; }
  .mm-box span { font: 400 13px/1.45 'Open Sans', Arial, sans-serif; opacity: .9; }
  .mm-box em { font: 600 12.5px 'Montserrat', Arial, sans-serif; font-style: normal; margin-top: 12px; }

  .mm-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .mm-card { border: 1px solid #e6ecf0; border-radius: 12px; padding: 14px; transition: border-color .15s, box-shadow .15s; }
  .mm-card:hover { border-color: var(--tc); box-shadow: 0 6px 16px rgba(36,50,63,.08); }
  .mm-card-main { display: flex; gap: 12px; align-items: center; text-decoration: none !important; }
  .mm-card-ico { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 12px; background: var(--tb); color: var(--tc); display: flex; align-items: center; justify-content: center; }
  .mm-card-ico svg { width: 28px; height: 28px; }
  .mm-card-main strong { display: block; font: 600 14.5px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
  .mm-card-main small { display: block; font: 400 12.5px 'Open Sans', Arial, sans-serif; color: #7a858f; margin-top: 2px; }
  .mm-card-main:hover strong { color: var(--tc); }
  .mm-card-sub { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed #e3e9ed; }
  .mm-card-sub a { font: 500 12px 'Open Sans', Arial, sans-serif; padding: 4px 10px; border-radius: 20px; background: var(--tb); color: var(--tc) !important; text-decoration: none !important; }
  .mm-card-sub a:hover { background: var(--tc); color: #fff !important; }
  .mm-all { display: inline-block; margin-top: 14px; font: 600 13px 'Montserrat', Arial, sans-serif; color: var(--ec-blu) !important; }
}
@media (min-width: 1220px) { #megamenu { width: 1180px; } }

/* ---------- pagine di testo: spaziature e dettagli ---------- */
.post > p { margin: 0 0 14px; }
.post > h3 { margin: 22px 0 8px !important; }
.post iframe { border: 0; border-radius: 14px; box-shadow: 0 4px 16px rgba(36,50,63,.10); max-width: 100%; margin-top: 8px; }
.post ul.check-list + p, .post .tema-hero + p { margin-top: 0; }
/* pagina Link */
.link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 10px; }
a.link-card:link, a.link-card:visited { display: flex; flex-direction: column; gap: 3px; padding: 14px 40px 14px 16px; border: 1px solid #e1e8ed; border-radius: 12px; background: #fff; text-decoration: none; position: relative; transition: border-color .15s, box-shadow .15s, transform .15s; }
a.link-card::after { content: "↗"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 16px; color: var(--ec-blu); }
a.link-card:hover { border-color: var(--ec-blu); box-shadow: 0 6px 16px rgba(0,154,225,.12); transform: translateY(-2px); text-decoration: none; }
.link-card strong { font: 600 14px/1.35 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
.link-card span { font-size: 12.5px; color: #7a858f; word-break: break-all; }
@media (max-width: 767px) { .link-grid { grid-template-columns: 1fr; } }

/* colonna di destra: blocco Edicola */
a.side-ed-item:link, a.side-ed-item:visited { display: flex; align-items: center; gap: 12px; padding: 8px; margin: 0 -8px 6px; border-radius: 10px; text-decoration: none; transition: background .15s; }
a.side-ed-item:hover { background: #f2f7fa; text-decoration: none; }
.side-ed-mese { flex: 0 0 48px; height: 48px; border-radius: 10px; background: linear-gradient(140deg, #2bb3f0, #0a6fa8); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font: 600 9.5px 'Montserrat', Arial, sans-serif; letter-spacing: .5px; line-height: 1.1; }
.side-ed-mese b { font-size: 15px; letter-spacing: 1px; }
a.side-ed-item:nth-of-type(2) .side-ed-mese { background: linear-gradient(140deg, #9bd04f, #5f9e22); }
a.side-ed-item:nth-of-type(3) .side-ed-mese { background: linear-gradient(140deg, #3a5068, #24323f); }
.side-ed-txt { display: flex; flex-direction: column; line-height: 1.35; }
.side-ed-txt strong { font: 600 13.5px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
.side-ed-txt small { font-size: 12px; color: #7a858f; }
.side-btn-blu { background: var(--ec-blu) !important; }
.side-btn-blu:hover { background: #0085c4 !important; }
.cf-card-wide { grid-column: 1 / -1; }
.cf-informativa { margin: 0 0 10px !important; font-size: 12.5px; line-height: 1.55; }

/* ---------- footer riorganizzato (inc/footer-sito.php) ---------- */
.ft-grid { display: grid; grid-template-columns: 1.25fr repeat(5, minmax(0, 1fr)); gap: 26px 22px; padding: 0 10px; }
.ft-col h4 { font-family: 'Montserrat', Arial, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .9px; text-transform: uppercase; color: #fff; margin: 0 0 14px; padding-bottom: 10px; position: relative; line-height: 1.35; }
.ft-col h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; background: var(--ec-verde); }
.ft-col ul { list-style: none; margin: 0; padding: 0; }
.ft-col li { margin: 0 0 7px; line-height: 1.35; }
#footer .ft-col a { font-size: 13px; color: #b9c4ce; }
#footer .ft-col a:hover { color: #fff; }
.ft-brand p { color: #b9c4ce; font-size: 13px; line-height: 1.6; margin: 0 0 10px; }
.ft-brand h4 { text-transform: none; font-size: 15px; letter-spacing: .2px; }
.footer_copiright { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 6px 16px; text-align: left; }
.footer_copiright .ft-legal a { color: #b9c4ce; font-size: 12.5px; }
.footer_copiright .ft-legal a:hover { color: #fff; }
@media (min-width: 768px) and (max-width: 1219px) { .ft-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .ft-grid { grid-template-columns: 1fr 1fr; gap: 22px 16px; padding: 0; }
  .ft-brand { grid-column: 1 / -1; }
  .footer_copiright { justify-content: center; text-align: center; }
}

/* ---------- pagina News ---------- */
.news-list { display: flex; flex-direction: column; gap: 14px; margin-top: 4px; }
.news-card { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid #e1e8ed; border-radius: 14px; padding: 18px 20px; box-shadow: 0 2px 10px rgba(36,50,63,.05); transition: border-color .15s, box-shadow .15s; }
.news-card:hover { border-color: var(--ec-blu); box-shadow: 0 8px 20px rgba(0,154,225,.10); }
.news-data { flex: 0 0 64px; height: 70px; border-radius: 12px; background: linear-gradient(140deg, #2bb3f0, #0a6fa8); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; font-family: 'Montserrat', Arial, sans-serif; }
.news-data b { font-size: 24px; font-weight: 700; }
.news-data span { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-top: 2px; }
.news-data small { font-size: 10px; opacity: .8; margin-top: 2px; }
.news-corpo { flex: 1; min-width: 0; }
.news-corpo h3 { margin: 2px 0 6px !important; font: 600 17px/1.35 'Montserrat', Arial, sans-serif !important; color: var(--ec-titoli) !important; }
.news-corpo p { margin: 0 0 8px; color: #4a535c; line-height: 1.6; }
.news-link { font: 600 13.5px 'Montserrat', Arial, sans-serif; }
.news-link::before { display: none !important; }
@media (max-width: 767px) { .news-card { padding: 14px; gap: 12px; } .news-data { flex-basis: 54px; height: 62px; } .news-data b { font-size: 20px; } }

/* ---------- Convenzioni e accesso Quotazioni ---------- */
.conv-intro { background: #f4f9fc; border-left: 4px solid var(--ec-blu); border-radius: 10px; padding: 14px 18px; margin: 0 0 18px !important; color: #2f3840; }
.conv-box { background: #fff; border: 1px solid #e1e8ed; border-radius: 14px; padding: 22px 24px; box-shadow: 0 4px 16px rgba(36,50,63,.06); max-width: 560px; margin: 6px 0 14px; }
.conv-label { display: block; font: 600 15px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); margin-bottom: 12px; }
.conv-row { display: flex; gap: 10px; }
.conv-row input[type="text"], .conv-row input[type="number"] { flex: 1; min-width: 0; height: 46px !important; box-sizing: border-box; border: 1px solid #cfd7de !important; border-radius: 8px !important; padding: 0 14px !important; font: 16px 'Open Sans', Arial, sans-serif !important; background: #fbfcfd !important; letter-spacing: .5px; }
.conv-row input[type="text"]:focus, .conv-row input[type="number"]:focus { outline: none; border-color: var(--ec-blu) !important; box-shadow: 0 0 0 3px rgba(0,154,225,.15); background: #fff !important; }
.conv-row input.button { height: 46px; padding: 0 24px; border-radius: 8px; background: var(--ec-verde); color: #fff; font: 600 14px 'Montserrat', Arial, sans-serif; letter-spacing: .4px; cursor: pointer; margin: 0 !important; }
.conv-row input.button:hover { background: #7ab52f; }
/* Safari iPhone: i pulsanti "input" non contano il padding nella larghezza (il pulsante usciva dal riquadro) */
input[type="submit"], input[type="button"], input[type="reset"], button { box-sizing: border-box; }
.conv-row input.button { max-width: 100%; border: 0; -webkit-appearance: none; appearance: none; }
.conv-err span { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 600; }
.conv-err:empty { display: none; }
.conv-help { margin: 4px 0 6px; padding-left: 26px; position: relative; color: #5b6670; font-size: 14px; }
.conv-help::before { content: "?"; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; border-radius: 50%; background: var(--ec-blu); color: #fff; font: 700 12px/18px 'Montserrat', Arial, sans-serif; text-align: center; }
.conv-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 600px; margin: 8px 0 10px; }
.conv-choice { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 26px 18px 20px; background: #fff; border: 1px solid #e1e8ed; border-radius: 14px; cursor: pointer; box-shadow: 0 3px 12px rgba(36,50,63,.06); transition: transform .2s, box-shadow .2s, border-color .2s; }
.conv-choice:hover { transform: translateY(-3px); border-color: var(--ec-blu); box-shadow: 0 12px 26px rgba(0,119,182,.14); }
.conv-ico { width: 72px; height: 72px; border-radius: 20px; background: #e6f5fc; color: var(--ec-blu); display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s; }
.conv-ico svg { width: 42px; height: 42px; }
.conv-choice:nth-child(2) .conv-ico { background: #eef7e3; color: #6aa82b; }
.conv-choice:hover .conv-ico { background: var(--ec-blu); color: #fff; }
.conv-choice strong { font: 600 16px 'Montserrat', Arial, sans-serif; letter-spacing: .8px; color: var(--ec-titoli); }
.conv-btn { border: 0; border-radius: 8px; background: var(--ec-blu); color: #fff; font: 600 13px 'Montserrat', Arial, sans-serif; padding: 9px 22px; cursor: pointer; }
.conv-choice:hover .conv-btn { background: #0085c4; }
.conv-actions { margin-top: 18px; clear: both; }
.conv-back { background: #f2f6f8; border: 1px solid #dfe6eb; border-radius: 8px; padding: 9px 16px; font: 600 13px 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); cursor: pointer; }
.conv-back:hover { border-color: var(--ec-blu); color: var(--ec-blu); }
.conv-img a { display: inline-block; border-radius: 14px; overflow: hidden; border: 1px solid #e1e8ed; box-shadow: 0 6px 18px rgba(36,50,63,.08); }
.conv-img img { display: block; max-width: 100%; height: auto; }
@media (max-width: 767px) { .conv-row { flex-direction: column; } .conv-row input.button { width: 100%; } .conv-choices { grid-template-columns: 1fr 1fr; gap: 10px; } .conv-choice { padding: 18px 10px 14px; } }

/* ---------- Chi siamo ---------- */
.cs-timeline { position: relative; margin: 6px 0 18px; padding-left: 30px; }
.cs-timeline::before { content: ""; position: absolute; left: 9px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(#009ae1, #8cc63f); border-radius: 2px; }
.cs-step { position: relative; margin-bottom: 14px; }
.cs-step::before { content: ""; position: absolute; left: -27px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid var(--ec-blu); }
.cs-step:last-child::before { border-color: var(--ec-verde); }
.cs-step p { margin: 0 !important; }
.cs-info { background: #f4f9fc; border: 1px solid #dcecf5; border-radius: 12px; padding: 14px 16px; }
.cs-info::before { top: 20px; }
.cs-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 8px 0 18px; }
.cs-card { background: #fff; border: 1px solid #e1e8ed; border-top: 4px solid var(--ec-blu); border-radius: 12px; padding: 16px 18px; box-shadow: 0 2px 10px rgba(36,50,63,.05); }
.cs-card:nth-child(2) { border-top-color: var(--ec-verde); }
.cs-card p { margin: 0 !important; }
.cs-ico { display: flex; width: 44px; height: 44px; border-radius: 12px; background: #e6f5fc; color: var(--ec-blu); align-items: center; justify-content: center; margin-bottom: 10px; }
.cs-card:nth-child(2) .cs-ico { background: #eef7e3; color: #6aa82b; }
.cs-ico svg { width: 26px; height: 26px; }
.cs-evidenza { margin: 6px 0 18px; padding: 20px 22px 20px 64px; border-radius: 14px; background: linear-gradient(120deg, #eef7e3, #f4fbec); border: 1px solid #d8ecc1; position: relative; }
.cs-evidenza::before { content: "“"; position: absolute; left: 18px; top: 4px; font: 700 60px/1 Georgia, serif; color: var(--ec-verde); }
.cs-evidenza p { margin: 0 !important; font-size: 15.5px; color: #2f3840; }
@media (max-width: 767px) { .cs-duo { grid-template-columns: 1fr; } .cs-evidenza { padding-left: 50px; } }

/* home: schede compatte e centrate */
a.home-card:link, a.home-card:visited { min-height: 0 !important; align-items: center; text-align: center; justify-content: center; padding: 26px 18px 22px; gap: 0; }
a.home-card::after { right: -50px; bottom: -60px; width: 150px; height: 150px; }
a.home-card::before { content: ""; position: absolute; left: -40px; top: -50px; width: 110px; height: 110px; border-radius: 50%; background: rgba(255,255,255,.07); }
.hc-ico { width: 64px; height: 64px; border-radius: 50%; margin: 0 0 14px; background: rgba(255,255,255,.2); box-shadow: 0 0 0 8px rgba(255,255,255,.08); transition: transform .25s; }
.hc-ico svg { width: 32px; height: 32px; }
a.home-card:hover .hc-ico { transform: scale(1.08); }
.hc-title { font-size: 17px; margin: 0; letter-spacing: .3px; }
.hc-go { margin-top: 14px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.95); display: flex; align-items: center; justify-content: center; transition: transform .2s; }
.hc-go svg { width: 18px; height: 18px; }
.hc-blu .hc-go { color: #0077b6; } .hc-verde .hc-go { color: #5f9e22; } .hc-scuro .hc-go { color: #24323f; }
a.home-card:hover .hc-go { transform: translateX(3px); }
a.home-card.hc-verde:hover .hc-go { transform: translateY(3px); }

/* ---------- home: servizi sotto i tre riquadri ---------- */
.home-sez { clear: both; margin-top: 28px; }
.home-sez-tit { display: flex; align-items: center; gap: 12px; margin: 0 0 14px !important; font-size: 19px !important; }
.home-sez-tit a { color: var(--ec-titoli) !important; text-decoration: none !important; }
.home-sez-tit::after { content: ""; flex: 1; height: 1px; background: #e3e9ee; }
.hs-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
a.hs-item:link, a.hs-item:visited { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 18px 10px 16px; border: 1px solid #e3e9ee; border-radius: 14px; background: #fff; text-decoration: none; transition: transform .2s, box-shadow .2s, border-color .2s; }
a.hs-item:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(36,50,63,.10); border-color: var(--hc); text-decoration: none; }
.hs-c0 { --hc: #009ae1; --hb: #e6f5fc; } .hs-c1 { --hc: #6aa82b; --hb: #eef7e3; } .hs-c2 { --hc: #f39a1e; --hb: #fff3e2; } .hs-c3 { --hc: #24323f; --hb: #e8edf1; }
.hs-ico { width: 52px; height: 52px; border-radius: 50%; background: var(--hb); color: var(--hc); display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s; }
.hs-ico svg { width: 30px; height: 30px; }
a.hs-item:hover .hs-ico { background: var(--hc); color: #fff; }
.hs-nome { font: 600 13px/1.3 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); }
.home-sez .tema-grid { margin-top: 0; }
.home-sez a.tema-card:link, .home-sez a.tema-card:visited { flex-direction: row; align-items: center; gap: 14px; padding: 16px 18px; }
.home-sez .tema-ico { width: 48px; height: 48px; margin: 0; border-radius: 12px; }
.home-sez .tema-ico svg { width: 28px; height: 28px; }
.home-sez .tema-card strong { margin: 0; font-size: 15px; flex: 1; }
.home-sez .tema-link { margin: 0; }
@media (max-width: 980px) { .hs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .home-sez .tema-grid { grid-template-columns: 1fr; } }
.link-card em { font-style: normal; font-size: 13px; line-height: 1.4; color: #5b6670; }

/* ---------- social ---------- */
.soc-row { display: flex; flex-wrap: wrap; gap: 8px; }
.soc-row a.soc:link, .soc-row a.soc:visited { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; transition: transform .15s, background-color .15s, color .15s, box-shadow .15s; }
.soc svg { width: 18px; height: 18px; display: block; }
.soc span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* footer: cerchi chiari */
.soc-footer { margin-top: 14px; }
.soc-footer a.soc:link, .soc-footer a.soc:visited { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; }
.soc-footer a.soc:hover { background: var(--soc); color: #fff; transform: translateY(-2px); }
/* colonna laterale */
.soc-colonna { margin: 4px 0 2px; }
.soc-colonna a.soc:link, .soc-colonna a.soc:visited { width: 34px; height: 34px; border-radius: 50%; background: #eef3f6; color: var(--soc); }
.soc-colonna a.soc:hover { background: var(--soc); color: #fff; }
/* pagina contatti: schede con nome */
.cf-social { margin: -14px 0 30px; }
.cf-social h4 { margin: 0 0 10px; font-size: 13px !important; text-transform: uppercase; letter-spacing: .8px; color: #6b7782 !important; }
.soc-grandi { gap: 10px; }
.soc-grandi a.soc:link, .soc-grandi a.soc:visited { gap: 9px; padding: 9px 16px 9px 12px; border-radius: 999px; background: #f7f9fa; border: 1px solid #e6ebef; color: var(--soc); }
.soc-grandi a.soc span { position: static; width: auto; height: auto; overflow: visible; clip: auto; color: #2b3a48; font-weight: 600; font-size: 14px; }
.soc-grandi a.soc:hover { border-color: var(--soc); box-shadow: 0 6px 16px rgba(0,0,0,.08); transform: translateY(-2px); }

/* ---------- intestazione: logo + loghi associazioni + certificati (inc/testata.php) ---------- */
.header.hd { height: auto; padding: 66px 20px 18px; box-sizing: content-box; }
.hd-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.hd-logo { display: block; flex: 0 1 auto; min-width: 0; }
.hd-logo img { display: block; height: 118px; width: auto; max-width: 100%; object-fit: contain; transition: height .3s ease; }
.hd-dx { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: none; }
.hd-assoc { display: flex; align-items: center; gap: 18px; }
.hd-assoc a, .hd-assoc span { display: block; line-height: 0; }
.hd-assoc img { height: 64px; width: auto; display: block; transition: height .3s ease, transform .2s; }
.hd-assoc a:hover img { transform: translateY(-2px); }
a.hd-cert:link, a.hd-cert:visited { display: flex; align-items: center; gap: 16px; padding: 6px 14px; border: 1px solid #e3e8ec; border-radius: 12px; background: #fff; line-height: 0; transition: border-color .2s, box-shadow .2s; }
a.hd-cert:hover { border-color: var(--ec-blu); box-shadow: 0 6px 16px rgba(0,154,225,.12); }
.hd-cert img { height: 46px; width: auto; display: block; transition: height .3s ease; }

/* computer: scorrendo l'intestazione resta in alto (sotto il menu) e si riduce */
@media (min-width: 981px) {
  body.hd-mini .hd-in {
    position: fixed; top: 54px; left: 50%; transform: translateX(-50%); z-index: 9990;
    width: 1000px; box-sizing: border-box; padding: 8px 30px;
    background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    box-shadow: 0 8px 20px rgba(36,50,63,.08); border-radius: 0 0 14px 14px; animation: hd-giu .3s ease;
  }
  body.hd-mini .hd-logo img { height: 70px; }
  body.hd-mini .hd-dx { flex-direction: row; align-items: center; gap: 16px; }
  body.hd-mini .hd-assoc { gap: 12px; }
  body.hd-mini .hd-assoc img { height: 42px; }
  body.hd-mini a.hd-cert { padding: 4px 10px; gap: 12px; }
  body.hd-mini .hd-cert img { height: 34px; }
}
@media (min-width: 1220px) { body.hd-mini .hd-in { width: 1180px; } }
@keyframes hd-giu { from { transform: translate(-50%, -12px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }

/* tablet e smartphone: logo centrato, loghi in una riga piccola sotto */
@media (max-width: 980px) {
  .header.hd { padding: 66px 0 12px; }      /* sotto la barra MENU fissa in alto (54px) */
  html { scroll-padding-top: 70px; }
  /* menu per smartphone: se aperto e' piu' lungo dello schermo, scorre */
  #cssmenu > ul { max-height: calc(100vh - 54px); max-height: calc(100dvh - 54px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .hd-in { flex-direction: column; gap: 14px; }
  .hd-logo img { height: auto; width: 420px; max-width: 100%; }
  .hd-dx { align-items: center; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 10px 14px; }
  .hd-assoc { gap: 12px; }
  .hd-assoc img { height: 40px; }
  a.hd-cert:link, a.hd-cert:visited { padding: 4px 10px; gap: 12px; }
  .hd-cert img { height: 30px; }
}
@media (min-width: 981px) { html { scroll-padding-top: 150px; } }

/* ---------- pagina 404 "blackout" ---------- */
.e404 { display: flex; align-items: center; gap: 28px; margin: 6px 0 34px; padding: 26px 28px; border-radius: 18px;
  background: radial-gradient(circle at 18% 30%, #fff9e0 0%, rgba(255,249,224,0) 45%), linear-gradient(135deg, #f4f9fd 0%, #f3f8ee 100%); border: 1px solid #e6eef3; }
.e404-vis { flex: 0 0 46%; max-width: 46%; }
.e404-svg { display: block; width: 100%; height: auto; overflow: visible; }
.e404-num { font: 700 150px/1 'Montserrat', Arial, sans-serif; fill: #2b3a48; }
.e404-glow { opacity: 0; }
.e404-bulb { animation: e404-sfarfallio 5s infinite; }
.e404-bulb .e404-glow { animation: e404-alone 5s infinite; }
.e404-bulb .e404-glass { animation: e404-vetro 5s infinite; }
.e404-spark { animation: e404-scintilla 1.6s infinite; transform-origin: 224px 234px; }
@keyframes e404-alone { 0%, 70%, 76%, 82%, 100% { opacity: 0; } 72%, 79% { opacity: .75; } }
@keyframes e404-vetro { 0%, 70%, 76%, 82%, 100% { fill: url(#e4-vetro); } 72%, 79% { fill: url(#e4-luce); } }
@keyframes e404-scintilla { 0%, 100% { opacity: 0; transform: scale(.7); } 10%, 30% { opacity: 1; transform: scale(1); } 45% { opacity: 0; } }
.e404-txt { flex: 1; min-width: 0; }
.e404-kick { display: inline-block; font: 700 11.5px 'Montserrat', Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #b77d00; background: #fff1c7; padding: 4px 10px; border-radius: 20px; margin-bottom: 10px; }
.post h1.e404-tit, h1.e404-tit { font-size: 26px !important; line-height: 1.25 !important; text-transform: none !important; margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; }
h1.e404-tit::after { display: none !important; }
.e404-txt p { margin: 0 0 18px; color: #4f5b66; line-height: 1.6; }
.e404-azioni { display: flex; flex-wrap: wrap; gap: 10px; }
a.e404-btn:link, a.e404-btn:visited { display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; border-radius: 10px; background: var(--ec-blu); color: #fff; font: 600 14px 'Montserrat', Arial, sans-serif; text-decoration: none; box-shadow: 0 8px 18px rgba(0,154,225,.25); transition: transform .15s, box-shadow .15s; }
a.e404-btn svg { width: 16px; height: 16px; color: #ffd84a; }
a.e404-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(0,154,225,.3); color: #fff; text-decoration: none; }
a.e404-btn2:link, a.e404-btn2:visited { background: #fff; color: var(--ec-titoli); border: 1px solid #d9e3ea; box-shadow: none; }
a.e404-btn2:hover { border-color: var(--ec-blu); color: var(--ec-blu); box-shadow: none; }
/* passando sul pulsante la lampadina si accende */
.e404:has(a.e404-btn:hover) .e404-glow { animation: none; opacity: .85; }
.e404:has(a.e404-btn:hover) .e404-glass { animation: none; fill: url(#e4-luce); }
.e404:has(a.e404-btn:hover) .e404-spark { animation: none; opacity: 0; }
.e404-sez { margin-bottom: 10px; }
@media (max-width: 767px) {
  .e404 { flex-direction: column; padding: 20px 18px; gap: 16px; text-align: center; }
  .e404-vis { max-width: 320px; width: 100%; flex-basis: auto; }
  .e404-azioni { justify-content: center; }
  .post h1.e404-tit, h1.e404-tit { font-size: 21px !important; }
}
@media (prefers-reduced-motion: reduce) { .e404-bulb, .e404-glow, .e404-glass, .e404-spark { animation: none !important; } }

/* ---------- avviso cookie ---------- */
.ck-bar { position: fixed; left: 20px; bottom: 20px; z-index: 9990; max-width: 460px; display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; background: #fff; border: 1px solid #e3e9ee; border-radius: 14px; box-shadow: 0 14px 40px rgba(36,50,63,.18);
  font-size: 13.5px; line-height: 1.5; color: #4f5b66; animation: ck-su .4s ease; transition: opacity .3s, transform .3s; }
.ck-bar.ck-via { opacity: 0; transform: translateY(12px); }
.ck-ico { flex: 0 0 38px; height: 38px; border-radius: 50%; background: #fff3e2; color: #d98a14; display: flex; align-items: center; justify-content: center; }
.ck-ico svg { width: 22px; height: 22px; }
.ck-bar p { margin: 0; flex: 1; }
.ck-bar a { color: var(--ec-blu); font-weight: 600; white-space: nowrap; }
#ck-ok { flex: none; border: 0; border-radius: 9px; padding: 9px 16px; background: var(--ec-blu); color: #fff; font: 600 13px 'Montserrat', Arial, sans-serif; cursor: pointer; }
#ck-ok:hover { background: #0085c4; }
@keyframes ck-su { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 600px) { .ck-bar { left: 10px; right: 10px; bottom: 10px; max-width: none; flex-wrap: wrap; } #ck-ok { width: 100%; } }

/* ---------- pagina cookie policy ---------- */
.ck-agg { color: #7a858f; font-size: 13px; margin-top: -6px; }
.ck-sintesi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 14px 0 22px; }
.ck-sintesi div { padding: 12px 14px; border-radius: 12px; background: #eef7e3; border: 1px solid #dcebc8; }
.ck-sintesi b { display: block; font: 600 13.5px 'Montserrat', Arial, sans-serif; color: #3d7a0e; margin-bottom: 2px; }
.ck-sintesi span { font-size: 12.5px; color: #5b6670; line-height: 1.4; display: block; }
.ck-tab-wrap { overflow-x: auto; margin: 10px 0 14px; }
table.ck-tab { width: 100%; border-collapse: collapse; font-size: 13.5px; border: 1px solid #e3e9ee; border-radius: 10px; overflow: hidden; }
.ck-tab th { background: #f4f7f9; text-align: left; font: 600 12.5px 'Montserrat', Arial, sans-serif; color: #2b3a48; padding: 10px 12px; border-bottom: 1px solid #e3e9ee; }
.ck-tab td { padding: 10px 12px; border-bottom: 1px solid #eef2f5; vertical-align: top; }
.ck-tab code { background: #eef3f6; padding: 2px 6px; border-radius: 5px; font-size: 12.5px; }
@media (max-width: 767px) { .ck-sintesi { grid-template-columns: 1fr 1fr; } }

/* ---------- dove siamo: sedi e mappa OpenStreetMap ---------- */
.ds-sedi { display: grid; gap: 12px; margin: 6px 0 18px; }
.ds-sedi.ds-multi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-sede { padding: 14px 18px; border: 1px solid #e3e9ee; border-radius: 12px; background: #f7f9fa; }
.ds-sede.ds-princ { border-left: 4px solid var(--ec-verde); }
.ds-sede p { margin: 0 0 4px !important; }
.ds-note { color: #6b7782; font-size: 13.5px; }
.ds-dir a { font-weight: 600; font-size: 13.5px; }
.ds-mappa { height: 480px; border-radius: 14px; overflow: hidden; border: 1px solid #e3e9ee; margin: 6px 0 24px; z-index: 0; background: #eef2f5; }
.ds-chiara .leaflet-tile-pane { filter: grayscale(1) contrast(.95) brightness(1.04); }
.ds-pin svg { width: 34px; height: 44px; display: block; fill: var(--ec-blu); filter: drop-shadow(0 4px 6px rgba(0,0,0,.25)); }
.ds-pin-p svg { fill: #6aa82b; }
.ds-mappa .leaflet-popup-content { font-family: 'Open Sans', Arial, sans-serif; font-size: 13.5px; line-height: 1.45; }
@media (max-width: 767px) { .ds-sedi.ds-multi { grid-template-columns: 1fr; } .ds-mappa { height: 340px; } }
@media (min-width: 981px) { .mm-bar { justify-content: center; } }

/* ---------- social in alto a destra nella barra del menu (computer) ---------- */
@media (min-width: 981px) {
  #megamenu .soc-menu { position: absolute; right: 16px; top: 0; height: 52px; display: flex; align-items: center; gap: 4px; }
  #megamenu .soc-menu a.soc:link, #megamenu .soc-menu a.soc:visited { width: 30px; height: 30px; border-radius: 50%; color: #8a96a0; background: transparent; }
  #megamenu .soc-menu .soc svg { width: 16px; height: 16px; }
  #megamenu .soc-menu a.soc:hover { color: #fff; background: var(--soc); transform: translateY(-1px); }
}
@media (min-width: 981px) and (max-width: 1219px) {
  #megamenu:has(.soc-menu) .mm-bar { padding-right: calc(var(--soc-n, 2) * 34px + 18px); }
  #megamenu:has(.soc-menu) .mm-top { padding: 0 10px; }
  #megamenu:has(.soc-menu) .mm-top::after { left: 10px; right: 10px; }
}

/* ---------- blocchi dell'editor: elementi nuovi ---------- */
.cs-card .cs-tit { display: block; font: 600 15px/1.3 'Montserrat', Arial, sans-serif; color: var(--ec-titoli); margin-bottom: 4px; }
figure.blk-img { margin: 18px auto; text-align: center; }
figure.blk-img img { display: block; width: 100%; height: auto; border-radius: 12px; margin: 0 auto; }
figure.blk-img-media img { max-width: 70%; } figure.blk-img-piccola img { max-width: 42%; }
figure.blk-img figcaption { margin-top: 8px; font-size: 13px; color: #7a858f; }
@media (max-width: 767px) { figure.blk-img-media img, figure.blk-img-piccola img { max-width: 100%; } }
/* menu per smartphone: le voci senza link si toccano come le altre */
#cssmenu li.has-sub > a:not([href]) { cursor: pointer; -webkit-tap-highlight-color: rgba(0,154,225,.12); }

/* fine pagina: niente "rimbalzo" bianco sotto il footer quando si scorre oltre la fine (Safari);
   dove il rimbalzo resta, sopra si vede bianco e sotto il colore del footer */
html { overscroll-behavior-y: none; background: linear-gradient(to bottom, #fff 50%, #1b2631 50%) fixed; }
body { background-color: #fff; min-height: 100vh; }


/* ==========================================================================
   CORREZIONI PER SMARTPHONE  (era mobile.css)
   ========================================================================== */
/* ==========================================================
   Correzioni per smartphone (aggiunte nella versione PHP).
   Caricato dopo responsive.css: agisce solo sotto i 768px.
   ========================================================== */
@media (max-width: 767px) {

  /* immagini e video mai piu' larghi dello schermo */
  .post img, .post iframe, .post video { max-width: 100%; height: auto; }
  .post iframe { width: 100% !important; }

  /* tabelle usate per impaginare (moduli, link): una cella sotto l'altra */
  .post table:not(.table), .post table:not(.table) tbody,
  .post table:not(.table) tr, .post table:not(.table) td {
    display: block; width: 100% !important; box-sizing: border-box;
  }
  .post table:not(.table) td { padding: 3px 0 !important; text-align: left !important; }
  .post table:not(.table) tr { margin-bottom: 8px; }

  /* tabella dati della Cookie Policy: resta tabella, scorre in orizzontale */
  .post table.table { display: block; overflow-x: auto; font-size: 12px; width: 100% !important; }

  /* campi dei moduli a tutta larghezza */
  .post input[type="text"], .post input[type="number"], .post input[type="email"],
  .post input[type="password"], .post textarea {
    width: 100% !important; box-sizing: border-box; font-size: 16px; /* evita lo zoom automatico su iPhone */
  }
  .post input[type="submit"], .post input[type="button"] { margin-top: 6px; left: 0 !important; }
  /* celle vuote delle tabelle-modulo: nascoste per non lasciare buchi */
  .post table:not(.table) td:empty, .post table:not(.table) td.vuota { display: none; }

  /* Contatti: le tre colonne (telefono, fax, email) una sotto l'altra */
  .post div[style*="32%"], .post div[style*="33%"] {
    width: 100% !important; float: none !important; margin-top: 18px !important;
  }
  .post div[style*="32%"] br + br, .post div[style*="33%"] br + br { display: none; }

  /* riquadri della home (Convenzioni, Company Profile, Edicola) e simili: centrati */

  /* "Company Profile" a destra in fondo ad alcune pagine: centrato */
  .post > div[style*="float:right"] {
    float: none !important; width: 180px; margin: 10px auto 0 auto;
  }

  /* icona in alto a destra nelle pagine nuove (Solare, Eolico, ...) piu' piccola */
  .post > img[style*="float:right"] { width: 80px !important; height: 80px !important; margin: 0 0 10px 15px !important; }

  /* pagine Energie Rinnovabili / Mercati: le tre icone restano affiancate ma piu' strette */
  .img-rinnovabili-sx, .img-rinnovabili-ultimo { box-sizing: border-box; }

  /* testo giustificato -> allineato a sinistra: su schermi stretti evita i grandi spazi tra le parole */
  .post p[style*="justify"], .post div[style*="justify"] { text-align: left !important; }

  /* titoli un po' piu' piccoli */
  .post h1 { font-size: 22px; }

  /* barra cookie piu' compatta */
  
}


/* ==========================================================================
   NEWS: copertine, colonna laterale e pagina della singola news
   ========================================================================== */
.side-news-cop { display: flex; gap: 11px; align-items: flex-start; }
.side-news-img { flex: 0 0 76px; display: block; border-radius: 8px; overflow: hidden; background: #eef3f6; }
.side-news-img img { display: block; width: 76px; height: 56px; object-fit: cover; transition: transform .25s; }
.side-news-img:hover img { transform: scale(1.06); }
.side-news-corpo { flex: 1; min-width: 0; }

.news-cop { flex: 0 0 200px; display: block; border-radius: 10px; overflow: hidden; background: #eef3f6; align-self: stretch; max-height: 140px; }
.news-cop img { display: block; width: 100%; height: 100%; min-height: 112px; object-fit: cover; transition: transform .3s; }
.news-card:hover .news-cop img { transform: scale(1.04); }
.news-quando { font: 600 12px 'Montserrat', Arial, sans-serif; color: var(--ec-blu); text-transform: uppercase; letter-spacing: .5px; }
.news-corpo h3 a { color: inherit; text-decoration: none; }
.news-corpo h3 a:hover { color: var(--ec-blu); }
.news-azioni { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
.news-link-sec { color: #5b6670; }
@media (max-width: 600px) {
  .news-con-cop { flex-direction: column; }
  .news-con-cop .news-cop { flex-basis: auto; width: 100%; max-height: 190px; }
}

.nd { background: #fff; border: 1px solid #e1e8ed; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 10px rgba(36,50,63,.05); }
.nd-cop { display: block; width: 100%; max-height: 380px; object-fit: cover; }
.nd-in { padding: 22px 26px 24px; }
.nd-data { font: 600 13px 'Montserrat', Arial, sans-serif; color: var(--ec-blu); text-transform: uppercase; letter-spacing: .5px; }
.post .nd h1 { margin-top: 6px; }
.nd-testo img { max-width: 100%; height: auto; border-radius: 10px; margin: 6px 0 12px; display: block; }
.nd-testo blockquote { margin: 16px 0; padding: 10px 18px; border-left: 4px solid var(--ec-blu); background: #f4faff; border-radius: 0 10px 10px 0; color: #3d4a56; }
.nd-testo hr { border: 0; border-top: 1px solid #e1e8ed; margin: 20px 0; }
.nd-file { display: flex; align-items: center; gap: 14px; border: 1px solid #d6ebf7; background: #f4faff; border-radius: 12px; padding: 14px 16px; margin: 20px 0 8px; text-decoration: none !important; color: #1d2731; transition: border-color .15s, box-shadow .15s; }
.nd-file:hover { border-color: var(--ec-blu); box-shadow: 0 6px 16px rgba(0,154,225,.12); }
.nd-file::before { display: none !important; }
.nd-file i { flex: none; width: 42px; height: 48px; border-radius: 6px; background: #d32f2f; color: #fff; font: 700 12px/48px Arial, sans-serif; text-align: center; font-style: normal; }
.nd-file b { display: block; font: 600 15px 'Montserrat', Arial, sans-serif; }
.nd-file small { display: block; font-size: 13px; color: #5b6670; }
.nd-back { display: inline-block; margin-top: 14px; font: 600 13.5px 'Montserrat', Arial, sans-serif; }
@media (max-width: 600px) { .nd-in { padding: 16px; } .nd-cop { max-height: 220px; } }

/* ---- antispam del modulo Contatti (Turnstile o domanda) ---- */
.cf-antispam { margin: 4px 0 16px; }
.as-domanda label { display: block; font-weight: 600; font-size: 13.5px; color: var(--ec-titoli); margin-bottom: 6px; }
.as-domanda input { width: 110px; padding: 10px 12px; border: 1px solid #d5dde3; border-radius: 8px; font: 15px 'Open Sans', Arial, sans-serif; background: #fbfcfd; }
.as-domanda input:focus { outline: none; border-color: var(--ec-blu); box-shadow: 0 0 0 3px rgba(0, 154, 225, .15); }
.cf-invalid .as-domanda input { border-color: #d9534f; }
