/* =========================================
   FONTS & RESET
========================================= */
body {
  font-family:'Inter', Arial, sans-serif;
  margin:0;
  padding:0;
  background:#f4f4f4;
  color:#222;
}

h4 {
  font-size:20px;
  font-weight:700;
  color:#17375e;
  margin:0 0 8px;
}

/* =========================================
   HEADER CON HERO IMAGE
========================================= */
header {
  position:relative;
  padding:160px 40px;
  text-align:center;
  color:white;
  overflow:hidden;
}

header::before {
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--hero);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:1;
  z-index:1;
}

header::after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.25);
  z-index:2;
}

header h1,
header p {
  position:relative;
  z-index:3;
  margin:0;
}

header h1 {
  font-size:58px;
  font-weight:700;
  text-shadow:0 0 8px rgba(0,0,0,0.6);
}

header p {
  font-size:20px;
  margin-top:10px;
  font-weight:300;
  text-shadow:0 0 6px rgba(0,0,0,0.4);
}

/* =========================================
   MENU + HAMBURGER
========================================= */
.hamburger {
  display:none;
  font-size:32px;
  cursor:pointer;
  color:white;
  position:absolute;
  top:14px;
  right:18px;
  z-index:1001;
}

nav {
  background:#0f2540;
  overflow:hidden;
  max-height:500px;
  transition:max-height .3s ease;
  text-align:center;
}

nav a {
  display:inline-block;
  padding:12px 16px;
  color:white;
  font-size:16px;
  text-decoration:none;
  font-weight:500;
}

nav a:hover { color:#818ff7; }

@media(max-width:900px){
  .hamburger { display:block; }
  nav { max-height:0; padding:0; }
  nav a {
    display:block;
    padding:14px;
    border-bottom:1px solid rgba(255,255,255,0.2);
    font-size:18px;
    text-align:left;
  }
}

/* =========================================
   CONTAINER UNIVERSALE
========================================= */
.container {
  max-width:1100px;
  margin:30px auto;
  padding:20px;
  background:white;
  border-radius:6px;
}

/* =========================================
   INFO BOX
========================================= */
.info-box {
  background:#ffffff;
  border:1px solid #17375e;
  padding:18px;
  border-radius:6px;
  box-shadow:0 2px 4px rgba(0,0,0,0.06);
  margin-bottom:25px;
}

/* =========================================
   GRID 3 COLONNE (base per box principali)
========================================= */
.grid,
.shuttle-grid,
.page-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

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

/* =========================================
   BOX STANDARD (Taxi, NCC, Metro...)
========================================= */
.box {
  background:#f4f4f4;
  border:2px solid #17375e;
  padding:20px;
  border-radius:6px;
  text-align:center;
  cursor:pointer;
  transition:transform .15s ease;
}

.box:hover { transform:translateY(-3px); }
.box h3 { color:#17375e; margin-top:0; font-weight:600; }
.box p { font-size:15px; }
.box a { text-decoration:none; color:#17375e; font-weight:600; }

/* =========================================
   PAGE BOX (Aeroporti, Voli...)
========================================= */
.page-box {
  background:#fafafa;
  border:1px solid #17375e;
  padding:18px;
  border-radius:6px;
  text-align:center;
  display:block;
  margin-bottom:20px;
  text-decoration:none;
  color:#17375e;
  font-weight:600;
  transition:.2s;
}

.page-box:hover {
  transform:translateY(-3px);
  border-color:#17375e;
  box-shadow:0 4px 14px rgba(0,0,0,0.12);
}

/* =========================================
   SHUTTLE BOX
========================================= */
.shuttle-box {
  background:#fafafa;
  border:1px solid #17375e;
  padding:20px;
  border-radius:6px;
  text-align:center;
  color:#17375e;
  font-weight:600;
  transition:.2s;
  text-decoration:none;
  display:block;
}

.shuttle-box:hover {
  transform:translateY(-3px);
  border-color:#17375e;
  box-shadow:0 5px 16px rgba(0,0,0,0.1);
}

/* =========================================
   AFFILIAZIONI (3 + 1)
========================================= */
.aff-grid {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:20px;
}

.aff-box {
  flex:1 1 calc(33% - 20px);
  background:#fafafa;
  border:1px solid #ddd;
  padding:22px;
  border-radius:6px;
  text-align:center;
  display:block;
  text-decoration:none !important;
  color:#17375e;
  transition:transform .15s ease, box-shadow .15s ease;
}

.aff-box:hover {
  transform:translateY(-3px);
  border-color:#17375e;
  box-shadow:0 4px 12px rgba(0,0,0,0.15);
}

.aff-box-full {
  flex:1 1 100%;
  background:#fafafa;
  border:1px solid #ddd;
  padding:22px;
  border-radius:6px;
  text-align:center;
  display:block;
  color:#17375e;
}

/* =========================================
   ADV BANNERS
========================================= */
.adv-double {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:20px;
  margin:30px 0;
}

.adv-double img {
  width:100%;
  max-width:320px;
  border-radius:4px;
}

/* =========================================
   FOOTER
========================================= */
footer {
  background:#17375e;
  color:white;
  text-align:center;
  padding:20px;
  font-size:13px;
  margin-top:40px;
}

footer a {
  color:white;
  font-weight:600;
  text-decoration:none;
}
