/* ClubPortal — tema del sito pubblico.
   Colori del club da --club-primary / --club-accent (impostazioni); tutto il resto deriva da questi due. */

:root {
  --club-primary: #17458f;
  --club-accent: #f7a81b;
  --club-navy: color-mix(in srgb, var(--club-primary) 50%, #020617);
  --ink: #0f1b2d;
  --ink-soft: #3d4a5e;
  --muted: #687589;
  --line: #e4e9f0;
  --paper: #f5f7fa;
  --tint: color-mix(in srgb, var(--club-primary) 6%, #fff);
  --tint-2: color-mix(in srgb, var(--club-primary) 12%, #fff);
  --on-accent: #1d1608;
  --r-sm: 10px;
  --r: 16px;
  --r-lg: 24px;
  --r-xl: 32px;
  --shadow-sm: 0 1px 2px rgba(15,27,45,.06), 0 0 0 1px var(--line);
  --shadow: 0 2px 4px rgba(15,27,45,.04), 0 12px 32px rgba(15,27,45,.08);
  --shadow-lg: 0 4px 8px rgba(15,27,45,.06), 0 28px 60px rgba(15,27,45,.16);
  --ease: cubic-bezier(.2,.7,.2,1);
  --hdr-h: 76px;
}

html { scroll-padding-top:calc(var(--hdr-h) + 1rem); }
html.no-scroll { overflow:hidden; }
body { font-family:'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; color:var(--ink); background:#fff; font-size:1.0625rem; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a { color:var(--club-primary); text-underline-offset:.18em; }
img { max-width:100%; }
::selection { background:color-mix(in srgb, var(--club-accent) 45%, #fff); color:var(--ink); }
:focus-visible { outline:3px solid color-mix(in srgb, var(--club-accent) 85%, #000); outline-offset:3px; border-radius:6px; }
.skip-link { position:fixed; left:1rem; top:-4rem; z-index:2000; background:#fff; color:var(--ink); padding:.6rem 1rem; border-radius:10px; box-shadow:var(--shadow); font-weight:700; transition:top .2s; }
.skip-link:focus { top:1rem; }
@media (min-width: 1400px) { .container { max-width:1280px; } }

/* ── Bottoni ────────────────────────────────────────────── */
.btn { border-radius:999px; font-weight:700; padding:.7rem 1.35rem; letter-spacing:-.005em; transition:background .2s, color .2s, border-color .2s, transform .2s var(--ease), box-shadow .2s; }
.btn-lg { padding:.9rem 1.7rem; font-size:1.05rem; }
.btn-sm { padding:.4rem .9rem; }
.btn:active { transform:scale(.98); }
.btn-accent { background:var(--club-accent); border:1px solid var(--club-accent); color:var(--on-accent); }
.btn-accent:hover, .btn-accent:focus-visible { background:color-mix(in srgb, var(--club-accent) 88%, #fff); border-color:transparent; color:var(--on-accent); box-shadow:0 8px 24px color-mix(in srgb, var(--club-accent) 40%, transparent); }
.btn-club { background:var(--club-primary); border:1px solid var(--club-primary); color:#fff; }
.btn-club:hover, .btn-club:focus-visible { background:color-mix(in srgb, var(--club-primary) 85%, #000); color:#fff; }
.btn-ghost { background:transparent; border:1px solid var(--line); color:var(--ink); }
.btn-ghost:hover { border-color:var(--club-primary); color:var(--club-primary); }
.btn-glass { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.4); color:#fff; backdrop-filter:blur(8px); }
.btn-glass:hover, .btn-glass:focus-visible { background:#fff; color:var(--ink); border-color:#fff; }
.btn-outline-primary { color:var(--club-primary); border-color:var(--club-primary); }
.btn-outline-primary:hover { background:var(--club-primary); border-color:var(--club-primary); color:#fff; }
.link-arrow { display:inline-flex; align-items:center; gap:.45rem; font-weight:700; text-decoration:none; color:var(--club-primary); }
.link-arrow i { transition:transform .25s var(--ease); }
.link-arrow:hover i { transform:translateX(4px); }

/* ── Tipografia di sezione ──────────────────────────────── */
.eyebrow { display:inline-flex; align-items:center; gap:.65rem; font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--club-primary); margin-bottom:1rem; }
.eyebrow::before { content:""; width:22px; height:3px; border-radius:2px; background:var(--club-accent); }
.on-dark .eyebrow, .eyebrow.on-dark { color:var(--club-accent); }
.on-dark .eyebrow::before { background:currentColor; }
.display-h { font-weight:800; font-size:clamp(2rem, 4.4vw, 3.25rem); letter-spacing:-.032em; line-height:1.07; margin:0 0 1.1rem; text-wrap:balance; }
.lead-txt { font-size:clamp(1.05rem, 1.4vw, 1.2rem); color:var(--ink-soft); line-height:1.7; text-wrap:pretty; }
.on-dark .lead-txt { color:rgba(255,255,255,.8); }
.sec-head { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem 2rem; flex-wrap:wrap; margin-bottom:clamp(1.75rem, 4vw, 2.75rem); }
.sec-head .display-h { margin:0; }
.sec-head > div { max-width:720px; }
.sec-head p { margin:.9rem 0 0; }
.section { padding:clamp(4rem, 9vw, 7rem) 0; position:relative; }
.section + .section:not(.section-paper):not(.section-dark):not(.svc-home) { padding-top:0; }
.section-paper { background:var(--paper); }
.section-dark { background:var(--club-navy); color:#fff; }

/* compatibilità con i template del Service Hub */
.page-body { padding-top:clamp(2rem, 5vw, 3.5rem); padding-bottom:clamp(3rem, 7vw, 5rem); }
.section-head { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; margin-bottom:1.75rem; }
.section-head h2 { font-weight:800; font-size:clamp(1.5rem, 3vw, 2.1rem); letter-spacing:-.02em; margin:0; }
.section-head a { font-weight:700; text-decoration:none; font-size:.95rem; }
.back-link { display:inline-flex; align-items:center; gap:.35rem; font-weight:600; text-decoration:none; font-size:.92rem; margin-bottom:1.5rem; }

/* comparsa delle sezioni (solo con JS e senza riduzione del movimento) */
.reveal-on [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal-on [data-reveal].is-in { opacity:1; transform:none; }

/* ══ Testata ══════════════════════════════════════════════ */
.sh { position:sticky; top:0; z-index:1030; background:rgba(255,255,255,.88); backdrop-filter:saturate(1.8) blur(16px); -webkit-backdrop-filter:saturate(1.8) blur(16px); border-bottom:1px solid transparent; transition:background .3s, border-color .3s, box-shadow .3s; }
.sh.is-scrolled, .sh.mega-open { border-bottom-color:var(--line); box-shadow:0 8px 30px rgba(15,27,45,.06); }
.sh.mega-open { background:#fff; }
.sh-bar { display:flex; align-items:center; gap:1rem; height:76px; }
.sh-brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; color:var(--ink); flex-shrink:0; line-height:1.1; }
.sh-brand > span { display:flex; align-items:center; gap:.7rem; }
.sh-brand img { height:50px; width:auto; max-width:240px; object-fit:contain; }
.sh-brand-rev { display:none !important; }
.brand-wheel { font-size:2.1rem; color:var(--club-accent); line-height:1; display:inline-flex; }
.brand-r { display:block; font-weight:800; font-size:1.2rem; letter-spacing:-.01em; color:var(--club-primary); }
.brand-club { display:block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }

.sh-nav { margin-left:auto; display:none; }
.sh-menu { display:flex; align-items:center; gap:.15rem; list-style:none; margin:0; padding:0; }
.sh-link { display:inline-flex; align-items:center; gap:.35rem; padding:.55rem .85rem; border:0; background:none; border-radius:999px; font:inherit; font-size:.95rem; font-weight:600; color:var(--ink); text-decoration:none; white-space:nowrap; position:relative; transition:background .2s, color .2s; }
.sh-link i { font-size:.7rem; transition:transform .25s var(--ease); opacity:.6; }
.sh-link:hover, .sh-item.is-open > .sh-link { background:var(--tint); color:var(--club-primary); }
.sh-item.is-open > .sh-link i { transform:rotate(180deg); }
.sh-link.is-active { color:var(--club-primary); }
.sh-link.is-active::after { content:""; position:absolute; left:50%; bottom:.15rem; width:5px; height:5px; border-radius:50%; background:var(--club-accent); transform:translateX(-50%); }
.sh-actions { display:flex; align-items:center; gap:.6rem; margin-left:auto; }
.sh-cta { padding:.6rem 1.2rem; font-size:.92rem; white-space:nowrap; }
@media (max-width: 575.98px) { .sh-cta { display:none; } .sh-brand img { height:42px; max-width:190px; } }

.sh-burger { width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:#fff; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; cursor:pointer; transition:border-color .2s; }
.sh-burger span { display:block; width:18px; height:2px; border-radius:2px; background:var(--ink); }
.sh-burger span:nth-child(2) { width:12px; margin-left:6px; }
.sh-burger:hover { border-color:var(--club-primary); }

@media (min-width: 1100px) {
  .sh-nav { display:block; }
  .sh-nav + .sh-actions { margin-left:.75rem; }
  .sh-burger { display:none; }
}

/* testata trasparente sopra l'immagine della home */
.sh-overlay { position:fixed; left:0; right:0; }
.sh-overlay:not(.is-scrolled):not(.mega-open) { background:linear-gradient(180deg, rgba(2,6,23,.5), rgba(2,6,23,0)); backdrop-filter:none; -webkit-backdrop-filter:none; }
.sh-overlay:not(.is-scrolled):not(.mega-open) .sh-brand-std { display:none !important; }
.sh-overlay:not(.is-scrolled):not(.mega-open) .sh-brand-rev { display:flex !important; }
.sh-overlay:not(.is-scrolled):not(.mega-open) .brand-r { color:#fff; }
.sh-overlay:not(.is-scrolled):not(.mega-open) .brand-club { color:rgba(255,255,255,.75); }
.sh-overlay:not(.is-scrolled):not(.mega-open) .sh-link { color:#fff; }
.sh-overlay:not(.is-scrolled):not(.mega-open) .sh-link:hover { background:rgba(255,255,255,.14); color:#fff; }
.sh-overlay:not(.is-scrolled):not(.mega-open) .sh-burger { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.35); }
.sh-overlay:not(.is-scrolled):not(.mega-open) .sh-burger span { background:#fff; }

/* pannelli del menu */
.mega { position:absolute; left:0; right:0; top:100%; background:#fff; border-top:1px solid var(--line); box-shadow:0 40px 60px -20px rgba(15,27,45,.22); animation:mega-in .28s var(--ease); }
@keyframes mega-in { from { opacity:0; transform:translateY(-8px); } }
.mega-inner { display:grid; grid-template-columns:minmax(220px, 300px) 1fr; gap:3rem; padding:2.25rem 0 2.5rem; }
.mega-intro { padding-right:1.5rem; border-right:1px solid var(--line); display:flex; flex-direction:column; align-items:flex-start; }
.mega-intro .eyebrow { margin-bottom:.75rem; }
.mega-intro p { color:var(--ink-soft); font-size:.97rem; line-height:1.6; margin:0 0 1rem; }
.mega-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:.35rem .75rem; align-content:start; }
.mega-link { display:flex; gap:.9rem; align-items:flex-start; padding:.75rem; border-radius:14px; text-decoration:none; color:var(--ink); transition:background .2s; }
.mega-link:hover, .mega-link:focus-visible { background:var(--paper); color:var(--ink); }
.mega-link:hover .mega-title { color:var(--club-primary); }
.mega-link.is-active .mega-title { color:var(--club-primary); }
.mega-ico { flex:0 0 48px; height:48px; border-radius:12px; background:var(--tint); color:var(--club-primary); display:grid; place-items:center; font-size:1.2rem; overflow:hidden; }
.mega-ico img { width:100%; height:100%; object-fit:cover; }
.mega-txt { min-width:0; }
.mega-title { display:block; font-weight:700; line-height:1.3; transition:color .2s; }
.mega-desc { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:.85rem; color:var(--muted); line-height:1.45; margin-top:.2rem; }

/* menu mobile */
.drawer { position:fixed; inset:0; z-index:1060; background:rgba(2,6,23,.45); opacity:0; transition:opacity .28s; }
.drawer.is-open { opacity:1; }
.drawer-panel { position:absolute; top:0; right:0; bottom:0; width:min(460px, 100%); background:#fff; display:flex; flex-direction:column; transform:translateX(100%); transition:transform .32s var(--ease); }
.drawer.is-open .drawer-panel { transform:none; }
.drawer-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 1.25rem; height:76px; border-bottom:1px solid var(--line); flex-shrink:0; }
.drawer-head .sh-brand img { height:42px; }
.drawer-close { width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:#fff; font-size:1.1rem; color:var(--ink); }
.drawer-nav { flex:1; overflow-y:auto; padding:.5rem 1.25rem 1rem; overscroll-behavior:contain; }
.drawer-nav ul { list-style:none; margin:0; padding:0; }
.drawer-link { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem .15rem; font-size:1.3rem; font-weight:700; letter-spacing:-.015em; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); cursor:pointer; list-style:none; }
.drawer-link::-webkit-details-marker { display:none; }
.drawer-link.is-active { color:var(--club-primary); }
.drawer-link i { font-size:1rem; color:var(--muted); transition:transform .25s var(--ease); }
details[open] > .drawer-link i { transform:rotate(45deg); }
details[open] > .drawer-link { border-bottom-color:transparent; }
.drawer-sub { padding:0 0 .75rem !important; border-bottom:1px solid var(--line); }
.drawer-sub a { display:block; padding:.6rem .15rem .6rem 1rem; font-size:1.05rem; color:var(--ink-soft); text-decoration:none; border-left:2px solid var(--line); }
.drawer-sub a.is-active { color:var(--club-primary); border-left-color:var(--club-accent); font-weight:600; }
.drawer-foot { padding:1.25rem; border-top:1px solid var(--line); display:grid; gap:1rem; background:var(--paper); }
.drawer-contact { display:flex; align-items:center; gap:.6rem; color:var(--ink-soft); text-decoration:none; font-weight:600; justify-content:center; }

.socials { display:flex; gap:.5rem; flex-wrap:wrap; }
.drawer-foot .socials { justify-content:center; }
.socials a { width:42px; height:42px; border-radius:50%; display:inline-grid; place-items:center; font-size:1.1rem; background:var(--tint-2); color:var(--club-primary); text-decoration:none; transition:background .2s, color .2s, transform .2s var(--ease); }
.socials a:hover { background:var(--club-accent); color:var(--on-accent); transform:translateY(-2px); }

/* ══ Home ═════════════════════════════════════════════════ */
.hero { position:relative; isolation:isolate; overflow:hidden; color:#fff; min-height:clamp(620px, 94svh, 920px); display:flex; align-items:flex-end; padding:calc(var(--hdr-h) + 3rem) 0 clamp(2.5rem, 6vw, 4.5rem); background:var(--club-navy); }
.hero-bg { position:absolute; inset:0; z-index:-2; }
.hero-bg img { width:100%; height:100%; object-fit:cover; animation:hero-zoom 18s ease-out both; }
@keyframes hero-zoom { from { transform:scale(1.08); } to { transform:scale(1); } }
.hero::before { content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--club-navy) 78%, transparent) 0%, color-mix(in srgb, var(--club-navy) 30%, transparent) 60%, transparent 100%),
    linear-gradient(180deg, rgba(2,6,23,.15) 0%, rgba(2,6,23,0) 40%, color-mix(in srgb, var(--club-navy) 85%, transparent) 100%); }
.hero-noimg::before { background:radial-gradient(900px 500px at 85% 10%, color-mix(in srgb, var(--club-accent) 30%, transparent), transparent 60%), linear-gradient(135deg, var(--club-navy), var(--club-primary)); }
.hero-grid { display:grid; gap:2.5rem; align-items:end; width:100%; }
@media (min-width: 992px) { .hero-grid { grid-template-columns:minmax(0, 1.6fr) minmax(300px, 1fr); gap:4rem; } }
.hero-pill { display:inline-flex; align-items:center; gap:.55rem; padding:.42rem .9rem .42rem .55rem; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(10px); font-size:.82rem; font-weight:700; letter-spacing:.02em; margin-bottom:1.5rem; }
.hero-pill i { color:var(--club-accent); font-size:1.1rem; }
.hero-title { font-weight:800; font-size:clamp(2.7rem, 7vw, 5.2rem); line-height:1; letter-spacing:-.04em; margin:0; text-wrap:balance; text-shadow:0 2px 30px rgba(2,6,23,.25); }
.hero-text { font-size:clamp(1.08rem, 1.6vw, 1.3rem); line-height:1.6; color:rgba(255,255,255,.9); margin:1.5rem 0 0; max-width:620px; text-wrap:pretty; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2.25rem; }
.hero-card { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(18px) saturate(1.4); -webkit-backdrop-filter:blur(18px) saturate(1.4); border-radius:var(--r-lg); padding:1.4rem 1.5rem; color:#fff; text-decoration:none; display:block; transition:background .25s, transform .3s var(--ease); }
a.hero-card:hover { background:rgba(255,255,255,.18); color:#fff; transform:translateY(-3px); }
.hero-card-label { font-size:.74rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--club-accent); margin-bottom:.9rem; display:flex; align-items:center; gap:.5rem; }
.hero-card-label .live { width:8px; height:8px; border-radius:50%; background:var(--club-accent); box-shadow:0 0 0 0 var(--club-accent); animation:pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow:0 0 0 10px transparent; } 100% { box-shadow:0 0 0 0 transparent; } }
.hero-card-row { display:flex; gap:1rem; align-items:center; }
.hero-card-title { font-weight:700; font-size:1.1rem; line-height:1.3; }
.hero-card-meta { font-size:.88rem; color:rgba(255,255,255,.75); margin-top:.25rem; }
.hero-card-sep { height:1px; background:rgba(255,255,255,.16); margin:1.1rem 0; }
.hero-card .date-tile { background:#fff; }
@media (prefers-reduced-motion: reduce) { .hero-bg img, .hero-card-label .live { animation:none; } }

/* blocchetto data (calendario) */
.date-tile { flex:0 0 64px; width:64px; border-radius:14px; overflow:hidden; text-align:center; background:#fff; box-shadow:var(--shadow-sm); line-height:1; color:var(--ink); }
.date-tile .m { display:block; background:var(--club-primary); color:#fff; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; padding:.35rem 0 .3rem; }
.date-tile .d { display:block; font-size:1.65rem; font-weight:800; letter-spacing:-.03em; padding:.4rem 0 .1rem; }
.date-tile .w { display:block; font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); padding-bottom:.45rem; }

/* chi siamo */
.about-grid { display:grid; gap:clamp(2.5rem, 6vw, 5rem); align-items:center; }
@media (min-width: 992px) { .about-grid { grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr); } }
.about-text p { white-space:pre-line; }
.about-actions { display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; align-items:center; margin-top:2rem; }
.facts { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; }
.fact { background:var(--paper); border-radius:var(--r-lg); padding:clamp(1.25rem, 3vw, 1.75rem); display:flex; flex-direction:column; justify-content:flex-end; min-height:150px; }
.fact-num { font-size:clamp(2.3rem, 5vw, 3.4rem); font-weight:800; letter-spacing:-.045em; line-height:1; color:var(--club-primary); font-variant-numeric:tabular-nums; }
.fact-label { font-weight:600; color:var(--ink-soft); margin-top:.5rem; line-height:1.35; font-size:.98rem; }
.fact-num.is-text { font-size:clamp(1.8rem, 3.4vw, 2.4rem); letter-spacing:-.035em; }
.fact-blue { background:var(--club-primary); }
.fact-blue .fact-num { color:#fff; }
.fact-blue .fact-label { color:rgba(255,255,255,.82); }
.fact-gold { background:var(--club-accent); }
.fact-gold .fact-num, .fact-gold .fact-label { color:var(--on-accent); }
.leader { grid-column:1 / -1; display:flex; align-items:center; gap:1rem; padding:1.1rem 1.25rem; border-radius:var(--r-lg); box-shadow:var(--shadow-sm); background:#fff; }
.avatar { flex:0 0 auto; width:56px; height:56px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:1.1rem; color:var(--on-accent); background:linear-gradient(135deg, var(--club-accent), color-mix(in srgb, var(--club-accent) 70%, #fff)); overflow:hidden; }
.avatar img { width:100%; height:100%; object-fit:cover; }
.leader-role { font-size:.76rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.leader-name { font-weight:700; font-size:1.1rem; line-height:1.3; }

/* incontriamoci */
.meet-grid { display:grid; gap:1.5rem; align-items:start; }
@media (min-width: 992px) { .meet-grid { grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:2rem; } }
.ev-list { display:grid; gap:.75rem; }
.ev-row { display:flex; align-items:center; gap:1.25rem; padding:1rem 1.25rem 1rem 1rem; background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-sm); text-decoration:none; color:var(--ink); transition:box-shadow .25s, transform .25s var(--ease); }
.ev-row:hover { box-shadow:var(--shadow), 0 0 0 1px var(--line); transform:translateY(-2px); color:var(--ink); }
.ev-body { flex:1; min-width:0; }
.ev-title { font-weight:700; font-size:1.08rem; line-height:1.35; }
.ev-meta { display:flex; flex-wrap:wrap; gap:.2rem 1rem; color:var(--muted); font-size:.88rem; margin-top:.3rem; }
.ev-meta i { margin-right:.3rem; }
.ev-go { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--paper); color:var(--ink-soft); flex-shrink:0; transition:background .2s, color .2s, transform .25s var(--ease); }
.ev-row:hover .ev-go { background:var(--club-primary); color:#fff; transform:translateX(3px); }
.ev-row.is-past { opacity:.85; }
.ev-empty { background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-sm); padding:2rem; color:var(--ink-soft); display:flex; gap:1rem; align-items:center; }
.ev-empty i { font-size:1.8rem; color:var(--club-primary); }
.meet-card { border-radius:var(--r-lg); padding:clamp(1.5rem, 3vw, 2rem); background:var(--club-primary); color:#fff; position:relative; overflow:hidden; isolation:isolate; }
.meet-card::after { content:"\F3E5"; font-family:'bootstrap-icons'; position:absolute; right:-40px; bottom:-60px; font-size:220px; line-height:1; color:#fff; opacity:.06; z-index:-1; }
.meet-card-ico { width:52px; height:52px; border-radius:16px; display:grid; place-items:center; background:rgba(255,255,255,.12); color:var(--club-accent); font-size:1.5rem; margin-bottom:1.25rem; }
.meet-card h3 { font-weight:800; font-size:1.35rem; letter-spacing:-.015em; margin:0 0 .6rem; }
.meet-card p { color:rgba(255,255,255,.85); white-space:pre-line; margin:0; }
.meet-card .btn { margin-top:1.5rem; }
.meet-card-links { display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; align-items:center; margin-top:1.5rem; }
.meet-card-links .btn { margin:0; }
.meet-card-links a:not(.btn) { color:#fff; font-weight:600; font-size:.92rem; }

/* il Rotary (fascia in home) */
.rotary-band { background:var(--club-navy); color:#fff; overflow:hidden; isolation:isolate; }
.rotary-band::before { content:"\F3E5"; font-family:'bootstrap-icons'; position:absolute; right:-6%; top:50%; transform:translateY(-50%); font-size:min(70vw, 720px); line-height:1; color:#fff; opacity:.035; z-index:-1; pointer-events:none; }
.rb-grid { display:grid; gap:3rem; align-items:center; }
@media (min-width: 992px) { .rb-grid { grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr); gap:5rem; } }
.rb-facts { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1px; background:rgba(255,255,255,.12); border-radius:var(--r-lg); overflow:hidden; }
.rb-fact { background:var(--club-navy); padding:clamp(1.25rem, 3vw, 1.85rem); }
.rb-fact strong { display:block; font-size:clamp(1.9rem, 4vw, 2.8rem); font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--club-accent); }
.rb-fact span { display:block; color:rgba(255,255,255,.78); margin-top:.5rem; font-size:.94rem; line-height:1.35; }
.area-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin:2rem 0 2.25rem; padding:0; list-style:none; }
.area-chip { display:inline-flex; align-items:center; gap:.5rem; padding:.42rem .85rem .42rem .45rem; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); font-size:.85rem; font-weight:600; color:#fff; }
.area-chip i { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:var(--area); color:#fff; font-size:.8rem; }

/* rassegna stampa */
.press-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); }
.press-card { position:relative; display:flex; flex-direction:column; gap:.75rem; min-height:220px; padding:1.5rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); text-decoration:none; color:var(--ink); transition:box-shadow .25s, transform .25s var(--ease); }
.press-card:hover { box-shadow:var(--shadow), 0 0 0 1px var(--line); transform:translateY(-3px); color:var(--ink); }
.press-card::before { content:"\201C"; font-family:Georgia, serif; font-size:4rem; line-height:.6; color:var(--club-accent); height:1.6rem; }
.press-src { font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--club-primary); }
.press-title { font-weight:700; font-size:1.06rem; line-height:1.4; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.press-date { margin-top:auto; color:var(--muted); font-size:.85rem; }

/* card generiche (notizie, sotto-pagine) */
.cards { display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.card-x { position:relative; display:flex; flex-direction:column; background:#fff; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow .3s, transform .3s var(--ease); height:100%; }
.card-x:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.card-x-img { aspect-ratio:16/10; overflow:hidden; background:var(--tint); display:block; }
.card-x-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.card-x:hover .card-x-img img { transform:scale(1.05); }
.card-x-ph { width:100%; height:100%; display:grid; place-items:center; font-size:2.4rem; color:color-mix(in srgb, var(--club-primary) 40%, #fff); background:radial-gradient(circle at 30% 20%, #fff, var(--tint-2)); }
.card-x-body { padding:1.35rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.card-x-meta { font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:.5rem; }
.card-x-title { font-size:1.15rem; font-weight:700; line-height:1.32; letter-spacing:-.01em; margin:0 0 .5rem; }
.card-x-title a { color:var(--ink); text-decoration:none; }
.card-x-title a::after { content:""; position:absolute; inset:0; }
.card-x:hover .card-x-title a { color:var(--club-primary); }
.card-x-text { color:var(--ink-soft); font-size:.95rem; margin:0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.card-x-go { margin-top:auto; padding-top:1rem; font-weight:700; font-size:.9rem; color:var(--club-primary); display:inline-flex; gap:.4rem; align-items:center; }
.card-x-go i { transition:transform .25s var(--ease); }
.card-x:hover .card-x-go i { transform:translateX(4px); }

/* invito finale */
.join-card { position:relative; overflow:hidden; isolation:isolate; border-radius:var(--r-xl); color:#fff; padding:clamp(2.5rem, 7vw, 5rem); display:grid; gap:2rem; align-items:center;
  background:radial-gradient(700px 400px at 100% 0%, color-mix(in srgb, var(--club-accent) 35%, transparent), transparent 60%), linear-gradient(135deg, var(--club-primary), var(--club-navy)); }
.join-card::after { content:"\F3E5"; font-family:'bootstrap-icons'; position:absolute; left:-80px; bottom:-140px; font-size:420px; line-height:1; opacity:.05; z-index:-1; }
@media (min-width: 992px) { .join-card { grid-template-columns:minmax(0, 1.4fr) auto; gap:4rem; } }
.join-card .display-h { color:#fff; }
.join-card p { color:rgba(255,255,255,.85); font-size:1.12rem; margin:0; max-width:620px; }
.join-actions { display:flex; flex-wrap:wrap; gap:.75rem; }

/* ══ Pagine interne ═══════════════════════════════════════ */
.ph { background:linear-gradient(180deg, var(--tint) 0%, #fff 100%); padding:clamp(2.25rem, 6vw, 4.25rem) 0 clamp(2rem, 4vw, 3rem); }
.ph h1 { font-weight:800; font-size:clamp(2.2rem, 5.2vw, 3.8rem); letter-spacing:-.04em; line-height:1.04; margin:0; max-width:900px; text-wrap:balance; }
.ph-lead { font-size:clamp(1.08rem, 1.6vw, 1.28rem); color:var(--ink-soft); line-height:1.6; margin:1.25rem 0 0; max-width:760px; text-wrap:pretty; }
.ph-cover { margin-bottom:clamp(.5rem, 2vw, 1rem); }
.ph-cover img { width:100%; aspect-ratio:21/9; max-height:560px; object-fit:cover; border-radius:var(--r-xl); display:block; }
@media (max-width: 767.98px) { .ph-cover img { aspect-ratio:4/3; border-radius:var(--r-lg); } }
.crumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:.25rem .5rem; padding:0; margin:0 0 1.5rem; font-size:.86rem; font-weight:600; }
.crumbs li { display:flex; align-items:center; gap:.5rem; color:var(--muted); }
.crumbs li + li::before { content:"/"; opacity:.45; }
.crumbs a { color:var(--ink-soft); text-decoration:none; }
.crumbs a:hover { color:var(--club-primary); text-decoration:underline; }
.crumbs [aria-current] { color:var(--club-primary); }

.page-wrap { padding-top:clamp(2rem, 5vw, 3.5rem); padding-bottom:clamp(4rem, 8vw, 6rem); }
.page-grid { display:grid; gap:2.5rem; grid-template-columns:minmax(0, 1fr); }
@media (min-width: 992px) { .page-grid.has-side { grid-template-columns:240px minmax(0, 1fr); gap:clamp(3rem, 6vw, 5rem); } }
.sidenav { align-self:start; }
@media (min-width: 992px) { .sidenav { position:sticky; top:calc(var(--hdr-h) + 2rem); } }
.sidenav-h { font-size:.74rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:.75rem; }
.sidenav ul { list-style:none; margin:0; padding:0; border-left:2px solid var(--line); }
.sidenav a { display:block; padding:.5rem 0 .5rem 1rem; margin-left:-2px; border-left:2px solid transparent; color:var(--ink-soft); text-decoration:none; font-weight:600; font-size:.95rem; line-height:1.35; transition:color .2s, border-color .2s; }
.sidenav a:hover { color:var(--club-primary); }
.sidenav a.is-active { color:var(--club-primary); border-left-color:var(--club-accent); }
@media (max-width: 991.98px) {
  .sidenav ul { display:flex; gap:.5rem; overflow-x:auto; border:0; padding-bottom:.25rem; scrollbar-width:none; }
  .sidenav a { white-space:nowrap; border:1px solid var(--line); border-radius:999px; padding:.45rem .9rem; margin:0; font-size:.9rem; }
  .sidenav a.is-active { background:var(--club-primary); color:#fff; border-color:var(--club-primary); }
  .sidenav-h { display:none; }
}

.prose { line-height:1.8; font-size:1.0625rem; color:#26344a; max-width:760px; overflow-wrap:break-word; }
.prose > *:first-child { margin-top:0; }
.prose > p:first-child:not(:only-child) { font-size:1.15rem; color:var(--ink); }
.prose h2 { font-weight:800; font-size:clamp(1.5rem, 2.6vw, 1.9rem); margin:2.75rem 0 1rem; letter-spacing:-.025em; line-height:1.2; color:var(--ink); }
.prose h3 { font-weight:700; font-size:1.3rem; margin:2rem 0 .7rem; letter-spacing:-.015em; color:var(--ink); }
.prose h4 { font-weight:700; font-size:1.1rem; margin:1.5rem 0 .5rem; }
.prose a { font-weight:600; }
.prose img { max-width:100%; height:auto; border-radius:var(--r); margin:1rem 0; }
.prose figure { margin:1.5rem 0; }
.prose figcaption { font-size:.88rem; color:var(--muted); margin-top:.5rem; }
.prose blockquote { border-left:4px solid var(--club-accent); padding:.4rem 0 .4rem 1.4rem; color:var(--ink-soft); font-size:1.15rem; font-style:italic; margin:2rem 0; }
.prose iframe { width:100%; aspect-ratio:16/9; height:auto; border:0; border-radius:var(--r); }
.prose table { width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:.95rem; }
.prose th, .prose td { border-bottom:1px solid var(--line); padding:.6rem .7rem; text-align:left; }
.prose ul, .prose ol { padding-left:1.3rem; }
.prose li { margin:.3rem 0; }
.prose li::marker { color:var(--club-primary); }
.prose hr { margin:2.5rem 0; border-color:var(--line); opacity:1; }
.prose .ql-align-center { text-align:center; }
.prose .ql-align-right { text-align:right; }
.prose .ql-align-justify { text-align:justify; }

.block { margin-top:clamp(3rem, 6vw, 4.5rem); }
.page-wrap > .block:first-child { margin-top:0; }
.block-h { font-weight:800; font-size:clamp(1.5rem, 2.8vw, 2rem); letter-spacing:-.03em; margin:0 0 1.5rem; }

/* sotto-pagine di una sezione */
.hub-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.hub-card { position:relative; display:flex; flex-direction:column; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); overflow:hidden; text-decoration:none; color:var(--ink); transition:box-shadow .3s, transform .3s var(--ease); }
.hub-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); color:var(--ink); }
.hub-card-img { aspect-ratio:16/9; overflow:hidden; background:var(--tint); }
.hub-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.hub-card:hover .hub-card-img img { transform:scale(1.05); }
.hub-card-ico { margin:1.4rem 1.4rem 0; width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:var(--tint); color:var(--club-primary); font-size:1.25rem; }
.hub-card-body { padding:1.2rem 1.4rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.hub-card-title { font-weight:700; font-size:1.12rem; line-height:1.3; }
.hub-card-desc { font-size:.92rem; color:var(--ink-soft); margin-top:.4rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hub-card .card-x-go { padding-top:.9rem; }

/* albo dei presidenti */
.pres-now { display:flex; gap:1.25rem; align-items:center; padding:1.5rem; border-radius:var(--r-lg); background:linear-gradient(135deg, var(--club-primary), var(--club-navy)); color:#fff; margin-bottom:2.5rem; }
.pres-now .avatar { width:72px; height:72px; font-size:1.4rem; }
.pres-now-role { font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--club-accent); }
.pres-now-name { font-size:clamp(1.3rem, 3vw, 1.7rem); font-weight:800; letter-spacing:-.02em; line-height:1.2; }
.pres-now-year { color:rgba(255,255,255,.75); font-weight:600; }
.pres-decade { display:grid; gap:1rem; padding:1.5rem 0; border-top:1px solid var(--line); }
@media (min-width: 768px) { .pres-decade { grid-template-columns:120px minmax(0, 1fr); } }
.pres-decade-h { font-size:1.6rem; font-weight:800; letter-spacing:-.03em; color:var(--club-primary); line-height:1; }
.pres-list { display:grid; gap:.5rem 1.5rem; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); list-style:none; margin:0; padding:0; }
.pres-list li { display:flex; gap:.75rem; align-items:baseline; padding:.4rem 0; }
.pres-year { flex:0 0 62px; font-size:.82rem; font-weight:700; color:var(--muted); font-variant-numeric:tabular-nums; }
.pres-name { font-weight:600; line-height:1.35; }
.pres-name small { display:block; font-weight:500; font-size:.8rem; color:var(--muted); margin-top:.1rem; }
.tag { display:inline-block; font-size:.7rem; font-weight:700; padding:.12rem .55rem; border-radius:999px; background:var(--tint-2); color:var(--club-primary); margin:.2rem .25rem 0 0; vertical-align:middle; }
.tag-gold { background:color-mix(in srgb, var(--club-accent) 25%, #fff); color:#6b4a00; }

/* soci fondatori */
.people-grid { list-style:none; padding:0; margin:0; display:grid; gap:.75rem; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
.person { display:flex; gap:.85rem; align-items:center; padding:.85rem 1rem; border-radius:var(--r); background:var(--paper); }
.person .avatar { width:44px; height:44px; font-size:.9rem; background:var(--tint-2); color:var(--club-primary); }
.person-name { font-weight:700; line-height:1.3; }
.person-note { font-size:.82rem; color:var(--muted); }

/* contatti */
.contact-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.contact-card { display:flex; flex-direction:column; gap:.4rem; padding:1.5rem; border-radius:var(--r-lg); background:var(--paper); text-decoration:none; color:var(--ink); line-height:1.5; transition:background .2s, transform .25s var(--ease); }
a.contact-card:hover { background:var(--tint-2); color:var(--ink); transform:translateY(-2px); }
.contact-card i { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:#fff; color:var(--club-primary); font-size:1.3rem; margin-bottom:.6rem; box-shadow:var(--shadow-sm); }
.contact-card strong { font-size:.76rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.contact-card span { font-weight:600; white-space:pre-line; overflow-wrap:anywhere; }

/* diventa socio: i passi */
.steps { list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.steps li { display:flex; flex-direction:column; gap:.4rem; padding:1.5rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); }
.steps-n { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--club-accent); color:var(--on-accent); font-weight:800; margin-bottom:.6rem; }
.steps strong { font-size:1.08rem; line-height:1.3; }
.steps li > span:last-child { color:var(--ink-soft); font-size:.94rem; }

/* ══ Il Rotary (modello di pagina) ════════════════════════ */
.r-facts { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; }
@media (min-width: 992px) { .r-facts { grid-template-columns:repeat(4, minmax(0, 1fr)); } }
.r-facts .fact { min-height:140px; }
.r-motto { text-align:center; padding:clamp(3.5rem, 8vw, 6rem) 0; }
.r-motto blockquote { font-size:clamp(1.8rem, 4.5vw, 3.2rem); font-weight:800; letter-spacing:-.035em; line-height:1.12; margin:0 auto; max-width:900px; text-wrap:balance; }
.r-motto blockquote::before { content:"\201C"; display:block; font-family:Georgia, serif; font-size:5rem; line-height:.5; color:var(--club-accent); margin-bottom:1.5rem; }
.r-motto cite { display:block; margin-top:1rem; font-style:normal; color:var(--muted); font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.85rem; }
.r-motto p { max-width:720px; margin:1.75rem auto 0; color:var(--ink-soft); font-size:1.1rem; }
.values { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin-top:3rem; text-align:left; }
.value { padding:1.4rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); }
.value i { font-size:1.4rem; color:var(--club-primary); }
.value h3 { font-size:1.1rem; font-weight:800; margin:.75rem 0 .35rem; }
.value p { font-size:.92rem; color:var(--ink-soft); margin:0; line-height:1.55; }
.areas-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.area-card { padding:1.5rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); position:relative; overflow:hidden; }
.area-card::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:var(--area); }
.area-card i { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; font-size:1.3rem; color:#fff; background:var(--area); }
.area-card h3 { font-size:1.08rem; font-weight:800; margin:1rem 0 .4rem; line-height:1.3; }
.area-card p { font-size:.92rem; color:var(--ink-soft); margin:0; }
.feature-grid { display:grid; gap:1.5rem; }
@media (min-width: 992px) { .feature-grid { grid-template-columns:1fr 1fr; } }
.feature { border-radius:var(--r-xl); padding:clamp(2rem, 4vw, 2.75rem); display:flex; flex-direction:column; gap:1rem; position:relative; overflow:hidden; isolation:isolate; }
.feature h3 { font-size:clamp(1.5rem, 3vw, 2rem); font-weight:800; letter-spacing:-.03em; margin:0; }
.feature p { margin:0; font-size:1.02rem; line-height:1.7; }
.feature .btn { align-self:flex-start; margin-top:.5rem; }
.feature-blue { background:var(--club-primary); color:#fff; }
.feature-blue p { color:rgba(255,255,255,.85); }
.feature-polio { background:#fff4e0; color:var(--ink); }
.feature-polio p { color:var(--ink-soft); }
.feature-ico { font-size:2rem; color:var(--club-accent); }
.feature-polio .feature-ico { color:#c8102e; }
.youth-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.youth { padding:1.5rem; border-radius:var(--r-lg); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.youth i { font-size:1.5rem; color:var(--club-accent); }
.youth h3 { font-size:1.15rem; font-weight:800; margin:.8rem 0 .4rem; }
.youth p { margin:0; color:rgba(255,255,255,.78); font-size:.93rem; }
.test-list { list-style:none; counter-reset:t; margin:0; padding:0; display:grid; gap:.75rem; }
.test-list li { counter-increment:t; display:flex; gap:1.25rem; align-items:center; padding:1.15rem 1.4rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); font-size:clamp(1.05rem, 2vw, 1.25rem); line-height:1.4; }
.test-list li::before { content:counter(t); flex:0 0 44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--club-accent); color:var(--on-accent); font-weight:800; font-size:1.1rem; }
.test-list strong { color:var(--club-primary); }
.timeline { list-style:none; margin:0; padding:0; display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 190px), 1fr)); position:relative; }
.timeline li { position:relative; padding-top:1.5rem; border-top:2px solid var(--line); }
.timeline li::before { content:""; position:absolute; top:-7px; left:0; width:12px; height:12px; border-radius:50%; background:var(--club-accent); box-shadow:0 0 0 4px #fff; }
.timeline strong { display:block; font-size:1.6rem; font-weight:800; letter-spacing:-.03em; color:var(--club-primary); line-height:1; margin-bottom:.5rem; }
.timeline span { color:var(--ink-soft); font-size:.95rem; line-height:1.55; display:block; }
.district-card { display:grid; gap:1.5rem; align-items:center; padding:clamp(1.75rem, 4vw, 2.5rem); border-radius:var(--r-xl); background:var(--paper); }
@media (min-width: 768px) { .district-card { grid-template-columns:auto minmax(0, 1fr) auto; } }
.district-badge { width:96px; height:96px; border-radius:24px; display:grid; place-items:center; text-align:center; background:var(--club-primary); color:#fff; line-height:1; }
.district-badge small { display:block; font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--club-accent); }
.district-badge strong { display:block; font-size:1.7rem; font-weight:800; letter-spacing:-.03em; margin-top:.3rem; }
.district-card h3 { font-weight:800; font-size:1.35rem; margin:0 0 .4rem; }
.district-card p { margin:0; color:var(--ink-soft); }

.min-w-0 { min-width:0; }
.youth-panel { background:var(--club-navy); color:#fff; border-radius:var(--r-xl); padding:clamp(2rem, 5vw, 3.5rem); position:relative; overflow:hidden; isolation:isolate; }
.youth-panel::after { content:"\F3E5"; font-family:"bootstrap-icons"; position:absolute; right:-60px; top:-80px; font-size:360px; line-height:1; opacity:.04; z-index:-1; }
.r-split { display:grid; gap:2rem; align-items:center; }
@media (min-width: 992px) { .r-split { grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:4rem; } }
/* ══ Il club (pagina di sistema /club) ════════════════════ */
.club-grid { display:grid; gap:2.5rem; align-items:start; }
@media (min-width: 992px) { .club-grid { grid-template-columns:minmax(0, 1fr) 360px; gap:clamp(3rem, 6vw, 5rem); } }
.idcard { border-radius:var(--r-xl); background:#fff; box-shadow:var(--shadow), 0 0 0 1px var(--line); padding:1.6rem; }
@media (min-width: 992px) { .idcard { position:sticky; top:calc(var(--hdr-h) + 1.5rem); } }
.idcard-head { display:flex; gap:1rem; align-items:center; padding-bottom:1.25rem; margin-bottom:.5rem; border-bottom:1px solid var(--line); }
.idcard-head img { height:48px; width:auto; max-width:120px; object-fit:contain; }
.idcard-kicker { font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--club-primary); }
.idcard-name { font-weight:800; font-size:1.1rem; line-height:1.25; letter-spacing:-.01em; }
.idcard dl { margin:0 0 1.25rem; }
.idcard dl > div { display:grid; grid-template-columns:110px minmax(0, 1fr); gap:.75rem; padding:.7rem 0; border-bottom:1px dashed var(--line); font-size:.93rem; }
.idcard dl > div:last-child { border-bottom:0; }
.idcard dt { font-weight:600; color:var(--muted); }
.idcard dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.idcard dd.pre { white-space:pre-line; }
.board { list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
.board-card { display:flex; flex-direction:column; align-items:flex-start; gap:.2rem; padding:1.4rem; border-radius:var(--r-lg); background:var(--paper); }
.board-card .avatar { width:64px; height:64px; font-size:1.2rem; margin-bottom:.9rem; background:var(--tint-2); color:var(--club-primary); }
.board-card.is-lead { background:linear-gradient(135deg, var(--club-primary), var(--club-navy)); color:#fff; }
.board-card.is-lead .avatar { background:linear-gradient(135deg, var(--club-accent), color-mix(in srgb, var(--club-accent) 70%, #fff)); color:var(--on-accent); }
.board:has(> .board-card:only-child) { display:block; }
.board-card:only-child { display:grid; grid-template-columns:auto 1fr; column-gap:1.25rem; align-items:center; width:fit-content; min-width:min(100%, 380px); max-width:100%; padding:1.5rem 2rem 1.5rem 1.5rem; }
.board-card:only-child .avatar { grid-row:span 2; width:80px; height:80px; font-size:1.5rem; margin:0; }
.board-card:only-child .board-role { align-self:end; }
.board-card:only-child .board-name { align-self:start; font-size:1.4rem; }
.board-role { font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--club-primary); }
.is-lead .board-role { color:var(--club-accent); }
.board-name { font-weight:700; font-size:1.1rem; line-height:1.3; }
.timeline-people { grid-template-columns:repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
.timeline-people .tl-name { color:var(--ink); font-weight:700; font-size:1.02rem; }
.timeline-people .tl-note { font-size:.84rem; color:var(--muted); margin-top:.25rem; }
.timeline-people strong { font-size:1.15rem; }
.founders-strip { display:flex; align-items:center; gap:1.25rem; margin-top:2.5rem; padding:1.25rem 1.5rem; border-radius:var(--r-lg); background:var(--paper); text-decoration:none; color:var(--ink); transition:background .2s; }
a.founders-strip[href]:hover { background:var(--tint-2); color:var(--ink); }
.founders-faces { display:flex; flex-shrink:0; }
.founders-faces .avatar { width:44px; height:44px; font-size:.8rem; border:3px solid var(--paper); margin-left:-12px; background:var(--tint-2); color:var(--club-primary); }
.founders-faces .avatar:first-child { margin-left:0; }
.founders-txt { flex:1; min-width:0; }
.founders-txt strong { display:block; font-size:1.05rem; }
.founders-txt span { color:var(--ink-soft); font-size:.92rem; }
.founders-go { font-size:1.2rem; color:var(--club-primary); }
@media (max-width: 575.98px) { .founders-strip { flex-direction:column; align-items:flex-start; } }
.area-tiles { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.area-tile { display:flex; flex-direction:column; gap:.3rem; padding:1.4rem; border-radius:var(--r-lg); background:color-mix(in srgb, var(--area) 8%, #fff); text-decoration:none; color:var(--ink); border:1px solid color-mix(in srgb, var(--area) 18%, #fff); transition:transform .25s var(--ease), box-shadow .25s; }
.area-tile:hover { transform:translateY(-3px); box-shadow:var(--shadow); color:var(--ink); }
.area-tile i { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--area); color:#fff; font-size:1.2rem; margin-bottom:.7rem; }
.area-tile-name { font-weight:800; line-height:1.3; }
.area-tile-n { font-size:.88rem; color:var(--ink-soft); font-weight:600; }
.join-mini { border-radius:var(--r-lg); padding:clamp(1.5rem, 3vw, 2rem); background:var(--paper); }
.join-mini > i { width:52px; height:52px; border-radius:16px; display:grid; place-items:center; background:var(--club-accent); color:var(--on-accent); font-size:1.4rem; margin-bottom:1.25rem; }
.join-mini h3 { font-weight:800; font-size:1.35rem; letter-spacing:-.015em; margin:0 0 .6rem; }
.join-mini p { color:var(--ink-soft); margin:0 0 1.5rem; }
/* ══ Storia del club (/club/history) ══════════════════════ */
.hist-nav { display:flex; flex-wrap:nowrap; gap:.4rem; margin-bottom:2.5rem; position:sticky; top:calc(var(--hdr-h) + .5rem); z-index:5; padding:.4rem; border-radius:999px; background:rgba(255,255,255,.9); backdrop-filter:blur(10px); box-shadow:var(--shadow-sm); width:fit-content; max-width:100%; overflow-x:auto; scrollbar-width:none; }
.hist-nav a { padding:.4rem .9rem; border-radius:999px; font-weight:700; font-size:.88rem; text-decoration:none; color:var(--ink-soft); white-space:nowrap; }
.hist-nav a:hover { background:var(--tint); color:var(--club-primary); }
.hist-decade { scroll-margin-top:calc(var(--hdr-h) + 5rem); }
.hist-decade + .hist-decade { margin-top:3rem; }
.hist-decade-h { font-weight:800; font-size:clamp(1.8rem, 4vw, 2.6rem); letter-spacing:-.04em; color:var(--club-primary); margin:0 0 1.5rem; }
.hist { list-style:none; margin:0; padding:0; position:relative; }
.hist::before { content:""; position:absolute; left:92px; top:.5rem; bottom:.5rem; width:2px; background:var(--line); }
.hist-year { display:grid; grid-template-columns:80px minmax(0, 1fr); gap:2.5rem; padding:.6rem 0; position:relative; scroll-margin-top:calc(var(--hdr-h) + 5rem); }
.hist-year::before { content:""; position:absolute; left:87px; top:1.15rem; width:12px; height:12px; border-radius:50%; background:#fff; border:2px solid var(--line); }
.hist-year.is-rich { padding:1.25rem 0; }
.hist-year.is-rich::before { background:var(--club-accent); border-color:var(--club-accent); box-shadow:0 0 0 4px #fff; top:1.85rem; }
.hist-year.is-founding::before { background:var(--club-primary); border-color:var(--club-primary); width:16px; height:16px; left:85px; }
.hist-label { font-weight:800; font-size:.95rem; color:var(--muted); padding-top:.55rem; font-variant-numeric:tabular-nums; text-align:right; }
.is-rich .hist-label { color:var(--club-primary); font-size:1.15rem; padding-top:1.2rem; }
.hist-body { min-width:0; }
.is-rich .hist-body { background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-sm); padding:1.25rem 1.4rem; display:grid; gap:1.1rem; }
.is-founding .hist-body { background:none; box-shadow:none; padding:0; }
.hist-pres { display:flex; align-items:center; gap:.8rem; }
.hist-pres .avatar { width:40px; height:40px; font-size:.82rem; background:var(--tint-2); color:var(--club-primary); }
.is-rich .hist-pres .avatar { width:48px; height:48px; font-size:.95rem; background:linear-gradient(135deg, var(--club-accent), color-mix(in srgb, var(--club-accent) 70%, #fff)); color:var(--on-accent); }
.hist-role { display:block; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.hist-name { display:block; font-weight:700; line-height:1.3; }
.hist-note { display:inline-flex; gap:.35rem; align-items:center; font-size:.8rem; font-weight:600; color:#6b4a00; background:color-mix(in srgb, var(--club-accent) 22%, #fff); border-radius:999px; padding:.1rem .6rem; margin-top:.3rem; }
.hist-founding { display:flex; gap:.9rem; align-items:center; padding:1rem 1.15rem; border-radius:var(--r); background:var(--club-primary); color:#fff; }
.hist-founding i { font-size:1.4rem; color:var(--club-accent); }
.hist-founding strong { display:block; }
.hist-founding span { font-size:.9rem; color:rgba(255,255,255,.8); }
.hist-group { border-top:1px dashed var(--line); padding-top:1rem; }
.hist-h { display:flex; align-items:center; gap:.5rem; font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.6rem; }
.hist-h i { color:var(--club-primary); font-size:.95rem; }
.hist-projects { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.hist-projects a { display:inline-flex; align-items:center; gap:.5rem; padding:.4rem .85rem .4rem .4rem; border-radius:999px; background:color-mix(in srgb, var(--area) 9%, #fff); border:1px solid color-mix(in srgb, var(--area) 22%, #fff); color:var(--ink); font-weight:600; font-size:.9rem; text-decoration:none; transition:background .2s; }
.hist-projects a:hover { background:color-mix(in srgb, var(--area) 18%, #fff); color:var(--ink); }
.hist-projects i { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:var(--area); color:#fff; font-size:.78rem; }
.hist-list { list-style:none; margin:0; padding:0; display:grid; gap:.35rem; }
.hist-list a { color:var(--ink); text-decoration:none; font-weight:600; font-size:.95rem; line-height:1.4; }
.hist-list a:hover { color:var(--club-primary); text-decoration:underline; }
.hist-src { font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--club-primary); margin-right:.5rem; }
.hist-more { display:inline-block; margin-top:.5rem; font-size:.86rem; font-weight:700; text-decoration:none; }
@media (max-width: 575.98px) {
  .hist::before { left:6px; }
  .hist-year { grid-template-columns:1fr; gap:.4rem; padding-left:1.75rem; }
  .hist-year::before, .hist-year.is-rich::before { left:1px; top:.85rem; }
  .hist-year.is-founding::before { left:-1px; }
  .hist-label, .is-rich .hist-label { text-align:left; padding-top:0; }
}
/* ══ Pagine curate (Fondazione, End Polio, Giovani, Scambio Giovani) ═══ */
.values-4 { grid-template-columns:repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin-top:0; }
.values-3 { grid-template-columns:repeat(auto-fit, minmax(min(100%, 230px), 1fr)); margin-top:0; }
.programs { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.program { padding:1.6rem; border-radius:var(--r-lg); background:var(--paper); display:flex; flex-direction:column; gap:.35rem; }
.program > i { font-size:1.6rem; color:var(--club-primary); margin-bottom:.6rem; }
.program h3 { font-weight:800; font-size:1.3rem; letter-spacing:-.02em; margin:0; }
.program-sub { font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.program p { margin:.5rem 0 0; color:var(--ink-soft); font-size:.95rem; }
.program.is-main { background:linear-gradient(135deg, var(--club-primary), var(--club-navy)); color:#fff; }
.program.is-main > i, .program.is-main .program-sub { color:var(--club-accent); }
.program.is-main p { color:rgba(255,255,255,.82); }
.r-split-top { align-items:start; }
.checks { list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.checks li { display:flex; gap:.8rem; align-items:flex-start; font-size:1.04rem; line-height:1.5; }
.checks i { color:var(--club-primary); font-size:1.25rem; margin-top:.05rem; }
.safety { padding:1.75rem; border-radius:var(--r-lg); background:color-mix(in srgb, #0f7a3d 7%, #fff); border:1px solid color-mix(in srgb, #0f7a3d 18%, #fff); }
.safety > i { font-size:1.8rem; color:#0f7a3d; }
.safety h3 { font-weight:800; font-size:1.2rem; margin:.75rem 0 .5rem; }
.safety p { margin:0; color:var(--ink-soft); line-height:1.65; }
.journey { list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 250px), 1fr)); counter-reset:j; }
.journey li { position:relative; display:flex; flex-direction:column; gap:.3rem; padding:1.5rem 1.4rem 1.4rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); }
.journey-n { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--club-primary); color:#fff; font-weight:800; margin-bottom:.5rem; }
.journey li:last-child .journey-n { background:var(--club-accent); color:var(--on-accent); }
.journey-when { font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--club-primary); }
.journey strong { font-size:1.1rem; line-height:1.3; }
.journey-txt { color:var(--ink-soft); font-size:.94rem; line-height:1.55; }
.costs { display:grid; gap:1rem; }
@media (min-width: 768px) { .costs { grid-template-columns:1fr 1fr; } }
.costs-col { padding:1.6rem; border-radius:var(--r-lg); background:var(--paper); }
.costs-col.is-incl { background:color-mix(in srgb, var(--club-primary) 7%, #fff); }
.costs-col h3 { display:flex; gap:.6rem; align-items:center; font-weight:800; font-size:1.15rem; margin:0 0 1rem; }
.costs-col h3 i { color:var(--club-primary); }
.costs-col ul { list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.costs-col li { display:flex; gap:.6rem; align-items:flex-start; line-height:1.45; }
.costs-col li i { color:var(--club-primary); flex-shrink:0; }
.is-incl li i { color:#0f7a3d; font-weight:700; }
.host-band { display:grid; gap:2rem; align-items:center; padding:clamp(2rem, 5vw, 3.25rem); border-radius:var(--r-xl); background:linear-gradient(135deg, color-mix(in srgb, var(--club-accent) 30%, #fff), color-mix(in srgb, var(--club-accent) 12%, #fff)); }
@media (min-width: 992px) { .host-band { grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:3rem; } }
.host-band .eyebrow { color:#6b4a00; }
.host-band .eyebrow::before { background:#6b4a00; }
.host-band p { font-size:1.08rem; line-height:1.7; color:var(--ink-soft); margin:0 0 1.5rem; }
.host-points { list-style:none; margin:0; padding:0; display:grid; gap:.75rem; }
.host-points li { display:flex; gap:.75rem; align-items:center; padding:1rem 1.15rem; border-radius:var(--r); background:rgba(255,255,255,.75); font-weight:600; line-height:1.4; }
.host-points i { width:30px; height:30px; flex-shrink:0; border-radius:50%; display:grid; place-items:center; background:var(--club-primary); color:#fff; }
.yeo-row { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.yeo { display:flex; align-items:center; gap:1rem; padding:1.25rem 1.4rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); text-decoration:none; color:var(--ink); flex-wrap:wrap; }
.yeo .avatar { width:56px; height:56px; background:var(--tint-2); color:var(--club-primary); font-size:1.05rem; }
.yeo-role { display:block; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.yeo-name { display:block; font-weight:700; font-size:1.1rem; }
a.yeo-link:hover { box-shadow:var(--shadow), 0 0 0 1px var(--line); color:var(--ink); }
.faq { display:grid; gap:.6rem; max-width:860px; }
.faq details { border-radius:var(--r); background:var(--paper); }
.faq summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.1rem 1.3rem; font-weight:700; font-size:1.04rem; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary i { color:var(--club-primary); transition:transform .25s var(--ease); flex-shrink:0; }
.faq details[open] summary i { transform:rotate(45deg); }
.faq details p { margin:0; padding:0 1.3rem 1.2rem; color:var(--ink-soft); line-height:1.65; }
.flow { list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.flow li { display:flex; flex-direction:column; gap:.4rem; padding:1.5rem; border-radius:var(--r-lg); background:var(--paper); position:relative; }
.flow-ico { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:var(--club-primary); color:#fff; font-size:1.25rem; margin-bottom:.6rem; }
.flow li:last-child .flow-ico { background:var(--club-accent); color:var(--on-accent); }
.flow strong { font-size:1.08rem; }
.flow li > span:last-child { color:var(--ink-soft); font-size:.94rem; line-height:1.55; }
.funded { display:grid; gap:.6rem; }
.funded-row { display:flex; align-items:center; gap:1rem; padding:1rem 1.25rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); text-decoration:none; color:var(--ink); flex-wrap:wrap; }
.funded-row:hover { box-shadow:var(--shadow), 0 0 0 1px var(--line); color:var(--ink); }
.funded-ico { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--area); color:#fff; flex-shrink:0; }
.funded-txt { flex:1; min-width:200px; }
.funded-txt strong { display:block; }
.funded-txt span { font-size:.86rem; color:var(--muted); }
.funded-amt { display:flex; gap:1.25rem; text-align:right; }
.funded-amt span { font-weight:800; color:var(--club-primary); font-size:1.1rem; font-variant-numeric:tabular-nums; }
.funded-amt small { display:block; font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.phf { display:flex; gap:1.5rem; align-items:flex-start; padding:clamp(1.75rem, 4vw, 2.5rem); border-radius:var(--r-xl); background:var(--club-navy); color:#fff; }
.phf > i { font-size:2.6rem; color:var(--club-accent); line-height:1; }
.phf h2 { font-weight:800; font-size:1.5rem; margin:0 0 .5rem; letter-spacing:-.02em; }
.phf p { margin:0; color:rgba(255,255,255,.82); line-height:1.7; }
.polio-day { display:inline-flex; align-items:center; gap:.6rem; padding:.6rem 1.1rem; border-radius:999px; background:#fde8eb; color:#a3122a; font-weight:700; }
.youth-programs { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.yprog { position:relative; display:flex; flex-direction:column; gap:.35rem; padding:1.5rem; border-radius:var(--r-lg); background:#fff; box-shadow:var(--shadow-sm); text-decoration:none; color:var(--ink); transition:box-shadow .3s, transform .3s var(--ease); }
.yprog:hover { box-shadow:var(--shadow-lg); transform:translateY(-3px); color:var(--ink); }
.yprog > i { font-size:1.6rem; color:var(--club-primary); margin-bottom:.4rem; }
.yprog strong { font-size:1.2rem; font-weight:800; }
.yprog-age { position:absolute; top:1.25rem; right:1.25rem; padding:.2rem .65rem; border-radius:999px; background:var(--tint-2); color:var(--club-primary); font-weight:800; font-size:.8rem; }
.yprog-txt { color:var(--ink-soft); font-size:.94rem; line-height:1.55; }
.yprog .card-x-go { padding-top:.6rem; margin-top:auto; }
.yprog.is-ours { background:linear-gradient(135deg, var(--club-primary), var(--club-navy)); color:#fff; }
.yprog.is-ours > i, .yprog.is-ours .card-x-go { color:var(--club-accent); }
.yprog.is-ours .yprog-txt { color:rgba(255,255,255,.82); }
.yprog.is-ours .yprog-age { background:var(--club-accent); color:var(--on-accent); }
.club-note { padding:clamp(1.75rem, 4vw, 2.5rem); border-radius:var(--r-xl); border:1px solid var(--line); }
.club-note-head { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; padding-bottom:1.25rem; border-bottom:1px solid var(--line); }
.club-note-head img { height:48px; width:auto; max-width:130px; object-fit:contain; }
.club-note-head .eyebrow { margin:0; }
.club-note-name { font-weight:800; font-size:1.15rem; }
.club-note .prose { max-width:none; }
/* ══ Elenchi e articoli ═══════════════════════════════════ */
.tabs { display:inline-flex; gap:.25rem; padding:.3rem; border-radius:999px; background:var(--paper); margin-bottom:2rem; }
.tabs a { padding:.5rem 1.1rem; border-radius:999px; font-weight:700; font-size:.92rem; text-decoration:none; color:var(--ink-soft); }
.tabs a.is-active { background:#fff; color:var(--club-primary); box-shadow:var(--shadow-sm); }
.empty { text-align:center; padding:4rem 1rem; color:var(--muted); }
.empty i { font-size:2.5rem; color:var(--tint-2); display:block; margin-bottom:.75rem; color:color-mix(in srgb, var(--club-primary) 30%, #fff); }

.article { max-width:800px; margin:0 auto; padding:clamp(2rem, 5vw, 3.5rem) 0 clamp(3rem, 7vw, 5rem); }
.article-meta { display:flex; flex-wrap:wrap; gap:.25rem 1rem; font-size:.86rem; font-weight:700; color:var(--muted); margin-bottom:1rem; }
.article h1 { font-weight:800; font-size:clamp(2rem, 4.6vw, 3.1rem); line-height:1.08; letter-spacing:-.035em; text-wrap:balance; margin:0; }
.article-lead { font-size:1.22rem; color:var(--ink-soft); line-height:1.6; margin:1.25rem 0 0; }
.article-cover { width:100%; border-radius:var(--r-lg); margin:2rem 0 2.25rem; max-height:560px; object-fit:cover; display:block; }
.article-foot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem; margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.share { display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:.9rem; color:var(--muted); }
.share a, .share button { width:40px; height:40px; border-radius:50%; display:inline-grid; place-items:center; background:var(--paper); color:var(--ink-soft); border:0; text-decoration:none; transition:background .2s, color .2s; }
.share a:hover, .share button:hover { background:var(--club-primary); color:#fff; }
.facts-bar { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin:2rem 0; }
.facts-bar > div { display:flex; gap:.85rem; align-items:center; padding:1rem 1.15rem; border-radius:var(--r); background:var(--paper); }
.facts-bar i { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:#fff; color:var(--club-primary); font-size:1.15rem; flex-shrink:0; box-shadow:var(--shadow-sm); }
.facts-bar small { display:block; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.facts-bar span { font-weight:600; line-height:1.35; }

.pager { display:flex; justify-content:center; gap:.4rem; margin-top:3rem; flex-wrap:wrap; }
.pager-link { min-width:44px; height:44px; padding:0 .5rem; border-radius:999px; display:inline-grid; place-items:center; font-weight:700; text-decoration:none; color:var(--ink-soft); background:var(--paper); transition:background .2s, color .2s; }
.pager-link:hover { background:var(--tint-2); color:var(--club-primary); }
.pager-link.is-active { background:var(--club-primary); color:#fff; }
.pager-link.is-disabled { opacity:.4; pointer-events:none; }

.notfound { text-align:center; padding-top:clamp(5rem, 12vw, 9rem); padding-bottom:clamp(5rem, 12vw, 9rem); }
.notfound-num { font-size:clamp(5rem, 16vw, 9rem); font-weight:800; letter-spacing:-.06em; line-height:1; color:var(--tint-2); -webkit-text-stroke:2px var(--club-primary); }

/* ══ Footer ═══════════════════════════════════════════════ */
.sf { background:var(--club-navy); color:rgba(255,255,255,.72); padding:clamp(3.5rem, 7vw, 5rem) 0 2rem; font-size:.95rem; }
.sf a { color:rgba(255,255,255,.88); text-decoration:none; }
.sf a:hover { color:#fff; text-decoration:underline; }
.sf-top { display:grid; gap:3rem; }
@media (min-width: 992px) { .sf-top { grid-template-columns:minmax(0, 1fr) minmax(0, 2.4fr) minmax(0, 1fr); gap:3rem; } }
.sf-brand { margin-bottom:1.25rem; }
.sf-brand img { height:56px; }
.sf-brand .brand-r { color:#fff; }
.sf-brand .brand-club { color:rgba(255,255,255,.6); }
.sf-about p { line-height:1.65; margin:0 0 1.5rem; white-space:pre-line; }
.sf .socials a { background:rgba(255,255,255,.08); color:#fff; }
.sf .socials a:hover { background:var(--club-accent); color:var(--on-accent); text-decoration:none; }
.sf-map { display:grid; gap:2rem 1.5rem; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); }
.sf-h { color:var(--club-accent); font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; margin-bottom:1rem; }
.sf ul { list-style:none; margin:0; padding:0; }
.sf-map li { margin-bottom:.6rem; line-height:1.4; }
.sf-contact li { display:flex; gap:.7rem; margin-bottom:.85rem; line-height:1.5; }
.sf-contact i { color:var(--club-accent); margin-top:.15rem; }
.sf-contact span { white-space:pre-line; }
.sf-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem 2rem; margin-top:3.5rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.12); font-size:.84rem; }
.sf-legal { display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; align-items:center; }
.sf-legal a { color:rgba(255,255,255,.6); }
.sf-credit { color:rgba(255,255,255,.45); }
.sf-credit strong { color:rgba(255,255,255,.7); font-weight:700; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* margine dei blocchi dei modelli sotto al testo della pagina (dopo le regole che azzerano il margine) */
.steps.block, .block-h.block, .people-grid.block, .contact-grid.block { margin-top:clamp(3rem, 6vw, 4.5rem); }
/* dentro la colonna di una pagina con navigazione laterale il riquadro finale va su una colonna */
.page-grid.has-side .join-card { grid-template-columns:1fr; gap:2rem; }
.hist-note { font-weight:600; color:var(--muted); font-size:.8em; margin-left:.2rem; }

/* ── Commissioni (/club/committees e scheda /club) ───────────── */
.comm-years { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:2rem; }
.comm-years a { padding:.35rem .9rem; border-radius:999px; background:var(--paper); color:var(--ink); font-weight:700; font-size:.88rem; text-decoration:none; font-variant-numeric:tabular-nums; }
.comm-years a:hover { background:var(--tint-2); }
.comm-years a.is-on { background:var(--club-primary); color:#fff; }
.comm-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.comm { display:flex; flex-direction:column; gap:1rem; padding:1.5rem; border-radius:var(--r-lg); background:var(--paper); }
.comm-head { display:flex; align-items:center; gap:.85rem; }
.comm-head h3 { margin:0; font-size:1.15rem; font-weight:800; letter-spacing:-.01em; line-height:1.25; }
.comm-ico { flex:0 0 auto; width:2.6rem; height:2.6rem; border-radius:50%; display:inline-grid; place-items:center; background:var(--tint-2); color:var(--club-primary); font-size:1.15rem; }
.comm-desc { margin:0; color:var(--muted); line-height:1.55; }
.comm-lead { list-style:none; margin:0; padding:0; display:grid; gap:.65rem; }
.comm-lead li { display:flex; align-items:center; gap:.8rem; }
.comm-lead .avatar { width:48px; height:48px; font-size:.95rem; background:var(--tint-2); color:var(--club-primary); }
.comm-lead .is-chair .avatar { background:linear-gradient(135deg, var(--club-accent), color-mix(in srgb, var(--club-accent) 70%, #fff)); color:var(--on-accent); }
.comm-lead .is-vice .avatar { width:40px; height:40px; font-size:.82rem; }
.comm-lead .is-empty .avatar { background:#fff; color:var(--muted); border:2px dashed var(--line); }
.comm-lead .is-empty .comm-name { color:var(--muted); font-weight:600; }
.comm-role { display:block; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--club-primary); }
.comm-name { display:block; font-weight:700; line-height:1.3; }
.comm-members { padding-top:.9rem; border-top:1px solid var(--line); }
.comm-members p { margin:.3rem 0 0; font-size:.92rem; line-height:1.55; }
.comm-mini { list-style:none; margin:0; padding:0; display:grid; gap:.75rem; grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.comm-mini li { display:flex; align-items:center; gap:.85rem; padding:1rem 1.1rem; border-radius:var(--r-lg); background:var(--paper); }
.comm-mini strong { display:block; line-height:1.25; }
.comm-mini span span { display:block; font-size:.86rem; color:var(--muted); margin-top:.15rem; }
.post-projects { margin-top:2.5rem; }
.post-projects .block-h { font-size:1.3rem; margin-bottom:1rem; }
.comm-subs { padding-top:.9rem; border-top:1px solid var(--line); }
.comm-subs ul { list-style:none; margin:.5rem 0 0; padding:0; display:grid; gap:.6rem; }
.comm-subs li { display:flex; flex-direction:column; gap:.15rem; padding:.75rem .9rem; border-radius:14px; background:#fff; border-left:3px solid var(--club-accent); }
.comm-subs strong { font-size:.96rem; line-height:1.3; }
.comm-sub-desc { font-size:.84rem; color:var(--muted); line-height:1.45; }
.comm-sub-lead { display:flex; flex-wrap:wrap; gap:.1rem 1rem; font-size:.86rem; color:var(--muted); }
.comm-sub-lead b { color:var(--ink); font-weight:700; }
.comm-sub-lead .is-empty { font-style:italic; }
.comm-sub-members { font-size:.84rem; line-height:1.5; }

/* ── /club: la storia in secondo piano rispetto alla parte attuale ── */
.club-past { padding:2rem; border-radius:var(--r-lg); border:1px solid var(--line); }
.club-past .sec-head { align-items:flex-end; }
.club-past .block-h { font-size:clamp(1.15rem, 2vw, 1.4rem); margin:0; }
.club-past .eyebrow { color:var(--muted); }
.club-past-links { display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; }
.club-past .timeline-people strong { font-size:.9rem; }
.club-past .timeline-people .tl-name { font-size:.92rem; font-weight:600; }
.club-past .timeline-people .tl-note { font-size:.78rem; }
.club-past .founders-strip { margin-top:1.5rem; padding:.9rem 1.1rem; }
.club-past .founders-faces .avatar { width:36px; height:36px; font-size:.72rem; }
.club-past .founders-txt strong { font-size:.95rem; }
@media (max-width: 575.98px) { .club-past { padding:1.25rem; } }
