.ccp26{ --ccp26-ink:#152225; --ccp26-ink-soft:#516366; --ccp26-ink-faint:#7C8C8E; --ccp26-surface:#FFFFFF; --ccp26-surface-2:#E9EDEC; --ccp26-line:#DAE1DF; --ccp26-accent:#00829E; --ccp26-accent-deep:#00647A; --ccp26-accent-soft:#E2F2F5; --ccp26-shadow: 0 1px 2px rgba(21,34,37,.06), 0 6px 20px -10px rgba(21,34,37,.18); } /* Sfondo sempre chiaro: il sito è a fondo bianco fisso, niente tema scuro automatico. */ .ccp26 *{box-sizing:border-box;} .ccp26{ color:var(--ccp26-ink); font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif; max-width:920px; margin:0 auto; -webkit-font-smoothing:antialiased; } .ccp26-kicker{ display:flex; align-items:center; gap:10px; font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ccp26-accent-deep); margin-bottom:14px; } .ccp26-kicker::before{content:""; width:20px; height:2px; background:var(--ccp26-accent); display:inline-block;} .ccp26-title{ font-family:Georgia,"Times New Roman",serif; font-weight:700; font-size:clamp(24px,5vw,32px); line-height:1.15; letter-spacing:-.01em; margin:0 0 12px; } .ccp26-dek{font-size:17.5px; line-height:1.55; color:var(--ccp26-ink-soft); max-width:60ch; margin:0 0 24px;} .ccp26-rule{border:none; border-top:1px solid var(--ccp26-line); margin:0 0 26px;} .ccp26-chiprow{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px;} .ccp26-chip{ display:flex; align-items:center; gap:7px; background:var(--ccp26-surface); border:1px solid var(--ccp26-line); border-radius:999px; padding:7px 15px 7px 11px; font-size:15px; font-weight:600; } .ccp26-dot{width:8px; height:8px; border-radius:50%; background:var(--ccp26-accent); flex:none;} .ccp26-controls{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:18px; } .ccp26-seg{display:inline-flex; background:var(--ccp26-surface-2); border-radius:10px; padding:3px; gap:2px;} .ccp26-seg button{ font-family:inherit; font-size:15px; font-weight:600; border:none; background:transparent; color:var(--ccp26-ink-soft); padding:9px 15px; border-radius:8px; cursor:pointer; } .ccp26-seg button.on{background:var(--ccp26-surface); color:var(--ccp26-ink); box-shadow:var(--ccp26-shadow);} .ccp26-count{font-size:14px; color:var(--ccp26-ink-faint); font-family:"IBM Plex Mono",monospace;} .ccp26-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:14px; margin-bottom:8px;} .ccp26-card{ background:var(--ccp26-surface); border:1px solid var(--ccp26-line); border-radius:12px; padding:18px 19px; display:flex; flex-direction:column; gap:12px; } .ccp26-head{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;} .ccp26-n{font-family:Georgia,serif; font-weight:700; font-size:19px; white-space:nowrap;} .ccp26-dates{display:flex; flex-direction:column; gap:4px; align-items:flex-end;} .ccp26-date{font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--ccp26-ink-soft); white-space:nowrap;} .ccp26-date b{color:var(--ccp26-ink-faint); font-weight:600; margin-right:4px;} .ccp26-matches{display:flex; flex-direction:column; gap:7px;} .ccp26-row{font-size:16px; line-height:1.5; padding:8px 10px; border-radius:8px;} .ccp26-row.tracked{background:var(--ccp26-accent-soft);} .ccp26-team{display:inline-flex; align-items:center; gap:6px; white-space:nowrap;} .ccp26-row.tracked .ccp26-team.is-us{font-weight:700; color:var(--ccp26-ink);} .ccp26-team .ccp26-dot{width:6px; height:6px;} .ccp26-dash{color:var(--ccp26-ink-faint); font-size:13px; padding:0 2px;} .ccp26-footer{ margin-top:32px; padding-top:20px; border-top:1px solid var(--ccp26-line); font-size:13.5px; color:var(--ccp26-ink-faint); line-height:1.6; max-width:60ch; } @media (max-width:480px){ .ccp26-head{flex-direction:column; align-items:flex-start;} .ccp26-dates{align-items:flex-start;} } Sport · Promozione Promozione: il calendario di Campese e Masone Stagione 2026/2027 — tutte le giornate del girone con le squadre della nostra zona. Solo le nostre squadre Tutto il girone Fonte: calendario ufficiale d'andata e ritorno di Promozione, girone A, stagione 2026/2027 (Comitato Regionale Liguria). Le date di ritorno riportate sono quelle a calendario: eventuali recuperi, anticipi o posticipi decisi nel corso della stagione possono modificarle. Gli orari non sono ancora stati comunicati. (function(){ const root = document.currentScript.closest(".ccp26"); const DISPLAY = { "BAIA ALASSIO AUXILIUM":"Baia Alassio Auxilium", "ALBINGAUNIA SPORT ALB.":"Albingaunia", "CERIALE PROGETTO CALCIO":"Ceriale", "SAMPIERDARENESE":"Sampierdarenese", "OLIMPIC 1971":"Olimpic 1971", "MASONE":"Masone", "PONTELUNGO 1949":"Pontelungo 1949", "CAMPESE F.B.C.":"Campese", "SAN CIPRIANO":"San Cipriano", "PRAESE 1945":"Praese 1945", "SAN FRANCESCO LOANO":"San Francesco Loano", "VIRTUS SANREMESE CALCIO":"Virtus Sanremese", "SESTRESE BOR. 1919":"Sestrese Bor. 1919", "BORGO INCROCIATI":"Borgo Incrociati", "VENTIMIGLIACALCIO":"Ventimiglia Calcio", "FINALE":"Finale" }; const disp = t => DISPLAY[t] || t; const TRACKED = ["CAMPESE F.B.C.","MASONE"]; const isTracked = t => TRACKED.includes(t); const GIORNATE = [ {n:1, aDate:"2026-09-20", rDate:"2027-01-17", m:[["BAIA ALASSIO AUXILIUM","ALBINGAUNIA SPORT ALB."],["CERIALE PROGETTO CALCIO","SAMPIERDARENESE"],["OLIMPIC 1971","MASONE"],["PONTELUNGO 1949","CAMPESE F.B.C."],["SAN CIPRIANO","PRAESE 1945"],["SAN FRANCESCO LOANO","VIRTUS SANREMESE CALCIO"],["SESTRESE BOR. 1919","BORGO INCROCIATI"],["VENTIMIGLIACALCIO","FINALE"]]}, {n:2, aDate:"2026-09-27", rDate:"2027-01-24", m:[["ALBINGAUNIA SPORT ALB.","SAN CIPRIANO"],["BORGO INCROCIATI","CERIALE PROGETTO CALCIO"],["CAMPESE F.B.C.","SESTRESE BOR. 1919"],["FINALE","BAIA ALASSIO AUXILIUM"],["MASONE","PONTELUNGO 1949"],["PRAESE 1945","SAN FRANCESCO LOANO"],["SAMPIERDARENESE","VENTIMIGLIACALCIO"],["VIRTUS SANREMESE CALCIO","OLIMPIC 1971"]]}, {n:3, aDate:"2026-10-04", rDate:"2027-01-31", m:[["BAIA ALASSIO AUXILIUM","PRAESE 1945"],["OLIMPIC 1971","CAMPESE F.B.C."],["PONTELUNGO 1949","BORGO INCROCIATI"],["SAMPIERDARENESE","FINALE"],["SAN CIPRIANO","VIRTUS SANREMESE CALCIO"],["SAN FRANCESCO LOANO","MASONE"],["SESTRESE BOR. 1919","CERIALE PROGETTO CALCIO"],["VENTIMIGLIACALCIO","ALBINGAUNIA SPORT ALB."]]}, {n:4, aDate:"2026-10-11", rDate:"2027-02-07", m:[["ALBINGAUNIA SPORT ALB.","SAMPIERDARENESE"],["BORGO INCROCIATI","SAN FRANCESCO LOANO"],["CAMPESE F.B.C.","SAN CIPRIANO"],["CERIALE PROGETTO CALCIO","OLIMPIC 1971"],["MASONE","BAIA ALASSIO AUXILIUM"],["PRAESE 1945","FINALE"],["SESTRESE BOR. 1919","PONTELUNGO 1949"],["VIRTUS SANREMESE CALCIO","VENTIMIGLIACALCIO"]]}, {n:5, aDate:"2026-10-18", rDate:"2027-02-14", m:[["BAIA ALASSIO AUXILIUM","VIRTUS SANREMESE CALCIO"],["FINALE","ALBINGAUNIA SPORT ALB."],["OLIMPIC 1971","BORGO INCROCIATI"],["PONTELUNGO 1949","CERIALE PROGETTO CALCIO"],["SAMPIERDARENESE","SESTRESE BOR. 1919"],["SAN CIPRIANO","MASONE"],["SAN FRANCESCO LOANO","CAMPESE F.B.C."],["VENTIMIGLIACALCIO","PRAESE 1945"]]}, {n:6, aDate:"2026-10-25", rDate:"2027-02-21", m:[["BORGO INCROCIATI","BAIA ALASSIO AUXILIUM"],["CAMPESE F.B.C.","VENTIMIGLIACALCIO"],["CERIALE PROGETTO CALCIO","SAN CIPRIANO"],["MASONE","FINALE"],["PONTELUNGO 1949","OLIMPIC 1971"],["PRAESE 1945","SAMPIERDARENESE"],["SESTRESE BOR. 1919","SAN FRANCESCO LOANO"],["VIRTUS SANREMESE CALCIO","ALBINGAUNIA SPORT ALB."]]}, {n:7, aDate:"2026-11-01", rDate:"2027-02-28", m:[["ALBINGAUNIA SPORT ALB.","PRAESE 1945"],["BAIA ALASSIO AUXILIUM","CAMPESE F.B.C."],["FINALE","VIRTUS SANREMESE CALCIO"],["OLIMPIC 1971","SESTRESE BOR. 1919"],["SAMPIERDARENESE","PONTELUNGO 1949"],["SAN CIPRIANO","BORGO INCROCIATI"],["SAN FRANCESCO LOANO","CERIALE PROGETTO CALCIO"],["VENTIMIGLIACALCIO","MASONE"]]}, {n:8, aDate:"2026-11-08", rDate:"2027-03-07", m:[["BORGO INCROCIATI","FINALE"],["CAMPESE F.B.C.","ALBINGAUNIA SPORT ALB."],["CERIALE PROGETTO CALCIO","VENTIMIGLIACALCIO"],["MASONE","PRAESE 1945"],["OLIMPIC 1971","SAN FRANCESCO LOANO"],["PONTELUNGO 1949","SAN CIPRIANO"],["SESTRESE BOR. 1919","BAIA ALASSIO AUXILIUM"],["VIRTUS SANREMESE CALCIO","SAMPIERDARENESE"]]}, {n:9, aDate:"2026-11-15", rDate:"2027-03-14", m:[["ALBINGAUNIA SPORT ALB.","MASONE"],["BAIA ALASSIO AUXILIUM","CERIALE PROGETTO CALCIO"],["FINALE","CAMPESE F.B.C."],["PRAESE 1945","VIRTUS SANREMESE CALCIO"],["SAMPIERDARENESE","OLIMPIC 1971"],["SAN CIPRIANO","SESTRESE BOR. 1919"],["SAN FRANCESCO LOANO","PONTELUNGO 1949"],["VENTIMIGLIACALCIO","BORGO INCROCIATI"]]}, {n:10, aDate:"2026-11-22", rDate:"2027-04-04", m:[["BORGO INCROCIATI","PRAESE 1945"],["CAMPESE F.B.C.","VIRTUS SANREMESE CALCIO"],["CERIALE PROGETTO CALCIO","ALBINGAUNIA SPORT ALB."],["MASONE","SAMPIERDARENESE"],["OLIMPIC 1971","BAIA ALASSIO AUXILIUM"],["PONTELUNGO 1949","VENTIMIGLIACALCIO"],["SAN FRANCESCO LOANO","SAN CIPRIANO"],["SESTRESE BOR. 1919","FINALE"]]}, {n:11, aDate:"2026-11-29", rDate:"2027-04-11", m:[["ALBINGAUNIA SPORT ALB.","BORGO INCROCIATI"],["BAIA ALASSIO AUXILIUM","PONTELUNGO 1949"],["FINALE","CERIALE PROGETTO CALCIO"],["PRAESE 1945","CAMPESE F.B.C."],["SAMPIERDARENESE","SAN FRANCESCO LOANO"],["SAN CIPRIANO","OLIMPIC 1971"],["VENTIMIGLIACALCIO","SESTRESE BOR. 1919"],["VIRTUS SANREMESE CALCIO","MASONE"]]}, {n:12, aDate:"2026-12-06", rDate:"2027-04-18", m:[["BORGO INCROCIATI","MASONE"],["CAMPESE F.B.C.","SAMPIERDARENESE"],["CERIALE PROGETTO CALCIO","VIRTUS SANREMESE CALCIO"],["OLIMPIC 1971","FINALE"],["PONTELUNGO 1949","ALBINGAUNIA SPORT ALB."],["SAN CIPRIANO","BAIA ALASSIO AUXILIUM"],["SAN FRANCESCO LOANO","VENTIMIGLIACALCIO"],["SESTRESE BOR. 1919","PRAESE 1945"]]}, {n:13, aDate:"2026-12-13", rDate:"2027-04-25", m:[["ALBINGAUNIA SPORT ALB.","SESTRESE BOR. 1919"],["BAIA ALASSIO AUXILIUM","SAN FRANCESCO LOANO"],["FINALE","PONTELUNGO 1949"],["MASONE","CAMPESE F.B.C."],["PRAESE 1945","CERIALE PROGETTO CALCIO"],["SAMPIERDARENESE","SAN CIPRIANO"],["VENTIMIGLIACALCIO","OLIMPIC 1971"],["VIRTUS SANREMESE CALCIO","BORGO INCROCIATI"]]}, {n:14, aDate:"2026-12-20", rDate:"2027-05-02", m:[["BAIA ALASSIO AUXILIUM","VENTIMIGLIACALCIO"],["BORGO INCROCIATI","SAMPIERDARENESE"],["CERIALE PROGETTO CALCIO","CAMPESE F.B.C."],["OLIMPIC 1971","PRAESE 1945"],["PONTELUNGO 1949","VIRTUS SANREMESE CALCIO"],["SAN CIPRIANO","FINALE"],["SAN FRANCESCO LOANO","ALBINGAUNIA SPORT ALB."],["SESTRESE BOR. 1919","MASONE"]]}, {n:15, aDate:"2027-01-10", rDate:"2027-05-09", m:[["ALBINGAUNIA SPORT ALB.","OLIMPIC 1971"],["CAMPESE F.B.C.","BORGO INCROCIATI"],["FINALE","SAN FRANCESCO LOANO"],["MASONE","CERIALE PROGETTO CALCIO"],["PRAESE 1945","PONTELUNGO 1949"],["SAMPIERDARENESE","BAIA ALASSIO AUXILIUM"],["VENTIMIGLIACALCIO","SAN CIPRIANO"],["VIRTUS SANREMESE CALCIO","SESTRESE BOR. 1919"]]} ]; const monthsIt = ["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"]; function parseIso(iso){ const [y,m,d] = iso.split("-").map(Number); return new Date(y, m-1, d); } function fmtShort(iso){ const d = parseIso(iso); return `${d.getDate()} ${monthsIt[d.getMonth()]} '${String(d.getFullYear()).slice(2)}`; } function renderTeamRow(home, away){ const hIsUs = isTracked(home), aIsUs = isTracked(away); const rowTracked = hIsUs || aIsUs; return `${hIsUs?'':''}${disp(home)}–${aIsUs?'':''}${disp(away)}`; } function renderCard(g, onlyTracked){ let rows = g.m.map(([h,a])=>({h,a,rel: isTracked(h)||isTracked(a)})); if(onlyTracked) rows = rows.filter(r=>r.rel); return ` ${g.n}ª giornata A${fmtShort(g.aDate)} R${fmtShort(g.rDate)} ${rows.map(r=>renderTeamRow(r.h,r.a)).join("")} `; } root.querySelector("[data-chips]").innerHTML = TRACKED.map(t=>`${disp(t)}`).join(""); function paint(mode){ const onlyTracked = mode === "tracked"; root.querySelector("[data-grid]").innerHTML = GIORNATE.map(g => renderCard(g, onlyTracked)).join(""); const n = onlyTracked ? GIORNATE.reduce((s,g)=> s + g.m.filter(([h,a])=>isTracked(h)||isTracked(a)).length, 0) : GIORNATE.reduce((s,g)=> s + g.m.length, 0); root.querySelector("[data-count]").textContent = `${n} partite · andata`.replace("·","·"); } root.querySelector("[data-seg]").addEventListener("click", e=>{ const btn = e.target.closest("button"); if(!btn) return; root.querySelectorAll("[data-seg] button").forEach(b=>b.classList.toggle("on", b===btn)); paint(btn.dataset.mode); }); paint("tracked"); })();