/*** RESET E BASE ***/
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;}
.clearfix:before, .clearfix:after {content: ""; display: table;}
.clearfix:after {clear: both;}
.clearfix {zoom: 1;}
html {-webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;}
* {margin: 0; padding: 0; border: none; box-sizing: border-box;}
.clear {clear: both; width: 100%; height: 0; margin: 0; padding: 0; border: none;}
body {width: 100%; height: auto; font-family: 'Dosis', sans-serif; font-size: 17px; font-weight: 400;}
strong {font-weight: 700;}

/*** HEADER ***/
.header-cont {overflow: hidden; width: 100%;}
.header {overflow: hidden; width: 100%; max-width: 1440px; margin: 0 auto; background-color: rgba(254,199,0,0);}
.head {position: relative; float: left; width: 75%; height: 460px; padding: 20px; background: radial-gradient(circle at center, #eef3f8 0%, #ffffff 100%); z-index: 1;}
.head::after {content:""; position: absolute; inset: 0; background: url('/info_30_36_60_cfu/img/30_36_60_cfu.webp') right center no-repeat; background-size: contain; z-index: 0;}
.head > * {position: relative; z-index: 1;}
.logo {width: 100%; max-width: 260px;}
.head-title {position: absolute; bottom: 30px; left: 20px; display: inline-block; width: auto; max-width: calc(100% - 40px); padding: 20px; background-color: rgba(255,255,255,0.8);}
.head-title h1 {margin: 0; font-size: 44px; line-height: 46px; font-weight: 500; color: #166393;}
.head-title h1 strong {font-size: 60px; line-height: 60px; font-weight: 800; text-transform: uppercase; color: rgba(131,3,3,1);}
.hidden-desk {display: none;}

/*** FORM ***/
#cont-form {float: right; width: 25%; padding: 20px; background-color: rgba(254,199,0,1);}
#cont-form h2 {margin: 0 0 10px 0; font-size: 26px; line-height: 26px; text-align: center; text-transform: uppercase; color: rgba(131,3,3,1);}
.oppure {width: 160px; margin: 0 auto 20px; padding: 4px 0 5px; text-align: center; background-color: #fff; color: rgba(0,0,0,0.5); border-radius: 8px;}
form {overflow: hidden; width: 100%;}
fieldset div {position: relative; margin: 0 0 12px 0;}
fieldset input, fieldset select, fieldset textarea {width: 100%; padding: 8px 10px; font-size: 13px; text-transform: uppercase; background: none; color: #001C48!important;}
fieldset option {color: #000!important;}
input::placeholder {opacity: 1;}
input:focus, select:focus, textarea:focus {background: none; border: none; outline: none;}
select {appearance: none;}
.select {background: url('/img/select-arrow.png') no-repeat 97% 50%;}
#campi-obbligatori {background: none; border: none;}
#campi-obbligatori label {font-size: 13px; color: #001C48;}
#privacy_box {margin: 0 0 10px 0; padding: 0 8px 8px 8px; font-size: 12px; line-height: 19px; background: none; color: #001C48; border: none;}
#privacy_box input {width: 15px; height: 15px;}
#privacy_box strong {font-size: 12px; font-weight: 700;}
#privacy_box span {display: inline-table;}

#variabili, #domanda, .servizi {display: none;}
#invia {margin: 0 auto 10px; width: 100%; max-width: 240px;}
#invia2 {margin: 0 auto; border: none;}
.item {float: none; border: none; background: none;}
.item .jqconferma {display: block; width: 100%; height: 48px; font-family: 'Montserrat', sans-serif; font-size: 17px; font-weight: 700; text-transform: uppercase; color: #fff!important; background-color: rgba(131,3,3,1); cursor: pointer;}
.item:hover .jqconferma:hover {background-color: #393; transition: all 0.3s;}
#nome-errore, #cognome-errore, #telefono-errore, #email-errore, #provincia-errore {display: none;}
.error {position: absolute; bottom: 0; left: 0; font-size: 10px!important; line-height: 9px!important; background-color: rgba(192,8,31,0.5); color: #fff; padding: 2px!important;}
input, select, input:focus, select:focus {border-bottom: 1px solid #001C48; background: rgba(255,255,255,0.4);}
input:required:focus:invalid, select:required:focus:invalid {border-bottom: 1px solid rgb(169,57,6); background: rgba(255,255,255,0.4);}
input:required:valid, select:required:valid {border-bottom: 1px solid #0C0; background: none;}
::placeholder {color: #001C48; opacity: 1;}
:-ms-input-placeholder {color: #001C48;}
::-ms-input-placeholder {color: #001C48;}

/*** CONTENITORE E CONTENUTO ***/
#container {display: table; overflow: hidden; width: 100%; max-width: 1440px; margin: 0 auto; background-color: rgba(254,199,0,0.0); border-top: 3px solid rgba(254,199,0,1);}
.content {float: left; width: 100%; padding: 40px 40px 20px 40px; background-color: #fff;}
.content p {margin: 0 0 20px 0; font-weight: 400; line-height: 23px;}
.content h2 {margin: 0 0 16px 0; font-size: 30px; line-height: 32px; font-weight: 700; color: #166393;}
.content h3 {margin: 0 0 6px 0; font-size: 22px; line-height: 24px; font-weight: 700; color: rgba(131,3,3,1);}
.content ul {margin: 0 0 30px 30px; line-height: 24px;}
.content ul.up {margin: -22px 0 30px 16px;}
.content ul li {font-weight: 400; margin: 0; line-height: 23px;}
.col-md6 {float: left; width: 50%; padding: 0 30px 0 0;}
ul.classi {float: left; width: 48%; margin: 0 0 20px 18px; padding-right: 20px;}

/*** COLONNE ***/
.row {margin-bottom: 40px;}
.flex-cols {display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 16px;}
.col-2 > * {flex: 1 1 48%;}
.col-3 > * {flex: 1 1 30%;}
.col-4 > * {flex: 1 1 22%;}
.col-item {background-color: rgba(252,252,252,1.00); padding: 20px; border-radius: 6px; border: 1px solid #ccc;}
.col-item p {margin-bottom: 10px!important;}
.col-item h3 {margin-bottom: 10px; font-size: 18px; color: #333;}

/*** LISTE CLASSI E SEDI ***/
.classi-list, .sedi-list {padding-left: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px 20px; margin-bottom: 30px;}
.classi-list li, .sedi-list li {flex: 1 1 30%; font-size: 16px; line-height: 1.4; padding-left: 16px; position: relative;}
.classi-list li::before, .sedi-list li::before {content: "•"; position: absolute; left: 0; color: #166393;}

/*** FOOTER ***/
.footer {text-align: center; padding: 40px 20px; background-color: #f6f6f6; border-top: 1px solid #ddd;}
.footer p {font-size: 14px; color: #222; font-weight: 600;}

/*** ELEMENTI VARI ***/
.fluid {width: 100%; height: auto;}
.link {cursor: pointer; text-decoration: underline; color: #33C;}
.intero {display: inline-block;}
#back_to_top {position: fixed; bottom: 15px; right: 15px; cursor: pointer;}
.normal {font-weight: 400;}
.hr-text {margin-top: 30px; line-height: 1em; position: relative; outline: 0; border: 0; color: #166393; text-align: center; height: 1.8em; opacity: .99; font-weight: 700;}
.hr-text:before {content: ''; background: linear-gradient(to right, transparent, #000, transparent); position: absolute; left: 0; top: 50%; width: 100%; height: 1px;}
.hr-text:after {content: attr(data-content); position: relative; display: inline-block; color: #333; background-color: #fff; padding: 0 .5em; line-height: 1.5em;}
.arrow {padding-left: 26px; background: url(/arr-action.png) left top no-repeat;}
.miur {display: table-cell; vertical-align: middle; width: 110px; height: auto; margin: 6px;}
.parens-note {font-style: italic; font-weight: 300; color: #000;}
.cta-button {display: inline-block; padding: 8px 16px; background-color: #830303; color: #fff; border: none; border-radius: 4px; font-size: 15px; font-weight: 500; cursor: pointer; transition: background-color 0.3s ease;}
.cta-button:hover {background-color: #a00;}



/*** RESPONSIVE: max-width 1100px ***/
@media (max-width: 1100px) {
  .head {width: 65%;}
  #cont-form, .side {width: 35%;}
  .content {width: 100%;}
}

/*** RESPONSIVE: max-width 768px (tablet) ***/
@media (max-width: 768px) {
  .logo {max-width: 180px;}
  .header {display: flex; flex-direction: column; max-width: 600px;}
  .head {position: relative; width: 100%; height: 400px; padding: 20px;}
  .head-title {position: absolute; bottom: 20px; left: 10px;}
  .head-title h1 {font-size: 28px; line-height: 30px;}
  .head-title h1 strong {font-size: 34px; line-height: 34px;}
  #cont-form {width: 100%; padding: 20px;}
  #container {max-width: 600px;}
  .content {padding: 40px 20px;}
  .content ul.classi li {width: 100%; padding-right: 0;}
  .hidden-desk {display: block;}
  .flex-cols {flex-direction: column;}
  .col-2 > *, .col-3 > *, .col-4 > * {flex: 1 1 100%;}
  .classi-list li, .sedi-list li {flex: 1 1 42%;}
}

/*** RESPONSIVE: max-width 600px (mobile) ***/
@media (max-width: 600px) {
  .content {padding: 30px 10px;}
}
