/* ===== PAGINA GALLERIA: hero + annate ===== */
.gl-hero,.gl-years{
  --gl-navy:#2c4366;
  --gl-blue:#3a73cc;
  --gl-blue-dark:#2f62b5;
  --gl-soft:#e9f0fb;
  --gl-ink:#4a5b78;
  font-family:"Open Sans",system-ui,sans-serif;
  color:var(--gl-ink);
}
.gl-hero *,.gl-years *,.gl-hero *::before,.gl-years *::before{box-sizing:border-box}
.gl-container{max-width:1400px;margin:0 auto;padding:0 36px}

/* ---- HERO ---- */
.gl-hero{
  text-align:center;padding:104px 0 80px;
  background:
    radial-gradient(60% 70% at 15% 20%,rgba(58,115,204,.09),transparent 70%),
    radial-gradient(50% 60% at 85% 30%,rgba(58,115,204,.07),transparent 70%),
    #fff;
}
.gl-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 24px;border-radius:999px;background:var(--gl-soft);color:var(--gl-blue);font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
.gl-badge i{font-size:1.1rem}
.gl-title{font-family:Raleway,sans-serif;font-weight:800;font-size:clamp(3rem,6vw,4.6rem);line-height:1.1;color:var(--gl-navy);margin:20px 0 0;letter-spacing:-.02em}
.gl-bar{width:84px;height:4px;border-radius:2px;background:var(--gl-blue);margin:24px auto 34px}
.gl-lead{max-width:780px;margin:0 auto;font-size:1.3rem;line-height:1.75;color:#44587a}
.gl-quick{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}
.gl-quick-label{font-weight:600;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;color:#6b778c;margin-right:6px}
.gl-pill{padding:11px 24px;border-radius:999px;background:var(--gl-soft);color:var(--gl-navy);font-weight:600;font-size:1rem;letter-spacing:.03em;text-decoration:none;transition:background-color .2s,color .2s,transform .2s}
.gl-pill:hover{background:#d3e1f8;color:var(--gl-navy);transform:translateY(-2px)}
.gl-pill.is-active,.gl-pill.is-active:hover{background:var(--gl-blue);color:#fff;box-shadow:0 8px 18px -8px rgba(58,115,204,.7)}

/* ---- ANNATE ---- */
.gl-years{background:#eef4fd;padding:96px 0 104px}
.gl-years-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 60px;margin-bottom:44px}
.gl-eyebrow{display:block;font-weight:700;font-size:.92rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gl-blue);margin-bottom:6px}
.gl-years-head h2{font-family:Raleway,sans-serif;font-weight:700;font-size:clamp(2rem,3.6vw,3rem);line-height:1.15;color:var(--gl-navy);margin:0;letter-spacing:-.01em}
.gl-years-head p{max-width:46ch;margin:0;font-size:1.02rem;line-height:1.8}

.gl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
.gl-card{
  display:flex;flex-direction:column;min-height:232px;padding:36px;border-radius:16px;
  background:#fff;color:var(--gl-ink);text-decoration:none;
  box-shadow:0 4px 18px -10px rgba(44,67,102,.22);
  transition:transform .25s ease,box-shadow .25s ease;
}
.gl-card:hover{transform:translateY(-6px);box-shadow:0 18px 34px -16px rgba(44,67,102,.4);color:var(--gl-ink)}
.gl-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:auto;padding-bottom:26px}
.gl-icon{width:48px;height:48px;border-radius:12px;background:var(--gl-soft);color:var(--gl-blue);display:grid;place-items:center;font-size:1.35rem}
.gl-tag{padding:5px 12px;border-radius:999px;background:#eef2f8;color:var(--gl-navy);font-weight:700;font-size:.82rem;letter-spacing:.07em}
.gl-year{font-family:Raleway,sans-serif;font-weight:800;font-size:2.7rem;line-height:1;color:var(--gl-navy);margin-bottom:10px}
.gl-meta{font-size:1.02rem}

/* annata corrente */
.gl-card--current{
  background:linear-gradient(135deg,#3a73cc 0%,#4a82d8 100%);color:#e6efff;
  box-shadow:0 14px 28px -14px rgba(58,115,204,.8);
}
.gl-card--current:hover{color:#fff;box-shadow:0 20px 36px -14px rgba(58,115,204,.9)}
.gl-card--current .gl-icon{background:rgba(255,255,255,.2);color:#fff}
.gl-card--current .gl-tag{background:rgba(255,255,255,.22);color:#fff}
.gl-card--current .gl-year{color:#fff}

.gl-card:focus-visible,.gl-pill:focus-visible{outline:3px solid var(--gl-blue);outline-offset:3px}

/* ---- responsive ---- */
@media (max-width:1100px){.gl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:768px){
  .gl-container{padding:0 20px}
  .gl-hero{padding:64px 0 52px}
  .gl-lead{font-size:1.08rem}
  .gl-quick-label{width:100%;margin:0 0 2px}
  .gl-years{padding:56px 0 64px}
  .gl-grid{gap:16px}
  .gl-card{padding:24px;min-height:200px}
  .gl-year{font-size:2.2rem}
}
@media (max-width:480px){.gl-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.gl-card,.gl-pill{transition:none}}