/* Luiss-Sans */
/* Thin */
@font-face {
  font-family: 'Luiss-Sans';
  src:url('../fonts/Luiss-Sans-Thin.ttf') format('truetype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
/* Thin Italic */
@font-face {
  font-family: 'Luiss-Sans';
  src:url('../fonts/Luiss-Sans-Thin-Italic.ttf') format('truetype');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}
/* Regular */
@font-face {
  font-family: 'Luiss-Sans';
  src:url('../fonts/Luiss-Sans-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* Regular Italic */
@font-face {
  font-family: 'Luiss-Sans';
  src:url('../fonts/Luiss-Sans-Regular-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
/* Bold */
@font-face {
  font-family: 'Luiss-Sans';
  src:url('../fonts/Luiss-Sans-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* Bold Italic */
@font-face {
  font-family: 'Luiss-Sans';
  src:url('../fonts/Luiss-Sans-Bold-Italic.ttf') format('truetype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* Luiss-Serif */
/* Regular */
@font-face {
  font-family: 'Luiss-Serif';
  src:url('../fonts/Luiss-Serif-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* Regular Italic */
@font-face {
  font-family: 'Luiss-Serif';
  src:url('../fonts/Luiss-Serif-Regular-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
/* Bold */
@font-face {
  font-family: 'Luiss-Serif';
  src:url('../fonts/Luiss-Serif-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* Bold Italic */
@font-face {
  font-family: 'Luiss-Serif';
  src:url('../fonts/Luiss-Serif-Bold-Italic.ttf') format('truetype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
.btn:hover {
  background-color: #003a70 !important;
}
.bg-blue{
	background:#003a70;
}
.cl-blue{
	color:#003a70;
}
.bg-blue-l{
	background:#f6fbff;
}
.bg-blue-d{
	background:#001a33;
}
.cl-blue-d{
	color:#001a33;
}
.bg-white{
	background:#FFFFFF;
}
.cl-white{
	color:#FFFFFF;
}
.bg-black{
	background:#000000;
}
.cl-black{
	color:#000000;
}
.bg-gold{
	background:#cc8a00;
}
.cl-gold{
	color:#cc8a00;
}
h1, h2, h3, h4, h5, h6{
	font-weight:700;
	font-family:'Luiss-Serif', serif;
}
p, li, span, pre, mark, a{
	font-family:'Luiss-Sans', sans-serif;
}
.serif{
	font-family:'Luiss-Serif', serif;
}
.sans{
	font-family:'Luiss-Sans', sans-serif;
}
*.fade {
      opacity: 0;
      transition: opacity 1s ease-in-out;
    }
*.fade.showtitle {
      opacity: 1;
    }
::-webkit-scrollbar {
  width:15px;
}
::-webkit-scrollbar-track {
	 background:#f6fbff;
}
::-webkit-scrollbar-thumb {
  background: #003a70; 
  border-radius: 10px;
	border:solid 5px #f6fbff
}
::-webkit-scrollbar-thumb:hover {
  background: #003a70; 
}
@media screen and (max-width: 767px){
	.navbar div div img{
		height:22px;
		width:auto;
	}
}
.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border:solid 1px #FFFFFF;
  border-radius: 9px;
  background: none;
  opacity:1
}
.swiper-pagination-bullet-active {
	background:#FFFFFF;
}

/*HERO*/
section.hero{
	background: url(../img/LBS-bg-hero-mobile.jpg) no-repeat center center;
    background-size: cover;
	min-height: calc(100vh - 50px);
    display: flex;
    align-items: flex-end;
}
section.hero h1{
	font-size:48px;
	text-align: center;
}
section.hero p{
	font-weight:400;
	letter-spacing: 0.1rem;
	font-size:28px;
	line-height:33px;
	text-align: center;
}
section.hero button{
	font-weight:700;
}
/*ABOUT*/
section.about h2{
	font-size:36px;
}
section.about .col-lg-6 p{
	font-size:16px;
}
section.about .container .container img{
	width:auto;
	height:32px;
}
.numbers span{
	font-size:54px;
	margin-bottom:12px;
	transition: transform 0.3s;
	display:block
	}
.numbers span:hover{
	transform:scale(1.3);
	cursor:default;
}
.numbers h3{
	font-size:30px;
	margin-bottom:3px;
	line-height:33px
}
.numbers p{
	font-size:20px;
	line-height:26px
}
.numbers .block-slider .container .slider .wrapper{
	width:100% !important;
}
.numbers .block-slider .container .slider .wrapper .swiper-slide{
	width:100% !important;
	margin:0 !important;
}
.numbers .block-slider .container .nav a svg path {
    fill: #FFFFFF !important;
}
.numbers .block-slider .container .nav a{
    border: solid 2px #FFFFFF;
}
/*OFFER*/
section.offer h2{
	font-size:36px;
}
section.offer h3{
	margin:14px auto 8px auto;
	font-size: 30px;
}
section.offer a{
	line-height:46px;
}
section.offer a:hover{
	color:#FFFFFF !important;
}
/*NEWSITE*/
section.newsite h2{
	font-size:36px;
	text-align:left
}
section.newsite p{
	font-size:16px;
	text-align:left
}
section.newsite button{
	line-height:46px;
}
section.newsite button:hover{
	color:#FFFFFF !important;
}
/*VIDEO*/
section.video h2{
	font-size:36px;
}
section.video h3{
	font-size:24px;
}
section.video p{
	font-size:16px;
	line-height:18px;
	}
.video-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 ratio */
    height: 0;
}
.video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    z-index: 1;
    transition: z-index 0.3s;
}
.video-wrapper iframe.active {
    z-index: 2;
}
.video-option:hover{
	transform:scale(1.025);
}
section.video .col-lg-4 .container{
	max-height: 75%;
    overflow-y: scroll;
	overflow-x:hidden;
}
@media screen and (min-width: 768px){
	section.newsite button{
    width: max-content !important;
    margin: auto !important;
    display: block;
	}
}

@media screen and (min-width: 768px){
	/*HERO*/
	section.hero{
		background: url(../img/LBS-bg-hero-desktop.jpg) no-repeat center center;
		background-size: cover;
		min-height: calc(100vh - 50px);
		display: flex;
		align-items: center;
	}
	section.hero h1{
		font-size: 72px;
		text-align: left;
	}
	section.hero p{
		font-size: 38px;
		letter-spacing: 0.045rem;
		text-align: left;
	}
	section.hero button{
		line-height: 64px;
		padding: 0 50px;
	}
	/*ABOUT*/
	section.about h2{
		font-size:48px;
	}
	section.about .col-lg-6 p{
		font-size:22px;
		line-height: 28px;
		margin-bottom: 1.75rem;
	}
	/*OFFER*/
	section.offer h2{
		font-size:48px;
	}
	section.offer h3{
		font-size:40px;
		margin: 28px auto 16px auto;
	}
	section.offer p{
		font-size:22px;
		line-height:28px;
	}
	section.offer a{
		line-height:60px;
	}
	/*NEWSITE*/
	section.newsite h2{
		font-size:48px;
		text-align:center
	}
	section.newsite p{
		font-size:22px;
		line-height:28px;
		text-align:center;
	}
	section.newsite button{
		line-height:64px;
	}
	section.newsite .swiper-slide{
		width: calc(33.33% - 20px);
		margin-right: 20px;
	}
	
	section.video h2{
		font-size:48px;
	}
	section.video h3{
		font-size:30px;
	}
	section.video p{
		font-size:22px;
		line-height:22px;
	}
}
@media screen and (min-width:1200px){
	section.about .container .container img{
		width:auto;
		height:55px;
	}
}
/*SWIPER*/
.block-slider {
	overflow: hidden;
	width: 100%;
	display: inline-block;
}	
.block-slider .container {
	padding: 0px;
	width: 100%;
	max-width: none;
}	
.block-slider .container .slider {
	overflow: hidden;
	position: relative;
}
.block-slider .container .slider .wrapper {
	display: -webkit-inline-box;
	width: calc(100% - 20px);
	list-style: none;
	padding: 0px;
	margin: 0px;
}
.block-slider .container .slider .wrapper .swiper-slide {
	width:calc(100% - 20px);
	float: left;
}
.block-slider .container .slider .wrapper .swiper-slide .placeholder-image,
.block-slider .container .slider .wrapper .swiper-slide figure {
	margin: 0 0 5px 0;
	height:120px;
	overflow-y: hidden;
	background: #575756
}
.block-slider .container .slider .wrapper .swiper-slide figure img {
	width: 100%;
	height: auto;
}
.nav{
	justify-content: center;
	gap: 20px;
}
.nav a{
	float: left;
	border: 1px solid #575756;
	display: inline-block;
	border-radius: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border .2s ease;
	width:32px;
	height:32px;
	border:solid 2px #001a33;
	opacity:1;
	width:5vh;
	height:5vh;
	border-radius: 50%;
	top: 50%;
	transform: translateY(-50%);
}
.nav a svg path{
	fill: #003a70 !important;
}
section.offer .slider p{
	height:145px;
}
@media screen and (min-width:768px){
	.block-slider .container .slider .wrapper {
		width: calc(100% - 100px);
	}
	.offer .block-slider .container .slider .wrapper .swiper-slide:not(:last-child){
		padding-right: 20px;
	}
	section.offer .slider p{
		height:200px;
	}
}
@media screen and (min-width:1024px){
	.block-slider .container .slider .wrapper {
		width: calc(100% - 100px);
	}
	.offer .block-slider .container .slider .wrapper .swiper-slide {
		width: 647px;
	}
	section.offer .slider p{
		height:140px;
	}
}
@media screen and (min-width:1200px){
	.block-slider .container .slider .wrapper {
		width: calc(100% - 100px);
	}
	.offer .block-slider .container .slider .wrapper .swiper-slide {
		width: 647px;
	}
	section.offer .slider p{
		height:auto;
	}
}
/*SWIPER LINE*/	
.timeline-container {
  overflow-x: auto;       /* Abilita scroll orizzontale */
  overflow-y: hidden;
  white-space: nowrap;    /* Mantiene gli elementi su una sola riga */
  scroll-snap-type: x mandatory; /* Snap scorrevole */
  -webkit-overflow-scrolling: touch;
  padding-bottom: 20px; /* spazio per lo scroll */
}

.timeline-list {
  display: flex;
  gap: 20px; /* spazio tra gli elementi */
  list-style: none;
  padding: 0;
  margin: 0;
}

.timeline-list li {
  flex: 0 0 calc(40% - 20px);
  scroll-snap-align: start;
  background:transparent;
  border-radius: 6px;
  padding: 20px;
  box-sizing: border-box;
  transition: transform 0.3s;
}
.timeline-container::-webkit-scrollbar {
  height: 8px;
}
.timeline-container::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}
.timeline-container{
background: linear-gradient(
  to bottom,
  #fff 0px,
  #fff 70px,
  #ccc 70px,
  #ccc 71px,
  #fff 71px,
  #fff 100%
);
}
/*.timeline-container ul {
	position: relative;
}
.timeline-container ul:before {
    display: block;
    content: "";
    width: 100%;
    height: 1px;
    background: #CCC;
    position: absolute;
    top: 60px;
    z-index: 0;
}*/
.timeline-container {
  cursor: grab;
}
.timeline-container.active {
  cursor: grabbing;
}
.timeline-container, 
.timeline-container * {
  user-select: none; /* Disabilita la selezione del testo */
  -webkit-user-select: none; /* Safari */
  -ms-user-select: none; /* IE/Edge */
}
/* Nasconde scrollbar nativa */
.timeline-container {
  overflow-x: scroll;
  overflow-y: hidden;
  -ms-overflow-style: none;  /* IE e Edge */
  scrollbar-width: none;     /* Firefox */
}
.timeline-container::-webkit-scrollbar {
  display: none; /* Chrome, Safari */
}
.timeline-container ul li.spacer{
	display:none;
}
.timeline-list li svg{
	transform:scale(0.6, 0.6);
}
.timeline-list li h2{
	font-size:36px;
    white-space: normal;
}
.timeline-list li p{
	font-size:16px;
	line-height:24px;
	white-space: normal;
}

/* Barra custom */
.timeline-scrollbar {
  width: 300px;              /* lunghezza desiderata */
  height: 6px;
  background: #ddd;
  border-radius: 3px;
  margin: 20px auto 0;       /* centrata sotto la timeline */
  position: relative;
}
.timeline-thumb {
  position: absolute;
  top: 0;
  left: 0;
  height: 6px;
  width: 60px;
  background:#003a70;
  border-radius: 3px;
  cursor: grab;
  transition: background 0.2s;
}
.timeline-thumb:active {
  cursor: grabbing;
  background: #333;
}
@media screen and (min-width:768px){
	.timeline-list li {
		flex: 0 0 calc(25% - 20px);
	}
	.timeline-list li h2{
		font-size:48px;
	}
	.timeline-list li p{
		font-size:24px;
		line-height:36px;
	}
	.timeline-container ul li.spacer{
		display:block;
	}
	.timeline-container{
		background: linear-gradient(
		  to bottom,
		  #fff 0px,
		  #fff 60px,
		  #ccc 60px,
		  #ccc 61px,
		  #fff 61px,
		  #fff 100%
		);
	}
	.timeline-list li:hover {
	  transform: scale(1.05);
	}
}
@media screen and (min-width:1024px){
	.timeline-list li {
		flex: 0 0 calc(20% - 20px);
	}
	.timeline-list li svg{
		transform:scale(1,1);
	}
}
@media screen and (min-width:1200px){
	.timeline-list li {
		flex: 0 0 calc(15% - 20px);
	}
}

/* TIMELINE VERTICALE CON SCROLLBAR A DESTRA */
@media screen and (max-width: 767px) {
  .timeline-container {
    max-height: 400px;
    overflow-y: auto;
    overflow-x: hidden;
    white-space: normal;
    scroll-snap-type: y mandatory;
    position: relative;
    background: linear-gradient(
      to right,
      #fff 0,
      #fff 60px,
      #ccc 60px,
      #ccc 61px,
      #fff 61px,
      #fff 100%
    );
    padding-right: 20px; /* spazio per la scrollbar */
  }

  .timeline-list {
    display: flex;
    flex-direction: column;
    gap:0px;
  }
	.timeline-list li{
		padding:0 20px;
	}
	section.line{
		position:relative;
	}
  .timeline-scrollbar {
    position: absolute;
        right: 30px;
        top: 20%;
        height: 60%;
        width: 6px;
        background: #ddd;
        border-radius: 3px;
        margin: 0;
  }

  .timeline-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 60px;
    background: #003a70;
    border-radius: 3px;
    cursor: grab;
    transition: background 0.2s;
  }

  .timeline-thumb:active {
    background: #333;
  }
	.swiper-slide-line{
		display: flex;
		flex-direction: row;
		align-items: center;
	}
	.swiper-slide-line > div{
		max-width: 200px;
	}
	.swiper-slide-line > div h2,
	.swiper-slide-line > div p{
		margin: 0;
	}
	
	.newsite .swiper-slide{
		background:none;padding-right:10px;
	}
	.newsite .swiper-slide img{

	}
}




/*ACTION*/
section.action h2{
	font-size:36px;
}
section.action{
	background:url(../img/texture.png) no-repeat left center, #003a70;
}
@media screen and (min-width:768px){
	section.action h2{
		font-size:48px;
	}
	section.action a{
		line-height: 64px;
		padding: 0 50px;
	}
}
/*FOOTER*/
section.footer p,
section.footer a{
	font-size:20px;
}

/*CAROUSEL*/
.carousel-inner {
	padding: 1em;
}
.carousel-control-prev,
.carousel-control-next {
	border:solid 2px #001a33;
	opacity:1;
	width:5vh;
	height:5vh;
	border-radius: 50%;
	top: 50%;
	transform: translateY(-50%);
}
.carousel-control-next-icon{
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23001a33'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");
}
.carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23001a33'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e");
}
.carousel-control-next:focus,
.carousel-control-next:hover,
.carousel-control-prev:focus,
.carousel-control-prev:hover{
	border:solid 2px #003a70;
}
.carousel-control-next:focus .carousel-control-next-icon,
.carousel-control-next:hover .carousel-control-next-icon{
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003a70'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");
}
.carousel-control-prev:focus .carousel-control-prev:hover,
.carousel-control-prev:hover .carousel-control-prev:hover{
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003a70'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e");
}
.carousel-control-prev span,
.carousel-control-next span {
	width: 1.5rem;
	height: 1.5rem;
}
.carousel-control-next,
.carousel-control-prev {
    float: left;
    position: static;
}
.carousel-control-next{
	margin-right:calc(49% - 6vh);
	margin-left:1%;
}
.carousel-control-prev {
	margin-left:calc(49% - 6vh);
	margin-right:1%;
}
@media screen and (min-width: 577px) {
	.cards-wrapper {
		display: flex;
	}
	.card {
		margin: 0 0.5em;
		width: calc(100% / 2);
	}
	.image-wrapper {
		height: 20vw;
		margin: 0 auto;
	}
}
@media screen and (max-width: 576px) {
	.card:not(:first-child) {
		display: none;
	}
}

.image-wrapper img {
  max-width: 100%;
  max-height: 100%;
}
@media screen and (min-width: 768) {
	.parallax-title {
		margin-bottom:-20px !important;
	}
}
.parallax-title {
	will-change: transform;
	transition: transform 0.35s linear; /* opzionale, per rendere più fluido */
}
.modal-dialog {
    max-width: 800px;
}