@font-face {
 font-family:'opensans';
 src:local('OpenSans'), url('/fonts/OpenSans.ttf');
 font-style:normal;
}
@font-face {
 font-family:'opensans';
 src:local('OpenSans'), url('/fonts/OpenSans-Italic.ttf');
 font-style:italic;
}
@font-face {
 font-family:'quicksand';
 src:local('Quicksand'), url('/fonts/Quicksand.ttf');
}

:root {
 --black:#000;
 --white:#FFF;
 --grey:#888;
 --lightgrey:#DDD;
 --darkgrey:#333;
 --width-mobile:95%;
 --width-smalldesktop:980px;
 --width-desktop:1180px;
 --text-font-size:18px;
 --link:var(--darkgrey);
}

html, body { margin:0; padding:0; color:var(--black); background-color:var(--white); font-family:opensans, sans-serif; font-size:var(--text-font-size); }
article { font-size:var(--text-font-size); }
a { color:var(--link); text-decoration:underline; }
.withmenu article, .withoutmenu article { max-width:95%; margin:0 auto -1px auto; padding:2rem 0; }
.fullscreen article { width:100%; margin:0; padding:0; }
h1, h2, h3, h4, h5, h6 { font-family:quicksand, sans-serif; font-weight:bold; }
h1 { margin:0 0 1rem 0; padding:0; font-size:2.2rem; }
h2 { font-size:1.8rem; }
h3 { font-size:1.5rem; }
h4 { font-size:1rem; }
h5 { font-size:0.8rem; }
h6 { font-size:0.7rem; }
p { margin:0.5rem 0; }
dl { margin:1rem 0; padding:0; }
dt { margin:0 0 0.5rem 0; padding:0; font-weight:bold; }
dd { margin:0.5rem 0 1.5rem 2rem; padding:0; }
img { display:block; margin:0; padding:0; max-width:100%; }
figure { display:block; margin:0; padding:0; max-width:100%; }
figcaption { margin:1rem 0; }
address { font-style:normal; }
abbr { text-decoration:none; cursor:help; }
fieldset { margin:2rem 0; }
legend { font-weight:bold; font-size:1.5rem; }
fieldset.input { display:block; margin:0 0 0.6rem 0; padding:0; border:none; }
fieldset.input legend { display:block; margin:0 0 0.2rem 0; padding:0; font-size:var(--text-font-size); }
.form-control { margin:0 0 1rem 0; }
input, select, option, optgroup, textarea, button { font-size:var(--text-font-size); }
.input-input input[type=text], .input-input input[type=password], .input-input input[type=email], .input-input textarea  { width:95%; }
.subform h3 { margin:1em 0 0.5rem 0; font-size:1.5rem; }
.subform h3:first-of-type { margin-top:0; }
h3.input-label { margin:0 0 0.2rem 0; font-size:var(--text-font-size); }
.alert-danger, .errore, .error { color:red; }
.hidden { display:none !important; }
table { margin:1rem 0; paddig:0; border-spacing:0; border-collapse:collapse; border:2px solid var(--black); }
th, td { padding:0.5em; border:1px solid var(--black); text-align:left; }
thead th { text-align:center; }
table .number { text-align:right; }
.single-row { display:flex; gap:1rem; }
.cols2 { columns:2; }
.form-standard-onecolumn { max-width:40rem; }

header.withAdminBar { padding-top:2.5rem; }
header, header > div, header nav { position:relative; }
header nav { font-size:0.8rem; }
#navigation-menu a { text-decoration:none; }
#navigation-menu a:hover { background-color:var(--lightgrey); text-decoration:none; }
#navigation-menu li.selected a:hover { text-decoration:none; }
#navigation-menu { margin:0; padding:0; }
#navigation-menu li { display:block; margin:0; list-style-type:none; }
header > div, .withmenu, footer nav, footer address { margin:0 auto; padding:0; }
header > div img { position:relative; z-index:3; }
#navigation-path { margin:0; padding:0; height:4rem; line-height:2rem; }
#navigation-path ul { display:flex; margin:0 auto; padding:0; }
#navigation-path li { display:block; margin:0; padding:1rem 0.5rem 1rem 0; }
#navigation-path li:before { content:">"; padding-right:0.5rem; }
#navigation-path li:first-child:before { content:""; padding-right:0; }
#navigation-path a { text-decoration:none; }
#navigation-path a:hover { text-decoration:none; }

#page-banner { display:block; width:100%; }
.fullscreen .blockcontent, .fullscreen .blocktitle h2, .area { width:95%; margin-left:auto; margin-right:auto; }
.withmenu aside { padding:2rem 0; }
.withmenu aside ul { display:block; margin:0; padding:0; }
.withmenu aside ul ul { display:block; margin:0 0 0 1rem; padding:0; }
.withmenu aside li { display:block; margin:0; padding:0; }
.withmenu aside li a { display:block; padding:1em; text-decoration:none; }
.withmenu aside li a:hover { background-color:var(--lightgrey); }
.withmenu aside li.selected { font-weight:bold; }
footer { position:relative; margin:0; padding:2rem 0 0 0; background-color:var(--lightgrey); font-size:var(--text-font-size); border-radius:1rem 1rem 0 0; }
footer img { display:block; width:14rem; }
footer > nav { width:100%; }
footer > div > address dl { display:block; margin:0; padding:0; }
footer > div > address dt { display:block; float:left; margin:0; padding:0 0.5rem 0 0; }
footer > div > address dd { display:block; margin:0.5rem 0; padding:0; }
footer > nav li { display:block; margin:0; padding:0; }
footer #social > ul { display:flex; margin:0; padding:0; gap:2rem; justify-content:center; }
footer #social img { display:block; width:auto; }
footer #menu-altro { margin:2rem auto 0 auto; padding:2rem 0; border-top:1px solid var(--black); }
#zoom { display:flex; justify-content:center; align-items:center; position:fixed; left:0; right:0; top:0; bottom:0; margin:0; padding:0; background-color:rgba(0,0,0,1); }
#zoom img { max-width:100%; max-height:100%; border:none; }
#zoom.hidden { display:none; }

.news-list { display:flex; margin:0; padding:0; gap:2rem; flex-wrap:wrap; }
.news-list > li { display:block; margin:0; padding:0; border:2rem; }
.news-list > li > a { display:block; padding:1rem; border-radius:2rem; }
.news-list > li > a:hover { background-color:var(--white); text-decoration:none; }

.form-field h3 { margin:0; line-height:1.5rem; height:1.5rem; font-size:1.5rem; }

@media screen {
 .sr-only { display:none; }
}

@media screen and (max-width:575px) {
}

@media screen and (min-width:576px) {
}

@media screen and (max-width:767px) {
  .withmenu aside { margin:0.5rem; }
  .news-list li { width:100%; }
}

@media screen and (min-width:768px) {
 .withmenu { display:flex; gap:2rem; flex-direction:row-reverse; }
 .withmenu article { width:75%; width:calc(75% - 2rem); }
 .withmenu aside { width:25%; }
 .news-list li { width:45%; width:calc(50% - 1rem); }
}

@media screen and (max-width:991px) {
 header > div { padding:0.5rem 0; width:60%; margin:0 auto 0 1rem; z-index:1; }
 header > div img { width:13rem; }
 #navigation-menu-container { z-index:2; }
 #navigation-menu-handler { position:absolute; right:0.5rem; top:-4rem; display:block; width:3.8em; height:3.8em; padding:0; background:var(--lightgrey); color:var(--black); border:none; }
 #navigation-menu-handler img { display:block; width:100%; height:100%; }
 #navigation-menu { position:absolute; z-index:2; left:0; right:0; top:0; line-height:4em; }
 #navigation-menu li { margin:0; padding:0; list-style-type:none; }
 #navigation-menu li a { display:block; padding:0 1em; }
 #navigation-path ul { padding:0; width:var(--width-mobile); }
 article { width:var(--width-mobile); }
 footer > div, footer > nav > ul { width:var(--width-mobile); margin-left:auto; margin-right:auto; padding:1rem 0 0 0; }
}

@media screen and (min-width:992px) {
 header { position:relative; padding:1rem 0 0 0; margin:0 auto; }
 header > div { width:var(--width-smalldesktop); }
 header > div img { display:block; width:14rem; }
 header #navigation-menu-container { margin-top:-4rem; padding:0 0 0 9rem; }
 #navigation-menu-handler { display:none; }
 #navigation-menu { position:relative; display:flex; gap:0; justify-content: flex-end; margin:0 auto; text-transform:uppercase; font-weight:bold; }
 #navigation-menu li { padding:0; }
 #navigation-menu li a { display:block; padding:1rem 1rem; }
 #navigation-menu > li { line-height:3rem; }
 #navigation-menu > li.selected { background-color:var(--white); }
 .form-flex { display:flex; gap:1rem; }
 #navigation-path ul, .withmenu, .withoutmenu article { width:var(--width-smalldesktop); }
 #pagePicture { display:block; max-width:50%; float:right; padding:0 0 1rem 1rem; }
 footer > div, footer > nav > ul { width:var(--width-smalldesktop); margin-left:auto; margin-right:auto; }
 footer > nav > ul { display:flex; margin:0; padding:0; gap:2rem; justify-content:center; }
 footer > div { display:flex; margin:0; padding:0; gap:0; justify-content:space-evenly; }
 footer > div > address { min-width:25rem; }
}

@media screen and (min-width:1200px) {
 header > div { width:var(--width-desktop); }
 header #navigation-menu-container { padding-left:20rem; }
 #navigation-menu { font-size:16px; }
 #navigation-menu > li > ul { left:-10rem; }
 #navigation-path ul, .withmenu, .withoutmenu article  { width:var(--width-desktop); }
 footer > div, footer > nav { width:var(--width-desktop); }
}

@media screen and (min-width:1400px) {
 #navigation-menu > li > ul { left:-8rem; }
 .news-list li { width:30%; width:calc(32% - 1rem); }
}

@media print {
 .sr-only { display:none; }
 header { display:none; }
 footer { display:none; }
}

/* Blocks */
.block { padding:1.5rem 0; }
.blocktitle { padding:1.5rem 0 0 0; }
.block img { display:block; }
.block > h2:first-child, .block > h3:first-child, .blocktext > h2:first-child, .blocktext > h3:first-child, .blocktitle h2, .blockcontent > h2:first-child, .blockcontent > h3:first-child { margin-top:0; }
.block-standardwhite { color:var(--lightgrey); background-color:var(--black); }
.block-standardwhite a { color:var(--white); }
figure.blockimage { margin:0; padding:0; }
figure.blockimage figcaption { margin:0; padding:1em 0 0 0; text-align:center; }
.blocktr .blockimage img, .blocktl .blockimage img, .blockimages .blockimage img, .block4images .blockimage img { display:block; width:100%; }
.blocktu .blockimage img, .blocktd .blockimage img { display:block; max-width:100%; }
.blocktext h2:first-child { margin-top:0; }
.block-video iframe { width:100%; height:100%; aspect-ratio:16/9; }
#page-files dt, .block-documents dt { display:block; margin:0 0 1rem 0; padding:0; }
#page-files dd, .block-documents dd { display:block; margin:-1rem 0 1rem 4rem; padding:0;}
#page-files dt a, .block-documents dt a { display:flex; gap:1rem; align-items:center; }
#page-files dt img, .block-documents dt img { display:block; height:2rem; }
#page-files dt span, .block-documents dt span { display:block; }
.blockicon img { display:block; height:4rem; }
figure.blockimage, .blockimage figure { margin:0; padding:0; }
figure.blockimage img, .blockimage figure img { display:block; max-width:100%; margin:0; padding:0; }
.blockimgtext figure.blockimage img, .blockimage figure img { margin:0 auto; }
.blockimgtext .blocktext { text-align:center; }
.blockimgtext .blockicon img { margin:0 auto; }
.blockimgtext .blockcta { margin:1em 0 0 0; line-height:3em; font-size:0.8rem; text-align:center; }
.blockimgtext .blockcta a { border:1px solid var(--white); background-color:var(--black); color:var(--lightgrey); text-transform:uppercase; padding:1.25em; font-weight:bold; }
.blockimgtext .blockcta a:hover { background-color:var(--white); }
.blockicontext .subblocks { text-align:center; }
.blockicontext .subblocks img { max-height:10rem; margin:0 auto; }
ul.subblocks { display:block; margin:0; padding:0; }
.subblocks > li { display:block; margin:0; padding:0; }
.fullscreen .block-iconeutilita .blockcontent { width:100%; margin-left:0; margin-right:0;  }
.block-with-subblocks.block-iconeutilita .subblocks.grid { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; align-items:stretch; padding:0 1rem; }
.block-with-subblocks.block-iconeutilita .subblocks.grid img { height:5rem; }
.block-with-subblocks.block-iconeutilita li { width:10rem; padding:0.5rem; border:1px solid var(--darkgray); border-radius:8px; }
.block-with-subblocks.block-iconeutilita li:hover { border-color:#EEE; transition:border .4s; }
.block-with-subblocks.block-iconeutilita figcaption { margin:0; }
.block-with-subblocks.block-iconeutilita h3 { margin-bottom:0; font-size:1rem; }
.children-list { display:block; margin:0; padding:0; }
.children-list li { display:block; margin:0; padding:0.5rem 0; }
.children-list li h3 { margin:0; padding:0; font-size:1rem; }
.banner-container { padding:1rem 0; }
.banner figure figcaption { display:block; padding:0 1rem; }
.blockpagefiles li { list-style-type:none; margin:0.5em 0; }
.blockpagefiles li a { padding-left:32px; background:left center url('/images/file_download.svg') no-repeat; }

@media only screen and (min-width:768px) {
  .block { padding:3rem 0; }
  .blocktitle { padding:3rem 0 0 0; margin-bottom:-3rem; }
  .block-with-subblocks .subblocks { display:flex; gap:6%; justify-content:space-around; align-items:center; flex-wrap:wrap; }
  .block-with-subblocks .subblocks.grid { display:grid; grid-template-columns:repeat(2, 1fr); }
  .block-with-subblocks .subblocks.grid.grid-3-cols { grid-template-columns:repeat(3, 1fr); }
  .blockicontext .subblocks { align-items:flex-start; }
}

@media only screen and (min-width:992px) {
  .fullscreen .blockcontent, .fullscreen .blocktitle h2, .area { width:980px; margin-left:auto; margin-right:auto; }
  .blockcols .blockcontent { display:flex; gap:3rem; }
  .blocktr { flex-direction:row-reverse; }
  .blocktl { flex-direction:row; }
  .blocktu { display:flex; flex-direction:column; }
  .blocktd { display:flex; flex-direction:column-reverse; }
  .blocktr .blocktext, .blocktl .blocktext, .blockcols .blocktext { width:50%; }
  .blocktr .blockimage, .blocktl .blockimage, .blockimages .blockimage { width:50%; }
  .banner { width:100%; }
  .banner figure { display:flex; align-items:center; gap:2rem; margin-left:auto; margin-right:auto; }
  .fullscreen .banner figure { width:980px; }
  .banner figure img { display:block; max-width:280px; }
  .banner figure figcaption h2 { margin:0 0 0.5rem; font-size:2.5rem; }
  .banner figure figcaption p { margin:0; font-size:1.5rem; }
}

@media screen and (min-width:1200px) {
  .fullscreen .blockcontent, .fullscreen .blocktitle h2, .area { width:1180px; }
  .fullscreen .banner figure { width:1180px; }
}

@media screen and (min-width:1800px) {
  .block-with-subblocks.block-iconeutilita .subblocks.grid { grid-template-columns:repeat(9, 1fr); }
}

/* Amministrazione */
#adminBar { display:flex; margin:0; padding:0 1rem; position:absolute; top:0; left:0; right:0; height:2rem; gap:1rem; background-color:var(--lightgrey); border:2px solid red; justify-content:space-between; align-items:center; }
#adminBar h4 { margin:0; padding:0; }
#adminBar ul { display:flex; margin:0; padding:0; gap:1rem; justify-content:space-around; align-items:center;  }
#adminBar li { display:block; margin:0; padding:0; }
#adminBar a { color:var(--magis-blue); }
