/*Version 1.0 - 13/06/2023*/
/* https://www.toptal.com/developers/cssminifier */
/* webfont */
/* https://gwfh.mranftl.com/fonts */
/* filter compute: https://codepen.io/sosuke/pen/Pjoqqp */

/*GOOGLE TEST MOBILE*/
/*412 x 823*/ 

/*GOOGLE TEST DESKTOP*/
/*800 x 600*/


/* <weight>: Use a value from 300 to 800 */
/* <uniquifier>: Use a unique and descriptive class name */

.open-sans {
	font-optical-sizing: auto;
	font-family: "Open Sans", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-variation-settings:
		"wdth" 100;
}
/*stili widget recensioni*/
.ti-widget-header {
	text-align: center;
}
.ti-header-write-btn {
	background-color: rgba(205, 186, 14, 1.0) !important;
}
.ti-widget-header {
	border: none !important;
}
/*stili particolari*/
.nomobile {
	display: none !important;
}
.nascosto {
	display: none !important;
}
.alluppercase {
	text-transform: uppercase;
}
.text-center {
	text-align: center !important;
}
.text-center h3, .text-center p {
	margin: auto;
}
.text-right {
	text-align: right !important;
}
.text-left {
	text-align: left !important;
}
.text-uppercase {
	text-transform: uppercase;
}
.has-padding-vert {
	padding-top: 1em !important;
	padding-bottom: 1em !important;
}
.has-padding-hor {
	padding-left: 1em !important;
	padding-right: 1em !important;
}
div.errore {
	width: 100%;
	padding: 1em;
	background: rgba(180, 0, 0, 1);
	color: #fff;
	font-weight: 700;
	display: none;
}
.rounded-circle {
		border-radius: 50% !important;
}

/*stili base*/
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html {
		margin: 0;
		padding: 0;
		overflow-x: hidden;
		/*height: 100%; /* Mantieni la compatibilità con layout basati su 100% */
}
body {
		margin: 0;
		padding: 0;
		font-size: 16px;
		/*font-family: 'Questrial', Arial, Helvetica, sans-serif;*/
		font-family: "Open Sans", sans-serif;
		font-optical-sizing: auto;
		font-weight: 400;
		font-style: normal;
		font-variation-settings:"wdth" 100;
		color: rgba(103, 101, 101, 1);
		line-height: 1.5em;
		height: auto; /* Permetti al body di espandersi oltre il viewport */
		min-height: 100%; /* Mantieni un'altezza minima */
}
a {
	color: rgba(0,0,0,1);
	text-decoration: none;
	position: relative;
}
a.nocolor {
	color: rgba(103,101,101,1);
}
a::before  {
	content: '';
	position: absolute;
	width: 100%;
	height: 0.1em;
	border-radius: 0.1em;
	background-color: rgba(219, 90, 50, 1);
	bottom: -0.2em;
	left: 0;
	transform-origin: right;
	transform: scaleX(0);
	transition: transform .3s ease-in-out;
}
a:hover::before, a:hover::before {
	transform-origin: left;
	transform: scaleX(1);
}
a.nounderline::before  {
	 width: 0;
	 height: 0;
}
strong {
	font-weight: 700;
}
h1, h2, h3, h4, h5, h6 {
	line-height: 1.2em;
	font-weight: 600;
	
}
p {
	line-height: 1.5em;
}
ul {
	margin: 0;
	padding: 0;
}
li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bggrey {
	background-color: #ececec !important;
}

.btn, .btn-default {
	background-color: rgba(76, 133, 197, 1);
	background-color: rgba(187, 37, 48, 1);
	color: rgba(255,255,255,1);
	margin: 1em auto;
	padding: 1em;
	word-wrap: break-word;
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1.5em;
	border: none;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	display: inline-block;
	border-radius: 0.25em;
	position: relative;
	overflow: hidden;
	z-index: 1;
	transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out;
}

/* Effetto hover animato con overlay */
.btn::before,
.btn-default::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 0%;
	height: 100%;
	background-color: #ed1a2a;
	z-index: 0;
	transition: width 0.3s ease-in-out;
}

/* Espansione dell’overlay da sinistra a destra */
.btn:hover::before,
.btn-default:hover::before {
	width: 100%;
}

/* Fa in modo che il testo stia sopra l'overlay */
.btn, .btn-default > * {
	position: relative;
	z-index: 1;
}

/* Alternativa: se non hai figli nel bottone */
.btn span,
.btn-default span {
	position: relative;
	z-index: 1;
}

/* Forza il testo a diventare bianco quando l’overlay è visibile */
.btn:hover,
.btn-default:hover {
	color: white !important;
	background-color: #000;
}

.btn-square {
	border-radius: 0em;
}

/* Override underline di default se usi <a> */
a.btn::before, a.btn-default::before {
	width: 0;
	height: 0;
}
a.btn-default:link,
a.btn-default:visited {
	color: rgba(255,255,255,1);
}

input, button, select, optgroup, textarea, input[type="date"] {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	margin-bottom:  0.5em;
}
input:focus, textarea:focus, select:focus { 
	/*box-shadow: 0 0 0.8em rgba(86,179,187,1);
	border-color: rgba(86,179,187,1);*/
	box-shadow: 0 0 0.8em rgba(247,173,0,1);
	border-color: rgba(247,173,0,1);

	outline: none; 
} 
input.error, textarea.error, div.error, div.errore, select.error  {
	box-shadow: 0 0 0.8em rgba(180,0,0,1) !important;
	border-color: rgba(180,0,0,1) !important;
	outline: none; 
}
input.warning, textarea.warning, div.warning, select.warning {
	box-shadow: 0 0 0.8em rgba(255,131,0,1) !important;
	border-color: rgba(255,131,0,1) !important;
	outline: none; 
}
input.perfect, textarea.perfect, div.perfect, select.perfect {
	box-shadow: 0 0 0.8em rgba(55, 144, 55, 1) !important; /* Ombreggiatura verde */
		border-color: rgba(71, 150, 71, 1) !important; /* Bordo verde */
		outline: none; 
}
select:required:invalid {
	color: #666;
}
option[value=""][disabled] {
	display: none;
}
option {
	color: #000;
}
.checkbox label {
	display: inline-block !important; 
	font-size: 0.8em;
}
/*SCROLLBAR*/
/* width */
::-webkit-scrollbar {
	width: 0.001em;
}
/* Track */
::-webkit-scrollbar-track {
	background: #f1f1f1;
	background: rgba(0,0,0,0);
}
/* Handle */
::-webkit-scrollbar-thumb {
	background: #888;
	background: rgba(0,0,0,0);
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
	background: #555;
	background: rgba(0,0,0,0);
}

@keyframes scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-100%);
	}
}

.brandname {
	font-weight: 600;
	color: #4f4f4f; /* colore di default */
	text-transform: uppercase;
	font-size: 1em;
	font-style: italic;
}
.brandname span.l1{
	color: #000000;
	font-size: 1.2em;
}
.brandname span.l2{
	color: #ed1a2a;
	font-size: 1.2em;
}

.inline-logo-svg {
	height: 1em;
	/*vertical-align: middle;*/
	max-width: 100%;
}

/* HEADER STYLES MOBILE-FIRST AKRA-LIKE */
header {
	width: 100%;
	background-color: #fff;
	position: fixed;
	bottom: 0;
	z-index: 1000;
	padding: 0 0 1.5em 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	text-align: center;
	border-top: 0.5em rgba(236, 236, 236, 1) solid;
}

.header-container {
	width: 100%;
	/*max-width: 1345px;*/
	display: flex;
	flex-direction: row;
	align-items: stretch;
	justify-content: space-between;
	position: relative;
	margin: auto;
}

.header-column {
	display: flex;
	flex-direction: column;
	justify-content: stretch;
}

.logo-col {
	width: auto;
	padding-right: 0.5em;
	flex-shrink: 0;
	display: flex;
	align-items: flex-end;
	border-top: 1em solid rgba(255, 255, 255, 1);
	height: 5em;
}

.logo-col picture img.logo {
	width: 7.26em;
	height: auto;
			padding-left: 0.7em;
			margin-top: 1em;
}

.center-col {
	flex-grow: 1;
	position: relative;
	background-color: rgba(255, 255, 255, 1);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

.mobile-wave {
	width: auto;
	height: 1.2em;
	background: transparent;
	overflow: hidden;
	display: flex;
	justify-content: flex-start;
	background: rgba(236, 236, 236, 1);
	width: 100%;
}

.mobile-wave svg {
	width: 4em;
	height: auto;
	display: block;
	transform: scale(-1, -1); /* Flip orizzontale + verticale */
	filter: invert(86%) sepia(100%) saturate(1%) hue-rotate(2deg) brightness(103%) contrast(101%);
}

.nav-mobile-center {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-transform: uppercase;
	font-size: 0.75em;
	line-height: 1.2em;
	padding-top: 0.3em;
	padding-bottom: 0.3em;
	background-color: white;
	margin-top: 0.8em;
}

.nav-mobile-center .nav-title {
	font-size: 0.65em;
	font-weight: 500;
	letter-spacing: 0.05em;
	opacity: 0.75;
}

.nav-mobile-center .nav-links {
	display: flex;
	gap: 0.3em;
	font-weight: 800;
	font-size: 0.95em;
	white-space: nowrap;
}

.nav-mobile-center .sep {
	opacity: 0.6;
}



.menu-col {
	width: auto;
	padding-left: 0.5em;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-end;
	border-top: 1.2em solid #ececec;
	height: 5em;
	padding-right: 0.7em;
}

.menu-toggle {
	display: flex;
	align-items: center;
	gap: 0.3em;
	font-weight: 600;
	font-size: 0.85em;
	color: #aaa;
	padding-top: 0.8em;
	text-decoration: none;
}

.menu-toggle:hover {
	color: #000; /* o altro effetto */
}

.menu-toggle:hover .menu-label,
.menu-toggle:hover img {
	opacity: 0.8;
}


#main-menu {
	position: fixed;
	top: 0;
	right: -100%; /* era left: -100% */
	left: auto;
	height: calc(100vh - 7em);
	width: 100%;
	background-color: #ffffff;
	z-index: 1500;
	display: flex;
	flex-direction: column;
	padding: 2em;
	gap: 2em;
	transition: right 0.3s ease-in-out; /* cambia da left a right */
	overflow: scroll;

}

#main-menu.active {
	right: 0; /* attiva entrando da destra */
}



#main-menu .menu-section {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5em 0;
}

#main-menu .menu-title {
	font-weight: 700;
	font-size: 1.2em;
	text-transform: uppercase;
	margin-bottom: 0.4em;
}

#main-menu li a {
	color: #111;
	display: block;
	padding: 0.3em 0;
	font-size: 1em;
	text-decoration: none;
}

#main-menu li a:hover {
	/*text-decoration: underline;*/
}

#main-menu .btn {
	margin-top: auto;
	align-self: flex-start;
	padding: 0.6em 1.2em;
	font-size: 1em;
}

#main-menu .menu-section.social-links,
#main-menu .menu-section.language-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6em;
	margin-top: 0.5em;
}

#main-menu .menu-section.social-links .menu-title,
#main-menu .menu-section.language-links .menu-title {
	width: 100%;
	margin-bottom: 0.3em;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 1em;
	color: rgba(103, 101, 101, 1);
}

#main-menu .menu-section.social-links li,
#main-menu .menu-section.language-links li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.maintitle {
	text-transform: uppercase;
	font-weight: 700;
	font-size: 1.5em;
}

.review-container {
  overflow: hidden;
  position: relative;
  width: 100%;
  /*height: 100px; /* Altezza desiderata dello scroller */
}

.reviews {
  display: flex;
  width: max-content; /* Settiamo la larghezza al doppio per permettere lo scorrimento continuo */
  animation: scroll 60s linear infinite; /* Regola la durata dell'animazione */
}

.review {
  flex: 0 0 25%; /* Visualizziamo tre recensioni alla volta */
  flex: 0 0 75%;
  box-sizing: border-box;
  padding: 0.85em;
  margin-right: 1.7em;
  background-color: #f0f0f0;

  flex: 0 0 2%;
  height: 6em;
  text-align: center;
}

.review h5 {
	font-size: 1.7em;
	margin-bottom: 0.5em;
	color: rgba(76,133,197,1);
}

.imgreview {
	height: 4em;
	width: auto;
}

/*FOOTER*/

footer {
	text-align: center;
	padding: 1em;
	padding-bottom: 8em;
	border-bottom: 0.0625em solid transparent;
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0));
	background-repeat: no-repeat;
	background-size: 100% 0.5em;
	background-position: top;
}
.privacylink {
	text-transform: uppercase;
	font-size: 0.9em;
	margin-bottom: 1em;
}
.copyrightbox {
	font-size: 0.8em;
	text-align: justify;
}

/*MAIN CONTENT*/
main {
	min-height: calc(100vh - 17em);
}
h1 {
	text-align: center;
	color: rgba(89,89,89,1);
	font-size: 4em;
	line-height: 1.5em;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.07em;
	padding: 0.3em 0;
}

/*VIDEO HERO*/
.mainvideobox {
	position: relative;
	width: 100vw;
	height: 70vh; /* 70% dell'altezza del viewport */
	overflow: hidden;
	background-color: #000;
}
.mainvideo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100vw;
	height: calc(100vw / (16 / 9)); /* Mantiene rapporto 16:9 */
	min-height: 100%; /* Garantisce copertura verticale */
	border: none;
}


.blackveil {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	background: rgba(0,0,0,0.4);
	z-index: 1;
}
/*IMG HERO*/
.mainimagebox {
	position: relative;
	width: 100vw;
	height: 80vh;
	overflow: hidden;
	background-color: #000;
}

.mainimagebox picture,
.mainimagebox img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
/*SLOGAN HERO*/
.sloganhero {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -40%); /* leggermente più in basso */
  z-index: 2;
  color: white;
  font-size: 1em;
  text-align: center;
  padding: 1em 1em;
  opacity: 0;
  animation: fadeUp 1.2s ease-out forwards;
  animation-delay: 0.5s; /* opzionale */
}
@keyframes fadeUp {
  0% {
    transform: translate(-50%, -30%);
    opacity: 0;
  }
  100% {
    transform: translate(-50%, -50%);
    opacity: 1;
  }
}
.sloganhero .btn {
	line-height: 1em;
	min-width: 6em;
	background-color: #fff;
	color: #000 !important;
	font-size: 1em;
}
.sloganhero .btn:hover  {
	background-color: #ed1a2a;
	color: #fff !important;
}
.sloganhero .maintext {
	text-transform: uppercase;
	font-size: 2.5em;
	line-height: 1.2em;
	font-weight: 700;
}
.main-container {
	padding: 1em;
	font-size: 1.4em;
}
.main-container .mainimage {
	display: block;
	max-width: 100%;
	width: 100%;
	height: auto;
}
.row {
	width: 100%;
	/*padding: 0 1em 2em 1em;*/
	/*flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	row-gap: 2em; /* spazio verticale */
}
/* Se c'è anche la classe .gapped, aggiungi spazio orizzontale */
.row.gapped {
	column-gap: 2em;
}
.row-narrow {
	width: 100%;
	margin: 0 auto;
}
.row-block {
	position: relative;
	/*padding: 1em 0 1em 0;*/
	padding: 0;
	text-align: left;
	width: 100%;
}
.row .row-block {
	order: 0; /* Ordine naturale */
}
.row-block .maintext {
		font-size: 1.5em;
}
.main-container h3 {
	text-transform: uppercase;
	padding: 0.5em 0;
	color: rgba(0, 0, 0, 1);
}

.row-block.linked picture {
	overflow: hidden;
	display: block;
	position: relative;
}

.row-block.linked picture img {
	transition: transform 0.6s ease;
	will-change: transform;
}

.row-block.linked:hover picture img {
	transform: scale(1.1);
}

.textblock_stretto {
	padding-top: 1em;
}
.textblock_stretto {
		line-height: 1.4em;
		/*padding: 1.5em 0;*/
	}
.textblock_stretto p {
		padding: 1.5em 0;
	}
.textblock_stretto ul {
    list-style-type: square !important;
    list-style-position: outside;
    padding-left: 1.6em;
    margin-left: 0;
    padding-bottom: 1em;
}

.textblock_stretto ul li {
    display: list-item;
    list-style-type: square !important;
    margin-bottom: 0.3em;
}

h1, h2 {
	margin: auto;
	max-width: 70%;
	text-align: center;
	font-size: 1em;
}

h2 {
	font-style: italic;
}

.boxlogoufficiale .row-block{
	text-align: center !important;
}
.boxlogoufficiale img {
	max-width: 70%;
	height: auto;
	margin: 1em 0;
}

@media (min-width:600px) { /* tablet, landscape iPad, lo-res laptops ands desktops */ 
	.nodesktop {
		display: none !important;
	}
	.nomobile {
		display: inline-block !important;
	}
	.sloganhero .maintext {
		font-size: 3.5em;
		line-height: 1.2em;
	}
	.row {
		display: flex;
	}
	.row-block .maintext {
		font-size: 1.2em;
	}
	
	.row-narrow {
		max-width: 85%;
	}
	

}

@media (min-width:1025px) { /* hi-res laptops and desktops */ 
	/*VIDEO HERO*/
	.mainvideo {
		/*max-height: calc(60vh);	*/
		width: 100%;
		height: auto;
	}
	
	
	.row-narrow {
		max-width: 75%;
	}

	.textblock_stretto {
		max-width: 1024px;
		margin: auto;
	}

	
}

@media (min-width:1100px) { /* hi-res laptops and desktops */ 
	/* HEADER STYLES */
	header {
		bottom: auto;
		top: 0;
		border-bottom: 0.0625em solid transparent;
		background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0));
		background-repeat: no-repeat;
		background-size: 100% 0.5em;
		background-position: bottom;
	}
	.logo-col {
		margin-top: 0.6em;
		margin-left: 5em;
	}
	.logo-col picture img.logo {
		width: 18.26em;
	}
	.nav-mobile-center {
		align-items: flex-start;
		padding-left: 2em;
		font-size: 1em;
	}
	.nav-mobile-center .nav-links {
		font-weight: 400;
		font-size: 1.2em;
	}
	.menu-col {
		padding-right: 6.7em;
		height: auto;
		padding-top: 1.2em;
	}
	#main-menu {
		width: auto;
		/*max-width: 320px;*/
		border-left: 1px solid #ddd;
		height: calc(100vh - 7.5em);
		top: 7.5em;
		padding-right: 7em;
	}
	
	main {
		min-height: calc(100vh - 13em);
		margin-top: 7em;
	}
	.row-block {
		width: calc(25% - 1em);
	}
	.main-container {
		padding: 0;
	}
	footer {
		padding-bottom: 1em;
	}
	.copyrightbox {
		text-align: center;
	}

	.row.invert-desktop {
		flex-direction: row-reverse; /* Inverti la direzione dei box */
	}

	.row.invert-desktop .box:first-child {
		order: 0; /* Assicura che il primo box sia ancora il primo in row-reverse */
	}

	.row.invert-desktop .box:last-child {
		order: 0; /* Assicura che il secondo box sia ancora il secondo */
	}
	

	.row-block {
	  width: 50%;
	  box-sizing: border-box;
	  text-align: left;
	  display: flex; /* Aggiunto per centrare verticalmente il contenuto */
	  flex-direction: column; /* Aggiunto per centrare verticalmente il contenuto */
	  position: relative;
	}
	.row-block-gapped {
		width: calc(50% - 1.25em);
	  margin: 0.625em;
	  padding: 1em;
	}
	.boxcentrato {
		/*position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);*/
		width: 100%;
		align-items: center;
		justify-content: center;	
	}
	.boxcentravert {
		align-items: center;
  	justify-content: center;
	}

	.reviews {
	  display: flex;
	  width: calc(100%); /* Settiamo la larghezza al doppio per permettere lo scorrimento continuo */
	  animation: scroll 20s linear infinite; /* Regola la durata dell'animazione */
	}
	.review {
		flex: 0 0 25%; /* Visualizziamo tre recensioni alla volta */
		flex: 0 0 5%;
		height: 6em;
		text-align: center;
	}
	
	.maintitle {
		font-size: 2.5em;
	}

	h1 {
		font-size: 4em;
	}
}

@media (min-width:1600px) { /* hi-res laptops and desktops */ 
	.row-block .maintext {
		font-size: 2.5em;
	}
	.textblock_stretto {
		max-width: 1300px;
		margin: auto;
	}
}

/* CMS Hub strutturati */
.ws-hub-intro,.ws-hub-group{max-width:1180px;margin:55px auto;padding:0 28px}.ws-hub-intro{text-align:center}.ws-hub-intro h2,.ws-hub-group h2{text-transform:uppercase}.ws-hub-intro>div{max-width:780px;margin:0 auto;color:#666}.ws-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ws-hub-card{min-height:150px;padding:24px;background:#f3f3f3;border-left:5px solid #d00000;color:#171717;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;font-size:21px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease}.ws-hub-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.12)}.ws-hub-card img{max-width:170px;max-height:85px;object-fit:contain;margin-right:18px}.ws-hub-brand .ws-hub-card{flex-direction:column;gap:15px}
@media(max-width:850px){.ws-hub-grid{grid-template-columns:1fr}.ws-hub-card{min-height:110px}.ws-hub-intro,.ws-hub-group{margin:35px auto;padding:0 18px}}

/* CMS Pagine speciali */
.ws-special-action{padding:65px 24px;background:#171717;color:#fff}.ws-special-action-inner{max-width:850px;margin:0 auto;text-align:center}.ws-special-action h2{margin-top:0;text-transform:uppercase}.ws-special-text{font-size:17px;line-height:1.65;color:#e5e5e5}.ws-special-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:25px}.ws-special-button{padding:13px 22px;text-decoration:none;font-weight:700;text-transform:uppercase}.ws-special-button.primary{background:#d00000;color:#fff}.ws-special-button.secondary{border:2px solid #fff;color:#fff}.ws-special-related{max-width:1180px;margin:55px auto;padding:0 28px}.ws-special-related>h2{text-align:center;text-transform:uppercase}.ws-special-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ws-special-related-card{min-height:135px;padding:22px;background:#f3f3f3;border-left:5px solid #d00000;color:#171717;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;font-size:20px;font-weight:700}.ws-special-related-card img{max-width:160px;max-height:75px;object-fit:contain;margin-right:15px}.ws-special-related-brand{flex-direction:column;gap:12px}
@media(max-width:850px){.ws-special-related-grid{grid-template-columns:1fr}.ws-special-related{margin:35px auto;padding:0 18px}.ws-special-action{padding:45px 18px}}

/* CMS Menu */
.ws-footer-navigation{margin:18px auto 0}.ws-footer-menu{list-style:none;display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:0;padding:0}.ws-footer-menu a{color:inherit;text-decoration:none}.ws-footer-menu a:hover{text-decoration:underline}

/* Gallery CMS collegata alla pagina */
.ws-gallery{max-width:1280px;margin:50px auto;padding:0 20px}
.ws-gallery-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,400px));justify-content:center;gap:18px;width:100%;clear:both}
.ws-gallery figure{margin:0}
.ws-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.ws-gallery figcaption{padding:8px 0;color:#666}
@media(max-width:800px){.ws-gallery-grid{grid-template-columns:1fr}}

/* Home CMS WS Suspension - renderer /inc/home.asp */
.ws-home{width:100%}
.ws-home .row{box-sizing:border-box}
.ws-home .ws-home-macro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:2rem}
.ws-home .ws-home-macro-grid .ws-home-macro-card{width:100%}
.ws-home .ws-home-card>a{display:flex;position:relative;width:100%;height:100%;min-height:26rem;overflow:hidden;color:#fff;text-decoration:none}
.ws-home .ws-home-card picture{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.ws-home .ws-home-card picture:after{content:"";position:absolute;z-index:1;inset:0;background:rgba(0,0,0,.42)}
.ws-home .ws-home-card picture img.mainimage{display:block;width:100%;max-width:none;height:100%;object-fit:cover}
.ws-home-card-content{display:flex;position:relative;z-index:2;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:2rem;text-align:center;box-sizing:border-box}
.ws-home-card .maintext{display:block;color:#fff;text-transform:uppercase}
.ws-home-card-description{display:block;max-width:38rem;margin:1rem auto;color:#fff;line-height:1.5}
.ws-home-card .btn{margin-top:1rem}
.ws-home-intro{max-width:1300px;margin:0 auto;text-align:center}
.ws-home-intro>div{width:100%;padding:0 1.5rem;box-sizing:border-box}
.ws-home-intro-text{max-width:1000px;margin:0 auto 2rem;line-height:1.7}
.ws-home-service-grid{align-items:stretch}
.ws-home-service-grid .ws-home-card{width:33.3333%}
.ws-home-service-grid .ws-home-card>a{min-height:30rem}
.ws-home-brand-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:1.5rem;padding:0 1.5rem 3rem}
.ws-home-brand-grid-treated{grid-template-columns:repeat(4,minmax(0,1fr))}
.ws-home-brand{display:flex;align-items:center;justify-content:center;min-height:7rem;padding:1rem;background:#fff;box-sizing:border-box}
.ws-home-brand img{display:block;width:100%;max-width:190px;max-height:80px;object-fit:contain}
.ws-home-reviews{min-height:8rem}
.ws-home-social{overflow:hidden}
.ws-home-hero .btn+.btn{margin-left:.35rem}
.ws-home-hero-subtitle{display:inline-block;margin-top:.5rem}

@media(max-width:900px){
  .ws-home-service-grid{display:block}
  .ws-home-service-grid .ws-home-card{width:100%}
  .ws-home-card>a,.ws-home-service-grid .ws-home-card>a{min-height:23rem}
  .ws-home-brand-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ws-home-brand-grid-treated{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:600px){
  .ws-home .ws-home-macro-grid{display:block}
  .ws-home .ws-home-macro-grid .row-block{width:100%}
  .ws-home-brand-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:0 .75rem 2rem}
  .ws-home-brand{min-height:5.5rem;padding:.75rem}
  .ws-home-card-content{padding:1.25rem}
}

/* CMS: blocchi automatici pagina-correlata */
.ws-related{display:block!important;clear:both;width:100%;max-width:1180px;margin:50px auto;padding:0 24px}.ws-related>h2{display:block!important;float:none!important;width:100%!important;margin:0 0 22px!important;text-align:center!important;text-transform:uppercase}.ws-related-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;width:100%;clear:both}.ws-related-card{display:flex!important;float:none!important;align-items:center;min-height:88px;padding:20px;background:#f1f1f1;color:#111;text-decoration:none;border-left:5px solid #c90000;font-weight:700;transition:background .2s ease,color .2s ease}.ws-related-card:hover{background:#111;color:#fff}@media(max-width:800px){.ws-related-grid{grid-template-columns:1fr}.ws-related{margin:35px auto;padding:0 18px}}
.ws-related-logo{display:block;width:110px;max-width:38%;height:58px;margin-right:20px;object-fit:contain;flex:0 0 auto}
.ws-brand-identity{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap;max-width:1180px;margin:45px auto;padding:28px 24px}.ws-brand-identity img{display:block;width:280px;max-width:70%;height:120px;object-fit:contain}.ws-brand-identity a{display:inline-block;padding:12px 18px;background:#111;color:#fff;text-decoration:none;font-weight:700;border-radius:4px}.ws-brand-identity a:hover{background:#c90000}

/* Scorciatoia frontend visibile esclusivamente agli amministratori autenticati */
.cms-frontend-edit{position:fixed;right:18px;bottom:18px;z-index:2147483000;display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid rgba(255,255,255,.28);border-radius:6px;background:#202020;color:#fff!important;text-decoration:none!important;font:700 12px/1 Arial,sans-serif;letter-spacing:.04em;box-shadow:0 4px 16px rgba(0,0,0,.28);opacity:.9;transition:background .2s ease,opacity .2s ease,transform .2s ease}.cms-frontend-edit:hover,.cms-frontend-edit:focus{background:#c90000;color:#fff!important;opacity:1;transform:translateY(-2px)}@media(max-width:600px){.cms-frontend-edit{right:10px;bottom:10px;padding:9px 11px;font-size:11px}}
.ws-structured{clear:both;max-width:980px;margin:55px auto;padding:0 24px}.ws-structured>h2{text-align:center;text-transform:uppercase}.ws-structured-intro{text-align:center;max-width:760px;margin:0 auto 28px}.ws-structured-items{display:grid;gap:14px}.ws-process-item{display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start;padding:20px;background:#f3f3f3}.ws-process-item>span{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#c90000;color:#fff;font-weight:700}.ws-process-item h3,.ws-process-item p{margin:0}.ws-process-item p{margin-top:8px}.ws-faq-item{background:#f3f3f3;border-left:4px solid #c90000}.ws-faq-item summary{padding:18px 20px;font-weight:700;cursor:pointer}.ws-faq-item div{padding:0 20px 20px}.ws-structured-cta{max-width:1180px;padding:38px;text-align:center;background:#111;color:#fff}.ws-structured-cta a{display:inline-block;margin-top:14px;padding:13px 20px;background:#c90000;color:#fff;text-decoration:none;font-weight:700}@media(max-width:700px){.ws-process-item{grid-template-columns:1fr}.ws-structured-cta{margin-left:18px;margin-right:18px;padding:28px 20px}}
