.bang-why__title {
  line-height: .98 !important;
  letter-spacing: -.045em;
}

/* Blocco “Perché BANG”: testo tecnico, leggibile e coerente su desktop/mobile. */
.bang-why-title { margin: 0 0 2.25rem; line-height: 1.03; }
.bang-why-title > span { display: block; margin-bottom: .18rem; font-size: .54em; font-weight: 800; letter-spacing: .08em; color: #0b91c5; text-transform: uppercase; }
.bang-why-title > b { display: block; width: max-content; max-width: 100%; margin-bottom: .28rem; font-size: 4.56em; font-weight: 900; letter-spacing: -.075em; background: linear-gradient(105deg,#075b88,#08b9df 32%,#e1fbff 51%,#16b4e1 68%,#075c89); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: bang-why-metal-shine 5.5s ease-in-out infinite; }
.bang-why-title small { font-size: .43em; letter-spacing: -.02em; vertical-align: middle; }
.bang-why-title > strong { display: block; max-width: 36rem; font-size: .94em; color: #13233e; letter-spacing: -.035em; }
.bang-why-list { display: grid; gap: 1.1rem; margin-bottom: 2.25rem; }
.bang-why-point { display: flex; align-items: flex-start; gap: .75rem; }
.bang-why-check { display: grid; place-items: center; flex: 0 0 auto; width: 1.35rem; height: 1.35rem; margin-top: .08rem; border: 1px solid #14b7dd; border-radius: 999px; color: #0786b5; font-size: .84rem; font-weight: 900; }
.bang-why-point p { margin: 0; color: #526070; font-size: 1rem; line-height: 1.58; }
.bang-why-point strong { color: #263b58; }
.bang-why-badges { display: flex; flex-wrap: wrap; gap: .7rem 1.2rem; color: #0b91c5; font-size: .83rem; font-weight: 800; }
.bang-why-badges span::before { content: '⌾'; margin-right: .38rem; color: #bd419e; }
@media (max-width: 900px) { .bang-why-title > b { font-size: clamp(4.2rem, 17vw, 7.2rem); } }
@media (max-width: 520px) { .bang-why-title > b { font-size: clamp(3.3rem, 19vw, 5.2rem); } }

/* Le due sezioni consecutive ereditano entrambe il padding verticale desktop.
   Su telefono lasciamo un distacco leggibile, senza il grande vuoto dopo le card. */
@media (max-width: 520px) {
  #soluzioni { padding-bottom: 2rem !important; }
  #perche-noi { padding-top: 2rem !important; }
}

/* Riduciamo la distanza fra le card dei marchi e il blocco successivo anche
   su desktop; le due colonne devono iniziare sulla stessa riga. */
@media (min-width: 521px) {
  #soluzioni { padding-bottom: 3.5rem !important; }
  #perche-noi { padding-top: 3.5rem !important; }
  #perche-noi .grid.md\\:grid-cols-2 { align-items: start !important; }
}
.bang-why__title > span { display: block; }
.bang-why__name {
  width: max-content;
  max-width: 100%;
  background: linear-gradient(105deg,#075b88 0%,#08b9df 27%,#e1fbff 48%,#16b4e1 63%,#075c89 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: bang-why-metal-shine 5.5s ease-in-out infinite;
}
.bang-why__name small {
  font-size: .48em;
  letter-spacing: -.02em;
  vertical-align: middle;
  font-weight: 700;
}
.bang-why__verb { margin-top: .12em; color: #13233e; }
.bang-why__claim {
  margin-top: .14em;
  color: #0b91c5;
  background: linear-gradient(105deg,#075d8a,#0b9ecf 35%,#c5f5ff 51%,#0797c8 68%,#075d8a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.bang-why__copy { max-width: 42rem; }
.bang-why__features {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin-bottom: 2.5rem;
}
.bang-why__feature {
  min-height: 8.6rem;
  padding: 1.2rem 1.15rem;
  border: 1px solid rgba(14, 134, 182, .18);
  border-radius: 1rem;
  background: rgba(255,255,255,.7);
  box-shadow: 0 8px 22px rgba(19,35,62,.06);
}
.bang-why__feature h3 {
  margin: 0 0 .55rem;
  line-height: 1.14;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 800;
  background: linear-gradient(105deg,#075b88,#0ba3d2 42%,#c5f5ff 52%,#0786ba 68%,#075b88);
  background-size: 190% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.bang-why__feature p { margin: 0; color: #526070; font-size: .89rem; line-height: 1.45; }
@keyframes bang-why-metal-shine {
  0%,100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .bang-why__name { animation: none; }
}
@media (max-width: 520px) {
  .bang-why__title { font-size: 2rem !important; }
  .bang-why__features { grid-template-columns: 1fr; }
  .bang-why__feature { min-height: 0; }
}

.bang-services__title {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: .24em;
}
.bang-services__name {
  background: linear-gradient(105deg,#075b88 0%,#08b9df 27%,#e1fbff 48%,#16b4e1 63%,#075c89 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: bang-why-metal-shine 5.5s ease-in-out infinite;
}
.bang-services__name small {
  font-size: .48em;
  letter-spacing: -.02em;
  vertical-align: middle;
  font-weight: 700;
}

/* Firma visiva coerente: ogni riferimento visibile a BANG Srl usa il metallo azzurro. */
.bang-metal-word {
  display: inline-block;
  white-space: nowrap;
  font-weight: 900;
  letter-spacing: -.045em;
  background: linear-gradient(105deg, #075b88 0%, #08b9df 27%, #e1fbff 48%, #16b4e1 63%, #075c89 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: bang-why-metal-shine 5.5s ease-in-out infinite;
}
.bang-metal-word small { font-size: .62em; letter-spacing: -.02em; vertical-align: middle; }
@media (prefers-reduced-motion: reduce) { .bang-metal-word { animation: none; } }

/* Titolo aziendale: finitura metallica leggibile anche sul fondo chiaro. */
.bang-metal-text {
  display: inline-block;
  white-space: nowrap;
  font-weight: 900;
  letter-spacing: -.055em;
  background: linear-gradient(105deg, #075b88 0%, #11acd7 24%, #effcff 46%, #0d9dce 61%, #075b88 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: bang-why-metal-shine 5.5s ease-in-out infinite;
}
.bang-metal-text small {
  font-size: .58em;
  letter-spacing: -.02em;
  vertical-align: middle;
  font-weight: 800;
}
@media (prefers-reduced-motion: reduce) { .bang-metal-text { animation: none; } }

#soluzioni .bang-service-card {
  min-height: 18rem;
  display: flex;
  flex-direction: column;
  padding: 2rem;
  border: 1px solid rgba(14, 134, 182, .18);
  border-radius: 1rem;
  background: rgba(255,255,255,.92);
  box-shadow: 0 8px 22px rgba(19,35,62,.06);
}
.bang-service-card__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.35rem; }
.bang-service-card__logo { width: 4rem; height: 4rem; display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; }
.bang-service-card__logo-image { width: 100%; height: 100%; object-fit: contain; }
/* Il file originale di AvioZone ha un fondo nero quadrato: lo ritagliamo sul disco del logo. */
.bang-service-card--magenta .bang-service-card__logo { border-radius: 50%; }
.bang-service-card--magenta .bang-service-card__logo-image { transform: scale(1.3); }
.bang-service-card__wordmark { font-size: .86rem; font-weight: 900; letter-spacing: -.07em; color: #a336a4; }
.bang-service-card__wordmark span { color: #d65bc8; }
.bang-service-card h3 { margin: 0; font-size: 1.5rem; font-weight: 800; color: #13233e; line-height: 1.1; }
.bang-service-card__head p { margin: .28rem 0 0; font-size: .9rem; font-weight: 700; color: #0b91c5; }
.bang-service-card__description { margin: 0 0 1.75rem; color: #526070; line-height: 1.55; }
.bang-service-card__video-wrap { position: relative; margin: 0 0 .8rem; }
.bang-service-card__video { width: 100%; aspect-ratio: 16 / 9; display: block; object-fit: cover; border-radius: .75rem; background: #13233e; }
.bang-service-card__video-wrap .ai-video-disclosure { position: absolute; right: .65rem; bottom: .65rem; z-index: 2; max-width: calc(100% - 1.3rem); margin: 0; padding: .42rem .55rem; border-radius: .38rem; background: rgba(0,0,0,.74); color: #fff; font-size: .68rem; font-weight: 700; line-height: 1.3; text-align: center; pointer-events: none; }
.bang-service-card__video-wrap .ai-video-disclosure[hidden] { display: none; }
.bang-service-card > a { display: flex; align-items: center; justify-content: center; gap: .35rem; margin-top: auto; min-height: 3rem; border-radius: .75rem; color: #fff; font-weight: 800; text-decoration: none; transition: transform .2s ease, filter .2s ease; }
.bang-service-card > a:hover { transform: translateY(-2px); filter: brightness(1.06); }
.bang-service-card--cyan > a { background: linear-gradient(105deg,#08b9df,#0d91c4); }
.bang-service-card--blue > a { background: linear-gradient(105deg,#0e86b6,#0b65a0); }
.bang-service-card--magenta > a { background: linear-gradient(105deg,#c34ab7,#a336a4); }
.bang-service-card--dark > a { background: linear-gradient(105deg,#314665,#13233e); }
@media (max-width: 520px) { #soluzioni .bang-service-card { min-height: 0; padding: 1.4rem; } }
