/* ============================================================
   AEROPORTO.INFO NETWORK — main.css  v2.0
   Master stylesheet — non modificare per singolo sito
   Usa site.config.js per personalizzare contenuti
   ============================================================ */

/* ── TOKENS ─────────────────────────────────────────────────── */
:root {
  --c-navy:        #1C2B4A;
  --c-blue:        #2B4A8C;
  --c-blue-mid:    #3A60B5;
  --c-blue-light:  #EEF3FB;
  --c-blue-xlight: #F7F9FE;
  --c-gold:        #C8960A;
  --c-gold-light:  #FDF6E3;
  --c-gold-hover:  #a87a08;
  --c-white:       #FFFFFF;
  --c-grey-bg:     #F5F7FA;
  --c-grey-line:   #E2E8F0;
  --c-grey-text:   #5A6478;
  --c-dark-text:   #1C2B4A;
  --c-green:       #2d6e4e;
  --c-green-light: #edf7f2;

  --font-display:  'Cormorant Garamond', Georgia, serif;
  --font-body:     'DM Sans', system-ui, sans-serif;

  --radius-xs:  4px;
  --radius-sm:  8px;
  --radius-md:  14px;
  --radius-lg:  22px;
  --radius-xl:  32px;

  --shadow-sm:   0 1px 4px rgba(28,43,74,.08);
  --shadow-card: 0 4px 20px rgba(28,43,74,.10);
  --shadow-cta:  0 8px 32px rgba(43,74,140,.22);
  --shadow-gold: 0 6px 24px rgba(200,150,10,.28);

  --transition:  .22s cubic-bezier(.4,0,.2,1);
  --max-w:       1180px;
  --gutter:      24px;
}

/* ── RESET ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-body);
  color: var(--c-dark-text);
  background: var(--c-white);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font-family: var(--font-body); font-size: inherit; }

/* ── LAYOUT ──────────────────────────────────────────────────── */
.container   { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
.section     { padding: 88px 0; }
.section--alt  { background: var(--c-grey-bg); }
.section--dark { background: var(--c-navy); color: var(--c-white); }
.section--gold { background: var(--c-gold-light); border-top: 1px solid rgba(200,150,10,.15); border-bottom: 1px solid rgba(200,150,10,.15); }

/* ── TYPOGRAPHY ──────────────────────────────────────────────── */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--c-blue);
  margin-bottom: 14px;
}
.eyebrow--light { color: var(--c-gold); }
.eyebrow--gold  { color: var(--c-gold-hover); }
.eyebrow::before {
  content: '';
  display: block;
  width: 28px; height: 1.5px;
  background: currentColor;
  flex-shrink: 0;
}
.section-title {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 4.2vw, 3.4rem);
  font-weight: 700;
  color: var(--c-navy);
  line-height: 1.12;
  margin-bottom: 16px;
  letter-spacing: -.025em;
}
.section-title--light { color: var(--c-white); }
.section-sub {
  font-size: 1.12rem;
  color: var(--c-grey-text);
  max-width: 580px;
  line-height: 1.75;
  margin-bottom: 52px;
}
.section-sub--light { color: rgba(255,255,255,.65); }
.section-footer {
  text-align: center;
  margin-top: 44px;
}
.section-footer a {
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-blue);
  transition: color .2s;
}
.section-footer a:hover { color: var(--c-navy); }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: var(--radius-xs);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  border: none;
  transition: var(--transition);
  white-space: nowrap;
}
.btn svg { width: 15px; height: 15px; flex-shrink: 0; }
.btn--primary { background: var(--c-blue);  color: var(--c-white); box-shadow: var(--shadow-cta); }
.btn--primary:hover { background: var(--c-navy); transform: translateY(-1px); }
.btn--gold    { background: var(--c-gold);  color: var(--c-white); box-shadow: var(--shadow-gold); }
.btn--gold:hover    { background: var(--c-gold-hover); transform: translateY(-1px); }
.btn--outline { background: transparent; border: 1.5px solid var(--c-blue); color: var(--c-blue); }
.btn--outline:hover { background: var(--c-blue-light); }
.btn--outline-white { background: transparent; border: 1.5px solid rgba(255,255,255,.4); color: var(--c-white); }
.btn--outline-white:hover { background: rgba(255,255,255,.1); }
.btn--ghost   { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); color: var(--c-white); }
.btn--ghost:hover { background: rgba(255,255,255,.22); }
.btn--sm { padding: 9px 18px; font-size: .74rem; }
.btn--lg { padding: 16px 36px; font-size: .86rem; }
.btn--xl { padding: 20px 44px; font-size: .90rem; }

/* ── BADGE ───────────────────────────────────────────────────── */
.demo-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--c-gold-light);
  border: 1px solid var(--c-gold);
  color: var(--c-gold-hover);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 100px;
}
.demo-badge::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--c-gold);
  animation: pulse 1.6s infinite;
}
.demo-badge--active {
  background: var(--c-blue-light);
  border-color: var(--c-blue);
  color: var(--c-blue);
}
.demo-badge--active::before { background: var(--c-blue); animation: none; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }

/* ── NETWORK BAR ─────────────────────────────────────────────── */
.network-bar {
  background: var(--c-navy);
  padding: 7px 0;
  font-size: .71rem;
  letter-spacing: .05em;
  color: rgba(255,255,255,.5);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.network-bar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.network-bar__disclaimer { color: rgba(255,255,255,.45); }
.network-bar__brand {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--c-gold);
  font-weight: 700;
  letter-spacing: .08em;
  font-size: .70rem;
  text-transform: uppercase;
  transition: opacity .2s;
}
.network-bar__brand:hover { opacity: .8; }
.network-bar__brand svg { width: 12px; height: 12px; }

/* ── LANG SWITCHER (inside nav) ──────────────────────────────── */
.lang-switch {
  display: flex;
  gap: 2px;
}
.lang-switch a {
  padding: 3px 9px;
  border-radius: 100px;
  font-size: .72rem;
  font-weight: 700;
  color: var(--c-grey-text);
  letter-spacing: .04em;
  transition: var(--transition);
}
.lang-switch a:hover { color: var(--c-navy); background: var(--c-blue-light); }
.lang-switch a.active { background: var(--c-navy); color: var(--c-white); }

/* ── HEADER ──────────────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--c-grey-line);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(10px);
}
.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  gap: 12px;
}
.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--c-navy);
  letter-spacing: -.01em;
  line-height: 1;
}
.logo svg { flex-shrink: 0; }
.logo__name { font-size: 1.05rem; font-weight: 600; }
.footer-logo-text {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 400;
  color: var(--c-gold);
  letter-spacing: -.02em;
}
.nav-links {
  display: flex;
  gap: 0;
  list-style: none;
  flex: 1;
  justify-content: center;
}
.nav-links a {
  display: block;
  padding: 6px 12px;
  font-size: .88rem;
  font-weight: 600;
  color: var(--c-dark-text);
  border-radius: var(--radius-xs);
  transition: var(--transition);
  letter-spacing: .01em;
  white-space: nowrap;
}
.nav-links a:hover  { color: var(--c-navy); background: var(--c-blue-light); }
.nav-links a.active { color: var(--c-blue); }
.nav-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 8px;
  border: none;
  background: none;
}
.hamburger span {
  width: 22px; height: 2px;
  background: var(--c-navy);
  border-radius: 2px;
  transition: var(--transition);
  display: block;
}
.mobile-menu {
  display: none;
  position: absolute;
  top: 68px; left: 0; right: 0;
  background: var(--c-white);
  border-bottom: 1px solid var(--c-grey-line);
  box-shadow: 0 12px 32px rgba(28,43,74,.12);
  padding: 8px 0 16px;
  z-index: 199;
}
.mobile-menu.open { display: block; }
.mobile-menu a {
  display: block;
  padding: 13px 24px;
  font-size: .88rem;
  font-weight: 500;
  color: var(--c-grey-text);
  border-bottom: 1px solid var(--c-grey-line);
}
.mobile-menu a:last-child { border: none; }
.mobile-menu a:hover { color: var(--c-blue); background: var(--c-blue-light); }

/* ── HERO ────────────────────────────────────────────────────── */
.hero {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3570 50%, #2B4A8C 100%);
  position: relative;
  overflow: hidden;
  padding: 96px 0 80px;
  color: var(--c-white);
}
.hero__bg-pattern {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 90% 40%, rgba(200,150,10,.10) 0%, transparent 65%),
    radial-gradient(ellipse 40% 40% at 10% 80%, rgba(43,74,140,.4) 0%, transparent 70%),
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.022'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.hero__circle {
  position: absolute;
  right: -140px; top: -140px;
  width: 580px; height: 580px;
  border-radius: 50%;
  background: rgba(255,255,255,.028);
  pointer-events: none;
}
.hero__circle2 {
  position: absolute;
  left: -80px; bottom: -80px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: rgba(200,150,10,.06);
  pointer-events: none;
}
.hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.hero__eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.hero__eyebrow::before {
  content: '';
  display: block;
  width: 32px; height: 1.5px;
  background: var(--c-gold);
}
.hero__tagline {
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5.2vw, 4.4rem);
  font-weight: 700;
  line-height: 1.04;
  margin-bottom: 22px;
  letter-spacing: -.03em;
}
.hero__tagline em {
  font-style: italic;
  font-weight: 400;
  color: rgba(255,255,255,.72);
}
.hero__sub {
  font-size: 1.08rem;
  color: rgba(255,255,255,.72);
  line-height: 1.75;
  margin-bottom: 40px;
  max-width: 440px;
}
.hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 52px; }
.hero__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.10);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.stat {
  background: rgba(255,255,255,.055);
  padding: 22px 16px;
  text-align: center;
  backdrop-filter: blur(8px);
}
.stat__num {
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--c-gold);
  line-height: 1;
  margin-bottom: 5px;
}
.stat__label { font-size: .70rem; color: rgba(255,255,255,.58); letter-spacing: .04em; }

/* ── SEARCH WIDGET ───────────────────────────────────────────── */
.search-widget {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--radius-lg);
  padding: 28px;
  backdrop-filter: blur(18px);
}
.search-tabs {
  display: flex;
  gap: 3px;
  background: rgba(0,0,0,.25);
  border-radius: var(--radius-sm);
  padding: 4px;
  margin-bottom: 22px;
}
.search-tab {
  flex: 1;
  padding: 9px 6px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,.55);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  border-radius: 6px;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.search-tab svg { width: 13px; height: 13px; flex-shrink: 0; }
.search-tab.active { background: var(--c-white); color: var(--c-navy); }
.search-form { display: flex; flex-direction: column; gap: 12px; }
.search-row  { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.search-field { display: flex; flex-direction: column; gap: 4px; }
.search-field label {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(255,255,255,.60);
}
.search-field input,
.search-field select {
  width: 100%;
  padding: 10px 13px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.20);
  border-radius: var(--radius-xs);
  color: var(--c-white);
  font-size: .87rem;
  outline: none;
  transition: var(--transition);
}
.search-field input::placeholder { color: rgba(255,255,255,.36); }
.search-field select option { background: var(--c-navy); color: var(--c-white); }
.search-field input:focus,
.search-field select:focus { border-color: var(--c-gold); background: rgba(255,255,255,.15); }
.search-submit {
  width: 100%;
  padding: 14px;
  background: var(--c-gold);
  color: var(--c-white);
  border: none;
  border-radius: var(--radius-xs);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
}
.search-submit svg { width: 15px; height: 15px; }
.search-submit:hover { background: var(--c-gold-hover); transform: translateY(-1px); }
.search-demo-note {
  margin-top: 8px;
  font-size: .70rem;
  color: rgba(255,255,255,.40);
  text-align: center;
}

/* ── DESTINATIONS GRID ───────────────────────────────────────── */
.dest-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.dest-card {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--c-grey-line);
  background: var(--c-white);
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  text-decoration: none;
}
.dest-card:hover { box-shadow: var(--shadow-card); transform: translateY(-3px); border-color: transparent; }
.dest-card__visual {
  height: 120px;
  background: linear-gradient(135deg, var(--c-blue) 0%, var(--c-navy) 100%);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dest-card__icon {
  width: 52px; height: 52px;
  color: rgba(255,255,255,.22);
  display: flex; align-items: center; justify-content: center;
}
.dest-card__icon svg { width: 44px; height: 44px; }
.dest-badge {
  position: absolute;
  top: 10px; right: 10px;
  background: rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 100px;
  border: 1px solid rgba(255,255,255,.2);
}
.dest-badge--gold {
  background: var(--c-gold);
  color: var(--c-white);
  border-color: transparent;
}
.dest-card__body { padding: 18px; display: flex; flex-direction: column; flex: 1; }
.dest-card__name {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--c-navy);
  margin-bottom: 7px;
  line-height: 1.2;
}
.dest-card__desc {
  font-size: 1.00rem;
  color: var(--c-grey-text);
  line-height: 1.58;
  flex: 1;
  margin-bottom: 14px;
}
.dest-card__tag {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .88rem;
  color: var(--c-grey-text);
  margin-bottom: 12px;
}
.dest-card__tag svg { width: 12px; height: 12px; }
.dest-card__cta {
  font-size: .90rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--c-blue);
  transition: color .2s;
}
.dest-card:hover .dest-card__cta { color: var(--c-gold); }

/* ── TRANSFER / ROUTE CARDS ──────────────────────────────────── */
.transfer-section { padding: 88px 0; }
.transfer-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 36px;
  border-bottom: 2px solid var(--c-grey-line);
  padding-bottom: 0;
}
.transfer-tab {
  padding: 10px 22px;
  font-size: .80rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--c-grey-text);
  cursor: pointer;
  border: none;
  background: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: var(--transition);
}
.transfer-tab.active { color: var(--c-blue); border-bottom-color: var(--c-blue); }
.transfer-tab:hover  { color: var(--c-navy); }
.route-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.route-card {
  background: var(--c-white);
  border: 1px solid var(--c-grey-line);
  border-radius: var(--radius-md);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: var(--transition);
}
.route-card:hover { box-shadow: var(--shadow-card); border-color: transparent; transform: translateY(-2px); }
.route-card--bus { border-left: 3px solid var(--c-blue-mid); }
.route-card__head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--c-navy);
}
.route-card__head svg { width: 14px; height: 14px; color: var(--c-gold); flex-shrink: 0; }
.route-card__from { color: var(--c-grey-text); font-weight: 500; font-size: .92rem; }
.route-card__to   { font-weight: 700; }
.route-card__op   { font-size: .84rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-blue); }
.route-card__meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: .92rem;
  color: var(--c-grey-text);
}
.route-card__meta span { display: flex; align-items: center; gap: 5px; }
.route-card__meta svg { width: 12px; height: 12px; flex-shrink: 0; }
.route-card__price { font-size: 1.08rem; font-weight: 700; color: var(--c-blue); margin-top: 2px; }

/* ── EXPERIENCES TABS ────────────────────────────────────────── */
.exp-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.exp-tab {
  padding: 9px 20px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--c-grey-text);
  background: var(--c-white);
  border: 1.5px solid var(--c-grey-line);
  border-radius: 100px;
  cursor: pointer;
  transition: var(--transition);
}
.exp-tab:hover  { border-color: var(--c-blue); color: var(--c-blue); }
.exp-tab.active { background: var(--c-navy); border-color: var(--c-navy); color: var(--c-white); }
.exp-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.exp-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  background: var(--c-white);
  border: 1px solid var(--c-grey-line);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: var(--transition);
  color: var(--c-navy);
}
.exp-card:hover {
  border-color: var(--c-gold);
  box-shadow: 0 4px 16px rgba(200,150,10,.12);
  transform: translateX(4px);
}
.exp-card__icon { color: var(--c-gold); flex-shrink: 0; }
.exp-card__icon svg { width: 16px; height: 16px; }
.exp-card__name { flex: 1; font-size: .90rem; font-weight: 600; }
.exp-card svg:last-child { width: 14px; height: 14px; color: var(--c-grey-text); flex-shrink: 0; transition: transform .2s; }
.exp-card:hover svg:last-child { transform: translateX(3px); color: var(--c-gold); }

/* ── GYG WIDGET SECTION ──────────────────────────────────────── */
.gyg-section {
  background: var(--c-navy);
  padding: 88px 0;
  border-top: 1px solid var(--c-grey-line);
}
.gyg-widget-wrap { border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-card); }
.gyg-cta-wrap { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 32px; }

/* ── WINE / ENOTURISMO ───────────────────────────────────────── */
.wine-section { background: linear-gradient(160deg, #1a1005 0%, #2d1f06 50%, #1C2B4A 100%); color: var(--c-white); padding: 96px 0; }
.wine-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.wine-content .eyebrow { color: var(--c-gold); }
.wine-content .section-title { color: var(--c-white); }
.wine-content .section-sub { color: rgba(255,255,255,.65); margin-bottom: 32px; }
.wine-features {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 36px;
}
.wine-feature {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  background: rgba(255,255,255,.06);
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--c-gold);
}
.wine-feature__icon { color: var(--c-gold); flex-shrink: 0; margin-top: 2px; }
.wine-feature__icon svg { width: 18px; height: 18px; }
.wine-feature h4 { font-size: 1.02rem; font-weight: 700; color: var(--c-white); margin-bottom: 3px; }
.wine-feature p  { font-size: .92rem; color: rgba(255,255,255,.55); line-height: 1.55; }
.wine-visual {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wine-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-md);
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 72px 1fr;
  align-items: center;
  gap: 16px;
  transition: var(--transition);
}
.wine-card:hover { background: rgba(255,255,255,.11); border-color: rgba(200,150,10,.35); }
.wine-card__num {
  font-family: var(--font-display);
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--c-gold);
  line-height: 1;
  flex-shrink: 0;
  text-align: center;
}
.wine-card__body h4 { font-size: .92rem; font-weight: 700; color: var(--c-white); margin-bottom: 3px; line-height: 1.3; }
.wine-card__body p  { font-size: .78rem; color: rgba(255,255,255,.52); line-height: 1.5; }

/* ── ITINERARIES ─────────────────────────────────────────────── */
.itin-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.itin-card {
  display: flex;
  gap: 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--c-grey-line);
  background: var(--c-white);
  text-decoration: none;
  transition: var(--transition);
}
.itin-card:hover { box-shadow: var(--shadow-card); transform: translateY(-3px); border-color: transparent; }
.itin-card__days {
  background: var(--c-navy);
  color: var(--c-white);
  padding: 20px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  flex-shrink: 0;
}
.itin-card__num  { font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; color: var(--c-gold); line-height: 1; }
.itin-card__unit { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-top: 2px; text-align: center; }
.itin-card__body { padding: 18px 16px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.itin-card__tag  { font-size: .78rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--c-gold); }
.itin-card__title{ font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; color: var(--c-navy); line-height: 1.2; }
.itin-card__cta  { font-size: .86rem; font-weight: 600; color: var(--c-blue); margin-top: 4px; transition: color .2s; }
.itin-card:hover .itin-card__cta { color: var(--c-gold); }

/* ── AFFILIATES GRID ─────────────────────────────────────────── */
.affiliates-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.aff-card {
  background: var(--c-white);
  border: 1px solid var(--c-grey-line);
  border-radius: var(--radius-md);
  padding: 24px 20px 20px;
  transition: var(--transition);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
}
.aff-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--c-blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.aff-card--active::after { background: var(--c-blue); }
.aff-card--demo::after   { background: var(--c-gold); }
.aff-card:hover { box-shadow: var(--shadow-card); transform: translateY(-3px); border-color: transparent; }
.aff-card:hover::after { transform: scaleX(1); }
.aff-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}
.aff-icon {
  width: 44px; height: 44px;
  background: var(--c-blue-light);
  border-radius: var(--radius-xs);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.aff-icon svg { width: 20px; height: 20px; color: var(--c-blue); }
.aff-card h3 {
  font-family: var(--font-display);
  font-size: 1.32rem;
  font-weight: 700;
  color: var(--c-navy);
  margin-bottom: 6px;
  line-height: 1.2;
}
.aff-card p {
  font-size: .82rem;
  color: var(--c-grey-text);
  line-height: 1.58;
  flex: 1;
  margin-bottom: 16px;
}
.aff-cta { display: flex; align-items: center; justify-content: space-between; }
.aff-link {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--c-blue);
  display: flex;
  align-items: center;
  gap: 6px;
}
.aff-link svg { width: 13px; height: 13px; transition: transform .2s; }
.aff-card:hover .aff-link svg { transform: translateX(4px); }

/* ── SERVICES STRIP ──────────────────────────────────────────── */
.services-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.serv-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 22px;
  background: var(--c-white);
  border: 1px solid var(--c-grey-line);
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--c-navy);
  transition: var(--transition);
}
.serv-card:hover { box-shadow: var(--shadow-card); border-color: var(--c-gold); transform: translateY(-2px); }
.serv-card__icon { width: 40px; height: 40px; background: var(--c-gold-light); border-radius: var(--radius-xs); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.serv-card__icon svg { width: 18px; height: 18px; color: var(--c-gold-hover); }
.serv-card__label { flex: 1; font-size: 1.02rem; font-weight: 600; }
.serv-card svg:last-child { width: 14px; height: 14px; color: var(--c-grey-text); transition: transform .2s, color .2s; flex-shrink: 0; }
.serv-card:hover svg:last-child { transform: translateX(3px); color: var(--c-gold); }

/* ── QUOTE BAND ──────────────────────────────────────────────── */
.quote-band {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3167 100%);
  padding: 72px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.quote-band::before {
  content: '\201C';
  position: absolute;
  font-family: var(--font-display);
  font-size: 26rem;
  color: rgba(255,255,255,.022);
  line-height: .8;
  top: -20px; left: 3%;
  pointer-events: none;
}
.quote-band__text {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 400;
  font-style: italic;
  color: var(--c-white);
  max-width: 700px;
  margin: 0 auto 18px;
  line-height: 1.35;
  position: relative;
}
.quote-band__source {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--c-gold);
}

/* ── FOOTER ──────────────────────────────────────────────────── */
.site-footer {
  background: var(--c-navy);
  color: rgba(255,255,255,.65);
  padding: 60px 0 24px;
}
.footer-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 44px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  margin-bottom: 24px;
}
.footer-brand .logo { display: block; margin-bottom: 14px; }
.footer-brand p { font-size: .82rem; line-height: 1.70; color: rgba(255,255,255,.45); max-width: 260px; margin-bottom: 16px; }
.footer-network-tag { font-size: .68rem; color: var(--c-gold); font-weight: 600; letter-spacing: .06em; opacity: .75; }
.footer-col h5 {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.footer-col ul li a { font-size: .82rem; color: rgba(255,255,255,.52); transition: color .2s; }
.footer-col ul li a:hover { color: var(--c-gold); }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .73rem;
  color: rgba(255,255,255,.28);
  flex-wrap: wrap;
  gap: 8px;
}
.footer-bottom a { color: rgba(255,255,255,.38); transition: color .2s; }
.footer-bottom a:hover { color: var(--c-gold); }
.footer-disclaimer {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.05);
  font-size: .78rem;
  color: rgba(255,255,255,.48);
  line-height: 1.65;
  text-align: center;
}

/* ── COOKIE BANNER ───────────────────────────────────────────── */
.cookie-banner {
  position: fixed;
  bottom: 20px; left: 20px; right: 20px;
  background: var(--c-navy);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  z-index: 9999;
  box-shadow: 0 12px 48px rgba(0,0,0,.45);
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
  animation: slideUp .4s ease;
}
.cookie-banner.hidden { display: none; }
@keyframes slideUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.cookie-banner__text { font-size: .80rem; color: rgba(255,255,255,.68); line-height: 1.55; }
.cookie-banner__text a { color: var(--c-gold); text-decoration: underline; }
.cookie-banner__actions { display: flex; gap: 8px; flex-shrink: 0; }
.cookie-btn { padding: 9px 18px; border-radius: var(--radius-xs); font-size: .75rem; font-weight: 700; letter-spacing: .05em; cursor: pointer; border: none; transition: var(--transition); }
.cookie-btn--accept { background: var(--c-gold); color: white; }
.cookie-btn--accept:hover { background: var(--c-gold-hover); }
.cookie-btn--reject { background: rgba(255,255,255,.08); color: rgba(255,255,255,.60); }
.cookie-btn--reject:hover { background: rgba(255,255,255,.14); }

/* ── ANIMATIONS ──────────────────────────────────────────────── */
.fade-in { opacity: 0; transform: translateY(22px); transition: opacity .55s ease, transform .55s ease; }
.fade-in.visible { opacity: 1; transform: none; }

/* ── HERO LOGO ───────────────────────────────────────────────── */
.hero__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.hero__logo-text { display: flex; flex-direction: column; gap: 2px; }
.hero__logo-name {
  font-family: var(--font-display);
  font-size: 1.30rem;
  font-weight: 600;
  color: var(--c-white);
  letter-spacing: -.01em;
  line-height: 1;
}
.hero__logo-sub {
  font-size: .72rem;
  font-weight: 500;
  color: var(--c-gold);
  letter-spacing: .06em;
  opacity: .85;
}

/* ── TRANSFER TABS WRAP ──────────────────────────────────────── */
.transfer-tabs-wrap {
  display: flex;
  gap: 8px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.transfer-tab {
  padding: 10px 22px;
  font-size: .80rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--c-grey-text);
  background: var(--c-white);
  border: 1.5px solid var(--c-grey-line);
  border-radius: 100px;
  cursor: pointer;
  transition: var(--transition);
}
.transfer-tab:hover  { border-color: var(--c-blue); color: var(--c-blue); }
.transfer-tab.active { background: var(--c-navy); border-color: var(--c-navy); color: var(--c-white); }

/* ── FERRY BOX ───────────────────────────────────────────────── */
.ferry-box {
  background: var(--c-white);
  border: 1px solid var(--c-grey-line);
  border-radius: var(--radius-md);
  padding: 40px 32px;
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}
.ferry-box__icon { font-size: 3rem; margin-bottom: 16px; }
.ferry-box h3 {
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--c-navy);
  margin-bottom: 12px;
}
.ferry-box p { font-size: .92rem; color: var(--c-grey-text); line-height: 1.72; }

/* ── SPLIT SECTION ───────────────────────────────────────────── */
.split-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}
.split-section__col .section-title {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
}
.split-section__col p {
  font-size: 1rem;
  color: var(--c-grey-text);
  margin-bottom: 28px;
  line-height: 1.7;
}

/* ── GYG SECTION TITLE — visibile su sfondo scuro ───────────── */
.gyg-section .section-title {
  color: var(--c-white) !important;
}
.gyg-section .section-sub {
  color: rgba(255,255,255,.70) !important;
}

/* ── ITIN GRID COMPACT ───────────────────────────────────────── */
.itin-grid--compact {
  grid-template-columns: 1fr;
  gap: 10px;
}
.itin-grid--compact .itin-card__days { min-width: 56px; }
.itin-grid--compact .itin-card__num  { font-size: 1.8rem; }

/* ── SERVICES STRIP VERTICAL ─────────────────────────────────── */
.services-strip--vertical {
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* ── WINE PARTNERS ───────────────────────────────────────────── */
.wine-partners {
  padding: 20px 24px;
  background: rgba(200,150,10,.10);
  border: 1px solid rgba(200,150,10,.22);
  border-radius: var(--radius-sm);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wine-partners p {
  font-size: .70rem;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: 4px;
}
.wine-partners a {
  color: var(--c-gold);
  font-size: .84rem;
  font-weight: 600;
  transition: opacity .2s;
}
.wine-partners a:hover { opacity: .75; }

/* ── FOOTER LOGO ─────────────────────────────────────────────── */
.footer-logo-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.footer-logo-name {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  line-height: 1;
}
.footer-logo-sub {
  font-size: .68rem;
  color: var(--c-gold);
  font-weight: 500;
  opacity: .75;
  margin-top: 2px;
}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .dest-grid       { grid-template-columns: repeat(2, 1fr); }
  .affiliates-grid { grid-template-columns: repeat(3, 1fr); }
  .itin-grid       { grid-template-columns: repeat(2, 1fr); }
  .route-grid      { grid-template-columns: repeat(2, 1fr); }
  .services-strip  { grid-template-columns: repeat(2, 1fr); }
  .wine-grid       { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .hero__inner { grid-template-columns: 1fr; gap: 48px; }
  .search-widget { max-width: 580px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .section { padding: 60px 0; }
  .hero { padding: 64px 0 52px; }
  .nav-links, .nav-actions .btn { display: none; }
  .hamburger { display: flex; }
  .affiliates-grid { grid-template-columns: 1fr 1fr; }
  .dest-grid       { grid-template-columns: 1fr 1fr; }
  .itin-grid       { grid-template-columns: 1fr; }
  .route-grid      { grid-template-columns: 1fr 1fr; }
  .services-strip  { grid-template-columns: 1fr 1fr; }
  .exp-content     { grid-template-columns: 1fr; }
  .search-row      { grid-template-columns: 1fr; }
  .footer-top      { grid-template-columns: 1fr; }
  .footer-bottom   { flex-direction: column; text-align: center; }
  .cookie-banner   { flex-direction: column; bottom: 0; left: 0; right: 0; border-radius: var(--radius-md) var(--radius-md) 0 0; }
  .hero__stats     { grid-template-columns: repeat(3, 1fr); }
  .network-bar .container { flex-direction: column; gap: 4px; text-align: center; }
}
@media (max-width: 480px) {
  :root { --gutter: 16px; }
  .affiliates-grid { grid-template-columns: 1fr; }
  .dest-grid       { grid-template-columns: 1fr; }
  .route-grid      { grid-template-columns: 1fr; }
  .services-strip  { grid-template-columns: 1fr; }
  .hero__stats     { grid-template-columns: repeat(3, 1fr); gap: 1px; }
  .itin-card__num  { font-size: 1.8rem; }
}

/* ── SPLIT SECTION RESPONSIVE ────────────────────────────────── */
@media (max-width: 900px) {
  .split-section { grid-template-columns: 1fr; gap: 48px; }
  .itin-grid--compact { grid-template-columns: repeat(2,1fr); }
  .services-strip--vertical { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 600px) {
  .itin-grid--compact { grid-template-columns: 1fr; }
  .services-strip--vertical { grid-template-columns: 1fr; }
  .hero__logo-name { font-size: 1.05rem; }
}

/* ── PAGE HERO INNER PAGES — v2 ────────────────────────────── */
.page-hero {
  background:linear-gradient(135deg,var(--c-navy) 0%,#1e3570 50%,#2B4A8C 100%);
  padding:72px 0 60px; color:var(--c-white);
  position:relative; overflow:hidden;
}
.page-hero__bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 80% at 90% 40%,rgba(200,150,10,.10) 0%,transparent 65%),
    radial-gradient(ellipse 40% 40% at 10% 80%,rgba(43,74,140,.4) 0%,transparent 70%),
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.022'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events:none;
}
.page-hero__circle  { position:absolute; right:-140px; top:-140px; width:580px; height:580px; border-radius:50%; background:rgba(255,255,255,.028); pointer-events:none; }
.page-hero__circle2 { position:absolute; left:-80px; bottom:-80px; width:320px; height:320px; border-radius:50%; background:rgba(200,150,10,.06); pointer-events:none; }
.page-hero__inner { position:relative; z-index:2; }
.page-hero__eyebrow { font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--c-gold); display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.page-hero__eyebrow::before { content:''; width:28px; height:1.5px; background:var(--c-gold); }
.page-hero__title { font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.4rem); font-weight:700; line-height:1.08; margin-bottom:18px; }
.page-hero__sub { font-size:1.08rem; color:rgba(255,255,255,.72); line-height:1.72; max-width:580px; margin-bottom:32px; }

/* ── PAGE HERO HOME LOGO ── */
.page-hero__home-logo {
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:28px; text-decoration:none;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.12);
  width:100%;
}
.page-hero__home-logo:hover .page-hero__home-logo-name { color:var(--c-gold); }
.page-hero__home-logo-text { display:flex; flex-direction:column; gap:2px; }
.page-hero__home-logo-name { font-family:var(--font-display); font-size:1.30rem; font-weight:600; color:var(--c-white); line-height:1; transition:color .2s; }
.page-hero__home-logo-sub  { font-size:.72rem; color:var(--c-gold); font-weight:500; opacity:.85; letter-spacing:.06em; }

/* ── NETWORK BAR DISCLAIMER più chiaro ── */
.network-bar__disclaimer { color:rgba(255,255,255,.62) !important; font-size:.72rem; }

/* ── FOOTER AI NOTE ── */
.footer-ai-note { font-size:.72rem; color:rgba(255,255,255,.28); margin-top:2px; font-style:italic; }

/* ── BANNER SLOT (segnaposto ADV) ── */
.banner-slot {
  display: flex; align-items: center; justify-content: center;
  min-height: 90px;
  border: 1.5px dashed var(--c-grey-line);
  border-radius: var(--radius-md);
  background: #FAFBFC;
  color: var(--c-grey-text);
  font-size: .78rem; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase;
  text-align: center;
  padding: 12px 20px;
}

/* Network banners: full artwork without cropping. */
.icc-banner{max-width:1100px;margin:32px auto;padding:0 20px;box-sizing:content-box}.icc-banner a{display:block;text-decoration:none}.icc-banner img{display:block;width:100%;height:auto;border-radius:10px}.icc-ids{background:#143b32;color:#fff!important;border-radius:10px;padding:24px 32px;display:flex!important;align-items:center;justify-content:space-between;gap:20px}.icc-ids strong{display:block;font-size:clamp(22px,3vw,34px);color:#fff}.icc-ids small{color:#efe4c8}.icc-ids span:last-child{background:#e9cf8e;color:#193d33;border-radius:5px;padding:12px 18px;white-space:nowrap}.footer-ai-note{font-size:12px;line-height:1.6}@media(max-width:600px){.icc-banner{margin:24px auto}.icc-ids{padding:22px;flex-direction:column;align-items:flex-start!important}}


@media(max-width:600px){}

/* White strip before the final blue band: exact 30px bottom gap. */
.icc-banner-white{display:flow-root;background:#fff;padding:30px 0;clear:both}
.icc-banner-white .icc-banner--before-blue{margin:0 auto}
.icc-banner-white + .quote-band,.icc-banner-white + .cta-band,.icc-banner-white + .site-footer{margin-top:0}
