/* ClubPortal — Service Hub (sito pubblico): /service, pagina-storia del progetto, sezione in home.
   Colori dal tema del club (--club-primary/--club-accent/--club-navy) + colore dell'area (--area). */

:root {
  --svc-ok: #0f7a3d;
  --svc-shadow: 0 1px 2px rgba(2,6,23,.06), 0 8px 24px rgba(2,6,23,.08);
  --svc-shadow-lg: 0 2px 6px rgba(2,6,23,.08), 0 24px 48px rgba(2,6,23,.16);
  --svc-ease: cubic-bezier(.2,.7,.2,1);
}

.svc-kicker { display:inline-flex; align-items:center; gap:.45rem; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--club-accent); margin-bottom:.9rem; }

/* ── Barre di avanzamento (animate quando entrano in vista) ── */
.svc-bar, .svc-thermo, .svc-hbar, .svc-slot-bar { display:block; position:relative; overflow:hidden; border-radius:999px; background:color-mix(in srgb, var(--club-primary) 10%, #eef2f7); }
.svc-bar { height:6px; }
.svc-bar > span, .svc-thermo > span, .svc-hbar > span, .svc-slot-bar > span {
  position:absolute; inset:0 auto 0 0; width:var(--pct); border-radius:inherit;
  background:var(--area, var(--club-primary)); transition:width 1.4s var(--svc-ease);
}
.js .svc-bar > span, .js .svc-thermo > span, .js .svc-hbar > span, .js .svc-slot-bar > span { width:0; }
.js .svc-bar.is-in > span, .js .svc-thermo.is-in > span, .js .svc-hbar.is-in > span, .js .svc-slot-bar.is-in > span { width:var(--pct); }
.svc-bar-funds > span, .svc-thermo > span { background:linear-gradient(90deg, color-mix(in srgb, var(--club-accent) 80%, #fff), var(--club-accent)); }

/* ── Impatto (contatori) ── */
.svc-impact { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:1px; border-radius:18px; overflow:hidden; }
.svc-impact-item { flex:1 1 calc(50% - 1px); display:flex; flex-direction:column; gap:.15rem; padding:1.15rem 1.1rem 1.25rem; }
.svc-impact-item > i { font-size:1.25rem; color:var(--club-accent); margin-bottom:.35rem; }
.svc-impact-num { font-size:clamp(1.7rem, 6.5vw, 2.6rem); font-weight:800; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; }
.svc-impact-label { font-size:.86rem; line-height:1.3; opacity:.85; }
@media (min-width: 768px) { .svc-impact-item { flex-basis:calc(33.33% - 1px); } }
@media (min-width: 1200px) { .svc-impact-item { flex-basis:0; padding:1.5rem 1.4rem; } }
.svc-impact-hero, .svc-impact-home { background:rgba(255,255,255,.14); }
.svc-impact-hero .svc-impact-item, .svc-impact-home .svc-impact-item { background:color-mix(in srgb, var(--club-navy) 82%, transparent); backdrop-filter:blur(6px); color:#fff; }

/* ── /service: hero ── */
.svc-hub-hero {
  position:relative; color:#fff; padding:clamp(3.5rem, 9vw, 6.5rem) 0 clamp(2rem, 5vw, 3.5rem); overflow:hidden;
  background:
    radial-gradient(1200px 500px at 85% -10%, color-mix(in srgb, var(--club-accent) 28%, transparent), transparent 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--club-navy) 80%, transparent), var(--club-navy) 92%),
    var(--hero-img, linear-gradient(135deg, var(--club-navy), var(--club-primary))) center/cover no-repeat;
}
.svc-hub-hero-inner { max-width:760px; margin-bottom:clamp(2rem, 5vw, 3.25rem); }
.svc-hub-hero h1 { font-weight:800; font-size:clamp(2.2rem, 6vw, 4rem); line-height:1.02; letter-spacing:-.035em; margin:0; text-wrap:balance; }
.svc-hub-lead { font-size:clamp(1.05rem, 1.8vw, 1.3rem); color:rgba(255,255,255,.86); margin:1.2rem 0 0; max-width:620px; line-height:1.5; }

/* ── Filtri ── */
.svc-filters { position:sticky; top:var(--hdr-h, 0px); z-index:1020; background:rgba(255,255,255,.92); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line); }
.svc-filters-inner { display:flex; gap:.75rem 1.25rem; align-items:center; justify-content:space-between; padding:.75rem 0; }
.svc-chips { display:flex; gap:.4rem; overflow-x:auto; scrollbar-width:none; padding:.15rem; margin:-.15rem; min-width:0; }
@media (max-width: 991.98px) { .svc-chips { -webkit-mask-image:linear-gradient(90deg, #000 90%, transparent); mask-image:linear-gradient(90deg, #000 90%, transparent); padding-right:2rem; } }
.svc-chips::-webkit-scrollbar { display:none; }
.svc-chip { flex-shrink:0; display:inline-flex; align-items:center; gap:.4rem; padding:.38rem .8rem .38rem .45rem; border-radius:999px; font-size:.86rem; font-weight:600; color:var(--ink-soft); text-decoration:none; background:#fff; box-shadow:inset 0 0 0 1px var(--line); transition:background .15s, color .15s, box-shadow .15s; white-space:nowrap; }
.svc-chip:first-child { padding-left:.85rem; }
.svc-chip:hover { color:var(--ink); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--area, var(--club-primary)) 60%, #fff); }
.svc-chip-dot { width:1.5rem; height:1.5rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--area); color:#fff; font-size:.75rem; }
.svc-chip-n { font-size:.72rem; font-weight:700; color:var(--muted); background:var(--tint); border-radius:999px; padding:.05rem .45rem; }
.svc-chip.is-on { background:var(--area, var(--club-primary)); color:#fff; box-shadow:none; }
.svc-chip.is-on .svc-chip-dot { background:rgba(255,255,255,.22); }
.svc-chip.is-on .svc-chip-n { background:rgba(255,255,255,.22); color:#fff; }
.svc-seg { flex-shrink:0; display:inline-flex; padding:3px; border-radius:999px; background:#eef2f7; }
.svc-seg-btn { padding:.32rem .85rem; border-radius:999px; font-size:.84rem; font-weight:700; color:var(--ink-soft); text-decoration:none; white-space:nowrap; }
.svc-seg-btn:hover { color:var(--ink); }
.svc-seg-btn.is-on { background:#fff; color:var(--club-primary); box-shadow:0 1px 3px rgba(2,6,23,.15); }
@media (max-width: 991.98px) { .svc-filters-inner { flex-direction:column; align-items:stretch; gap:.55rem; } .svc-seg { align-self:flex-start; } }
.svc-chip:focus-visible, .svc-seg-btn:focus-visible { outline:3px solid var(--club-accent); outline-offset:2px; }

/* ── Mappa ── */
.svc-map-section { padding:clamp(2.5rem, 6vw, 4rem) 0 0; }
.svc-map-head { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:.25rem 1.5rem; margin-bottom:1rem; }
.svc-map-head h2 { font-weight:800; font-size:clamp(1.5rem, 3vw, 2.1rem); letter-spacing:-.015em; margin:0; }
.svc-map-head p { color:var(--muted); margin:0; font-size:.94rem; }
.svc-map-wrap { border-radius:20px; overflow:hidden; box-shadow:var(--svc-shadow), 0 0 0 1px var(--line); }
.svc-map { height:clamp(320px, 52vh, 520px); background:#e8eef4; z-index:0; }
.svc-pin { background:none; border:0; }
.svc-pin span { position:relative; display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--c); border:3px solid #fff; box-shadow:0 6px 14px rgba(2,6,23,.3); transition:transform .2s; }
.svc-pin span i { transform:rotate(45deg); color:#fff; font-size:1rem; }
.svc-pin:hover span, .svc-pin:focus span { transform:rotate(-45deg) scale(1.12); }
.svc-pin.is-live span::after { content:""; position:absolute; inset:-9px; border-radius:inherit; border:2px solid var(--c); opacity:.0; animation:svc-ping 2.2s infinite; }
@keyframes svc-ping { 0% { opacity:.7; transform:scale(.8); } 100% { opacity:0; transform:scale(1.5); } }
.leaflet-popup-content-wrapper { border-radius:16px; padding:0; overflow:hidden; box-shadow:var(--svc-shadow-lg); }
.leaflet-popup-content { margin:0; width:260px !important; font-family:'Open Sans', system-ui, sans-serif; }
.svc-pop-img { aspect-ratio:16/9; background:linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 60%, #000)); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.75); font-size:2rem; }
.svc-pop-img img { width:100%; height:100%; object-fit:cover; }
.svc-pop-body { padding:.85rem 1rem 1rem; }
.svc-pop-area { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--c); }
.svc-pop-title { font-weight:800; font-size:1rem; line-height:1.25; margin:.25rem 0 .35rem; color:var(--ink); }
.svc-pop-text { font-size:.84rem; color:var(--ink-soft); margin:0 0 .6rem; line-height:1.4; }
.leaflet-container a.svc-pop-go { font-weight:700; font-size:.86rem; color:var(--club-primary); text-decoration:none; }
.leaflet-container a.leaflet-popup-close-button { color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.6); top:6px; right:6px; }

/* ── Griglia e card ── */
.svc-grid-section { padding:clamp(2.5rem, 6vw, 4rem) 0 clamp(3rem, 7vw, 5rem); }
.svc-result { color:var(--muted); font-weight:600; font-size:.92rem; }
.svc-empty { text-align:center; padding:3rem 1rem; color:var(--muted); }
.svc-empty i { font-size:2.4rem; color:color-mix(in srgb, var(--club-primary) 40%, #fff); }
.svc-empty p { margin:.75rem 0 1.25rem; font-size:1.05rem; }

.svc-card { position:relative; height:100%; display:flex; flex-direction:column; background:#fff; border-radius:18px; overflow:hidden; color:var(--ink);
  box-shadow:0 1px 2px rgba(2,6,23,.06), 0 0 0 1px var(--line); transition:transform .25s var(--svc-ease), box-shadow .25s; }
.svc-card:hover { transform:translateY(-4px); box-shadow:var(--svc-shadow-lg), 0 0 0 1px var(--line); }
.svc-card:focus-within { box-shadow:0 0 0 3px var(--club-accent), var(--svc-shadow-lg); }
.svc-card-img { position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--tint); }
.svc-card-img::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(2,6,23,.38), transparent 38%); pointer-events:none; }
.svc-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--svc-ease); }
.svc-card:hover .svc-card-img img { transform:scale(1.05); }
.svc-card-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3.2rem; color:rgba(255,255,255,.8);
  background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--area) 70%, #fff), var(--area) 55%, color-mix(in srgb, var(--area) 55%, #000)); }
.svc-area-tag { position:absolute; z-index:1; top:.75rem; left:.75rem; display:inline-flex; align-items:center; gap:.35rem; padding:.28rem .65rem .28rem .5rem; border-radius:999px;
  background:var(--area, var(--club-primary)); color:#fff; font-size:.74rem; font-weight:700; letter-spacing:.01em; box-shadow:0 2px 8px rgba(2,6,23,.25); }
.svc-stage { position:absolute; z-index:1; top:.75rem; right:.75rem; display:inline-flex; align-items:center; gap:.35rem; padding:.28rem .65rem; border-radius:999px;
  background:rgba(255,255,255,.94); color:var(--ink); font-size:.74rem; font-weight:700; }
.svc-stage.is-live { color:#7a4a00; }
.svc-dot { width:8px; height:8px; border-radius:50%; background:#f59e0b; box-shadow:0 0 0 0 rgba(245,158,11,.6); animation:svc-pulse 2s infinite; }
@keyframes svc-pulse { 70% { box-shadow:0 0 0 7px rgba(245,158,11,0); } 100% { box-shadow:0 0 0 0 rgba(245,158,11,0); } }
.svc-card-body { flex:1; display:flex; flex-direction:column; padding:1.1rem 1.25rem 1.2rem; }
.svc-card-meta { font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:.35rem; }
.svc-card-title { font-size:1.18rem; font-weight:800; line-height:1.25; letter-spacing:-.01em; margin:0 0 .45rem; }
.svc-card-title a { color:var(--ink); text-decoration:none; }
.svc-card-title a::after { content:""; position:absolute; inset:0; z-index:2; }
.svc-card-title a:focus { outline:none; }
.svc-card-text { color:var(--ink-soft); font-size:.93rem; line-height:1.5; margin:0 0 .9rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.svc-card-kpi { display:grid; gap:.7rem; padding:.85rem 0 .1rem; border-top:1px dashed var(--line); margin-bottom:.8rem; }
.svc-mini-row { display:flex; justify-content:space-between; align-items:baseline; gap:.5rem; font-size:.83rem; color:var(--ink-soft); margin-bottom:.3rem; }
.svc-mini-row i { color:var(--area); }
.svc-mini-row strong { color:var(--ink); font-size:.95rem; white-space:nowrap; font-variant-numeric:tabular-nums; }
.svc-mini-goal { color:var(--muted); font-weight:600; font-size:.8rem; }
.svc-card-badges { display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:.85rem; }
.svc-badge { display:inline-flex; align-items:center; gap:.3rem; font-size:.74rem; font-weight:700; padding:.2rem .55rem; border-radius:6px; background:var(--tint); color:var(--club-primary); }
.svc-badge-hot { background:color-mix(in srgb, var(--club-accent) 20%, #fff); color:#7a4a00; }
.svc-card-go { margin-top:auto; font-size:.86rem; font-weight:700; color:var(--club-primary); }
.svc-card-go i { display:inline-block; transition:transform .2s; }
.svc-card:hover .svc-card-go i { transform:translateX(4px); }

/* ── Home ── */
.svc-home { background:
  radial-gradient(900px 500px at 100% 0%, color-mix(in srgb, var(--club-primary) 75%, transparent), transparent 70%),
  linear-gradient(160deg, var(--club-navy), color-mix(in srgb, var(--club-navy) 70%, var(--club-primary))); color:#fff; }
.svc-home-head { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1rem 2rem; margin-bottom:1.75rem; }
.svc-home-head h2 { font-weight:800; font-size:clamp(1.7rem, 3.6vw, 2.5rem); letter-spacing:-.025em; margin:0; }
.svc-home-head p { color:rgba(255,255,255,.78); margin:.5rem 0 0; }
.svc-home .svc-kicker { margin-bottom:.5rem; }
.svc-impact-home { margin-bottom:1.5rem; }

/* ── Pagina progetto: hero ── */
.svc-ph { position:relative; color:#fff; min-height:min(78vh, 720px); display:flex; align-items:flex-end; padding:clamp(5rem, 14vw, 9rem) 0 clamp(5.5rem, 10vw, 7.5rem);
  background:
    linear-gradient(180deg, rgba(2,6,23,.15) 0%, rgba(2,6,23,.35) 35%, color-mix(in srgb, var(--club-navy) 94%, transparent) 100%),
    linear-gradient(90deg, color-mix(in srgb, var(--club-navy) 70%, transparent), transparent 70%),
    var(--hero-img, radial-gradient(circle at 70% 20%, color-mix(in srgb, var(--area) 75%, #fff), var(--area) 45%, var(--club-navy))) center/cover no-repeat; }
.svc-ph-inner { position:relative; }
.svc-back { display:inline-flex; gap:.4rem; align-items:center; color:rgba(255,255,255,.85); font-weight:600; font-size:.9rem; text-decoration:none; margin-bottom:1.5rem; padding:.3rem .75rem .3rem .55rem; border-radius:999px; background:rgba(2,6,23,.3); backdrop-filter:blur(6px); }
.svc-back:hover { color:#fff; background:rgba(2,6,23,.5); }
.svc-ph-tags { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .75rem; margin-bottom:1rem; }
.svc-ph-tags .svc-area-tag, .svc-ph-tags .svc-stage { position:static; }
.svc-area-tag-lg, .svc-stage-lg { font-size:.82rem; padding:.36rem .8rem .36rem .6rem; }
.svc-ph-year { font-size:.82rem; font-weight:600; color:rgba(255,255,255,.8); }
.svc-ph h1 { font-weight:800; font-size:clamp(2.3rem, 7vw, 4.6rem); line-height:1; letter-spacing:-.04em; margin:0; max-width:15ch; text-wrap:balance; text-shadow:0 2px 24px rgba(2,6,23,.35); }
.svc-ph-tagline { font-size:clamp(1.15rem, 2.4vw, 1.6rem); font-weight:600; line-height:1.35; color:rgba(255,255,255,.92); max-width:720px; margin:1.1rem 0 0; text-wrap:pretty; }
.svc-ph-facts { list-style:none; padding:0; margin:1.5rem 0 0; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; font-size:.92rem; color:rgba(255,255,255,.85); }
.svc-ph-facts li { display:flex; align-items:center; gap:.45rem; }
.svc-ph-facts i { color:var(--club-accent); }
.svc-ph-cta { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.75rem; }

/* KPI sovrapposti al fondo dell'hero */
.svc-kpis-wrap { position:relative; z-index:2; margin-top:clamp(-4.5rem, -8vw, -3rem); }
.svc-kpis { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap:.75rem; }
@media (max-width: 575.98px) { .svc-kpis { grid-template-columns:1fr 1fr; gap:.6rem; } }
.svc-kpi { --area:var(--club-primary); display:flex; flex-direction:column; background:#fff; border-radius:18px; padding:1.1rem 1.15rem 1.15rem; box-shadow:var(--svc-shadow-lg), 0 0 0 1px var(--line); }
.svc-kpi-icon { width:2.3rem; height:2.3rem; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:var(--tint); color:var(--club-primary); font-size:1.15rem; margin-bottom:.7rem; }
.svc-kpi-num { font-size:clamp(1.6rem, 5vw, 2.35rem); font-weight:800; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; color:var(--ink); }
.svc-kpi-label { font-size:.86rem; color:var(--ink-soft); margin:.3rem 0 .75rem; line-height:1.3; }
.svc-kpi .svc-bar { margin-top:auto; height:7px; }
.svc-kpi-goal { font-size:.76rem; color:var(--muted); margin-top:.45rem; }
.svc-kpi-goal strong { color:var(--ink); }

/* Sotto-navigazione */
.svc-subnav { position:sticky; top:var(--hdr-h, 0px); z-index:1010; background:rgba(255,255,255,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); margin-top:2rem; }
.svc-subnav ul { list-style:none; margin:0; padding:0; display:flex; gap:.25rem; overflow-x:auto; scrollbar-width:none; }
.svc-subnav ul::-webkit-scrollbar { display:none; }
.svc-subnav a { display:block; padding:.85rem .85rem; font-size:.9rem; font-weight:700; color:var(--ink-soft); text-decoration:none; white-space:nowrap; box-shadow:inset 0 -3px 0 transparent; transition:color .15s, box-shadow .15s; }
.svc-subnav a:hover { color:var(--ink); }
.svc-subnav a.is-active { color:var(--club-primary); box-shadow:inset 0 -3px 0 var(--club-accent); }
[id] { scroll-margin-top:calc(var(--hdr-h, 80px) + 64px); }

/* Storia + colonna */
.svc-main { padding-top:clamp(2.25rem, 5vw, 3.5rem); padding-bottom:clamp(2.5rem, 6vw, 4rem); }
.svc-sec { padding:clamp(2.5rem, 6vw, 4.5rem) 0; }
.svc-main .svc-sec { padding:0; }
.svc-h { font-weight:800; font-size:clamp(1.6rem, 3.4vw, 2.3rem); letter-spacing:-.025em; margin:0 0 1.1rem; }
.svc-sec-head { max-width:680px; margin-bottom:2rem; }
.svc-sec-head .svc-h { margin-bottom:.4rem; }
.svc-sec-head p { color:var(--ink-soft); margin:0; font-size:1.05rem; }
.svc-lead { font-size:clamp(1.15rem, 2vw, 1.35rem); line-height:1.55; color:var(--ink); font-weight:600; margin-bottom:1.5rem; }
.svc-prose { font-size:1.08rem; }
.svc-prose ul { padding-left:1.2rem; }
.svc-prose li::marker { color:var(--club-accent); }

.svc-aside { display:flex; flex-direction:column; gap:1.25rem; }
.svc-funds { --area:var(--club-accent); border-radius:20px; padding:1.4rem 1.4rem 1.3rem; color:#fff; background:
  radial-gradient(400px 200px at 100% 0%, color-mix(in srgb, var(--club-accent) 30%, transparent), transparent 70%),
  linear-gradient(150deg, var(--club-primary), var(--club-navy)); box-shadow:var(--svc-shadow-lg); }
.svc-funds-k { font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--club-accent); }
.svc-funds-num { font-size:clamp(2.2rem, 5vw, 2.8rem); font-weight:800; letter-spacing:-.03em; line-height:1.05; margin-top:.35rem; font-variant-numeric:tabular-nums; }
.svc-funds-goal { color:rgba(255,255,255,.82); font-size:.92rem; margin:.2rem 0 1rem; }
.svc-funds-goal strong { color:#fff; }
.svc-thermo { height:14px; background:rgba(255,255,255,.16); }
.svc-thermo > span { box-shadow:0 0 18px color-mix(in srgb, var(--club-accent) 70%, transparent); }
.svc-funds-row { display:flex; justify-content:space-between; gap:1rem; font-size:.84rem; color:rgba(255,255,255,.85); margin-top:.5rem; }
.svc-funds-row strong { color:#fff; }
.svc-funds-note { font-size:.78rem; color:rgba(255,255,255,.7); margin:.6rem 0 0; text-align:center; }
.svc-funds .btn-outline-primary { color:#fff; border-color:rgba(255,255,255,.5); }
.svc-funds .btn-outline-primary:hover { background:#fff; color:var(--club-primary); }

.svc-facts { border-radius:20px; padding:1.3rem 1.4rem; background:#fff; box-shadow:0 0 0 1px var(--line); }
.svc-facts-h { font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin:0 0 .75rem; }
.svc-facts dl { margin:0; }
.svc-facts dl > div { display:grid; grid-template-columns:7.5rem 1fr; gap:.75rem; padding:.55rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.svc-facts dl > div:last-child { border-bottom:0; }
.svc-facts dt { font-weight:600; color:var(--muted); }
.svc-facts dd { margin:0; font-weight:600; color:var(--ink); }
.svc-dot-area { display:inline-block; width:.6rem; height:.6rem; border-radius:50%; background:var(--area); margin-right:.4rem; }
.svc-place-map { height:200px; border-radius:14px; margin-top:1rem; overflow:hidden; background:#e8eef4; z-index:0; }
.svc-maplink { display:inline-block; font-size:.84rem; font-weight:700; text-decoration:none; margin-top:.5rem; }
.svc-share { display:flex; align-items:center; gap:.4rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.svc-share > span { font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin-right:auto; }
.svc-share a, .svc-share button { width:2.4rem; height:2.4rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; border:0; background:var(--tint); color:var(--club-primary); font-size:1.05rem; transition:background .15s, color .15s; }
.svc-share a:hover, .svc-share button:hover { background:var(--club-primary); color:#fff; }
.svc-share button.is-done { background:var(--svc-ok); color:#fff; }

/* Diario: timeline */
.svc-main .svc-sec + .svc-sec { margin-top:clamp(2.5rem, 6vw, 4rem); }
.svc-timeline { list-style:none; margin:0; padding:0; position:relative; max-width:920px; }
.svc-timeline::before { content:""; position:absolute; top:.5rem; bottom:.5rem; left:calc(var(--tl-date) + var(--tl-gap) + 19px); width:2px; background:linear-gradient(180deg, var(--club-primary), color-mix(in srgb, var(--club-primary) 15%, transparent)); }
.svc-timeline { --tl-date:5.5rem; --tl-gap:1rem; }
.svc-tl { position:relative; display:grid; grid-template-columns:var(--tl-date) 40px 1fr; gap:var(--tl-gap); padding-bottom:2rem; }
.svc-tl:last-child { padding-bottom:0; }
.svc-tl-date { text-align:right; padding-top:.35rem; line-height:1.1; }
.svc-tl-date .d { display:block; font-size:1.9rem; font-weight:800; letter-spacing:-.03em; color:var(--ink); }
.svc-tl-date .m { display:block; font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.svc-tl-dot { position:relative; z-index:1; width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; color:var(--club-primary); box-shadow:0 0 0 2px var(--club-primary), 0 0 0 6px #fff; font-size:.95rem; margin-top:.25rem; }
.svc-tl-milestone .svc-tl-dot { background:var(--club-accent); color:#1e1b16; box-shadow:0 0 0 2px var(--club-accent), 0 0 0 6px #fff; }
.svc-tl-result .svc-tl-dot { background:var(--svc-ok); color:#fff; box-shadow:0 0 0 2px var(--svc-ok), 0 0 0 6px #fff, 0 0 0 9px color-mix(in srgb, var(--svc-ok) 25%, transparent); }
.svc-tl-card { background:#fff; border-radius:18px; padding:1.15rem 1.3rem 1.25rem; box-shadow:var(--svc-shadow), 0 0 0 1px var(--line); min-width:0; }
.svc-tl-milestone .svc-tl-card { box-shadow:var(--svc-shadow), 0 0 0 1px color-mix(in srgb, var(--club-accent) 60%, #fff); background:linear-gradient(180deg, color-mix(in srgb, var(--club-accent) 9%, #fff), #fff 60%); }
.svc-tl-result .svc-tl-card { box-shadow:var(--svc-shadow), 0 0 0 2px color-mix(in srgb, var(--svc-ok) 55%, #fff); }
.svc-tl-meta { display:flex; flex-wrap:wrap; gap:.4rem .6rem; align-items:center; margin-bottom:.45rem; }
.svc-tl-kind { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; padding:.18rem .55rem; border-radius:6px; background:var(--tint); color:var(--club-primary); }
.svc-tl-milestone .svc-tl-kind { background:color-mix(in srgb, var(--club-accent) 25%, #fff); color:#7a4a00; }
.svc-tl-result .svc-tl-kind { background:color-mix(in srgb, var(--svc-ok) 14%, #fff); color:var(--svc-ok); }
.svc-tl-club { display:inline-flex; align-items:center; gap:.3rem; font-size:.78rem; font-weight:700; color:var(--ink-soft); }
.svc-tl-club i { color:var(--club-accent); }
.svc-tl-card h3 { font-size:1.2rem; font-weight:800; letter-spacing:-.01em; line-height:1.3; margin:0 0 .35rem; }
.svc-tl-result .svc-tl-card h3 { font-size:1.35rem; }
.svc-tl-body { font-size:1rem; line-height:1.65; }
.svc-tl-body > *:last-child { margin-bottom:0; }
.svc-tl-photos { display:grid; gap:6px; margin-top:.9rem; border-radius:14px; overflow:hidden; }
.svc-tl-photos.n2 { grid-template-columns:1fr 1fr; }
.svc-tl-photos.n3 { grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; aspect-ratio:16/9; }
.svc-tl-photos.n3 a:first-child { grid-row:span 2; }
.svc-tl-photos.n4 { grid-template-columns:1fr 1fr; }
.svc-tl-photos a { position:relative; display:block; overflow:hidden; background:var(--tint); aspect-ratio:4/3; }
.svc-tl-photos.n1 a { aspect-ratio:16/9; }
.svc-tl-photos.n3 a, .svc-tl-photos.n3 a:first-child { aspect-ratio:auto; }
.svc-tl-photos img, .svc-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--svc-ease); }
.svc-tl-photos a:hover img, .svc-gallery a:hover img { transform:scale(1.05); }
.svc-tl-photos a[data-more]::after { content:attr(data-more); position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(2,6,23,.55); color:#fff; font-size:1.6rem; font-weight:800; }
.svc-tl-photos a:focus-visible, .svc-gallery a:focus-visible { outline:3px solid var(--club-accent); outline-offset:-3px; }
@media (max-width: 575.98px) {
  .svc-timeline { --tl-date:0px; --tl-gap:.85rem; }
  .svc-tl { grid-template-columns:40px 1fr; }
  .svc-tl-date { grid-column:2; grid-row:1; text-align:left; padding:0; display:flex; gap:.4rem; align-items:baseline; }
  .svc-tl-date .d { font-size:1rem; letter-spacing:0; }
  .svc-tl-date .m { font-size:.74rem; }
  .svc-tl-dot { grid-column:1; grid-row:1 / span 2; }
  .svc-tl-card { grid-column:2; padding:1rem 1.05rem; }
  .svc-timeline::before { left:19px; }
}

/* Galleria (masonry a colonne: nessun buco con qualsiasi numero di foto) */
.svc-gallery { columns:2 160px; column-gap:8px; }
@media (min-width: 768px) { .svc-gallery { columns:3 220px; column-gap:10px; } }
@media (min-width: 1200px) { .svc-gallery { columns:4; } }
.svc-gallery a { display:block; overflow:hidden; border-radius:12px; background:var(--tint); margin-bottom:8px; break-inside:avoid; }
@media (min-width: 768px) { .svc-gallery a { margin-bottom:10px; } }
.svc-gallery img { height:auto; display:block; }

/* Chi lo rende possibile */
.svc-people { background:#fff; }
.svc-sub { font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin:2rem 0 1rem; }
.svc-sec-head + .svc-sub { margin-top:0; }
.svc-network { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap:.85rem; }
.svc-club { display:flex; gap:.9rem; align-items:center; padding:1rem 1.1rem; border-radius:16px; background:var(--tint); }
.svc-club.is-lead { background:linear-gradient(135deg, var(--club-primary), var(--club-navy)); color:#fff; }
.svc-club-wheel { flex-shrink:0; width:3rem; height:3rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#fff; color:var(--club-accent); font-size:1.6rem; box-shadow:0 2px 8px rgba(2,6,23,.12); }
.svc-club-body { display:flex; flex-direction:column; min-width:0; }
.svc-club-role { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--club-primary); }
.svc-club.is-lead .svc-club-role { color:var(--club-accent); }
.svc-club-name { font-weight:800; color:inherit; text-decoration:none; line-height:1.3; }
a.svc-club-name:hover { text-decoration:underline; }
.svc-club-city { font-size:.84rem; opacity:.75; }
.svc-partners { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap:.85rem; }
.svc-partner { height:100%; display:flex; flex-direction:column; align-items:flex-start; gap:.15rem; padding:1rem 1.1rem; border-radius:16px; box-shadow:0 0 0 1px var(--line); color:var(--ink); text-decoration:none; transition:box-shadow .2s, transform .2s; }
a.svc-partner:hover { color:var(--ink); transform:translateY(-2px); box-shadow:var(--svc-shadow), 0 0 0 1px var(--line); }
.svc-partner-logo { width:100%; height:56px; display:flex; align-items:center; margin-bottom:.6rem; }
.svc-partner-logo img { max-height:56px; max-width:140px; object-fit:contain; }
.svc-partner-logo span { width:56px; height:56px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.15rem; letter-spacing:.02em; color:var(--club-primary); background:linear-gradient(135deg, var(--tint), color-mix(in srgb, var(--club-primary) 16%, #fff)); }
.svc-partner-name { font-weight:700; line-height:1.3; }
.svc-partner-kind { font-size:.8rem; color:var(--muted); }
.svc-team { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap:.6rem 1rem; }
.svc-member { display:flex; align-items:center; gap:.8rem; padding:.5rem 0; }
.svc-avatar { flex-shrink:0; width:3rem; height:3rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:800; color:#fff; background:color-mix(in srgb, var(--club-primary) 80%, #fff); }
.svc-member.is-lead .svc-avatar { background:var(--club-accent); color:#1e1b16; box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--club-accent); }
.svc-member-name { display:block; font-weight:700; line-height:1.25; }
.svc-member-role { display:block; font-size:.84rem; color:var(--muted); }

/* Trasparenza */
.svc-money { background:var(--tint); }
.svc-money-totals { display:grid; grid-template-columns:repeat(3, 1fr); gap:.75rem; margin-bottom:1.5rem; }
.svc-money-totals > div { background:#fff; border-radius:16px; padding:1rem 1.15rem; box-shadow:0 0 0 1px var(--line); }
.svc-money-totals span { display:block; font-size:.8rem; font-weight:700; color:var(--muted); }
.svc-money-totals strong { display:block; font-size:clamp(1.15rem, 3vw, 1.6rem); font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.svc-money-totals .is-bal { background:var(--club-primary); color:#fff; box-shadow:none; }
.svc-money-totals .is-bal span { color:rgba(255,255,255,.8); }
@media (max-width: 575.98px) { .svc-money-totals { grid-template-columns:1fr 1fr; } .svc-money-totals .is-bal { grid-column:span 2; } }
.svc-money-card { height:100%; background:#fff; border-radius:18px; padding:1.3rem 1.4rem; box-shadow:0 0 0 1px var(--line); }
.svc-money-card h3 { font-size:1.05rem; font-weight:800; margin:0 0 1rem; }
.svc-hbars { list-style:none; margin:0; padding:0; display:grid; gap:.9rem; }
.svc-hbars li { display:grid; grid-template-columns:1fr auto; gap:.3rem .75rem; font-size:.92rem; }
.svc-hbar-label { color:var(--ink-soft); }
.svc-hbar-val { font-weight:700; font-variant-numeric:tabular-nums; }
.svc-hbar { grid-column:span 2; height:10px; border-radius:4px; background:#eef2f7; }
.svc-hbars-in .svc-hbar > span { background:var(--club-primary); border-radius:4px; }
.svc-hbars-out .svc-hbar > span { background:color-mix(in srgb, var(--club-primary) 45%, #94a3b8); border-radius:4px; }

/* Partecipa */
.svc-join { position:relative; color:#fff; padding:clamp(3rem, 8vw, 5.5rem) 0; background:
  radial-gradient(800px 500px at 0% 100%, color-mix(in srgb, var(--club-primary) 70%, transparent), transparent 70%),
  linear-gradient(160deg, var(--club-navy), color-mix(in srgb, var(--club-navy) 60%, var(--club-primary))); }
.svc-join h2 { text-wrap:balance; font-weight:800; font-size:clamp(2rem, 4.5vw, 3rem); letter-spacing:-.03em; line-height:1.05; margin:0; }
.svc-join-lead { color:rgba(255,255,255,.82); font-size:1.08rem; margin:1rem 0 0; }
.svc-sub-light { color:var(--club-accent); margin-top:2rem; }
.svc-slots { list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.svc-slot { display:flex; gap:.9rem; align-items:center; padding:.85rem .9rem; border-radius:16px; background:rgba(255,255,255,.08); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.svc-slot.is-full { opacity:.6; }
.svc-slot-date { flex-shrink:0; width:3.4rem; text-align:center; border-radius:12px; background:#fff; color:var(--club-primary); padding:.4rem 0; line-height:1; }
.svc-slot-date .d { display:block; font-size:1.4rem; font-weight:800; }
.svc-slot-date .m { display:block; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-top:.2rem; }
.svc-slot-body { flex:1; min-width:0; }
.svc-slot-title { font-weight:700; line-height:1.3; }
.svc-slot-meta, .svc-slot-desc { font-size:.82rem; color:rgba(255,255,255,.75); }
.svc-slot-cap { display:flex; align-items:center; gap:.5rem; font-size:.8rem; font-weight:700; color:var(--club-accent); margin-top:.3rem; }
.svc-slot-bar { width:64px; height:6px; background:rgba(255,255,255,.2); }
.svc-slot-bar > span { background:var(--club-accent); }
.svc-slot-go { flex-shrink:0; }

.svc-form { background:#fff; color:var(--ink); border-radius:22px; padding:clamp(1.25rem, 4vw, 2rem); box-shadow:0 30px 60px rgba(2,6,23,.35); }
.svc-form .form-label { font-weight:700; font-size:.88rem; margin-bottom:.3rem; }
.svc-form .form-control, .svc-form .form-select { border-radius:12px; padding:.65rem .85rem; border-color:#cbd5e1; }
.svc-form .form-control:focus, .svc-form .form-select:focus, .svc-form .form-check-input:focus { border-color:var(--club-primary); box-shadow:0 0 0 .25rem color-mix(in srgb, var(--club-primary) 22%, transparent); }
.svc-form .form-check-input:checked { background-color:var(--club-primary); border-color:var(--club-primary); }
.svc-opt { font-weight:500; color:var(--muted); font-size:.8rem; }
.svc-kinds { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:.5rem; border:0; padding:0; margin:0 0 1.25rem; }
.svc-kind { display:flex; flex-direction:column; align-items:flex-start; gap:.35rem; padding:.85rem 1rem; border-radius:14px; cursor:pointer; font-weight:700; font-size:.92rem; line-height:1.25; box-shadow:inset 0 0 0 1.5px var(--line); transition:box-shadow .15s, background .15s; }
.svc-kind i { font-size:1.3rem; color:var(--club-primary); }
.svc-kind:hover { box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--club-primary) 50%, #fff); }
.btn-check:checked + .svc-kind { background:var(--tint); box-shadow:inset 0 0 0 2px var(--club-primary); color:var(--club-primary); }
.btn-check:focus-visible + .svc-kind { outline:3px solid var(--club-accent); outline-offset:2px; }
.svc-only { display:none; }
.svc-form:has(#k-volunteer:checked) .svc-only-volunteer, .svc-form:has(#k-partner:checked) .svc-only-partner { display:block; }
.svc-form:has(input[name="kind"][type="hidden"][value="volunteer"]) .svc-only-volunteer,
.svc-form:has(input[name="kind"][type="hidden"][value="partner"]) .svc-only-partner { display:block; }
.svc-hp { position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden; }
.svc-consent { font-size:.86rem; color:var(--ink-soft); }
.svc-consent .form-check-input { width:1.2em; height:1.2em; margin-top:.15em; border:1.5px solid #64748b; }
.svc-submit { background:var(--club-primary); border-color:var(--club-primary); font-weight:700; padding-inline:1.6rem; border-radius:12px; }
.svc-submit:hover, .svc-submit:focus { background:var(--club-navy); border-color:var(--club-navy); }
.svc-flash[hidden] { display:none; }
.svc-flash { display:flex; gap:.8rem; align-items:flex-start; padding:1rem 1.1rem; border-radius:14px; margin-bottom:1.25rem; font-size:.95rem; outline:none; }
.svc-flash i { font-size:1.4rem; line-height:1; }
.svc-flash.is-ok { background:color-mix(in srgb, var(--svc-ok) 10%, #fff); color:#0b5a2d; box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--svc-ok) 35%, #fff); }
.svc-flash.is-err { background:#fef2f2; color:#991b1b; box-shadow:inset 0 0 0 1px #fecaca; }

/* Lightbox */
.svc-lb { position:fixed; inset:0; z-index:2000; display:flex; align-items:center; justify-content:center; background:rgba(2,6,23,.92); padding:3.5rem 1rem; }
.svc-lb[hidden] { display:none; }
.svc-lb figure { margin:0; max-width:min(1200px, 100%); max-height:100%; display:flex; flex-direction:column; align-items:center; }
.svc-lb img { max-width:100%; max-height:calc(100vh - 9rem); object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.svc-lb figcaption { color:rgba(255,255,255,.85); font-size:.92rem; margin-top:.85rem; text-align:center; }
.svc-lb-btn { position:absolute; width:3rem; height:3rem; border-radius:50%; border:0; background:rgba(255,255,255,.12); color:#fff; font-size:1.4rem; display:flex; align-items:center; justify-content:center; }
.svc-lb-btn:hover { background:rgba(255,255,255,.25); }
.svc-lb-btn:focus-visible { outline:3px solid var(--club-accent); outline-offset:2px; }
.svc-lb-close { top:1rem; right:1rem; }
.svc-lb-prev { left:1rem; top:50%; transform:translateY(-50%); }
.svc-lb-next { right:1rem; top:50%; transform:translateY(-50%); }
.svc-lb-count { position:absolute; top:1.6rem; left:1.25rem; color:rgba(255,255,255,.7); font-size:.85rem; font-weight:700; }
@media (max-width: 575.98px) { .svc-lb-prev, .svc-lb-next { top:auto; bottom:1rem; transform:none; } }

/* Focus visibile ovunque nel Service Hub */
.svc-card a:focus-visible, .svc-share a:focus-visible, .svc-share button:focus-visible, .svc-subnav a:focus-visible, .svc-back:focus-visible,
.svc-partner:focus-visible, .svc-club-name:focus-visible { outline:3px solid var(--club-accent); outline-offset:2px; }

@media (prefers-reduced-motion: reduce) {
  .svc-card, .svc-card-img img, .svc-tl-photos img, .svc-gallery img, .svc-partner, .svc-pin span { transition:none !important; }
  .svc-bar > span, .svc-thermo > span, .svc-hbar > span, .svc-slot-bar > span { transition:none !important; }
  .js .svc-bar > span, .js .svc-thermo > span, .js .svc-hbar > span, .js .svc-slot-bar > span { width:var(--pct); }
  .svc-dot, .svc-pin.is-live span::after { animation:none; }
  .svc-card:hover { transform:none; }
}
.svc-lb-btn[hidden] { display:none; }

/* ── Tipologie, anni ed edizioni, Piano d'azione ── */
.svc-badge-kind { background:color-mix(in srgb, var(--club-primary) 10%, #fff); }
.svc-segs { display:flex; flex-wrap:wrap; gap:.5rem; flex-shrink:0; }
.svc-seg-btn i { margin-right:.3rem; }
@media (max-width: 575.98px) { .svc-segs .svc-seg { max-width:100%; overflow-x:auto; scrollbar-width:none; } }

.svc-kind-tag { display:inline-flex; align-items:center; gap:.4rem; font-size:.82rem; font-weight:700; padding:.36rem .8rem .36rem .65rem; border-radius:999px; background:rgba(255,255,255,.16); color:#fff; backdrop-filter:blur(6px); }
.svc-kind-tag i { color:var(--club-accent); }
.svc-ph-eyebrow { display:inline-flex; align-items:center; gap:.5rem; font-size:clamp(.9rem, 1.8vw, 1.05rem); font-weight:800; letter-spacing:.02em; color:var(--club-accent); margin-bottom:.6rem; }
.svc-kpis-cap { margin:0 0 .6rem; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.85); }
.svc-dd-areas { display:flex; flex-direction:column; gap:.2rem; }
.svc-dd-areas > span { display:inline-flex; align-items:center; }

/* Navigazione tra gli anni (pagina di un anno o di un'edizione) */
.svc-yearnav { margin-top:1.5rem; }
.svc-yearnav .container { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; }
.svc-yearnav-step { display:inline-flex; align-items:center; gap:.6rem; color:var(--ink); text-decoration:none; font-weight:700; font-size:.95rem; }
.svc-yearnav-step small { display:block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.svc-yearnav-step i { width:2.2rem; height:2.2rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--tint); color:var(--club-primary); flex-shrink:0; }
.svc-yearnav-step:hover i { background:var(--club-primary); color:#fff; }
.svc-yearnav-step.is-next { justify-self:end; text-align:right; }
.svc-yearnav-list { list-style:none; margin:0; padding:3px; display:flex; gap:2px; border-radius:999px; background:#eef2f7; overflow-x:auto; scrollbar-width:none; max-width:min(56vw, 520px); }
.svc-yearnav-list a { display:block; padding:.3rem .7rem; border-radius:999px; font-size:.82rem; font-weight:700; color:var(--ink-soft); text-decoration:none; white-space:nowrap; font-variant-numeric:tabular-nums; }
.svc-yearnav-list a:hover { color:var(--ink); }
.svc-yearnav-list a.is-on { background:#fff; color:var(--club-primary); box-shadow:0 1px 3px rgba(2,6,23,.15); }
@media (max-width: 767.98px) {
  .svc-yearnav .container { grid-template-columns:1fr 1fr; }
  .svc-yearnav-list { grid-column:1 / -1; grid-row:2; max-width:100%; justify-self:start; }
}

/* Elenco degli anni / delle edizioni */
.svc-years { list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.svc-year a { display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center; padding:1.1rem 1.2rem; border-radius:18px; background:#fff; color:inherit; text-decoration:none;
  box-shadow:0 0 0 1px var(--line); transition:box-shadow .2s var(--svc-ease), transform .2s var(--svc-ease); }
.svc-year.has-cover a { grid-template-columns:clamp(84px, 18vw, 150px) 1fr auto; }
.svc-year a:hover { box-shadow:var(--svc-shadow), 0 0 0 1px color-mix(in srgb, var(--area) 35%, var(--line)); transform:translateY(-2px); }
.svc-year a:focus-visible { outline:3px solid var(--club-accent); outline-offset:2px; }
.svc-year-img { display:block; aspect-ratio:4/3; border-radius:12px; overflow:hidden; background:var(--tint); }
.svc-year-img img { width:100%; height:100%; object-fit:cover; display:block; }
.svc-year-body { display:flex; flex-direction:column; gap:.3rem; min-width:0; }
.svc-year-k { font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--area); }
.svc-year-now { display:inline-block; margin-left:.35rem; padding:.05rem .5rem; border-radius:999px; background:var(--club-accent); color:#1d1608; letter-spacing:.04em; }
.svc-year-title { font-size:1.12rem; font-weight:800; letter-spacing:-.01em; color:var(--ink); }
.svc-year-txt { color:var(--ink-soft); font-size:.95rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.svc-year-nums { display:flex; flex-wrap:wrap; gap:.3rem 1rem; font-size:.86rem; color:var(--ink-soft); margin-top:.15rem; }
.svc-year-nums i { color:var(--area); margin-right:.25rem; }
.svc-year-nums strong { color:var(--ink); font-variant-numeric:tabular-nums; }
.svc-year-go { font-size:1.2rem; color:var(--muted); transition:transform .2s var(--svc-ease), color .2s; }
.svc-year a:hover .svc-year-go { color:var(--area); transform:translateX(3px); }
.svc-year.is-now a { box-shadow:0 0 0 2px color-mix(in srgb, var(--club-accent) 70%, transparent); }

/* Piano d'azione */
.svc-plan { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap:.85rem; }
.svc-plan-item { display:grid; grid-template-columns:auto 1fr; gap:.9rem; padding:1.15rem 1.2rem; border-radius:18px; background:var(--tint); }
.svc-plan-icon { width:2.6rem; height:2.6rem; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; background:var(--club-primary); color:#fff; font-size:1.2rem; }
.svc-plan-item.lv3 .svc-plan-icon { background:var(--club-accent); color:#1d1608; }
.svc-plan-item h3 { font-size:1rem; font-weight:800; margin:0 0 .3rem; line-height:1.25; }
.svc-plan-level { display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--club-primary); margin-bottom:.45rem; }
.svc-plan-dots { display:inline-flex; gap:3px; }
.svc-plan-dots i { width:16px; height:6px; border-radius:3px; background:color-mix(in srgb, var(--club-primary) 18%, #fff); }
.svc-plan-dots i.on { background:var(--club-accent); }
.svc-plan-item p { margin:0; color:var(--ink-soft); font-size:.93rem; }
.svc-plan-metrics { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .6rem; margin-top:.6rem; font-size:.84rem; }
.svc-plan-metrics > span { color:var(--muted); font-weight:600; }
.svc-plan-metrics strong { display:inline-flex; align-items:center; gap:.3rem; padding:.15rem .55rem; border-radius:999px; background:#fff; color:var(--ink); font-weight:700; }
.svc-plan-metrics strong i { color:var(--club-primary); }
/* con il filtro per tipologia le aree prendono tutta la prima riga, tipologia e stato vanno sotto */
.svc-filters-inner:has(.svc-segs .svc-seg + .svc-seg) { flex-wrap:wrap; }
.svc-filters-inner:has(.svc-segs .svc-seg + .svc-seg) .svc-chips { flex:1 1 100%; }
.svc-press .press-grid > div > .press-card { height:100%; }
