/* ==========================================================
   MULTIAX - Pagina Servizi (da incollare in custom.css)
   ========================================================== */

:root {
  --mx-blue: #1B365D;
  --mx-blue-dark: #0F2341;
  --mx-accent: #2f6fd6;
  --mx-yellow: #f7d070;
  --mx-tint: #eef3fb;
}

/* ---------- Hero ---------- */
.mx-hero { background-image: linear-gradient(135deg, var(--mx-blue) 0%, var(--mx-blue-dark) 100%); }
/* Per usare una foto: aggiungi url(...) come primo layer, es.
   background-image: linear-gradient(135deg, rgba(27,54,93,.88), rgba(15,35,65,.92)), url('/images/hero-servizi.jpg'); */
.mx-eyebrow { letter-spacing: .2em; font-size: 13px; text-transform: uppercase; color: rgba(255,255,255,.75); }
.mx-hero h1 { max-width: 900px; margin-left: auto; margin-right: auto; }

/* ---------- Card panoramica (4 macro-aree) ---------- */
.mx-area { transition: transform .25s, box-shadow .25s; border-bottom: 3px solid transparent; }
.mx-area:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(15,35,65,.12) !important; border-bottom-color: var(--mx-accent); }
.mx-area a:hover { color: var(--mx-accent) !important; }

/* ---------- Legenda badge ---------- */
.mx-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* ---------- Badge ---------- */
.mx-badge {
  display: inline-block; font-size: 11px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; padding: 6px 14px; border-radius: 100px; line-height: 1.4;
}
.mx-badge--team { background: var(--mx-blue); color: #fff; }
.mx-badge--partner { background: var(--mx-yellow); color: #1b1b1b; }
.mx-badge--custom { background: #e3e7ee; color: var(--mx-blue); }

/* ---------- Card servizi ---------- */
.mx-card { border-top: 4px solid var(--mx-blue); transition: transform .25s, box-shadow .25s; }
.mx-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(15,35,65,.15) !important; }
.mx-num { color: rgba(27,54,93,.15) !important; font-size: 64px; font-weight: 800; line-height: 1; }

/* ---------- Box obiettivo ---------- */
.mx-goal { background: var(--mx-tint); border-left: 4px solid var(--mx-accent); border-radius: 6px; padding: 16px 20px; margin-top: 20px; }
.mx-goal p { color: var(--mx-blue); margin: 0; }
.mx-goal .feather { color: var(--mx-accent); }

/* ---------- Ancore con header sticky ---------- */
[id^="servizio-"] { scroll-margin-top: 110px; }

/* ---------- Sezione 09 ---------- */
.mx-extra { transition: all .25s; background: #fff; border: 1px solid #e3e7ee; }
.mx-extra:hover { border-color: var(--mx-accent); box-shadow: 0 10px 30px rgba(0,0,0,.08); transform: translateY(-3px); }
.mx-extra .feather { color: var(--mx-accent); font-size: 28px; display: block; margin-bottom: 12px; }

/* ---------- Fascia finale ---------- */
.mx-cta { background: linear-gradient(135deg, var(--mx-blue) 0%, var(--mx-blue-dark) 100%); }


.prod-card {
    display: block;
    color: #374151;
    text-decoration: none;
}
.prod-card .blog-post {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #d1d5db;
    overflow: hidden;
}
.prod-card .blog-post-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.prod-card .post-details {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 0;
}
.prod-card .post-details h3 {
    padding: 10px;
    margin: 0;
    color: #111;
}
.prod-body {
    /*flex: 1;*/
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
    text-align: left;
	height: 280px;
}
.prod-chips span {
	display:inline-block;
	background:#f3f4f6;
	border-radius:20px;
	padding:3px 12px;
	font-size:.8rem;
	margin:0 6px 6px 0;
}
.prod-cta {
    margin-top: auto;   /* spinge il link in fondo alla scheda */
    font-weight: 600;
    color: #111;
}

.simple-dropdown .dropdown-menu li {
    padding: 9px 10px 9px 15px;
    display: block;
}



/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .mx-num { font-size: 48px; }
  [id^="servizio-"] { scroll-margin-top: 80px; }
}


/*body{
	font-size:15px;
	line-height:20px;
	}*/
header .navbar .navbar-brand img, header.side-menu .logo img, header .sidebar-nav-menu .navbar-brand img {
	max-height: 70px;
}
.text-justify {
	text-align:justify;
}

.text-blue{
	color:#3ca4dc;
	}
.bg-penguin-white {
	background-color: #ffeb3b;
}
.bg-yellow-ochre-light {
	background-color: #ffeb3b;
}
.bg-transparent-yellow-ochre-light {
	background-color: rgba(255, 235, 59, 0.7)!important;
}
.bg-blue {
	background-color:#3ca4dc;
}
.bg-giallo {
	background-color:#ffed21;
	color:#3ca4dc;
}
.bg-light-gray {
	background-color: #F0F0F0;
}



.btn.btn-chiaro {
	background-color:#3ca4dc;
	border:#3ca4dc;
	color:#FFFFFF;
}
.btn.btn-chiaro:hover, .btn.btn-chiaro:focus {
	background:transparent;
	color:#3ca4dc;
}
.btn.btn-scuro {
	background-color:#207CAE;
	border:#207CAE;
	color:#FFFFFF;
}
.btn.btn-scuro:hover, .btn.btn-scuro:focus {
	background: transparent;
	color:#207CAE;
}
.margini_elenco li {
	padding:0;
}
.section0 {
	padding:0;
	margin:0;
}
.section-small {
	padding:20px;
	margin:0px;
}
.ico_prodotto_scheda {
	max-width:80px;
}
.prima-maiuscola {
	display: inline-block; /* Rende lo span compatibile con ::first-letter */
}
.prima-maiuscola::first-letter {
 text-transform: uppercase;
}
/* Forza l'effetto sfondo fisso (parallasse CSS nativo) */
.parallax.overlap-section {
	background-attachment: fixed !important;
	background-position: center center !important;
	background-size: cover !important;
}
/*.html-video {
	background-color: #000;
	left: 50%;
	width: auto;
	height:auto;
	min-height: 100%;
	min-width: 100%;
	position: absolute;
	top: -260px!important;
	-ms-transform: translate(-50%, 0);
	-webkit-transform: translate(-50%, 0);
	transform: translate(-50%, 0);
	-moz-transform: translate(-50%, 0);
	-o-transform: translate(-50%, 0);
	z-index: -3;
}*/



/* ==========================================================================
   1. STILI BASE (Validi per Smartphone - sotto i 768px)
   ========================================================================== */
section.mobile-height {
  position: relative !important;
  overflow: hidden !important; /* Taglia le bande nere in eccesso */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  /* CAMBIAMENTO: Altezza pari al 50% dello schermo anziché fissa */
  height: 40vh !important; 
  min-height: 40vh !important;
}

section.mobile-height video.html-video {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  /* Bilanciato per mantenere visibile il testo nel video su schermi stretti */
  transform: translate(-50%, -50%) scale(1.1) !important; 
  transform-origin: center center !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  will-change: transform !important;
  z-index: 0 !important; 
}

section.mobile-height .container {
  position: relative !important;
  z-index: 2 !important; /* Testi HTML della pagina sempre sopra al video */
}

/* ==========================================================================
   2. MEDIA QUERY: TABLET (Schermi da 768px a 991px)
   ========================================================================== */
@media (min-width: 768px) {
  section.mobile-height {
    height: 55vh !important; 
    min-height: 55vh !important;
  }
  
  section.mobile-height video.html-video {
    /* Ridotto lo zoom per salvaguardare i testi interni al video */
    transform: translate(-50%, -50%) scale(1.15) !important; 
  }
}

/* ==========================================================================
   3. MEDIA QUERY: DESKTOP (Schermi da 992px in su)
   ========================================================================== */
@media (min-width: 992px) {
  section.mobile-height {
    position: relative !important;
    overflow: hidden !important; 
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    /* CAMBIAMENTO: Anche su desktop segue il 50% dell'altezza dello schermo */
    height: 100vh !important; 
    min-height: 100vh !important;
  }

  section.mobile-height video.html-video {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    /* Ripristinato il tuo scale(1.0) originale per il desktop */
    transform: translate(-50%, -50%) scale(1.0) !important; 
    transform-origin: center center !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    will-change: transform !important;
    z-index: 0 !important; 
  }

  section.mobile-height .container {
    position: relative !important;
    z-index: 2 !important; 
  }
}





/* Sotto i 768px (Smartphone) forziamo il corretto riproporzionamento dell'immagine */
@media (max-width: 767.98px) {
  section .overlap-section.parallax {
    /* 1. Sovrascriviamo i calcoli errati del JavaScript del parallasse */
    background-attachment: scroll !important; /* Disattiva il parallasse su mobile */
    background-size: cover !important;        /* Forza l'adattamento proporzionale senza distorcere */
    background-position: center center !important; /* Centra l'immagine nei 300px di altezza */
    
    /* 2. Opzionale: pulizia per evitare che il template forzi posizioni strane */
    background-repeat: no-repeat !important;
  }
}




.logo-partner {
    filter: grayscale(100%);
    opacity: 0.7;
    transition: filter 0.3s ease, opacity 0.3s ease; 
}


.logo-partner:hover {
    filter: grayscale(0%);
    opacity: 1;
}




.grid li.grid-item .blog-post {
  height: 100% !important;
  min-height: 100% !important;
}

.grid li.grid-item .post-details table.table-style-02 {
  width: 100% !important;
  min-height: 245px !important;
  border-collapse: collapse !important;
}

.grid li.grid-item .post-details table.table-style-02 td {
  vertical-align: top !important;
  padding-bottom: 5px !important;
}


ul.list-style-02 > p:empty {
    display: none;
}