html {
font-family: Arial, Helvetica, sans-serif;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}

body {margin: 4px; line-height: 1.6em;}
.spazio {width: 100%; max-width: 1200px; margin: 5px auto; text-align: center; box-sizing: border-box; /** border: 1px solid #000: **/}
.spazio::after {content: ""; clear: both; display: table;}
.clearfix::after {content: ""; clear: both; display: table;}
h1, h2 {width: 100%; padding: 0px; margin: 0px; font-size: 19px; font-weight: bold; font-variant: small-caps;}
.row {margin: 2px auto;}
a {text-decoration: none; color: #005082;}
form {margin-bottom: 0px;}
.linea {border-bottom: 1px solid #666666;}

.lista-link {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  width: 100%;
  max-width: 1200px;
  margin: 12px auto;
  box-sizing: border-box;
  align-items: stretch;
}

.contenitore {width: 100%; max-width: 1200px; margin: 0px auto; text-align: center; box-sizing: border-box; position: relative;}

.sommario {
/** SOSTITUITO width: 100%; **/
box-sizing: content-box;
display: block; 
padding: 6px;
color: #000;
border-radius: 3px;
font-size: 120%;
font-family: Verdana, Arial;
border: 1px solid #d6cfab;
text-align: center;
overflow: hidden;
background: #ffd754;
background: -moz-linear-gradient(top, #ffd754 0%, #fff8df 47%, #fff8df 47%, #fff8df 59%, #ffd754 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffd754), color-stop(47%, #fff8df), color-stop(47%, #fff8df), color-stop(59%, #fff8df), color-stop(100%, #ffd754));
background: -webkit-linear-gradient(top, #ffd754 0%, #fff8df 47%, #fff8df 47%, #fff8df 59%, #ffd754 100%);
background: -o-linear-gradient(top, #ffd754 0%, #fff8df 47%, #fff8df 47%, #fff8df 59%, #ffd754 100%);
background: -ms-linear-gradient(top, #ffd754 0%, #fff8df 47%, #fff8df 47%, #fff8df 59%, #ffd754 100%);
background: linear-gradient(to bottom, #ffd754 0%, #fff8df 47%, #fff8df 47%, #fff8df 59%, #ffd754 100%);
}

.sommario a {
color: #000;
font-weight: 600;
text-shadow: 1px 1px 1px #fff6af;
text-decoration: none;
display: block;
}

#sezionemenu {overflow: hidden; width: 100%;}

#sezioni {font-family: Verdana, Arial; color: #000; font-size: 14px;}

#sezioni div {width: 12.46%; float: left; border-top: 1px solid #fff;}

#sezioni a {
padding-bottom: 10px;
font-weight: 500;
text-shadow: 0.5px 0.5px 0.5px #B0AAAA;
color: #000;
float: left;
padding-top: 6px;
line-height: 1.2em;
background-color: #fff8df;
border-top: 1px solid #bbb073;
border-bottom: 1px solid #bbb073;
border-left: 1px solid #bbb073;
border-right: 1px solid #bbb073;
text-align: center;
display: block;
width: 100%;
box-sizing: content-box;
}

#sezioni a:hover {
text-shadow: 1px 1px 1px #B0AAAA;
color: #000;
background-color: #e5e1cb;
}

#sezioni a.calc {padding-top: 10px; vertical-align: middle; box-sizing: content-box;}

.giallo {background: #ffffcc;}
.bianco {background: #ffffff;}

.col-50 {
float: left;
width: 50%;
margin-top: 6px;
display: inline;
}

.col-100 {
float: left;
width: 100%;
margin-top: 6px;
display: inline;
}

.testata-blu {margin-top: 20px; color: #ffffff; font-weight: bold;
-moz-box-shadow:inset 0px 1px 0px 0px #54a3f7;
-webkit-box-shadow:inset 0px 1px 0px 0px #54a3f7;
box-shadow:inset 0px 1px 0px 0px #54a3f7;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7));
background:-moz-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:-webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:-o-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:-ms-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:linear-gradient(to bottom, #007dc1 5%, #0061a7 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7',GradientType=0);
background-color:#007dc1;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #124d77;
padding: 5px;
text-align: center;
text-decoration:none;
text-shadow:0px 1px 0px #154682;
}

.testata-rossa {margin-top: 40px; color: #ffffff; font-weight: bold;
-moz-box-shadow:inset 0px 1px 0px 0px #cf866c;
-webkit-box-shadow:inset 0px 1px 0px 0px #cf866c;
box-shadow:inset 0px 1px 0px 0px #cf866c;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #d0451b), color-stop(1, #bc3315));
background:-moz-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:-webkit-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:-o-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:-ms-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:linear-gradient(to bottom, #d0451b 5%, #bc3315 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d0451b', endColorstr='#bc3315',GradientType=0);
background-color:#d0451b;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #942911;
padding: 5px;
text-align: center;
text-decoration:none;
text-shadow:0px 1px 0px #854629;
}

.pulsante {
margin: 0px;
-moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
box-shadow:inset 0px 1px 0px 0px #ffffff;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9));
background:-moz-linear-gradient(top, #f9f9f9 5%, #e9e9e9 100%);
background:-webkit-linear-gradient(top, #f9f9f9 5%, #e9e9e9 100%);
background:-o-linear-gradient(top, #f9f9f9 5%, #e9e9e9 100%);
background:-ms-linear-gradient(top, #f9f9f9 5%, #e9e9e9 100%);
background:linear-gradient(to bottom, #f9f9f9 5%, #e9e9e9 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9',GradientType=0);
background-color:#f9f9f9;
-moz-border-radius:6px;
-webkit-border-radius:6px;
border-radius:6px;
border:1px solid #dcdcdc;
display:inline-block;
/**cursor:pointer;**/
color:#666666;
font-size:16px;
font-weight:bold;
padding:4px 10px;
text-align: center;
text-decoration:none;
text-shadow:0px 1px 0px #ffffff;
}
.pulsante:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9));
background:-moz-linear-gradient(top, #e9e9e9 5%, #f9f9f9 100%);
background:-webkit-linear-gradient(top, #e9e9e9 5%, #f9f9f9 100%);
background:-o-linear-gradient(top, #e9e9e9 5%, #f9f9f9 100%);
background:-ms-linear-gradient(top, #e9e9e9 5%, #f9f9f9 100%);
background:linear-gradient(to bottom, #e9e9e9 5%, #f9f9f9 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9',GradientType=0);
background-color:#e9e9e9;
}
.pulsante:active {
position:relative;
top:1px;
}

.pulsante-giallo {
margin: 0px;
-moz-box-shadow: 0px 1px 0px 0px #fff6af;
-webkit-box-shadow: 0px 1px 0px 0px #fff6af;
box-shadow: 0px 1px 0px 0px #fff6af;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ffec64), color-stop(1, #ffab23));
background:-moz-linear-gradient(top, #ffec64 5%, #ffab23 100%);
background:-webkit-linear-gradient(top, #ffec64 5%, #ffab23 100%);
background:-o-linear-gradient(top, #ffec64 5%, #ffab23 100%);
background:-ms-linear-gradient(top, #ffec64 5%, #ffab23 100%);
background:linear-gradient(to bottom, #ffec64 5%, #ffab23 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffec64', endColorstr='#ffab23',GradientType=0);
background-color:#ffec64;
-moz-border-radius:6px;
-webkit-border-radius:6px;
border-radius:6px;
border:1px solid #ffaa22;
display:inline-block;
cursor:pointer;
color:#333333;
font-family:Arial;
font-size:16px;
font-weight:bold;
padding:6px 24px;
text-align: center;
text-decoration:none;
text-shadow:0px 1px 0px #ffee66;
}
.pulsante-giallo:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ffab23), color-stop(1, #ffec64));
background:-moz-linear-gradient(top, #ffab23 5%, #ffec64 100%);
background:-webkit-linear-gradient(top, #ffab23 5%, #ffec64 100%);
background:-o-linear-gradient(top, #ffab23 5%, #ffec64 100%);
background:-ms-linear-gradient(top, #ffab23 5%, #ffec64 100%);
background:linear-gradient(to bottom, #ffab23 5%, #ffec64 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffab23', endColorstr='#ffec64',GradientType=0);
background-color:#ffab23;
}
.pulsante-giallo:active {
position:relative;
top:1px;
}

a.pulsante-blu, .pulsante-blu {
outline: none;
cursor: pointer;
border: solid 1px #0076a3;
text-align: center;
text-decoration: none;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
box-shadow: 0 1px 3px rgba(0,0,0,0.5);
background: #0095cd;
background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
background: -webkit-linear-gradient(#00adee,  #0078a5);
background: -moz-linear-gradient(#00adee,  #0078a5);
background: -ms-linear-gradient(#00adee,  #0078a5);
background: -o-linear-gradient(#00adee,  #0078a5);
background: linear-gradient(#00adee,  #0078a5);
color: #fff;
padding: 6px 10px;
font-family: Verdana, sans-serif;
text-shadow: 1px 1px 1px #12455d;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
}

a.pulsante-blu:hover, .pulsante-blu:hover {
color: #fff;
background: #0095cd;
background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
background: -webkit-linear-gradient(#0078a5,  #00adee);
background: -moz-linear-gradient(#0078a5,  #00adee);
background: -ms-linear-gradient(#0078a5,  #00adee);
background: -o-linear-gradient(#0078a5,  #00adee);
background: linear-gradient(#0078a5,  #00adee);
}

a.pulsante-blu:active, .pulsante-blu:active {
position: relative;
top: 1px;
color: #093950;
text-shadow: 1px 1px 1px #7ac8f0;
-webkit-box-shadow: #093950 0px 2px 3px inset;
-moz-box-shadow: #093950 0px 2px 3px inset;
box-shadow: #093950 0px 2px 3px inset;
}

#BottoneComune {display: flex; justify-content: center; margin: 14px 0;}

.bianco {background-color: #FFFFFF; border-bottom: 1px solid #666666;}

.giallo {background-color: #FFFFCC; border: 1px solid #666666;}

.aleft {text-align: left;}
.aright {text-align: right;}
.acenter {text-align: center;}

.row:after {content: ""; display: table; clear: both;}

/** INIZIO SEZIONE MEDIA QUERY **/

@media only screen and (max-width: 540px) {

#sezioni div {width: 24.98%; float: left; border-top: 1px solid #fff;}

#sezioni a {
padding-bottom: 10px;
margin-left: 0px;
font-weight: 500;
text-shadow: 0.5px 0.5px 0.5px #B0AAAA;
color: #000;
float: left;
padding-top: 6px;
line-height: 1.2em;
background-color: #fff8df;
border-top: 1px solid #bbb073;
border-bottom: 1px solid #bbb073;
border-left: 1px solid #bbb073;
border-right: 1px solid #bbb073;
text-align: center;
display: block;
width: 98%;
}

#sezionemenu{margin-right:0px;}
.row {width: 100%;}
.aleft {width: 120px; text-align: left;}
.spazio {width: 100%;}

.col-50 {display: block; width: 100%;}
.col-100 {display: block; width: 100%;}

.lista-link {
  grid-template-columns: 1fr;
}

}

/** FINE SEZIONE MEDIA QUERY **/


/* ricerca Google */ 
#ricerca {
font-size: 18px;
background: #ffd754;
margin-left: auto;
margin-right: auto;
border: 1px solid #bbb;
padding: 10px;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
line-height: normal;
/** IMPORTANTE line-height: 1.5 **/
}

#caricamento {
color: #666666;
font-size: 18px;
text-align: center;
font-weight: bold;
background-color: #FEF6C8;
padding: 10px;
margin: 0px;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
}

#caricamento hover {
cursor: wait;
}

#ricercagoogle {
font-size: 18px;
text-align: center;
font-weight: bold;
background-color: #FFFFFF;
border: 1px solid #666;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
padding: 10px;
margin: 0px;
vertical-align: middle;
cursor: help;
}




/* =================================================================
   CSS COMPLETAMENTE SCOPED — prefisso .csw su ogni selettore.
   Sicuro per l'embedding in qualsiasi div host senza conflitti.
   ================================================================= */

/* --- Variabili ---------------------------------------------------*/
.csw {
  --c-blue:       #005DA5; /* #3d7aaa; */
  --c-blue-lt:    #cce0f4;
  --c-blue-pal:   #e8f2fb;
  --c-blue-bd:    #95bedd;
  --c-slate:      #1e3a58;
  --c-amber:      #9a6010;
  --c-amber-lt:   #fce3b0;
  --c-amber-pal:  #fef5e2;
  --c-amber-bd:   #888888;
  --c-green:      #266848;
  --c-green-lt:   #c4ecd4;
  --c-green-bd:   #72b090;
  --c-purple:     #5438a0;
  --c-purple-lt:  #e4d8f8;
  --c-purple-bd:  #a888d4;
  --c-red:        #8a2828;
  --c-red-lt:     #fcdada;
  --c-red-bd:     #d08888;
  --c-gray-lt:    #e2e8f0;
  --c-gray-bd:    #444444;
  --c-bg:         #f2f6fb;
  --c-card:       #ffffff;
  --c-border:     #bccedd;
  --c-text:       #273848;
  --c-text-lt:    #405360;
  --c-mono:       "Consolas","Courier New",Courier,monospace;

  all: initial;                /* isolamento massimo dall'host */
  display: block;
  border: 1px solid #dddddd;
  box-sizing: border-box;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--c-text);
  background: var(--c-bg);
  padding: 14px;
  max-width: 1200px;
  margin: 0 auto;
}
.csw *, .csw *::before, .csw *::after {
  box-sizing: border-box;
}
.csw a              { color: var(--c-blue); text-decoration: none; }
.csw a:hover        { text-decoration: underline; }
.csw p              { margin: 0 0 6px; }
.csw ul             { padding-left: 1.4em; margin: 0 0 4px; }
.csw strong, .csw b { font-weight: 700; }

/* --- Header -------------------------------------------------------*/
.csw .c-header {
  background: var(--c-blue-pal);
  border: 1px solid var(--c-blue-bd);
  border-radius: 8px;
  padding: 14px 18px;
  margin-bottom: 12px;
  text-align: center;
}
.csw .c-header h2 {
  font-size: 1.35em;
  font-weight: 700;
  color: var(--c-slate);
  margin: 0 0 6px;
}
.csw .c-header-meta {
  font-size: 0.95em;
  color: var(--c-text);
  margin: 3px 0;
}

/* --- Pannello controlli ------------------------------------------*/
.csw .c-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  background: #eaf0f8;
  border: 1px solid var(--c-border);
  padding: 12px;
  border-radius: 8px;
  margin-bottom: 12px;
  align-items: flex-end;
}
.csw .c-ctrl-group {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 160px;
}
.csw .c-ctrl-group label {
  margin-bottom: 3px;
  font-weight: 700;
  font-size: 0.78em;
  color: var(--c-text-lt);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.csw .c-ctrl-group select {
  padding: 7px 9px;
  border: 1px solid var(--c-border);
  border-radius: 5px;
  font-size: 16px;
  background: var(--c-card);
  color: var(--c-text);
  font-family: inherit;
  cursor: pointer;
}
.csw .c-ctrl-group select:focus {
  outline: 2px solid var(--c-blue);
  outline-offset: 1px;
}

.csw .c-crep-info {
  flex-basis: 100%;
  padding: 8px 10px;
  background: var(--c-card);
  border: 1px solid var(--c-blue-bd);
  border-left: 3px solid var(--c-blue);
  border-radius: 5px;
  font-size: 14px;
  line-height: 1.45;
  color: var(--c-text);
}

/* --- Pulsanti azione calendario ---------------------------------*/
.csw .c-btn-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(auto, 160px));
  gap: 8px;
  width: 100%;
  padding-top: 4px;
  justify-content: center;
}
.csw .c-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1px solid;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  line-height: 1.3;
  white-space: nowrap;
  transition: background 0.12s, transform 0.08s;
  justify-content: center;
  text-decoration: none;
}
.csw .c-btn:hover   { transform: translateY(-1px); text-decoration: none; }
.csw .c-btn:active  { transform: translateY(0); }

.csw .c-btn-blue    { background:var(--c-blue-lt);   border-color:var(--c-blue-bd);   color:#0a2848; }
.csw .c-btn-blue:hover   { background:#b4d2ec; }

.csw .c-btn-purple  { background:var(--c-purple-lt); border-color:var(--c-purple-bd); color:#240870; }
.csw .c-btn-purple:hover { background:#d4c8f4; }

.csw .c-btn-red {background:linear-gradient(to bottom,#fffefe 0%,#fff8f8 15%,#fff0f0 35%,#ffe6e6 55%,#ffdcdc 75%,#ffcfcf 100%);
border: 1px solid #d8a0a0;
color: #500010;
box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 2px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.12);
}
.csw .c-btn-red:hover    { background:#F6EFFF; }

.csw .c-btn-green {background:linear-gradient(to bottom,#fbfffc 0%,#eefcf1 15%,#dcf6e2 35%,#c7efcf 55%,#afe5ba 75%,#8fd39d 100%);
border: 1px solid #5a9665;
color: #083820;
box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 2px rgba(0,0,0,.10), 0 1px 2px rgba(0,0,0,.15);
}
.csw .c-btn-green:hover  { background:#C9EAC7; }

.csw .c-btn-amber {
background: linear-gradient(to bottom,#fffef4 0%,#fffbe8 18%,#fff4bf 38%,#ffef9f 50%,#fff3ba 62%,#ffe78d 82%,#e7be48 100%);
border: 1px solid #c79b2d;
color: #6a4500;
box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 2px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.15);
}
.csw .c-btn-amber:hover  { background:#FFF1C1; }

.csw .c-btn-gray {
background:linear-gradient(to bottom,#fcfcfd 0%,#f2f4f7 18%,#e3e7ec 38%,#d8dde4 50%,#e5e9ee 62%,#f0f2f5 82%,#c0c7d0 100%);
border: 1px solid #9aa3af;
color: #384050;
box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 2px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.15);
}
.csw .c-btn-gray:hover   { background:#d0dce8; }

.csw .c-btn-teal {background:linear-gradient(to bottom,#f4fffd 0%,#e1fbf5 15%,#c8f0e8 35%,#aee6db 55%,#93d6c8 75%,#6fbcae 100%);
border: 1px solid #5aa394;
color: #083830;
box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 2px rgba(0,0,0,.10), 0 1px 2px rgba(0,0,0,.15);}
.csw .c-btn-teal:hover   { background:#BDEFE3; }

.csw .c-btn-beige {background:linear-gradient(to bottom,#fffef9 0%,#fff9e8 15%,#fff1d0 35%,#f7e4b0 55%,#edd58a 75%,#e2c36a 100%);
border: 1px solid #c9ad5a;
color: #4a3a10;
box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 2px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.12);
}
.csw .c-btn-beige:hover{background:linear-gradient(to bottom, #fffdf3 0%, #fff3d8 50%, #f2d88a 100%);}

.csw .c-btn:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none;
  filter: grayscale(40%);
}

/* --- Pannelli oggi / domani / dopodomani / tra due giorni -----*/
/* Desktop >=920px: 4 colonne uguali */
.csw .c-today-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.csw .c-day-card {
  /* background: var(--c-card); */
  background: #FFFCEF;
  border: 1px solid var(--c-blue-bd);
  border-top: 3px solid var(--c-blue);
  border-radius: 8px;
  padding: 14px 16px;
}
.csw .c-day-card h2 {
  color: var(--c-slate);
  margin: 0 0 10px;
  font-size: 1.1em;
  font-weight: 700;
  padding-bottom: 7px;
  border-bottom: 1px solid #dde8f0;
}
.csw .c-sun-times  { display: flex; flex-direction: column; gap: 8px; }
.csw .c-time-row   { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.csw .c-time-lbl   { font-weight: 600; font-size: 1.05em; color: var(--c-text-lt); flex: 0 0 auto; }
.csw .c-time-val   { font-family: var(--c-mono); font-size: 1.15em; font-weight: 700; color: var(--c-slate); text-align: right; }
.csw .c-time-sm    { font-size: 0.98em; font-family: inherit; color: var(--c-text-lt); font-style: italic; }

/* --- Pulsante meteo nelle 4 card oggi/domani/... ---------------*/
.csw .c-meteo-btn { width: 100%; margin-top: 12px; }

/* --- Informazioni Comune (2 righe × 4 colonne) -----------------*/
.csw .c-city-info[aria-hidden="true"] {
  display: none;
}
.csw .c-city-info {
  background: var(--c-blue-pal);
  border: 1px solid var(--c-blue-bd);
  padding: 14px 16px;
  border-radius: 8px;
  margin-bottom: 12px;
}
.csw .c-city-info h3 {
  color: var(--c-blue);
  margin: 0 0 10px;
  font-size: 1.1em;
  font-weight: 700;
}
/* griglia 4 colonne; su mobile diventa 2×4 poi 1×8 */
.csw .c-info-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
}
.csw .c-info-item {
  display: flex;
  flex-direction: column;
  padding: 6px 10px;
  background: rgba(255,255,255,0.72);
  border-radius: 5px;
  border: 1px solid rgba(80,140,200,0.18);
}
.csw .c-info-lbl {
  font-weight: 700;
  font-size: 0.95em;
  color: var(--c-text-lt);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}
.csw .c-info-val {
  font-family: var(--c-mono);
  font-size: 1.05em;
  color: var(--c-slate);
  font-weight: 600;
}

/* --- Sezione calendario output ---------------------------------*/
.csw .c-cal-wrap {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: 8px;
  padding: 14px;
  margin-bottom: 12px;
  min-height: 100px;    /* riserva spazio → riduce CLS */
  overflow-x: auto;
}

/* id usati dal JS originale — NON rinominare MODIFICATO PER MAGGIORE VISIBILITA' */
.csw #calendario {
  font-family: "Consolas", "Courier New", Courier, monospace;
  font-size: clamp(17.6px, 2.2vw, 21.5px);
  font-weight: 700;
  cursor: pointer;
}
.csw .mese {
  background: var(--c-blue-lt);
  color: var(--c-slate);
  padding: 6px 12px;
  margin: 14px 0 4px;
  border-radius: 5px;
  border: 1px solid var(--c-blue-bd);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 0.92em;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
/*
.csw .linktop     { color: var(--c-blue); font-size: 0.8em; font-weight: 400; }
*/
.csw .linktop     { color: var(--c-blue); font-size: 0.9em; font-weight: 600; }
.csw .bianco      { padding: 2px 5px; border-bottom: 1px solid #edf2f7; }
.csw .bianco:hover { background: #eef5ff; }
.csw .giallo      { background: #fffbea !important; border: 1px solid #d0a010 !important; font-weight: 700; }
.csw #calendario .mese:hover { background: #b4d4ee; }

/* --- Barra esportazione (stabile — nessun show/hide → zero CLS) */
.csw .c-export-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 12px 14px;
  background: #eaf0f8;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  margin-bottom: 12px;
}
.csw .c-export-lbl {
  grid-column: 1 / -1;
  text-align: center;
  font-size: 0.90em;
  font-weight: 700;
  color: var(--c-text-lt);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.csw .c-exp-msg {
  grid-column: 1 / -1;
}
.csw .c-exp-msg {
  display: none;
  flex: 0 0 100%;
  text-align: center;
  font-size: 0.86em;
  padding: 5px 10px;
  border-radius: 4px;
  margin-top: 2px;
  font-weight: 600;
}
.csw .c-exp-msg.ok  { color:#083820; background:var(--c-green-lt); border:1px solid var(--c-green-bd); }
.csw .c-exp-msg.err { color:#ffffff; background:#800000; border:1px solid var(--c-red-bd); }

/* --- Ora legale -------------------------------------------------*/
.csw .c-dst {
  background: var(--c-amber-pal);
  border: 1px solid var(--c-amber-bd);
  padding: 11px 14px;
  border-radius: 8px;
  margin-bottom: 12px;
  font-size: 0.88em;
}
.csw .c-dst h3 {
  color: var(--c-amber);
  margin: 0 0 5px;
  font-size: 1em;
  font-weight: 700;
}

/* --- Footer -----------------------------------------------------*/
.csw .c-footer {
  text-align: center;
  padding: 10px;
  color: var(--c-text-lt);
  font-size: 0.83em;
  border-top: 1px solid var(--c-border);
}

/* =================================================================
   MEDIA QUERY
   ================================================================= */
/* Export bar: 6 pulsanti su una riga sopra 960px */
@media (min-width: 961px) {
  .csw .c-export-bar { grid-template-columns: repeat(6, 1fr); }
}
/* Intermedio: 2 colonne × 2 righe */
@media (max-width: 960px) {
  .csw .c-info-grid    { grid-template-columns: repeat(2, 1fr); }
  .csw .c-today-row    { grid-template-columns: repeat(2, 1fr); }
  .csw .c-export-bar   { grid-template-columns: repeat(6, 1fr); }
}
@media (max-width: 900px) {
  .csw .c-export-bar   { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 680px) {
  .csw .c-controls    { flex-direction: column; }
  .csw .c-ctrl-group  { width: 100%; min-width: 0; }
  .csw .c-info-grid   { grid-template-columns: 1fr; }
  /* .csw .c-export-bar  { grid-template-columns: 1fr; } */
  .csw .c-export-bar   { grid-template-columns: repeat(2, 1fr); }
}
/* Mobile: 1 colonna × 4 righe */
@media (max-width: 540px) {
  .csw .c-today-row    { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .csw .c-btn-row     { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 400px) {
  .csw                { padding: 8px; font-size: 15px; }
  .csw .c-header h2   { font-size: 1.1em; }
  /* .csw .c-btn-row  { grid-template-columns: 1fr; } */
}

/* =================================================================
   STAMPA (dalla pagina host — senza passare per l'export)
   ================================================================= */
@media print {
  .csw .c-header,
  .csw .c-controls,
  .csw .c-btn-row,
  .csw .c-today-row,
  .csw .c-city-info,
  .csw .c-export-bar,
  .csw .c-dst,
  .csw .c-footer,
  .csw .linktop       { display: none !important; }
  .csw .c-cal-wrap    { border: none; padding: 0; box-shadow: none; }
  .csw .bianco        { font-size: 14px; } /* INIZIALE 12px */
  .csw .mese          { background: #cce0f4; border: none;
                        -webkit-print-color-adjust: exact;
                        print-color-adjust: exact; }
}
/* --- Ricerca Comuni (autocomplete) ---------------------------------*/
.csw .c-cerca-row {
  display: none;
  margin-top: 8px;
  width: 100%;
}
.csw .c-cerca-row.c-cerca-open { display: block; }
.csw .c-cerca-wrap {
  position: relative;
  max-width: 420px;
  margin: 0 auto;
}
.csw .c-cerca-input {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 40px 10px 14px;
  font-size: 1em;
  font-family: inherit;
  border: 2px solid var(--c-blue-bd);
  border-radius: 8px;
  background: #fff;
  color: var(--c-slate);
  outline: none;
  transition: border-color 0.15s;
}
.csw .c-cerca-input:focus { border-color: var(--c-blue); }
.csw .c-cerca-ico {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1em;
  pointer-events: none;
  opacity: 0.45;
}
.csw .c-cerca-drop {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid var(--c-blue-bd);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.13);
  max-height: 260px;
  overflow-y: auto;
  z-index: 999;
  display: none;
  padding: 0; margin: 0; list-style: none;
}
.csw .c-cerca-drop.c-drop-open { display: block; }
.csw .c-cerca-item {
  padding: 10px 14px;
  cursor: pointer;
  font-size: 0.95em;
  color: var(--c-slate);
  border-bottom: 1px solid #eef2f6;
  transition: background 0.1s;
}
.csw .c-cerca-item:last-child { border-bottom: none; }
.csw .c-cerca-item:hover,
.csw .c-cerca-item.c-item-active { background: var(--c-blue-lt); }
.csw .c-cerca-item mark { background: none; color: var(--c-blue); font-weight: 700; }
.csw .c-cerca-nores {
  padding: 10px 14px;
  font-size: 0.9em;
  color: var(--c-text-lt);
  font-style: italic;
}

/* --- Modale avvisi ---------------------------------------------- */
.csw .c-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
.csw .c-modal-overlay.c-modal-open {
  display: flex;
}
.csw .c-modal-box {
  position: relative;
  background: #fff;
  border-radius: 10px;
  padding: 28px 28px 24px;
  max-width: 340px;
  width: 90%;
  box-shadow: 0 8px 32px rgba(0,0,0,0.22);
  text-align: center;
  font-size: 1em;
  font-weight: 600;
  line-height: 1.5;
  border-top: 4px solid var(--c-blue);
}
.csw .c-modal-close {
  position: absolute;
  top: 8px;
  right: 10px;
  background: none;
  border: none;
  font-size: 1.1em;
  cursor: pointer;
  color: var(--c-text-lt);
  line-height: 1;
  padding: 2px 4px;
  border-radius: 4px;
  transition: color 0.12s;
}
.csw .c-modal-close:hover {
  color: var(--c-slate);
}
.csw .c-modal-box.ok  { border-top-color: var(--c-green-bd); color: #083820; }
.csw .c-modal-box.err { border-top-color: var(--c-red-bd);   color: #500010; }

/* --- Modale Previsioni meteo (Open-Meteo) -----------------------*/
.csw .c-meteo-modal-box { max-width: 420px; text-align: left; font-weight: 400; }
.csw .c-meteo-title  { margin: 0 0 6px; font-size: 1.05em; font-weight: 700; color: var(--c-slate); text-align: center; }
.csw .c-meteo-descr  { margin: 0 0 14px; text-align: center; font-size: 1.05em; }
.csw .c-meteo-grid   { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.csw .c-meteo-item   { display: flex; justify-content: space-between; align-items: center; background: var(--c-blue-pal); border: 1px solid var(--c-blue-bd); border-radius: 6px; padding: 6px 10px; }
.csw .c-meteo-lbl    { font-size: 0.92em; color: var(--c-text-lt); }
.csw .c-meteo-val    { font-family: var(--c-mono); font-weight: 700; color: var(--c-slate); }
.csw .c-meteo-fonte  { margin: 12px 0 0; text-align: center; font-size: 0.8em; color: var(--c-text-lt); font-style: italic; }
.csw .c-meteo-loading,
.csw .c-meteo-errore { text-align: center; font-weight: 600; }

/* elenco capoluoghi di provincia */
.colonna01 {float: left; width: 49.9%; margin-right: 0.1%;}
.colonna02 {float: left; width: 49.9%; margin-left: 0.1%;}

#tabcapoluoghi table {width: 100%; background: #FFFFFF; border-collapse: collapse; border: 1px solid #000;}
#tabcapoluoghi tr:hover td {background: #e3f2fd;}
#tabcapoluoghi td, #tabcapoluoghi th {background: #FFFFFF; text-align: left; line-height: 24px; padding: 1px 10px; border: 1px solid #000;}
#tabcapoluoghi a:link {color: #000000; text-align: left; text-decoration: none; padding-left: 4px;}
#tabcapoluoghi a:hover {text-align: left; background: transparent;}
#tabcapoluoghi th {background: #FFFFCC; font-weight: normal; line-height: 24px; padding: 1px 10px; border: 1px solid #000;}
#tabcapoluoghi th:first-child {width: 200px;}

@media only screen and (max-width: 991px) {
.colonna01, .colonna02 {width: 100%; overflow-x: auto;}
#tabcapoluoghi table {width: 100%;}
#separa-tabelle {visibility: collapse;}
#tabcapoluoghi td, #tabcapoluoghi th {font-size: 14px; padding: 1px 6px;}
#tabcapoluoghi td:first-child, #tabcapoluoghi th:first-child {white-space: nowrap;}
}




.sezionemenu[aria-hidden="true"] {
  display: none;
}
.sezionemenu[aria-hidden="false"] {
  display: block;
}
:target { outline: none; }


#intro a:link, #copyright a:link {text-decoration: underline;}
