/* RESET */
dl, ol, ul { margin: 0; }
*:focus { outline: none!important; }

/* FONTS */

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Regular.woff2') format('woff2'),
        url('../fonts/Roboto-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-BoldItalic.woff2') format('woff2'),
        url('../fonts/Roboto-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Light.woff2') format('woff2'),
        url('../fonts/Roboto-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-LightItalic.woff2') format('woff2'),
        url('../fonts/Roboto-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Bold.woff2') format('woff2'),
        url('../fonts/Roboto-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Thin.woff2') format('woff2'),
        url('../fonts/Roboto-Thin.woff') format('woff');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-BlackItalic.woff2') format('woff2'),
        url('../fonts/Roboto-BlackItalic.woff') format('woff');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Italic.woff2') format('woff2'),
        url('../fonts/Roboto-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-MediumItalic.woff2') format('woff2'),
        url('../fonts/Roboto-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Black.woff2') format('woff2'),
        url('../fonts/Roboto-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Medium.woff2') format('woff2'),
        url('../fonts/Roboto-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-ThinItalic.woff2') format('woff2'),
        url('../fonts/Roboto-ThinItalic.woff') format('woff');
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}

/* END FONTS */



body { font-family: 'Roboto', sans-serif; font-size: 22px; font-weight: 300; background: #fff; color: #000000; line-height: 100%; }

@media (max-width: 767px) {
	body { font-size: 19px; }
}

@media (min-width: 992px) {
	.visible-mobile { display: none; }
	.hidden-mobile { display: block; }
}

@media (max-width: 991px) {
	.visible-mobile { display: block; }
	.hidden-mobile { display: none; }
}

/* BOOTSTRAP - STRUTTURA */
#header, #footer, #main-content, .container-fluid, .container { width: 100%; max-width: 100%; margin-left: auto; margin-right: auto; }
#header, #footer, #main-content { max-width: 2600px; }
.container { max-width: 1170px!important; }
	.container.container-small { max-width: 720px!important; }

.box-content { max-width: 580px; }
.box-content-small { max-width: 380px; }

@media (min-width: 992px) {
	.container { width: 83.333%!important; }
	.template-info-2col .box-content, .template-2col .box-content { padding-left: 70px; }
}

/* Typography */
a, a:hover { color: #000000; text-decoration: none!important; }
	a.underline, .underline a { text-decoration: underline!important; }
h1, h2, h3, h4, h5, h6, h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: #3E454C; font-weight: 700; margin-bottom: 20px; line-height: 110%; }
	h4, h5, h6, h4 a, h5 a, h6 a { font-weight: 500; }

h1 { font-size: 54px!important; }

@media (max-width: 767px) {
	h1 { font-size: 36px!important; }
}

h2 { font-size: 34px!important; }

@media (max-width: 767px) {
	h2 { font-size: 28px!important; }
}

h3 { font-size: 30px!important; }

@media (max-width: 767px) {
	h3 { font-size: 24px!important; }
}

h4 { font-size: 22px!important; }

@media (max-width: 767px) {
	h4 { font-size: 20px!important; }
}

h5, h6 { font-size: 18px!important; }

@media (max-width: 767px) {
	h5, h6 { font-size: 18px!important; }
}

.font-variant { font-family: 'Roboto', sans-serif; }
.light-weight { font-weight: 300!important; }
.normal-weight { font-weight: 400!important; }
.medium-weight { font-weight: 500!important; }
.semibold-weight { font-weight: 600!important; }
.em { font-style: italic; }
.line-height-large { line-height: 150%!important; }
.line-height-medium, .box-txt .line-height-medium { line-height: 130%!important; }
.line-height-normal { line-height: 105%!important; }

.text-extralarge { font-size: 34px!important; }

@media (max-width: 767px) {
	.text-extralarge { font-size: 28px!important; }
}

.text-large { font-size: 34px!important; }

@media (max-width: 767px) {
	.text-large { font-size: 24px!important; }
}

.text-medium { font-size: 24px!important; }

@media (max-width: 767px) {
	.text-medium { font-size: 22px!important; }
}

.text-normal { font-size: 20px!important; }

@media (max-width: 767px) {
	.text-normal { font-size: 19px!important; }
}

.text-small { font-size: 18px!important; }

@media (max-width: 767px) {
	.text-small { font-size: 16px!important; }
}

.text-extrasmall { font-size: 15px!important; }

@media (max-width: 767px) {
	.text-extrasmall { font-size: 14px!important; }
}

.text-xxs { font-size: 13px!important; }

@media (max-width: 767px) {
	.text-extrasmall { font-size: 12px!important; }
}

.weight-strong { font-weight: 700!important; }
strong, .strong, .weight-semibold { font-weight: 500!important; }
.weight-medium { font-weight: 500!important; }
.weight-regular { font-weight: 400!important; }
.weight-light { font-weight: 300!important; }
.uppercase { text-transform: uppercase; }

.black, .text-dark { color: #000!important; }
.white, .text-white { color: #fff!important; }
.text-light-grey, .text-light-grey a { color: #888888!important; }
.text-dark-grey, .text-dark-grey a { color: #3E454C!important; }
.blue, .blue a, .text-blue { color: #69A776!important; }
.red, .red a, .text-red { color: #ED3F36!important; }
.green, .green a, .text-green { color: #82A229!important; }

.bk-white { background: #fff; }
.bk-blue { background: #004969; }
.bk-grey { background-color: #BEBEBE; }
.bk-light-grey { background: #F6F6F6; }
.bk-red { background: #ED3F36; }

/* Header */
#header { background: #fff; -webkit-box-shadow: 0px 2px 4px 1px rgba(0,0,0,0.10); -moz-box-shadow: 0px 2px 4px 1px rgba(0,0,0,0.10); box-shadow: 0px 2px 4px 1px rgba(0,0,0,0.10); }
.header-top { background: #F6F6F6; }
	.header-top .navbar-nav { padding: 0 15px; margin: 0; width: 100%; text-align: right; display: block; }
		.header-top .navbar-nav .nav-item { padding: 0; margin: 0; display: inline-block; }
		.header-top .navbar-nav .nav-link { padding: 0 0 0 15px; font-size: 14px; line-height: 40px; font-weight: 400; color: #000; margin: 0; }

.header-logo { margin: 15px 0; display: block; float: left; }
	.header-logo img { width: auto; max-width: 100%; }
.header-menu { padding: 0; margin: 0; }
.header .navbar { padding: 0; margin: 0; width: 100%; }
.header .navbar-nav .nav-link { line-height: 45px; font-weight: 400; color: #3E454C; padding: 0; margin: 0; }
.header .navbar-nav .nav-item:last-child .nav-link { background: #ED3F36; color: #fff; font-weight: 500; }
.header .navbar-nav .nav-link.active { color: #ED3F36; }
.header .dropdown-menu { padding: 0; margin: 0; }

@media (min-width: 992px) {
	.header-logo { width: 180px; }
	.header-menu { float: right; padding: 20px 0; text-align: right; }
	.header .navbar-nav .nav-item { margin: 0 0 0 15px; }
		.header .navbar-nav .nav-item:last-child .nav-link { padding: 0 13px; }
	.header .navbar-nav .nav-link { font-size: 14px; }
}

@media (min-width: 1280px) {
	.header-logo { width: 200px; margin: 15px; }
	.header-menu { margin: 0 15px 0 0; }
	.header .navbar-nav .nav-item { margin: 0 0 0 30px; }
		.header .navbar-nav .nav-item:last-child .nav-link { padding: 0 30px; }
	.header .navbar-nav .nav-link { font-size: 16px; }
}

@media (max-width: 991px) {
	.header-logo { width: 180px; margin: 15px; top: 0; left: 0; position: absolute; z-index: 100; }
	.header-menu { padding: 30px 0; }
	.header .navbar { padding: 0; margin: 0; width: 100%; display: block; text-align: right; }
	.header .navbar-toggler { padding: 0; display: inline-block; margin: 0; }
	.header .navbar-nav { text-align: left; padding: 30px 0 15px 0; }
		.header .navbar-nav .nav-link { font-size: 15px; border-bottom: 1px solid #eee; line-height: 45px; font-weight: 400; color: #3E454C; padding: 0 15px; margin: 0; }
}

/* footer */
.footer { margin-top: 30px; padding: 50px 15px 30px 15px; background: #004969; }
.footer-txt, .footer-txt a, .footer-social a, .footer-txt h5, .footer-menu a { color: #fff; }
	.footer-txt, .footer-menu a, .footer-txt h5 { font-size: 15px!important; }
		.footer-txt h5 { margin-bottom: 10px; }
.footer-logo img { width: auto; max-width: 100%; }
.footer-logo-sx { padding-bottom: 20px; }
.footer-menu a { font-weight: 400!important; }
.list-inline-item:not(:last-child) { margin-right: 15px; }

@media (min-width: 992px) {
	.footer-txt { text-align: center; }
	.footer-logo-dx { text-align: center; }
}

@media (max-width: 991px) {
	.footer-txt { padding: 30px 0; }
	.footer-logo-sx img { width: 200px; }
	.footer-logo-dx { text-align: right; margin-top: 15px; }
		.footer-logo-dx img { width: 120px; }
}

/* Template */
.clearfix, .template, .box, .img { display: block; }
	.clearfix:after, .template:after, .box:after, .img:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; overflow: hidden; }
.img { position: relative; }
	.img img { max-width: 100%; width: 100%; }
.textarea-content, .template-content .txt { line-height: 140%; }
.img, .box .ico-img { width: 100%; }
.icon-img img, .ico-img img { width: auto; max-width: 100%; }
.box { position: relative; }
.box-tit h1 { margin-bottom: 30px; }
.box-txt { line-height: 140%; }

.box .txt { line-height: 140%; }
	.box .txt .line-height-normal { line-height: 110%; }
.box-txt .text-extrasmall.line-height-normal { line-height: 130%!important; }

/* PAGINA */ /* TEMPALTE  */
.template-info-3col .box.box-small { line-height: 130%; max-width: 290px; margin-left: auto; margin-right: auto; }

@media (min-width: 992px) {
	.template-info-3col .box.box-small { line-height: 130%; max-width: 290px; display: inline-block; }
}

.textarea-content h2, .textarea-content h3, .textarea-content h4, .textarea-content h5 { padding-bottom: 15px; }
.textarea-content ul { padding: 15px 0; padding-inline-start: 20px; }
.template-credits { padding: 15px 0; padding-inline-start: 20px; }

/* Table */
.table { font-size: 18px; width: 100%; max-width: 100%; margin-bottom: 1rem; font-weight: 300; }
	.table thead th { vertical-align: bottom; border-bottom: 2px solid #dee2e6; }
	.table td, .table th { padding: .75rem; vertical-align: top; border-top: none; }
	.table thead th { border-bottom: none; font-size: 22px; font-weight: 400; }
.table-striped tbody tr:nth-of-type(odd) { background-color: #F6F6F6; }

/* bottoni */
.btn, .btn:hover { background: #ED3F36; border: 1px solid #ED3F36; color: #fff; padding: 0 30px!important; min-width: 180px; font-size: 15px; line-height: 42px!important; height: auto!important; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; font-weight: 500; margin-bottom: 10px; }
	.btn.btn-link, .btn.btn-link:hover { background: #fff; border: 1px solid #8B9AAA; color: #3E454C; }
.btn-fluid { width: 100%; padding: 0 15px!important; }
.box-btn { margin-top: 35px; margin-bottom: 15px; }

/* Form */
.form-control, select.form-control { height: 42px!important; padding: 0 0 0 15px; font-size: 18px; color: #333333!important; border: 1px solid #BEBEBE; font-weight: 300!important; background: #F6F6F6; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; }
textarea.form-control { height: 90px!important; line-height: 110%; padding-top: 15px; }
::-webkit-input-placeholder { /* Chrome/Opera/Safari */ color: #000!important; font-weight: 300!important; }
::-moz-placeholder { /* Firefox 19+ */ color: #000!important; font-weight: 300!important; }
:-ms-input-placeholder { /* IE 10+ */ color: #000!important; font-weight: 300!important; }
:-moz-placeholder { /* Firefox 18- */ color: #000!important; font-weight: 300!important; }
label { font-size: 18px; color: #000; font-weight: 400; }
.form-check label { font-size: 13px; color: #222222; font-weight: 300; }

/* BORDER - MARGIN - PADDING */
.template-spacer hr { height: 101px; background: url('/static/images/site/line-spacer.png') no-repeat center center; background-size: auto; margin-top: 0; margin-bottom: 0; border: 0; border-top: 1px solid rgba(0,0,0,0); }
.box.box-shadow { border: 1px solid #BEBEBE; -webkit-box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.20); -moz-box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.20); box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.20); }
.border { border: 1px solid #EBEBEB; }
.border-t { border-top: 1px solid #EBEBEB; }
.border-b { border-bottom: 1px solid #EBEBEB; }

.nopadding { padding: 0px!important; }
.nomargin { margin: 0px!important; }
.m-0 { margin: 0px !important; }
.m-1 { margin: 5px !important; }
.mx-1 { margin-left: 5px !important; margin-right: 5px !important; }
.my-1 { margin-top: 5px !important; margin-bottom: 5px !important; }
.mt-1 { margin-top: 5px !important; }
.mb-1 { margin-bottom: 5px !important; }
.ml-1 { margin-left: 5px !important; }
.mr-1 { margin-right: 5px !important; }
.m-2 { margin: 15px !important; }
.mx-2 { margin-left: 15px !important; margin-right: 15px !important; }
.my-2 { margin-top: 15px !important; margin-bottom: 15px !important; }
.mt-2 { margin-top: 15px !important; }
.mb-2 { margin-bottom: 15px !important; }
.ml-2 { margin-left: 15px !important; }
.mr-2 { margin-right: 15px !important; }
.m-3 { margin: 30px !important; }
.mx-3 { margin-left: 30px !important; margin-right: 30px !important; }
.my-3 { margin-top: 30px !important; margin-bottom: 30px !important; }
.mt-3 { margin-top: 30px !important; }
.mb-3 { margin-bottom: 30px !important; }
.ml-3 { margin-left: 30px !important; }
.mr-3 { margin-right: 30px !important; }
.m-4 { margin: 45px !important; }
.mx-4 { margin-left: 45px !important; margin-right: 45px !important; }
.my-4 { margin-top: 45px !important; margin-bottom: 45px !important; }
.mt-4 { margin-top: 45px !important; }
.mb-4 { margin-bottom: 45px !important; }
.ml-4 { margin-left: 45px !important; }
.mr-4 { margin-right: 45px !important; }
.m-5 { margin: 60px !important; }
.mx-5 { margin-left: 60px !important; margin-right: 60px !important; }
.my-5 { margin-top: 60px !important; margin-bottom: 60px !important; }
.mt-5 { margin-top: 60px !important; }
.mb-5 { margin-bottom: 60px !important; }
.ml-5 { margin-left: 60px !important; }
.mr-5 { margin-right: 60px !important; }
.p-0 { padding: 0 !important; }
.p-1 { padding: 5px !important; }
.px-1 { padding-left: 5px !important; padding-right: 5px !important; }
.py-1 { padding-top: 5px !important; padding-bottom: 5px !important; }
.pt-1 { padding-top: 5px !important; }
.pb-1 { padding-bottom: 5px !important; }
.pl-1 { padding-left: 5px !important; }
.pr-1 { padding-right: 5px !important; }
.p-2 { padding: 15px !important; }
.px-2 { padding-left: 15px !important; padding-right: 15px !important; }
.py-2 { padding-top: 15px !important; padding-bottom: 15px !important; }
.pt-2 { padding-top: 15px !important; }
.pb-2 { padding-bottom: 15px !important; }
.pl-2 { padding-left: 15px !important; }
.pr-2 { padding-right: 15px !important; }
.p-3 { padding: 30px !important; }
.px-3 { padding-left: 30px !important; padding-right: 30px !important; }
.py-3 { padding-top: 30px !important; padding-bottom: 30px !important; }
.pt-3 { padding-top: 30px !important; }
.pb-3 { padding-bottom: 30px !important; }
.pl-3 { padding-left: 30px !important; }
.pr-3 { padding-right: 30px !important; }
.p-4 { padding: 45px !important; }
.px-4 { padding-left: 45px !important; padding-right: 45px !important; }
.py-4 { padding-top: 45px !important; padding-bottom: 45px !important; }
.pt-4 { padding-top: 45px !important; }
.pb-4 { padding-bottom: 45px !important; }
.pl-4 { padding-left: 45px !important; }
.pr-4 { padding-right: 45px !important; }
.p-5 { padding: 60px !important; }
.px-5 { padding-left: 60px !important; padding-right: 60px !important; }
.py-5 { padding-top: 60px !important; padding-bottom: 60px !important; }
.pt-5 { padding-top: 60px !important; }
.pb-5 { padding-bottom: 60px !important; }
.pl-5 { padding-left: 60px !important; }
.pr-5 { padding-right: 60px !important; }


@media (max-width: 991px) {
	.m-2 { margin: 10px !important; }
	.mx-2 { margin-left: 10px !important; margin-right: 10px !important; }
	.my-2 { margin-top: 10px !important; margin-bottom: 10px !important; }
	.mt-2 { margin-top: 10px !important; }
	.mb-2 { margin-bottom: 10px !important; }
	.ml-2 { margin-left: 10px !important; }
	.mr-2 { margin-right: 10px !important; }
	.m-3 { margin: 20px !important; }
	.mx-3 { margin-left: 20px !important; margin-right: 20px !important; }
	.my-3 { margin-top: 20px !important; margin-bottom: 20px !important; }
	.mt-3 { margin-top: 20px !important; }
	.mb-3 { margin-bottom: 20px !important; }
	.ml-3 { margin-left: 20px !important; }
	.mr-3 { margin-right: 20px !important; }
	.m-4 { margin: 30px !important; }
	.mx-4 { margin-left: 30px !important; margin-right: 30px !important; }
	.my-4 { margin-top: 30px !important; margin-bottom: 30px !important; }
	.mt-4 { margin-top: 30px !important; }
	.mb-4 { margin-bottom: 30px !important; }
	.ml-4 { margin-left: 30px !important; }
	.mr-4 { margin-right: 30px !important; }
	.m-5 { margin: 30px !important; }
	.mx-5 { margin-left: 30px !important; margin-right: 30px !important; }
	.my-5 { margin-top: 30px !important; margin-bottom: 30px !important; }
	.mt-5 { margin-top: 30px !important; }
	.mb-5 { margin-bottom: 30px !important; }
	.ml-5 { margin-left: 30px !important; }
	.mr-5 { margin-right: 30px !important; }
	.p-2 { padding: 10px !important; }
	.px-2 { padding-left: 10px !important; padding-right: 10px !important; }
	.py-2 { padding-top: 10px !important; padding-bottom: 10px !important; }
	.pt-2 { padding-top: 10px !important; }
	.pb-2 { padding-bottom: 10px !important; }
	.pl-2 { padding-left: 10px !important; }
	.pr-2 { padding-right: 10px !important; }
	.p-3 { padding: 20px !important; }
	.px-3 { padding-left: 20px !important; padding-right: 20px !important; }
	.py-3 { padding-top: 20px !important; padding-bottom: 20px !important; }
	.pt-3 { padding-top: 20px !important; }
	.pb-3 { padding-bottom: 20px !important; }
	.pl-3 { padding-left: 20px !important; }
	.pr-3 { padding-right: 20px !important; }
	.p-4 { padding: 30px !important; }
	.px-4 { padding-left: 30px !important; padding-right: 30px !important; }
	.py-4 { padding-top: 30px !important; padding-bottom: 30px !important; }
	.pt-4 { padding-top: 30px !important; }
	.pb-4 { padding-bottom: 30px !important; }
	.pl-4 { padding-left: 30px !important; }
	.pr-4 { padding-right: 30px !important; }
	.p-5 { padding: 30px !important; }
	.px-5 { padding-left: 30px !important; padding-right: 30px !important; }
	.py-5 { padding-top: 30px !important; padding-bottom: 30px !important; }
	.pt-5 { padding-top: 30px !important; }
	.pb-5 { padding-bottom: 30px !important; }
	.pl-5 { padding-left: 30px !important; }
	.pr-5 { padding-right: 30px !important; }
}

/* ALERT */
.alert { border-radius: 1px; padding-right: 40px; min-height: 50px; }
	.alert ul { padding-left: 15px; line-height: 1.6; }
		.alert ul li { list-style: circle; list-style-position: outside; }
	.alert > i { position: absolute; top: 15px; right: 15px; }
