/* Dove siamo: impaginazione pulita, continua e senza spazi ereditati. */
.locationsPage {
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  overflow-y:auto;
  background:#061827;
  color:#fff;
  font-family:"Avenir Next",Avenir,"Helvetica Neue",Helvetica,Arial,sans-serif;
}

.locationsMain {
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  padding-top:92px !important;
  overflow:visible !important;
}

.locationsHero {
  height:auto !important;
  min-height:0 !important;
  padding:14px 5vw 5px !important;
  background:radial-gradient(circle at 78% 20%,rgba(25,164,209,.24),transparent 34%),linear-gradient(135deg,#061827,#0a3650) !important;
}

.locationsHero .eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
}

.locationsHero .eyebrow span { width:30px; height:2px; background:#f5b335; }
.locationsHero h1 { margin:7px 0 5px !important; font-size:clamp(32px,3.5vw,48px) !important; line-height:1 !important; letter-spacing:-.04em; }
.locationsHero h1 em { color:#f5b335; font-style:normal; }
.locationsHero p { max-width:none !important; margin:0 !important; color:#d9e7ef; font-size:14px !important; line-height:1.35 !important; }

.locationsGrid {
  width:min(92vw,1320px) !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 auto !important;
  padding:7px 0 !important;
  display:grid !important;
  grid-template-columns:1.28fr repeat(3,minmax(0,1fr)) !important;
  grid-auto-rows:auto !important;
  align-items:stretch !important;
  gap:10px !important;
}

.locationCard {
  box-sizing:border-box;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  width:100%;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:14px 16px !important;
  overflow:visible !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:16px !important;
  background:linear-gradient(145deg,rgba(13,90,137,.92),rgba(5,37,67,.94)) !important;
  color:#fff !important;
  box-shadow:0 14px 34px rgba(0,0,0,.16) !important;
}

.headquartersCard { background:linear-gradient(145deg,rgba(13,90,137,.92),rgba(5,37,67,.94)) !important; }
.locationBrand { display:block !important; width:min(175px,82%) !important; height:42px !important; margin:0 0 8px !important; object-fit:contain !important; object-position:left center !important; }
.locationCard small { min-height:0 !important; margin:0 !important; color:#f5b335 !important; font-size:9px !important; font-weight:800; line-height:1.25 !important; letter-spacing:.11em; }
.locationCard h2 { min-height:0 !important; margin:6px 0 8px !important; font-size:clamp(18px,1.55vw,23px) !important; line-height:1.08 !important; }
.locationCard p { width:100%; margin:4px 0 !important; color:inherit; font-size:12px !important; line-height:1.4 !important; overflow-wrap:anywhere; }
.locationMeta { margin-top:5px !important; opacity:.86; }
.locationCard > a { margin-top:auto !important; padding-top:8px; color:#f5b335 !important; font-size:12px !important; font-weight:800; }

.contactCard img {
  display:block !important;
  width:100% !important;
  height:62px !important;
  margin:0 0 10px !important;
  padding:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}

.contactCard p { margin:0 !important; }

.locationsGrid > .locationCard:not(.contactCard) {
  align-items:center !important;
  text-align:center !important;
}
.locationsGrid > .locationCard:not(.contactCard) .locationBrand {
  object-position:center !important;
}
.locationsGrid > .locationCard:not(.contactCard) > a {
  align-self:center !important;
}

.locationsCta {
  box-sizing:border-box;
  width:min(92vw,1320px) !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 auto 8px !important;
  padding:13px 18px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:22px !important;
  overflow:visible !important;
  border-radius:16px !important;
  background:#0c75a3 !important;
}

.locationsCta small { color:#f5b335; font-size:9px; font-weight:800; letter-spacing:.12em; }
.locationsCta h2 { margin:2px 0 !important; font-size:21px !important; line-height:1.1; }
.locationsCta p { max-width:760px; margin:2px 0 !important; font-size:12px !important; line-height:1.35 !important; }
.locationsCta .button { flex:0 0 auto; padding:10px 16px !important; font-size:12px !important; white-space:nowrap; }

.locationsPage footer {
  box-sizing:border-box;
  height:auto !important;
  min-height:0 !important;
  padding:9px 5vw !important;
  overflow:visible !important;
  background:#03111c !important;
}
.locationsPage footer > div { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:20px; }
.locationsPage footer .brand img { width:128px !important; }
.locationsPage footer p { margin:0 !important; color:#bdd0dc; font-size:11px !important; }

@media (max-width:900px) {
  .locationsMain { padding-top:88px !important; }
  .locationsHero { padding:12px 5vw 5px !important; }
  .locationsHero h1 { font-size:34px !important; }
  .locationsGrid { width:90vw !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:9px !important; }
  .locationCard { padding:12px 14px !important; }
  .locationsCta { width:90vw !important; padding:11px 14px !important; }
}

@media (max-width:699px) {
  .locationsMain { padding-top:82px !important; }
  .locationsHero { padding:18px 5vw 7px !important; }
  .locationsHero h1 { font-size:clamp(31px,10vw,42px) !important; }
  .locationsGrid { grid-template-columns:1fr !important; padding:8px 0 !important; }
  .locationsCta { align-items:flex-start !important; flex-direction:column !important; gap:12px !important; margin-bottom:10px !important; }
  .locationsPage footer > div { align-items:flex-start !important; flex-direction:column !important; gap:5px !important; }
}

/* V78: i pannelli indirizzo sono subito sotto il titolo e centrati.
   I contatti restano nel blocco successivo, senza spazi vuoti. */
.locationsAddresses,
.locationsContacts {
  width:min(92vw,1120px) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  align-items:stretch !important;
  gap:10px !important;
}

.locationsAddresses { padding:7px 0 5px !important; }
.locationsContacts { padding:0 0 7px !important; }

.locationsAddresses .locationCard,
.locationsContacts .locationCard {
  height:auto !important;
  min-height:0 !important;
}

@media (min-width:901px) {
  .locationsAddresses,
  .locationsContacts {
    width:min(74vw,1050px) !important;
  }

  .locationsAddresses .locationCard { min-height:198px !important; }

  .locationsContacts .locationCard {
    min-height:104px !important;
    display:grid !important;
    grid-template-columns:minmax(150px,.42fr) minmax(0,1fr) !important;
    align-items:center !important;
    column-gap:18px !important;
    padding:10px 14px !important;
  }

  .locationsContacts .contactCard img {
    width:100% !important;
    height:58px !important;
    margin:0 !important;
    object-position:center !important;
  }

  .locationsContacts .contactCard p {
    margin:0 !important;
    font-size:12px !important;
    line-height:1.45 !important;
  }
}

@media (min-width:700px) and (max-width:900px) {
  .locationsAddresses,
  .locationsContacts { width:82vw !important; }
  .locationsContacts .locationCard { min-height:104px !important; }
}

@media (max-width:699px) {
  .locationsAddresses,
  .locationsContacts {
    width:90vw !important;
    grid-template-columns:1fr !important;
  }
}
