/* ========================================================= BASE / VARIABILI ========================================================= */
:root {
	--brand: #004aad;
	--brand-700: #003a88;
	--ink: #0b0c10;
	--muted: #667085;
	--bg: #fff;
	--container: 1180px;
	--radius: 18px;
	--shadow: 0 24px 60px rgba(13, 16, 23, .16);
}

/* Reset minimale */
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0
}

html,
body {
	height: 100%;
	overflow-x: hidden; /* Impedisce lo scroll orizzontale */
}

html {
	scroll-behavior: smooth
}

body {
	background: var(--bg);
	color: #1e222b;
	font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial;
	line-height: 1.5;
}

/* ========================================================= POPUP FEEDBACK ========================================================= */
.popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 12000;
}

.popup-overlay.is-visible {
  opacity: 1;
  pointer-events: all;
}

.popup-box {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
  padding: 32px 40px;
  text-align: center;
  max-width: 400px;
  width: 90%;
  position: relative;
  animation: popupIn 0.35s ease;
}

@keyframes popupIn {
  from { transform: translateY(30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.popup-icon {
  font-size: 42px;
  margin-bottom: 16px;
}

.popup-message {
  font-size: 16px;
  color: #111;
  line-height: 1.4;
}

.popup-close {
  position: absolute;
  top: 8px;
  right: 8px;
  border: none;
  background: transparent;
  font-size: 24px;
  cursor: pointer;
  color: #999;
  transition: color 0.2s;
}

.popup-close:hover {
  color: #333;
}


/* Media generiche */
img,
.bgimg {
	max-width: 100%;
	display: block;
	transition: transform .6s ease, filter .6s ease
}

img:hover,
.bgimg:hover {
	transform: scale(1.06);
	filter: brightness(1.08)
}

a {
	text-decoration: none;
	color: inherit
}

/* Layout comuni */
.container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px
}

.section {
	padding: 96px 0
}

.section-title {
	text-align: center;
	margin-bottom: 40px
}

section[id] {
	scroll-margin-top: 80px;
}

/* Offset dedicato per l’ancora #team */
#team {
  scroll-margin-top: 50px;  /* prova 65, poi se vuoi ancora più giù metti 60 o 55 */
}
/* Offset dedicato per l’ancora #services */
#services {
  scroll-margin-top: 0px;  /* prova 65, se lo vuoi ancora più in basso abbassa a 60, 55, ecc. */
}

@media (max-width: 768px) {
  #contact {
    scroll-margin-top: 65px; /* puoi provare anche 100 o 140 */
  }
}

/* Titoli riutilizzabili */
.h1 {
	font: 800 58px/1.06 Poppins, system-ui, sans-serif;
	margin: 0
}

.h2 {
	font: 800 28px/1.2 Poppins, system-ui, sans-serif;
	color: var(--brand)
}

/* Bottoni */
.btn {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	background: var(--brand);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 14px 22px;
	font-family: Inter, system-ui, sans-serif;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s, transform .2s;
	box-shadow: none
}

.btn:hover {
	background: var(--brand-700);
	transform: translateY(-2px)
}

.btn-link {
	background: none;
	color: var(--brand);
	font-weight: 600;
	box-shadow: none;
	padding: 0;
	border-radius: 0;
	transition: color .2s
}

.btn-link:hover {
	color: var(--brand-700);
	text-decoration: underline
}

/* Accessibilità / motion */
a:focus-visible,
button:focus-visible {
	outline: 2px solid var(--brand);
	outline-offset: 3px
}

@keyframes fadeUp {
	from {
		opacity: 0;
		transform: translateY(18px)
	}

	to {
		opacity: 1;
		transform: none
	}
}

.reveal {
	opacity: 0;
	transform: translateY(18px)
}

.reveal.is-visible {
	opacity: 1;
	transform: none;
	animation: fadeUp .7s both
}

@media (prefers-reduced-motion:reduce) {
	* {
		transition: none !important;
		animation: none !important
	}
}






/* nav/layout */
.nav {
	max-width: var(--container);
	margin: 0 auto;
	padding: 12px 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%
}


#heroVideo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.hero .video-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 20, 60, 0.25); /* leggera tinta blu */
  z-index: 1;
}

.hero .content {
  position: relative;
  z-index: 2;
  padding-top: 12vh; /* Già presente */
  padding-left: 33px; /* Aumentato per spostare il contenuto leggermente a destra */
  padding-right: 140px; /* Mantieni il padding destro invariato */
  text-align: left; /* Allinea il testo a sinistra */
  white-space: pre-line; /* Consente il ritorno a capo automatico */
  line-height: 1.8; /* Aumenta la spaziatura tra le righe */
  font-size: 24px; /* Imposta la dimensione del testo */
}



/* link menu: bianchi sul video, scuri quando header diventa bianco */
.menu {
	display: flex;
	gap: 32px;
	align-items: center;
}

.menu a {
	font-weight: 600;
	color: #fff;
	/* bianco sopra il video */
	position: relative;
	padding: 8px 0;
	transition: color 0.25s ease;
}

/* 🔹 Dopo lo scroll: header bianco → link scuri */
.header.scrolled .menu a {
	color: #111;
	/* testo scuro leggibile */
}

.menu a:hover {
	color: var(--brand);
}

/* effetto underline blu su hover */
.menu a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -8px;
	height: 2px;
	background: var(--brand);
	transform: scaleX(0);
	transition: transform 0.25s ease;
}

.menu a:hover::after {
	transform: scaleX(1);
}

/* burger */
.menu-toggle {
	display: none;
	font-size: 34px;
	cursor: pointer;
	color: #fff;
	transition: color .25s
}

.header.solid .menu-toggle {
	color: #333
}

@media (max-width: 768px) {
  .menu {
    display: none; /* Nascosto per default */
    flex-direction: column;
    background: rgba(255, 255, 255, .96);
    position: absolute;
    top: 65px;
    right: 20px;
    padding: 28px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }

  .menu.show {
    display: flex; /* Mostra il menu quando la classe 'show' è presente */
  }

  .menu.show a {
    color: #111; /* Colore nero per i link quando il menu è visibile */
  }

  .menu a {
    color: #fff; /* Colore bianco per i link quando il menu è nascosto */
    transition: color 0.25s ease;
  }

  .menu-toggle {
    display: block;
  }
}








/* =========================================================
   EVENTI – PREMIUM EXPO STYLE (AGGIORNATO)
   ========================================================= */

.events-section {
  padding: 100px 0;
  background: linear-gradient(to bottom, #f5f8ff, #ffffff);
}

.events-section h2 {
  text-align: center;
  font-size: 34px;
  font-weight: 800;
  color: var(--brand);
  margin-bottom: 55px;
  position: relative;
}

.events-section h2::after {
  content: "";
  width: 70px;
  height: 3px;
  background: var(--brand);
  display: block;
  margin: 14px auto 0;
  border-radius: 10px;
}

/* -----------------------------
   GRID 3x3 (fino a 6 o 9 eventi)
   ----------------------------- */

.events-cards {
  max-width: 1330px; /* Riduci la larghezza massima della griglia */
  margin: 0 auto;
  padding-left: 0x;
  padding-right: 200px;  /* Aggiungi padding per contenere gli eventi meglio */
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;

  /* Spostamento degli eventi verso destra */
  margin-left: 405px;  /* Aumenta questo valore per spostare ulteriormente gli eventi */
}

/* -----------------------------
   CARD STILE “VISIONPLUS”
   ----------------------------- */

.event-card {
  background: #ffffff;
  border-radius: 0; /* Angoli quadrati */
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  position: relative;
}

/* Immagine in cima */
.event-card img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}

/* Contenuto card */
.event-content {
  padding: 25px 28px;
}

.event-location {
  font-size: 13px;
  text-transform: uppercase;
  color: #888;
  margin-bottom: 8px;
  font-weight: 600;
}

.event-card h3 {
  font-size: 20px;
  font-weight: 700;
  color: #111;
  margin-bottom: 6px;
}

.event-date {
  font-size: 15px;
  color: #666;
  margin-bottom: 10px;
  font-weight: 600;
}

.event-desc {
  color: #444;
  line-height: 1.56;
}

/* Hover */
.event-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.15);
}

/* -----------------------------
   RESPONSIVE
   ----------------------------- */















/* ========================================================= HERO ========================================================= */
.hero {
    position: relative;
    min-height: 100vh;
    /* Il video deve occupare tutta l'altezza della finestra */
    display: grid;
    align-items: center;
    color: #fff;
    overflow: hidden;
    /* Impedisce lo scroll orizzontale */
    margin-top: 0;
}

.hero .bg {
    position: absolute;
    inset: 0;
    background: none !important;
    z-index: -1;
    /* Posiziona il video dietro al contenuto */
}

.hero .bg video {
    position: absolute;
    inset: 0;
    width: 100%;
    /* Il video deve coprire tutta la larghezza */
    height: 100%;
    /* Il video deve coprire tutta l'altezza */
    object-fit: cover;
    /* Il video si adatta senza deformarsi */
}

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(13, 16, 23, .65), rgba(13, 16, 23, .25) 50%, rgba(13, 16, 23, .65))
}

.hero .content {
    position: relative;
    z-index: 2;
    padding-top: 10vh;
    /* Spazio maggiore sopra */

    /* 🔹 OFFSET PERSONALIZZABILE A DESTRA */
    --hero-offset: 34px; /* Cambia questo valore per allineare i contenuti col logo */
    padding-left: var(--hero-offset);

    padding-right: 20px;
    text-align: left;
    font-size: 20px;
}

.hero .content h1 {
    font-size: 50px;
    /* Aumentato il font-size per maggiore visibilità */
    line-height: 1.4;
    margin-bottom: -35px;
    /* Ridotto lo spazio tra il titolo e il sottotitolo */
}

.hero .content p {
    margin-top: 0;
    /* Ridotto lo spazio tra il titolo e il sottotitolo */
    margin-bottom: -45px;
    /* Maggiore distanza sotto il paragrafo */
}

.hero .cta .btn {
    font-size: 16px;
    /* Aumento del font del bottone */
    padding: 12px 18px;
    /* Dimensioni più grandi per il bottone */
}

/* ===================================== Responsive Adjustment for mobile ===================================== */
@media (max-width: 768px) {

    /* Impedisce lo scroll orizzontale */
    html,
    body {
        overflow-x: hidden;
    }

    /* Per evitare che il video venga tagliato su schermi più piccoli */
    .hero .bg video {
        object-fit: cover;
        /* Assicura che il video copra completamente */
        height: 100%;
        width: 100%;
    }

    /* Testo e pulsanti centrati per mobile */
    .hero .content {
        font-size: 18px;
        padding-top: 12vh;
        /* Spazio maggiore sopra il contenuto per mobile */
    }

    .hero .content h1 {
        font-size: 24px;
        /* Ridurre la dimensione del titolo per mobile */
        line-height: 1.3;
        margin-bottom: 5px;
        /* Ridotto lo spazio tra il titolo e il sottotitolo per mobile */
    }

    .hero .cta .btn {
        font-size: 14px;
        padding: 12px 18px;
    }

    /* Sovrapposizione per il video */
    .hero .video-overlay {
        background: rgba(0, 20, 60, 0.5);
        /* Maggiore visibilità */
    }
}
/* ==========================================================
   VIDEO LOGIN BACKGROUND
   ========================================================== */
.split-left {
  position: relative;
  overflow: hidden;
  background: #000;
}

#login-bg-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.split-left .video-overlay {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 30, 80, 0.3); /* 🔹 filtro blu per armonizzare con brand */
  z-index: 1;
}



/* ========================================================= SPLIT ========================================================= */
.split.section {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 70vh;
}

.split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
}

.photo {
	overflow: hidden;
	box-shadow: var(--shadow);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 0;
	height: 400px; /* Altezza invariata */
	width: auto;  /* Larghezza automatica */
	margin-left: 12px; /* Aggiungi margine a sinistra per spostare la foto a destra */
}

.photo .bgimg {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	transition: transform .6s;
}

.photo:hover .bgimg {
	transform: scale(1.03);
}


/* ========================================================= MISSION ========================================================= */
.mission {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  justify-items: start;
  padding-left: 35px; /* Aumenta o riduci per spostare uniformemente il contenuto */
}

.mission .bullets {
  list-style: disc;
  list-style-position: outside;
  margin: 18px 0 16px;
  color: #333;
  text-align: left; /* Allinea il testo a sinistra */
  margin-left: 40px; /* Aggiunge un margine sinistro per spostare la lista a destra */
}

.mission .bullets li {
  margin: 0 0 10px;
  line-height: 1.6;
}

.mission .photo {
  height: 400px;
  width: 100%;
  overflow: hidden;
  margin-left: 1px; /* Sposta la foto verso sinistra */
}

.mission .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}



/* ========================================================= VIDEO BLOCK – FIX FINALE MOBILE & DESKTOP ========================================================= */
.videoblock {
  position: relative;
  width: 100%;
  height: 100vh; /* forza piena altezza viewport */
  overflow: hidden;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: #fff;
}

.videoblock video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 100vh; /* ✅ forza piena altezza anche su mobile */
  z-index: 0;
}

.videoblock::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, .7));
  z-index: 1;
}

/* Overlay centrato sopra il video */
.video-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  padding: 0 20px;
  gap: 28px;
}

/* Testo */
.video-overlay .heading {
  font: 800 40px/1.2 "Poppins", sans-serif;
  color: #fff;
  text-shadow: 0 3px 12px rgba(0, 0, 0, 0.6);
  max-width: 900px;
  margin: 0;
}

/* Bottone */
.video-overlay .btn {
  background: var(--brand);
  color: #fff;
  padding: 16px 36px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 16px;
  transition: background .3s, transform .2s;
}

.video-overlay .btn:hover {
  background: var(--brand-700);
  transform: translateY(-2px);
}

/* 📱 Mobile fix specifico */
@media (max-width: 768px) {
  .videoblock {
    height: 100vh;
  }

  .videoblock video {
    min-height: 100vh;
    width: auto; /* evita schiacciamento orizzontale */
  }

  .video-overlay .heading {
    font-size: 24px;
    line-height: 1.3;
    padding: 0 16px;
  }

  .video-overlay .btn {
    padding: 12px 26px;
    font-size: 14px;
  }
}


/* ========================================================= TEAM ========================================================= */
#team .h2 {
    color: var(--brand);
    font-family: Poppins, sans-serif;
    font-weight: 800;
    font-size: 28px;
    text-align: center; /* Centra la scritta orizzontalmente */
    letter-spacing: .5px;
    text-transform: uppercase;
    margin-bottom: 60px;
}

.team {
    max-width: 1180px;
    margin: 0 auto;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);  /* Due colonne di uguale larghezza */
    gap: 40px 20px;  /* Riduce la distanza tra le colonne */
    justify-items: center; /* Allinea gli elementi al centro */
    padding-left: 11px;
}

.person {
    display: flex;
    flex-direction: column;
    align-items: flex-start;  /* Allinea i contenuti a sinistra */
    gap: 14px;
    width: 100%;
    max-width: 520px;
}

.person figure {
    margin: 0;
    overflow: hidden;
    height: 380px;
    width: 100%;
    box-shadow: 0 10px 26px rgba(13, 16, 23, .08);
}

.person img {
    width: 100%;
    height: 100%;  /* Forza l'altezza a essere uguale per tutte le immagini */
    object-fit: cover;  /* Mantiene la proporzione senza distorcere l'immagine */
    transition: transform .5s;
}

.person:hover img {
    transform: scale(1.05);
}

.person .info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;  /* Allinea il testo a sinistra */
    text-align: left;  /* Allinea il testo a sinistra */
}

.team-grid .person:nth-child(1) {
    margin-left: -30px;  /* Aggiusta il valore per spostare la colonna di sinistra */
}
.team-grid .person:nth-child(2) {
    margin-right: -3px;  /* Aggiusta il valore per spostare la colonna di destra */
}
.team-grid .person:nth-child(3) {
    margin-left: -30px;  /* Modifica questo valore per spostarlo più a sinistra */
}

/* Sposta il child 4 verso destra */
.team-grid .person:nth-child(4) {
    margin-right: -32px;  /* Modifica questo valore per spostarlo più a destra */
}

.person .role {
    font-size: 21px;
    color: var(--brand);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .5px;
    margin-bottom: 4px;
}

.person h4 {
    font: 700 20px/1.2 Inter;
    margin: 0;
    color: #111;
}

.person .info p strong.quote {
    color: var(--brand);
    font-weight: 700;
    display: block;
    margin-top: 8px;
    line-height: 1.6;
}

.team-grid .person:nth-child(2) {
    margin-left: 0; /* Elimina margine specifico */
    justify-self: flex-end;  /* Sposta la seconda colonna a destra */
    align-self: flex-start;  /* Allinea la seconda colonna verso l'alto */
}

/* Mobile responsive: allinea il team in verticale */
@media (max-width: 768px) {
    .team-grid {
        grid-template-columns: 1fr;  /* Colonna unica su mobile */
    }
    .person figure {
        height: 380px !important;
    }
}



/* ========================================================= GALLERY 3 ========================================================= */
.gallery3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px
}

.gallery3 .tile {
	overflow: hidden;
	height: 360px;
	box-shadow: 0 10px 26px rgba(13, 16, 23, .08);
	border-radius: 0
}

.gallery3 .tile .bgimg {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	transition: transform .6s
}

.gallery3 .tile:hover .bgimg {
	transform: scale(1.04)
}

/* ========================================================= SERVIZI – GRIGLIA 4x3 (rettangolare largo) ========================================================= */
#services .section-title {
	max-width: var(--container);
	margin: 0 auto 28px;
	padding: 0 24px;
}

#services .section-title h2 {
	color: var(--brand);
	font-family: "Poppins", sans-serif;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* griglia 4x3 */
.services-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	/* ✅ 4 per riga */
	gap: 32px;
	justify-items: center;
	padding: 40px 60px;
}

@media (max-width: 1200px) {
	.services-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 900px) {
	.services-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.services-grid {
		grid-template-columns: 1fr;
	}
}

/* card servizio */
.service-card-lg {
	position: relative;
	width: 100%;
	max-width: 400px;
	aspect-ratio: 16 / 9;
	/* ✅ più rettangolare orizzontale */
	border-radius: 0;
	/* angoli netti */
	overflow: hidden;
	box-shadow: 0 14px 40px rgba(13, 16, 23, .18);
	background: #111;
	transition: transform .4s ease, box-shadow .4s ease;
	cursor: pointer;
}

.service-card-lg:hover {
	transform: scale(1.04);
	box-shadow: 0 18px 48px rgba(13, 16, 23, .28);
}

.service-card-lg .img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform .6s ease, filter .6s ease;
}

/* ✅ Mostra l’immagine intera solo per "Certificazioni Prodotto" */
.service-card-lg.certificazioni .img {
	background-size: contain !important;
	background-repeat: no-repeat;
	background-position: center;
	background-color: #000;
	/* oppure #fff se preferisci lo sfondo chiaro */
}

.service-card-lg:hover .img {
	transform: scale(1.05);
	filter: brightness(1.1);
}

.service-card-lg .label {
	position: absolute;
	inset: 0;
	/* riempie tutta la card */
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #fff;
	font: 800 20px/1.2 "Poppins", sans-serif;
	text-shadow: 0 3px 10px rgba(0, 0, 0, .7);
	padding: 0 16px;
	z-index: 2;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.service-card-lg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.25);
	z-index: 1;
	transition: background 0.3s ease;
}

.service-card-lg:hover::before {
	background: rgba(0, 0, 0, 0.45);
}





/* ========================================================= PARTNERS (fuori dal footer) ========================================================= */
/* Griglia per i loghi dei partner */
.partners-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);  /* 3 colonne di uguale larghezza */
    gap: 10px;  /* Spazio tra le colonne */
    padding-left: 10px; /* Aggiunge spazio a sinistra per spostare il contenuto verso destra */
    margin-left: 10px; /* Sposta l'intera griglia verso destra */
    margin: 0 auto;
    max-width: 1180px;  /* Imposta una larghezza massima per il contenitore */
}

/* Card di ciascun partner */
.partner-card {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    height: 140px;  /* Imposta un'altezza fissa per i loghi */
    box-shadow: 0 10px 26px rgba(13, 16, 23, 0.08);  /* Aggiunge un'ombra leggera */
}

/* Immagine all'interno della card */
.partner-card img {
    max-width: 80%;  /* Limita la larghezza massima dell'immagine */
    max-height: 80%; /* Limita l'altezza massima dell'immagine */
    object-fit: contain;  /* Mantiene la proporzione originale */
    transition: transform 0.35s ease, filter 0.35s ease; /* Effetto di transizione su hover */
    filter: saturate(0.95) contrast(1.05); /* Filtri per l'immagine */
}

/* Aggiungi questa classe per ingrandire il primo logo (Confindustria) */
.partner-card .large-logo {
    max-width: 100%;  /* Imposta la larghezza al 90% per ridurre un po' */
    max-height: 100%; /* Limita l'altezza per evitare che esca dal rettangolo */
    object-fit: contain;
}

/* Effetto di hover sull'immagine */
.partner-card:hover img {
    transform: scale(1.06); /* Aumenta leggermente la dimensione dell'immagine */
    filter: saturate(1) contrast(1.1); /* Aumenta saturazione e contrasto */
}

/* Responsività per schermi piccoli */
@media (max-width: 1024px) {
    .partners-grid {
        grid-template-columns: repeat(3, 1fr);  /* 3 colonne su dispositivi più piccoli */
    }
}

@media (max-width: 768px) {
    .partners-grid {
        grid-template-columns: repeat(2, 1fr); /* 2 colonne su dispositivi medi */
    }
}

@media (max-width: 480px) {
    .partners-grid {
        grid-template-columns: 1fr;  /* 1 colonna su dispositivi molto piccoli */
    }
}


/* ========================================================= FOOTER ========================================================= */
.footer-combined {
	background: #262626;
	color: #e4e8f0;
	padding: 48px 0 28px;
}

/* Layout principale del footer */
.footer-flex {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
	display: grid;
	grid-template-columns: 1fr .9fr 1.1fr;
	gap: 48px;
	align-items: start;
	position: relative;
}

/* Titoli delle colonne */
.footer-left h3,
.footer-center h3,
.footer-right h3 {
	font-family: Poppins, sans-serif;
	font-weight: 800;
	font-size: 24px;
	color: #fff;
	margin: 0 0 10px;
}



/* Link e liste */
.footer-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.footer-left a,
.footer-center a {
	font-size: 14px;
	color: #ccc;
	text-decoration: none;
	transition: color .2s;
}
.footer-left a:hover,
.footer-center a:hover {
	color: #fff;
}

/* =========================================================
   ALLINEAMENTO PERFETTO TRA "PARTNER" E "SERVIZI"
   ========================================================= */

/* 🔹 le due colonne diventano una griglia sincronizzata */
.footer-sync {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Partner + Servizi */
  column-gap: 80px;
  align-items: start;
}

/* ogni colonna ha la stessa struttura di righe */
.footer-sync .col {
	display: grid;
	grid-template-rows: repeat(7, auto); /* titolo + 6 righe */
	row-gap: 8px;
}

/* imposta le liste come griglia “trasparente” per allineare le righe */
.footer-sync ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: contents;
}

/* link su una sola riga */
.footer-sync li a {
	font-size: 14px;
	color: #ccc;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.6;
	transition: color 0.2s;
}
.footer-sync li a:hover {
	color: #fff;
}

/* =========================================================
   POSIZIONE GDPR SOTTO SERVIZI
   ========================================================= */
.gdpr-under-services {
	margin-top: 52px; /* spinge il testo più in basso */
	font-size: 12.5px;
	color: #ccc;
	line-height: 1.5;
	max-width: 720px;
}

.gdpr-under-services label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.gdpr-under-services input[type="checkbox"] {
	margin-top: 3px;
	flex-shrink: 0;
	accent-color: var(--brand);
	cursor: pointer;
}

.gdpr-under-services a {
	color: #4da3ff;
	text-decoration: none;
}
.gdpr-under-services a:hover {
	text-decoration: underline;
}









.partners-block {
  position: relative;
  padding-bottom: 18px;
  margin-bottom: 16px;

}

.partners-block::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 750px; /* 🔹 accorcia la linea: puoi regolare tra 620–700px */
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
}

/* Allinea verticalmente i Partner ai Servizi */
.footer-left .partners-block .footer-list {
  padding-top: 10px;   /* stesso valore usato per .footer-center .footer-list */
}



.partners-block+.contacts-block {
	padding-top: 12px;
	border-top: none !important; /* 🔹 rimuove completamente la linea sopra Contatti */
}


.footer-center .footer-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 40px;
	column-gap: 60px;
}

.footer-center .footer-list li {
	width: 45%;
	list-style: none;
	margin: 0;
	line-height: 1.6;
}

.footer-right p {
	font-size: 14px;
	color: #ccc;
	margin-bottom: 14px;
	line-height: 1.6;
	max-width: 360px;
}

.footer-right p:first-of-type::after {
	content: "\A";
	white-space: pre;
}

/* ===== Footer - Colonna Servizi compatta, due colonne ravvicinate e testo su una sola riga ===== */
.footer-center .footer-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  column-gap: 30px;
  row-gap: 4px;
  padding-top: 10px;
  white-space: nowrap;
  line-height: 1.3;
}

.footer-center .footer-list li {
  margin: 0;
  line-height: 1.3;       /* 🔹 riduce ancora un po’ la distanza verticale */
  overflow: visible;
  text-overflow: unset;
}


/* ===== Contatti: 6 righe allineate alle 6 righe dei Servizi ===== */
.footer-left .contacts-list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 4px;           /* stesso row-gap dei servizi */
  padding-top: 10px;      /* stesso padding-top dei servizi */
}

.footer-left .contacts-list li {
  list-style: none;
  font-size: 14px;
  color: #ccc;
  line-height: 1.3;       /* stessa line-height dei servizi */
}

.footer-left .contacts-list li a {
  color: #ccc;
  text-decoration: none;
}

.footer-left .contacts-list li a:hover {
  color: #fff;
}


/* ===== Estensione della linea sopra "Contatti" ===== */
.contacts-block {
  position: relative;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

/* Colonna CONTATTI nel footer: niente bordo sopra, allineata al titolo "Servizi" */
.footer-left .contacts-block {
  padding-top: 0;
  border-top: none;
}


/* Lista contatti nel footer: 6 righe allineate alle 6 righe dei servizi */
.footer-left .footer-contacts-list {
  display: grid;
  grid-auto-rows: auto;
  row-gap: 4px;
  padding-top: 10px;
}

.footer-left .footer-contacts-list li {
  font-size: 14px;
  line-height: 1.3;
  white-space: nowrap;
}


/* Allunga la linea su tutta la larghezza delle colonne Partner + Servizi */
.footer-flex {
  position: relative;
}






/* ========================================================= FORM CONTATTI + GDPR (fix definitivo) ========================================================= */
.contact-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 16px;
	width: 100%;
}

.contact-form input,
.contact-form textarea {
	width: 100%;
	padding: 10px 14px;
	border-radius: 8px;
	border: 1px solid #ccc;
	font-size: 15px;
	font-family: Inter, sans-serif;
}

.contact-form textarea {
	grid-column: span 2;
	min-height: 90px;
	resize: vertical;
}

.contact-form button.btn {
	grid-column: span 2;
	background: #407297;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 12px 16px;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	transition: background .3s, transform .2s;
}

.contact-form button.btn:hover {
	background: #305872;
	transform: translateY(-2px)
}

/* ✅ GDPR: a tutta larghezza, centrato e orizzontale */
.contact-form>.gdpr-consent {
	grid-column: 1 / -1 !important;
	/* prende entrambe le colonne del form */
	width: 100% !important;
	margin-top: 8px !important;
}

.contact-form>.gdpr-consent>label {
	display: inline-flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	width: 100% !important;
	/* riempie la larghezza del form */
	max-width: 800px !important;
	/* testo leggibile su desktop */
	margin: 0 auto !important;
	/* centra dentro il form */
	text-align: left !important;
	color: #ccc !important;
	font-size: 12.5px !important;
	line-height: 1.5 !important;
	white-space: normal !important;
	word-break: normal !important;
}

.contact-form>.gdpr-consent input[type="checkbox"] {
	flex-shrink: 0 !important;
	margin-top: 3px !important;
	accent-color: var(--brand);
	cursor: pointer;
}

.contact-form>.gdpr-consent span {
	display: block !important;
	/* consente il wrapping sul 100% */
	white-space: normal !important;
	word-break: normal !important;
}

.contact-form>.gdpr-consent a {
	color: #4da3ff;
	text-decoration: none;
}

.contact-form>.gdpr-consent a:hover {
	text-decoration: underline;
}

/* ------- rinforzo di specificità nel footer (evita override) ------- */
.footer-right .contact-form>.gdpr-consent {
	grid-column: 1 / -1 !important;
}

.footer-right .contact-form>.gdpr-consent>label {
	width: 100% !important;
	max-width: 800px !important;
	margin: 0 auto !important;
}

/* ========================================================= FOOTER BOTTOM – centrato ========================================================= */
.footer-bottom {
	text-align: center;
	color: #ccc;
	font-size: 14px;
	padding-top: 28px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	margin-top: 40px;
}

.footer-bottom p {
	margin: 0;
	color: #ccc;
	font-size: 13px;
	letter-spacing: 0.3px;
}

/* ========================================================= TESTO GDPR SOTTO "SERVIZI" ========================================================= */
/* ========================================================= TESTO GDPR SOTTO "SERVIZI" CON CHECKBOX ========================================================= */
.gdpr-under-services {
  grid-column: 1 / span 2;
  font-size: 12.5px;
  color: #ccc;
  line-height: 1.5;
  margin-top: 36px; /* ⬅️ aumenta lo spazio sopra (puoi regolare) */
  padding-top: 0;
  border-top: none;
  max-width: 720px;
}


.gdpr-under-services label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.gdpr-under-services input[type="checkbox"] {
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--brand);
  cursor: pointer;
}

.gdpr-under-services a {
  color: #4da3ff;
  text-decoration: none;
}

.gdpr-under-services a:hover {
  text-decoration: underline;
}



/* ========================================================= MODALE SERVIZI ========================================================= */
/* ✅ Pop-up con fade-in / fade-out */
.servizio-modal {
	position: fixed;
	inset: 0;
	z-index: 11000;
	display: grid;
	place-items: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease;
}

.servizio-modal.is-open {
	opacity: 1;
	pointer-events: all;
}

/* Sfondo sfocato */
.servizio-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	backdrop-filter: saturate(1.2) blur(2px);
}

/* ✅ Contenitore con movimento in entrata */
.servizio-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(920px, 92vw);
	max-height: 90vh;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 24px 60px rgba(13, 16, 23, .28);
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	transform: translateY(-20px);
	opacity: 0;
	transition: all 0.4s ease;
}

.servizio-modal.is-open .servizio-modal__dialog {
	transform: translateY(0);
	opacity: 1;
}




/* ✅ Immagine stabile, senza zoom */
.servizio-modal__media {
	margin: 0;
	background: #000;
	width: 100%;
	height: auto;
	max-height: 480px;
	overflow: hidden;
}



.servizio-modal__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: none !important;
	transform: none !important;
}

/* Corpo del testo */
.servizio-modal__body {
	padding: 26px 28px 36px;
}

.servizio-modal__body h3 {
	font: 800 26px/1.25 Poppins, sans-serif;
	color: #111;
	margin-bottom: 14px;
}

.servizio-modal__body p {
	color: #333;
	line-height: 1.8;
	font-size: 15px;
}



/* ✅ Pulsante di chiusura sempre visibile */
.servizio-modal__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: #000;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
	z-index: 10;
	transition: background 0.3s, color 0.3s;
}

.servizio-modal__close:hover {
	background: #004aad;
	color: #fff;
}





/* =========================================================
   HEADER E LOGO - VERSIONE PULITA
   ========================================================= */

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 65px;
  background: transparent;
  z-index: 10000;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.header.scrolled {
  background: #fff;
  border-bottom: 1px solid #edf0f6;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.nav {
  width: 100%;
  max-width: 1180px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  padding: 12px 24px;
}

/* ====================== LOGO ====================== */
.logo {
  position: relative;
  display: flex;
  align-items: center;
  height: 65px;
  z-index: 10001;
}

.logo a {
  display: block;
  position: relative;
  height: 55px;
  width: auto;
}

/* Sovrapposizione loghi */
.logo img {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  height: 55px;
  width: auto;
  object-fit: contain;
  transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.3s ease;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
}

/* Logo chiaro iniziale */
#logoVideo {
  opacity: 1;
  visibility: visible;
}

/* Logo scuro nascosto */
#logoSolid {
  opacity: 0;
  visibility: hidden;
}

/* Dopo lo scroll */
.header.scrolled #logoVideo {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%) scale(0.95);
}

.header.scrolled #logoSolid {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) scale(1);
}


/* Contenitore principale del menu */
.nav {
	position: relative;
	width: 100%;
	max-width: 1180px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
	padding: 12px 24px;
}

.logo {
  position: relative;
  display: flex;
  align-items: center;
  height: 65px;
}

.logo a {
  display: block;
  position: relative;
  height: 55px;
  width: 160px; /* ✅ forza larghezza visibile */
}

.logo img {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  height: 55px;
  width: 160px; /* ✅ stessa larghezza per entrambe le versioni */
  object-fit: contain;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}




/* Responsive */
@media (max-width:760px) {
	.servizio-modal__dialog {
		grid-template-columns: 1fr;
		width: min(720px, 94vw);
	}

	.servizio-modal__media {
		min-height: 220px;
	}
}

/* ========================================================= RESPONSIVE ========================================================= */
@media (max-width:1100px) {
	.footer-flex {
		grid-template-columns: 1fr 1fr;
	}

	.footer-right {
		grid-column: 1/-1;
	}
}

@media (max-width:900px) {
	.split {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.mission {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.footer-flex {
		grid-template-columns: 1fr;
		gap: 32px;
		text-align: center;
		padding: 0 20px;
	}

	.footer-right p {
		margin-left: auto;
		margin-right: auto;
	}

	.footer-center .footer-list {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 8px;
	}

	.footer-center .footer-list li {
		width: auto;
	}

	.contact-form {
		grid-template-columns: 1fr;
		max-width: 560px;
		margin: 0 auto;
	}

	.contact-form textarea,
	.contact-form button.btn {
		grid-column: auto;
	}

	.contact-form>.gdpr-consent>label {
		max-width: 680px !important;
	}
}

@media (max-width:768px) {
	.h1 {
		font-size: 40px;
	}

	.video-overlay .heading {
		font-size: 26px;
	}
}

/* Per schermi con larghezza inferiore a 768px (smartphone e tablet) */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden; /* Impedisce lo scroll orizzontale */
  }

  /* Assicurati che nessun contenuto fuoriesca dal viewport */
  .container,
  .hero,
  .footer-combined {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* Aggiungi overflow hidden per tutti gli altri elementi che potrebbero fuoriuscire */
  .bgimg, img, .service-card-lg {
    max-width: 100%;
    height: auto;
  }

  /* Opzione: controllo per eventuali elementi posizionati assolutamente */
  .hero .bg, .hero .bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* Impostazioni per schermi piccoli, come i telefoni */
@media (max-width: 768px) {
  .hero .hero-text h1 {
    font-size: 36px;  /* Riduci la dimensione del titolo */
  }

  .hero .hero-text p {
    font-size: 16px;  /* Riduci la dimensione del sottotitolo */
  }

  .hero .cta .btn {
    font-size: 14px;  /* Riduci la dimensione del bottone */
    padding: 12px 18px;  /* Modifica il padding per il bottone */
  }
}

@media (max-width: 768px) {
  .hero .hero-text h1 {
    font-size: 28px;  /* Riduci la dimensione del titolo */
  }

  .hero .hero-text p {
    font-size: 16px;  /* Riduci la dimensione del sottotitolo */
  }

  .hero .cta .btn {
    font-size: 14px;  /* Riduci la dimensione del bottone */
    padding: 12px 18px;  /* Riduci il padding del bottone */
  }
}

@media (max-width: 768px) {
  .hero .content {
    padding-top: 10vh; /* Ridotto rispetto al desktop per dare più spazio sopra */
    padding-left: 20px;  /* Diminuito per il margine sui lati */
    padding-right: 20px; /* Diminuito per il margine sui lati */
    font-size: 20px; /* Ridotto per una lettura migliore su mobile */
    color: white; /* Assicura che il testo sia ben visibile */
    text-align: center; /* Allinea il testo al centro su schermi piccoli */
  }

  .hero .content h1 {
    font-size: 28px; /* Riduci la dimensione del titolo per schermi piccoli */
    line-height: 1.4; /* Più compatto per evitare troppa spaziatura */
  }

  .hero .content p {
    font-size: 16px; /* Riduci il sottotitolo per maggiore leggibilità */
  }

  .hero .cta .btn {
    font-size: 14px; /* Ridurre la dimensione del bottone */
    padding: 12px 18px; /* Ridurre il padding per un bottone più piccolo */
  }
}

@media (max-width: 768px) {
  #heroVideo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;  /* Il video copre tutta l'area senza deformarsi */
    z-index: -1; /* Il video sta dietro al contenuto */
  }

  .hero .video-overlay {
    background: rgba(0, 20, 60, 0.4); /* Aumentato per migliorare la visibilità del testo */
  }
}

@media (max-width: 768px) {
  .hero .content {
    padding-left: 20px;  /* Margine ridotto per una migliore lettura */
    padding-right: 20px; /* Margine ridotto per una migliore lettura */
  }
}

/* ===== EVENTI DUBAI – VERSIONE MOBILE + TABLET ===== */

@media (max-width: 768px) {
  .events-cards {
    max-width: 100%;
    margin: 0;                 /* niente centratura “strana” */
    padding-left: 34px;        /* allineato al logo */
    padding-right: 24px;       /* allineato al burger */
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .event-card {
    border-radius: 0;
    width: 100%;               /* la card riempie tutto lo spazio tra i 24px */
  }

  .event-card img {
    height: 200px;
    object-fit: cover;
  }

  .event-content {
    padding: 20px 18px;
  }
}



/* ===== OFFSET TESTO SEZIONE "DAL PRIMO COLLOQUIO..." SOLO MOBILE ===== */
@media (max-width: 768px) {
  /* Sezione split: sposta solo il blocco testo a destra */
  .split.section .container.split > .reveal {
    margin-left: 12px;   /* aumenta o riduci se vuoi più/meno spostamento */
  }
}

/* Burger bianco sul video, scuro dopo lo scroll */
@media (max-width: 768px) {
  .menu-toggle {
    color: #fff; /* sopra al video */
  }

  .header.scrolled .menu-toggle {
    color: #111; /* dopo lo scroll su header bianco */
  }
}

/* ===== TEAM – allineamento con logo/burger SOLO MOBILE ===== */
@media (max-width: 768px) {
  /* sposto tutto il contenuto team un filo più a destra */
  #team .container.team {
    padding-left: 34px;   /* prima era 24px */
    padding-right: 24px;
  }

  .team-grid {
    grid-template-columns: 1fr;
    padding-left: 0;
    padding-right: 0;
    justify-items: stretch;
  }

  .team-grid .person {
    margin: 0;
    width: 100%;
  }

  .team-grid .person:nth-child(1),
  .team-grid .person:nth-child(2),
  .team-grid .person:nth-child(3),
  .team-grid .person:nth-child(4) {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Titolo "Dubai Industry Events" / "Eventi di Settore Dubai" allineato al logo su mobile */
@media (max-width: 768px) {
  .events-section h2 {
    font-size: 26px;      /* un po’ più piccolo */
    line-height: 1.3;
    padding: 0 24px;      /* ⬅️ stesso padding orizzontale del logo/header */
    margin-bottom: 40px;  /* leggermente meno spazio sotto */
  }
}
/* ===== SERVIZI MOBILE: allineati a logo e burger ===== */
@media (max-width: 768px) {
  .services-grid {
    grid-template-columns: 1fr;      /* una colonna */
    padding: 30px 24px 32px 36px;    /* top RIGHT bottom LEFT */
    /*            ↑     ↑
                  |     └── 33px: allineato col logo
                  └──────── 18px: le card arrivano più vicino al burger  */
    justify-items: stretch;
  }

  .service-card-lg {
    max-width: none;
    width: 100%;                     /* card a tutta larghezza del contenitore */
  }
}

/* ===== GAP dedicato tra SERVIZI e MISSIONE su mobile/tablet ===== */
@media (max-width: 1024px) {
  :root {
    /* 🔧 cambia questo valore per aumentare/diminuire lo spazio */
    --gap-services-mission-mobile: 30px;
  }

  /* spazio sotto la sezione SERVIZI */
  #services {
    padding-bottom: var(--gap-services-mission-mobile);
  }

  /* spazio sopra la sezione MISSIONE (la prima .section dopo lo slider) */
  #services + .services-viewport + .section {
    padding-top: var(--gap-services-mission-mobile);
  }

  /* nascondo lo slider servizi su mobile/tablet */
  .services-viewport {
    display: none !important;
  }
}