html, body {
	font-size: 15px;
	margin: 0;
	overflow-x: hidden;
	font-family: Montserrat, sans-serif;
	color: #fff;
}

.sp-flex:has(.disabled) {
	margin: 0 !important;
}

html, body:has(.sp-main-wrapper) {
	display: flex;
	flex-direction: column;
}

.sp-sitebar {
  background-image: linear-gradient( to right, #000 0%, #000 80%, #081113 85%, #0f1f22 87%, #50acbc 100% );
}

#sp-main-content:has(.sp-main-wrapper) {
	overflow-y: auto;
}

#sp-main-content {
	flex: 1;
}

.sphere-title {
	position: absolute;
	top: 49%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 6rem;
	font-weight: normal;
	text-align: center;
	z-index: 2;
}

b {
	color: #50acbc;
	font-weight: bold;
}

p{
	margin: unset;
}

.sp-main-content-content h1 {
	font-size: 2.4rem;
	color: #65daee;
}

.sp-table table tr:nth-child(2n) {
	background-color: #272727;
}

.sp-table table tbody tr:hover {
	background-color: #50acbc4d;
}

footer {
	padding: calc(15px*1) calc(30px*5);
	width: 100%;
	box-sizing: border-box;
}

.fen-label, .fen-helper {
	color: #ddd;
}

canvas {
	display: block;
	width: 100vw;
	height: 100vh;
}

.scroll-container {
	height: 200vh;
	background: transparent;
}

.sphere-section {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
}

.sp-main-content-box{
	margin-top: 30px;
}

.sp-main-content-box:not(:last-child){
	margin-right: 30px;
}

.sp-main-content-box {
	width: auto;
	flex-grow: 1;
	flex-basis: 0;
}

.sp-main-content-box, .sp-contact-box {
	background: #000000;
	box-shadow: 0 2px 8px rgba(255, 255, 255, 0.52);
}

.sp-sitebar {
	background-image: linear-gradient( to right, #000 0%, #000 80%, #081113 85%, #0f1f22 87%, #50acbc 100% );
}

.sp-main-content-intro, .sp-main-content-top {
	background: #000000;
}

.sp-main-content-intro {
	padding:0 calc(30px*5) calc(30px*2);
}

.sp-res-menu{
	background: #171717;
	box-shadow: 0 2px 8px #50acbc;
}

.sp-table table td, .sp-table table th {
	border-bottom: 1px solid #50acbc;
}

.sp-modal-content > .sp-main-content-content, .sp-modal-content > .sp-des-page {
	background-color: #000000;
}

.sp-content-image-top, .sp-content-image-top img {
	height: calc(30px*10);
}

.sp-hr{
	width: 11%;
}

.sp-main-content-box-text {
	color: #ffffff;
}

.sp-main-content-content {
	text-align: justify;
	line-height: 2em;
	padding: calc(30px*3) calc(30px*5);
	font-size: 1rem;
}

.sp-main-content-content h3:not(:first) {
	margin: calc( 30px*2 ) 0 15px 0;
}

.sp-login-box {
	box-shadow: 0 2px 8px rgba(255, 255, 255, 0.52);
	background: #000000;
}

.sp-home-grid > * > * {
	box-shadow: 0 2px 8px #50acbc;
	background: #171717;
}

.sphere-dialog-content {
	background: #171717;
}

.sphere-dialog {
	background: #171717;
	z-index: 10000;
}

.sp-dialog-header {
	background: #50acbcdb;
}

/*
.slides ~ .sp-main-content-intro {
	padding-top: 0;
	padding-bottom: 0;
	margin-top: -150px;
}
*/

.sp-main-content-top {
	padding: calc(30px*3) calc(30px*5) calc(30px*2);
	line-height: 1.6rem;
}

.slides, .slide {
	height: 65vh;
	/*clip-path: ellipse(125% 100% at 50% 0);*/
}

.slide{
	transition: all 1s ease;	
	width: 100%;
	position: absolute;
	opacity: 0;
}

.slide > img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

.slide.active {
	opacity: 100%;
}

.sp-slide svg {
	width: 0;
	height: 0;
	position: absolute;
}

.sp-slide-text-box{
	position: absolute;
	top: 30%;
	left: calc(30px*5);
	transform: translate(0%,-50%);
}

.sp-slide-title {
	text-transform: none;
	position: relative;
	top: 0;
	left: 0;
	padding:0;
}

.sp-slide-intro {
	position: relative;
	top: 0;
	left: 0;
	padding:0;
}

.sp-contact-box:first-child {
	margin-left: 0;
}

.sp-contact-box:last-child{
	margin-right: 0;
}

.sp-contacts {	
	margin: calc(15px*4 ) calc(30px*4 ) 0 calc(30px*4 );
}

.sp-map-title, .sp-map > .sp-map-title {
	margin: 30px 0 15px 0;
	padding: 0;
}

.sp-map {
	margin: 0 calc(30px*4) calc(15px*4 );
}

.sp-intro-background {
	background-color: linear-gradient(to bottom left, rgba(21, 58, 138, 0.16) 0, rgba(21, 58, 138, 0.16) 49.9%, transparent 50%),linear-gradient(to bottom right, rgba(50, 109, 230, 0.5) 0, rgba(50, 109, 230, 0.5) 49.9%, transparent 50%),linear-gradient(to top left, white 0%, white 49.3%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 100%),linear-gradient(74deg, #173d8b 0%, #326de6 92%)
}

.sp-footer-logo{
	
}

.sp-footer-content{
	min-width: auto;
}

.sp-content-box-wrapper{
	margin-top: 30px;
	width: 100%;
}

.sp-main-content-hcontents {
	padding: 0px calc( 30px*5 ) calc(30px*3);
	margin-top: -30px;
}

.sp-main-content-block-desc {
	background: #000000;
}

.sp-main-content-block-title {
	color: #50acbc;
}

.sp-main-content-block-text {
	color: #ffffff;
}

.sp-menu-item-nested{
	background: #000000;
}

.sp-menu-item-nested {
	z-index: 5;
}

.sp-button-distance{
	display: flex;
	justify-content: space-around;
    flex-wrap: wrap;
    gap: 2rem;
	margin: 0;
}

/*------------------->>>>>MENU A SCORRIMENTO<<<<<-------------------*/

.sp-menu{
	display: flex;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch; 
    scroll-snap-type: x mandatory;
	align-items: center;
}

.sp-menu-item {
    white-space: nowrap;
    flex: 0 0 auto;
    scroll-snap-align: start; 
}

.sp-menu-item-label {
    white-space: nowrap;
}

.sp-events-image > img{
	width: 50%;
}

div.sp-main-content-intro:nth-child(5) > a:nth-child(1) > div:nth-child(3) {
	text-align: left;
}

div.sp-main-content-intro:nth-child(5) > a:nth-child(2) > div:nth-child(3) {
	text-align: left;
}

div.sp-main-content-intro:nth-child(5) > a:nth-child(3) > div:nth-child(3) {
	text-align: left;
}
.sp-menu-item {
  position: static; /* attenzione! nessun posizionamento relativo qui */
}

/*(min-width: 1099px) and (max-width: 1954px)*/
@media (min-width: 1440px) and (max-width: 2560px) {
	.sp-sitebar {
		background-image: linear-gradient( to right, #000 0%, #000 65%, #081113 71%, #0f1f22 73%, #50acbc 100% );
	}
	.sp-menu{
		overflow-x: auto;
	}
	.sp-button {
		padding: 10px 17px;
	}
}

@media (min-width: 1025px) and (max-width: 1920px) {
	.sp-content-image-top, .sp-content-image-top img {
		height: calc(30px*7);
	}
	.sp-content-text-top, .sp-content-text-top-sub {
		font-size: 3rem;
	}
	.sp-button {
		padding: 8px 15px;
	}
}

@media (min-width: 1025px) and (max-width: 1860px) {

}

@media (min-width: 1025px) and (max-width: 1690px) {
	.sp-sitebar > * > * {
		padding: 0 calc(30px*3);
	}
	header {
		padding: 15px calc(30px*3);
	}
	.sp-content-text-top, .sp-content-text-top-sub {
		left: calc(30px*3);
	}
	.sp-main-content-top {
		line-height: 2rem;
	}
	.sp-slide-title {
		font-size: 3rem;
	}
	.sp-slide-intro {
		font-size: 1.7rem;
	}
	.sp-main-content-content {
		padding: calc(30px*3) calc(30px*3);
	}
	footer {
		padding: calc(15px*1) calc(30px*3);
	}
	.sp-main-content-top {
		padding: calc(30px*3) calc(30px*3) calc(30px*2);
	}
	.sp-main-content-intro {
		padding: 0 calc(30px*3) calc(30px*2);
	}
	.sp-slide-text-box {
		left: calc(30px*3);
	}
	.sp-main-content-hcontents {
		padding: 0px calc( 30px*3 ) calc(30px*2);
	}
	.sp-contacts {
		margin: calc(15px*4 ) calc(30px*3 ) 0;
	}
	.sp-map {
		margin: 0 calc(30px*3) calc(15px*4 );
	}
}

@media only screen and (min-device-width: 1200px) and (max-device-width: 1628px) {
	
}

@media only screen and (min-device-width: 1200px) and (max-device-width: 1612px) {
	
}

@media only screen and (min-device-width: 956px) and (max-device-width: 1470px) {
	.sp-main-content-block-title {
		font-size: 2rem;
	}
	.sp-main-content-content h1 {
		font-size: 2.2rem;
	}
	.sp-sitebar > * > * {
		padding: 0 calc(30px*2);
	}
	header {
		padding: 15px calc(30px*2);
	}
	.sp-content-text-top, .sp-content-text-top-sub {
		left: calc(30px*2);
	}
	.sp-main-content-content {
		padding: calc(30px*1) calc(30px*2);
	}
	footer {
		padding: calc(15px*1) calc(30px*2);
	}
	.sp-main-content-top {
		padding: calc(30px*2);
	}
	.sp-main-content-intro {
		padding: 0 calc(30px*2) calc(30px*2);
	}
	.sp-slide-text-box {
		left: calc(30px*2);
	}
	.sp-main-content-hcontents {
		padding: 0px calc( 30px*2 ) calc(30px*2);
	}
	.sp-contacts {
		margin: calc(15px*4 ) calc(30px*2 ) 0;
	}
	.sp-map {
		margin: 0 calc(30px*2) calc(15px*4 );
	}
	.sp-logo {
		max-height: calc(30px*1.3);
	}
	header {
		height: calc(15px*4);
	}
	.sp-main-content-top-title {
		font-size: 2.1rem;
	}
	.sp-slide-title {
		font-size: 2.5rem;
	}
	.sp-button {
		font-size: 1.1rem;
		padding: 6px 10px;
	}
	.slides, .slide {
		height: 50vh;
	}
}

@media (min-width: 720px) and (max-width: 1330px) {
	html, body {
		font-size: 14px;
	}
	.sp-main-content-block-title {
		font-size: 1.8rem;
	}
	.sp-main-content-content h1 {
		font-size: 2rem;
	}
	.sp-sitebar > * > * {
		padding: 0 calc(30px*1);
	}
	header {
		padding: 15px calc(30px*1);
	}
	.sp-content-text-top, .sp-content-text-top-sub {
		left: calc(30px*1);
		font-size: 2.5rem;
	}
	.sp-main-content-content {
		padding: calc(30px*1) calc(30px*1);
	}
	footer {
		padding: calc(15px*1) calc(30px*1);
	}
	.sp-main-content-top {
		padding: calc(30px*1);
		line-height: 1.5rem;
		font-size: 1.1rem;
	}
	.sp-main-content-intro {
		padding: 0 calc(30px*1) calc(30px*2);
	}
	.sp-slide-text-box {
		left: calc(30px*2);
	}
	.sp-main-content-hcontents {
		padding: 0px calc( 30px*1 ) calc(30px*2);
	}
	.sp-contacts {
		margin: calc(15px*2) calc(30px*1 ) 0;
	}
	.sp-map {
		margin: 0 calc(30px*1) calc(15px*2);
	}
	.sp-logo {
		max-height: calc(30px*1.2);
	}
	header {
		height: calc(15px*3);
	}
	.sp-main-content-top-title {
		font-size: 2rem;
	}
	.sp-slide-title {
		font-size: 2.4rem;
	}
	.slides, .slide {
		height: 50vh;
	}
	.sp-content-image-top, .sp-content-image-top img {
		height: calc(30px*5);
	}
	h1 {
		margin: unset;
	}
	.sp-main-content-block, .sp-main-content-block-img {
		height: 450px;
	}
	.sp-main-content-block-desc {
		padding: calc(30px*1);
	}
	.sp-sitebar {
		height: calc(30px*1.3);
	}
	.sp-res-menu-container {
		top: 5px;
		z-index: 1;
	}
	.sp-home-grid-content .sp-button {
		padding: calc(5px*1.2);
	}
	.sp-res-menu-title > h1 {
		font-size: 1.5rem;
	}
	.sp-res-menu {
		margin: calc(5px*4) 0;
	}
	.sp-home-grid {
		margin: 0;
	}
	.sp-home-grid > * > * {
		margin: 5px 0;
	}
	.sp-button-distance {
		margin: 0 5%;
	}
	.sp-button {
		font-size: 1.1rem;
		padding: 6px 10px;
	}
	.sp-main-content-box, .sp-contact-box {
		padding: 20px;
	}
}

@media (min-width: 700px) and (max-width: 1125px) {
	.sp-button-distance{
		margin: unset;
	}
	.sp-button-distance {
		display: unset; 
	}
	.sp-button-distance {
		line-height: 3rem;
	}
	.sp-content-text-top, .sp-content-text-top-sub {
		left: 3%;
		transform: unset;
		top: 38%;
	}
	.sp-button {
		padding: 6px 10px;
	}
	.sp-main-content-box, .sp-contact-box {
		padding: 20px;
	}
}

@media only screen and (min-width: 375px) and (max-width: 1110px) {
	.sp-menu{
		overflow-x: auto;
	}
	.sp-contact-box {
		margin: 10px;
	}
	.sp-main-content-box, .sp-contact-box {
		padding: 20px;
	}
}
@media only screen and (min-width: 600px) and (max-width: 767px) {
	div.sp-contact-box:last-child {
		margin-bottom: 30px;
	}
	.sp-button {
		padding: 6px 10px;
	}
  .sp-main-content-box, .sp-contact-box {
    padding: 10px;
  }
	.sp-main-content-box-icon {
		padding: 10px;
	}
	.sp-sitebar > * > * {
		padding: 0 15px;
	}
	header {
		height: calc(15px*4);
	}
}

@media only screen and (min-device-width: 375px) and (max-device-width: 750px) {
	.sp-main-content-hcontents {
		margin-top: -30px;
	}
	.sp-content-image-top, .sp-content-image-top img {
		height: calc(30px*5);
	}
	footer {
		padding: calc(15px*1) calc(30px*0);
	}
	.sp-hr {
		width: 80%;
	}
	.sp-main-content-content h1 {
		font-size: 1.4rem;
	}
	.sp-main-content-content {
	padding: 20px;
	}
	.sp-main-content-intro {
		margin-top: -30px;
	}
	.sp-main-content-top {
		font-size: 1rem !important;
	}
	.sp-main-content-hcontents {
		padding: 20px;
		margin-top: -20px;
	}
	.slides, .slide {
		height: 50vh;
	}
	.sp-slide-text-box {
		top: 40%;
	}
	.sp-main-content-top {
		padding: 20px;
	}
	.sp-main-content-box-text {
		font-size: 1rem;
	}
	.sp-sitebar {
		font-size: 0.8rem;
	}
	.sp-sitebar {
		padding: 0px 4px;
	}
	.sp-logo {
		margin: 5px 0;
	}
	.sp-menu {
		font-size: 0.9rem;
		padding: 10px 0 0;
		overflow-x: auto;
	}
	header {
		padding: 20px;
	}
	.sp-content-text-top {
		font-size: 1.8rem;
	}
	.sp-home-grid-content .sp-button {
		padding: calc(5px*1.5) 10px;
	}
	.sp-logo {
		max-height: calc(30px*1);
	}
	.slide-nav-panel {
		font-size: 1rem;
	}
	.sp-slide-title {
		font-size: 1.7rem;
	}
	.sp-res-menu-title > h1 {
		font-size: 1.2rem;
	}
	.sp-res-menu-title {
		flex-grow: unset;
		flex-basis: unset;
		width: 100%;
		margin-bottom: 3px;
	}
	.sp-res-menu {
		font-size: 1.rem;
		padding: 10px;
		overflow-x: auto;
		overflow-y: hidden;
	}
	.sp-res-menu-items {
		flex-grow: unset;
		flex-basis: unset;
	}
	.sp-res-menu-container {
		top: 3px;
		z-index: 1;
	}
	.sp-home-grid {
		margin-top: -10px;
	}
	.sp-home-grid > * > * {
		font-size: 0.9rem;
	}
	.sp-home-grid-content .sp-button {
		font-size: 0.9rem;
	}
	.sp-main-content-content h1 {
		margin-bottom: calc(15px*1);
	}
	.sp-main-content-block-title {
		font-size: 1.3rem;
	}
	.sp-main-content-block-desc {
		padding: 0px;
	}
	.sp-main-content-block-img {
		height: 200px;
		margin-bottom: 30px;
	}
	.sp-main-content-box{
		margin-top: calc(30px*2);
	}
	.sp-content-box-wrapper{
		margin-top: 0;
		margin-bottom: 0;
	}
	.sp-content-box-wrapper .sp-main-content-box{
		width: 100%;
		margin-right: 0px;
		flex-basis: auto;
	}
	.sp-main-content-intro{
		padding: 15px;
	}
	.sp-contacts, .sp-contact-box{
		margin: 0;
	}
	.sp-contacts {
		padding: 20px;
	}
	.sp-map-title, .sp-map > .sp-map-title{
		margin: 0 0 15px;
	}
	.sp-map{
		margin: 0 20px 20px;
	}
	.sp-contact-box{
		margin-top: 15px ;
	}
	.sp-slide-text-box{
		left: 15px; 
	}
	.sp-slide-title{
		line-height: 2rem;
	}
	.sp-sitebar {
		background-image: linear-gradient( to right, #000 0%, #000 40%, #081113 45%, #0f1f22 48%, #50acbc 100% );
	}
}

@media only screen and (max-width: 600px){
	.sp-main-content-hcontents {
		margin-top: -30px;
	}
	.sp-content-image-top, .sp-content-image-top img {
		height: calc(30px*5);
	}
	footer {
		padding: calc(15px*1) calc(30px*0);
	}
	.sp-hr {
		width: 80%;
	}
	.sp-main-content-content h1 {
		font-size: 1.4rem;
	}
	.sp-main-content-content {
	padding: 20px;
	}
	.sp-main-content-intro {
		margin-top: -30px;
	}
	.sp-main-content-top {
		font-size: 1rem !important;
	}
	.sp-main-content-hcontents {
		padding: 20px;
		margin-top: -20px;
	}
	.slides, .slide {
		height: 50vh;
	}
	.sp-slide-text-box {
		top: 40%;
	}
	.sp-main-content-top {
		padding: 20px;
	}
	.sp-main-content-box-text {
		font-size: 1rem;
	}
	.sp-sitebar {
		font-size: 0.8rem;
	}
	.sp-sitebar {
		padding: 0px 4px;
	}
	.sp-logo {
		margin: 5px 0;
	}
	.sp-menu {
		font-size: 0.9rem;
		padding: 10px 0 0;
		overflow-x: auto;
	}
	header {
		padding: 20px;
	}
	.sp-content-text-top {
		font-size: 1.8rem;
	}
	.sp-home-grid-content .sp-button {
		padding: calc(5px*1.5) 10px;
	}
	.sp-logo {
		max-height: calc(30px*1);
	}
	.slide-nav-panel {
		font-size: 1rem;
	}
	.sp-slide-title {
		font-size: 1.7rem;
	}
	.sp-res-menu-title > h1 {
		font-size: 1.2rem;
	}
	.sp-res-menu-title {
		flex-grow: unset;
		flex-basis: unset;
		width: 100%;
		margin-bottom: 3px;
	}
	.sp-res-menu {
		font-size: 1.rem;
		padding: 10px;
		overflow-x: auto;
		overflow-y: hidden;
	}
	.sp-res-menu-items {
		flex-grow: unset;
		flex-basis: unset;
	}
	.sp-res-menu-container {
		top: 3px;
		z-index: 1;
	}
	.sp-home-grid {
		margin-top: -10px;
	}
	.sp-home-grid > * > * {
		font-size: 0.9rem;
	}
	.sp-home-grid-content .sp-button {
		font-size: 0.9rem;
	}
	.sp-main-content-content h1 {
		margin-bottom: calc(15px*1);
		line-height: 2rem;
	}
	.sp-main-content-block-title {
		font-size: 1.3rem;
	}
	.sp-main-content-block-desc {
		padding: 0px;
	}
	.sp-main-content-block-img {
		height: 200px;
		margin-bottom: 30px;
	}
	.sp-main-content-box{
		margin-top: calc(30px*2);
	}
	.sp-content-box-wrapper{
		margin-top: 0;
		margin-bottom: 0;
	}
	.sp-content-box-wrapper .sp-main-content-box{
		width: 100%;
		margin-right: 0px;
		flex-basis: auto;
	}
	.sp-main-content-intro{
		padding: 15px;
	}
	.sp-contacts, .sp-contact-box{
		margin: 0;
	}
	.sp-contacts {
		padding: 20px;
	}
	.sp-map-title, .sp-map > .sp-map-title{
		margin: 0 0 15px;
	}
	.sp-map{
		margin: 0 20px 20px;
	}
	.sp-contact-box{
		margin-top: 15px ;
	}
	.sp-slide-text-box{
		left: 15px; 
	}
	.sp-slide-title{
		line-height: 2rem;
	}
	.sp-sitebar > * > * {
		font-size: unset;
	}
	.sp-sitebar {
		font-size: 0.7rem;
	}
	.sp-contact-box {
		margin-top: 40px;
	}
	.sp-contact-box {
		width: 100%;
	}
	.sp-flex-space-around {
		flex-direction: column;
	}
	.sp-button {
		padding: 8px 15px;
	}
	.sp-content-text-top, .sp-content-text-top-sub {
		width: 100%;
	}
	.sp-button-distance{
		margin: unset;
	}
	.sp-sitebar {
		background-image: linear-gradient( to right, #000 0%, #000 40%, #081113 45%, #0f1f22 48%, #50acbc 100% );
	}
}