/* Sito pubblico — grafica dalla demo Basket Piani, con i colori della società (variabili impostate dal layout) */
/* Caratteri ospitati sul sito (niente richieste a Google: meglio per la privacy) */
@font-face { font-family: "Bebas Neue"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/bebas-neue.woff2) format("woff2"); }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 200 900; font-display: swap; src: url(fonts/source-sans-3.woff2) format("woff2"); }
/* BPBZ demo — colori presi dal logo: blu #1270B5, rosso #ED413D, antracite #4C4D4F */
:root {
  --blue: #1270b5;
  --blue-600: color-mix(in srgb, var(--blue) 80%, #000);   /* varianti: seguono i colori scelti in Aspetto */
  --navy: #0a2540;
  --navy-2: color-mix(in srgb, var(--navy) 88%, var(--blue));
  --soft-light: color-mix(in srgb, var(--blue) 18%, #e6edf5);   /* testo chiaro su fondi scuri (barra in alto, piè di pagina) */
  --red: #ed413d;
  --red-600: color-mix(in srgb, var(--red) 88%, #000);
  --ink: #1b1f24;
  --grey: #4c4d4f;
  --muted: #5f6b78;
  --line: #e2e7ee;
  --bg: #ffffff;
  --bg-alt: #f3f6fa;
  --win: #1a8f4c;
  --loss: #c8322e;
  --radius: 14px;
  --shadow: 0 1px 2px color-mix(in srgb, var(--navy) 6%, transparent), 0 8px 24px color-mix(in srgb, var(--navy) 8%, transparent);
  --font-head: "Bebas Neue", Impact, "Arial Narrow", sans-serif;
  --font-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --wrap: 1200px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font-body); font-size: 17px; line-height: 1.55; color: var(--ink); background: var(--bg); overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
[hidden] { display: none !important; }
a { color: var(--blue); text-decoration-thickness: 1px; text-underline-offset: 2px; }
h1, h2, h3 { line-height: 1.1; margin: 0 0 .5em; }
h1, h2 { font-family: var(--font-head); font-weight: 400; letter-spacing: .5px; }
h2 { font-size: clamp(2rem, 4vw, 2.6rem); color: var(--navy); }
h3 { font-size: 1.15rem; font-weight: 700; }
p { margin: 0 0 1em; }
.ic { width: 1.1em; height: 1.1em; flex: none; vertical-align: -.18em; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 16px; }
.wrap.narrow { max-width: 820px; }
.center { text-align: center; }
.muted { color: var(--muted); }
.mt { margin-top: 1.5rem; }
.lead { font-size: 1.15rem; color: var(--muted); max-width: 680px; margin-left: auto; margin-right: auto; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 16px; top: 8px; z-index: 100; background: #fff; padding: 8px 12px; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }

/* ---------- ribbon / topbar / header */
.brand-preview-bar { background: var(--red); color: #fff; text-align: center; font-weight: 700; font-size: .85rem; padding: 6px 16px; }
.brand-preview-bar a { color: #fff; }
.demo-ribbon { background: #fff4d6; color: #6b4b00; font-size: .85rem; text-align: center; padding: 6px 16px; }
.demo-ribbon a { color: #6b4b00; font-weight: 700; margin-left: 8px; }
.topbar { background: var(--navy); color: var(--soft-light); font-size: .85rem; }
.topbar-in { display: flex; justify-content: space-between; align-items: center; height: 36px; gap: 12px; }
.tb-item { display: flex; gap: 6px; align-items: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb-social { display: flex; gap: 14px; }
.tb-social a { color: var(--soft-light); display: flex; }
.tb-social a:hover { color: #fff; }
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--line); }
.header-in { display: flex; align-items: center; gap: 24px; height: 76px; }
.brand img { height: 52px; width: auto; }
.main-nav { display: flex; gap: 4px; margin-left: auto; }
.main-nav a { font-family: var(--font-head); font-size: 1.3rem; letter-spacing: .6px; color: var(--navy); text-decoration: none; padding: 8px 12px; border-radius: 8px; }
.main-nav a:hover { background: var(--bg-alt); color: var(--blue); }
.main-nav a[aria-current="page"] { color: var(--blue); box-shadow: inset 0 -3px 0 var(--red); border-radius: 0; }
.nav-mobile-only { display: none; }
.header-actions { display: flex; align-items: center; gap: 12px; }
.lang { display: flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; }
.lang a { font-weight: 700; font-size: .8rem; text-decoration: none; color: var(--muted); padding: 4px 9px; border-radius: 999px; }
.lang a[aria-current="true"] { background: var(--navy); color: #fff; }
.burger { display: none; background: none; border: 0; color: var(--navy); padding: 6px; cursor: pointer; }
.burger .ic { width: 28px; height: 28px; }

/* ---------- buttons, chips, badges */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--font-body); font-weight: 700; font-size: 1rem; border-radius: 10px; padding: 12px 20px; border: 2px solid transparent; text-decoration: none; cursor: pointer; transition: transform .15s, background .15s, box-shadow .15s; line-height: 1.1; }
.btn:hover { transform: translateY(-1px); }
.btn-sm { padding: 8px 14px; font-size: .92rem; }
.btn-lg { padding: 15px 26px; font-size: 1.08rem; }
.btn-block { width: 100%; }
.btn-red { background: var(--red); color: #fff; box-shadow: 0 6px 18px color-mix(in srgb, var(--red) 30%, transparent); }
.btn-red:hover { background: var(--red-600); }
.btn-blue { background: var(--blue); color: #fff; }
.btn-blue:hover { background: var(--blue-600); }
.btn-white { background: #fff; color: var(--navy); }
.btn-ghost { border-color: var(--line); color: var(--navy); background: #fff; }
.btn-ghost:hover { border-color: var(--blue); color: var(--blue); }
.btn-ghost-light { border-color: rgba(255,255,255,.5); color: #fff; background: rgba(255,255,255,.06); }
.btn-ghost-light:hover { background: rgba(255,255,255,.16); }
.chip { display: inline-flex; align-items: center; gap: 4px; font-size: .74rem; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; background: var(--bg-alt); color: var(--navy); text-decoration: none; white-space: nowrap; }
.chip-club { background: #e8ebf0; color: var(--grey); }
.chip-yt { background: #ffe5e4; color: var(--red-600); }
.badge { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--bg-alt); color: var(--muted); text-decoration: none; }
.badge-win { background: #e3f5ea; color: var(--win); }
.badge-loss { background: #fde8e7; color: var(--loss); }
.badge-home { background: var(--tint-blue); color: var(--blue); }
.badge-yt { background: #ffe5e4; color: var(--red-600); }
.badge-live { background: var(--red); color: #fff; }
a.badge-live:hover { background: var(--red-600); }
.badge-friendly { background: #fff4d6; color: #8a6a00; }
.badge-changed { background: #fde8e7; color: var(--red-600); font-weight: 800; }
.mr-meta .was { color: var(--muted); text-decoration: line-through; font-size: .8rem; }
.badge-prov { background: #eef1f5; color: var(--grey); border: 1px dashed #b8c4d2; }
.win-txt { color: var(--win); } .loss-txt { color: var(--loss); }
.eyebrow { font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; font-size: .8rem; color: var(--blue); margin-bottom: .6rem; display: flex; align-items: center; gap: 6px; }
.eyebrow.center { justify-content: center; }
.eyebrow.light { color: var(--soft-light); }
.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; }
.link-arrow:hover .ic { transform: translateX(3px); }
.link-arrow .ic { transition: transform .15s; }
.link-arrow.light { color: #fff; margin-top: 12px; }
.source, .hint, .note-mini { font-size: .85rem; color: var(--muted); display: flex; gap: 6px; align-items: flex-start; }
.source .ic, .hint .ic { color: var(--win); margin-top: 2px; }
.source a { font-weight: 700; }
.source.sim .ic { color: #b7791f; }
.section-dark .source a { color: #fff; }
.note-mini { margin-top: 1rem; }
.note-mini.center { justify-content: center; }
.hint code { background: var(--tint-blue); color: var(--blue); padding: 1px 6px; border-radius: 4px; font-weight: 700; }

/* ---------- sections */
.section { padding: 72px 0; }
.section-alt { background: var(--bg-alt); }
.section-dark { background: var(--navy); color: #fff; }
.section-dark h2 { color: #fff; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.section-head h2 { margin: 0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }

/* ---------- hero */
.hero { position: relative; color: #fff; background: var(--navy); overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center 40%; }
.hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, color-mix(in srgb, var(--navy) 96%, transparent) 0%, color-mix(in srgb, var(--navy) 85%, transparent) 45%, color-mix(in srgb, var(--blue) 55%, transparent) 100%); }
.hero-in { position: relative; display: grid; grid-template-columns: 1.25fr 1fr; gap: 48px; align-items: center; padding-top: 72px; padding-bottom: 72px; }
.hero h1 { font-size: clamp(3.2rem, 8vw, 6rem); line-height: .92; margin-bottom: .3em; }
.hero h1::after { content: ""; display: block; width: 90px; height: 6px; background: var(--red); margin-top: 18px; border-radius: 3px; }
.hero-lead { font-size: 1.2rem; color: var(--soft-light); max-width: 540px; }
.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.next-card { background: rgba(255,255,255,.98); color: var(--ink); border-radius: 18px; padding: 24px; box-shadow: 0 20px 50px rgba(0,0,0,.35); position: relative; }
.next-label { font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; font-size: .78rem; color: var(--red); margin-bottom: 14px; }
.next-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; text-align: center; }
.nt { display: flex; flex-direction: column; align-items: center; gap: 8px; font-weight: 700; font-size: .98rem; line-height: 1.2; }
.nt img { width: 64px; height: 50px; object-fit: contain; }
.opp-badge { width: 52px; height: 52px; border-radius: 50%; background: var(--bg-alt); border: 2px solid var(--line); display: grid; place-items: center; font-family: var(--font-head); font-size: 1.7rem; color: var(--grey); }
.nt-vs { font-family: var(--font-head); font-size: 1.6rem; color: var(--muted); }
.countdown { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 18px 0; }
.countdown div { background: var(--navy); color: #fff; border-radius: 10px; text-align: center; padding: 8px 4px; }
.countdown b { display: block; font-family: var(--font-head); font-size: 2.1rem; line-height: 1; font-weight: 400; }
.countdown span { font-size: .72rem; text-transform: uppercase; letter-spacing: 1px; color: var(--soft-light); }
.next-meta { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 6px; font-size: .95rem; }
.next-meta li { display: flex; gap: 8px; align-items: center; }
.next-meta .ic { color: var(--blue); }
.next-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.demo-toggle { margin-top: 14px; background: none; border: 1px dashed #c9a43a; color: #8a6a00; font-size: .78rem; padding: 4px 10px; border-radius: 6px; cursor: pointer; }
.live-bar { position: relative; z-index: 2; background: var(--red); font-weight: 700; }
.live-bar .wrap { display: flex; align-items: center; gap: 10px; min-height: 48px; flex-wrap: wrap; padding-top: 6px; padding-bottom: 6px; }
.live-bar .btn { margin-left: auto; }
.live-dot { width: 10px; height: 10px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 0 rgba(255,255,255,.7); animation: pulse 1.6s infinite; display: inline-block; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(255,255,255,0); } 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); } }

/* sponsor marquee */
.marquee { position: relative; background: #fff; height: 68px; overflow: hidden; border-top: 3px solid var(--red); }
.marquee::before, .marquee::after { content: ""; position: absolute; top: 0; bottom: 0; width: 60px; z-index: 2; pointer-events: none; }
.marquee::before { left: 0; background: linear-gradient(90deg, #fff, rgba(255,255,255,0)); }
.marquee::after { right: 0; background: linear-gradient(-90deg, #fff, rgba(255,255,255,0)); }
.marquee-track { display: flex; align-items: center; gap: 48px; height: 100%; width: max-content; animation: scroll 60s linear infinite; padding-left: 48px; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee img { height: 38px; width: auto; max-width: 140px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.marquee a:hover img { filter: none; opacity: 1; }
@keyframes scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; overflow-x: auto; } html { scroll-behavior: auto; } }

/* ---------- results cards */
.score-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 12px; }
.score-card { display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; text-decoration: none; color: var(--ink); border-top: 4px solid var(--line); transition: box-shadow .15s, transform .15s; }
.score-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.score-card.win { border-top-color: var(--win); }
.score-card.loss { border-top-color: var(--loss); }
.sc-top { display: flex; justify-content: space-between; align-items: center; font-size: .85rem; color: var(--muted); margin-bottom: 10px; }
.sc-line { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; font-size: .98rem; color: var(--muted); }
.sc-line.us { color: var(--ink); font-weight: 700; }
.sc-line b { font-family: var(--font-head); font-size: 1.6rem; font-weight: 400; line-height: 1; }
.sc-foot { margin-top: 10px; display: flex; gap: 6px; }

/* ---------- news */
.news-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; }
.news-side { display: grid; gap: 16px; }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.news-card { background: #fff; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); display: flex; flex-direction: column; transition: box-shadow .15s; }
.news-card:hover { box-shadow: var(--shadow); }
.news-img { display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--navy); }
.news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.news-card:hover .news-img img { transform: scale(1.04); }
.news-body { padding: 18px; }
.news-body h3 { font-size: 1.18rem; margin: 8px 0; }
.news-body h3 a { color: var(--navy); text-decoration: none; }
.news-body h3 a:hover { color: var(--blue); }
.news-body p { color: var(--muted); font-size: .96rem; margin: 0; }
.news-meta { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: .85rem; color: var(--muted); }
.news-meta time { margin-right: 4px; }
.news-card.featured .news-body h3 { font-size: 1.6rem; font-family: var(--font-head); font-weight: 400; letter-spacing: .3px; }
.news-card.compact { flex-direction: row; }
.news-card.compact .news-img { width: 38%; aspect-ratio: auto; flex: none; }
.news-card.compact .news-body { padding: 12px 14px; }
.news-card.compact .news-body h3 { font-size: 1rem; }
.news-card.compact .news-body p { display: none; }
.news-card[hidden] { display: none; }

/* ---------- teams */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.team-card { display: flex; flex-direction: column; border-radius: var(--radius); overflow: hidden; background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: box-shadow .15s, transform .15s; }
.team-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.tc-img { position: relative; height: 150px; background-size: cover; background-position: center; }
.tc-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, color-mix(in srgb, var(--navy) 85%, transparent), color-mix(in srgb, var(--blue) 55%, transparent)); }
.tc-short { position: absolute; z-index: 1; left: 18px; bottom: 6px; font-family: var(--font-head); font-size: 4rem; line-height: 1; color: #fff; }
.tc-body { padding: 16px 18px; }
.tc-body h3 { font-family: var(--font-head); font-weight: 400; font-size: 1.6rem; color: var(--navy); margin: 0; }
.tc-body p { margin: 0; color: var(--muted); font-size: .95rem; }
.tc-body .tc-next { margin-top: 8px; color: var(--ink); font-size: .9rem; display: flex; gap: 6px; align-items: center; }
.team-list { display: grid; gap: 16px; }
.team-row { display: grid; grid-template-columns: 180px 1fr auto; gap: 24px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; padding-right: 20px; }
.tr-img { position: relative; align-self: stretch; min-height: 150px; background-size: cover; background-position: center; }
.tr-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, color-mix(in srgb, var(--navy) 85%, transparent), color-mix(in srgb, var(--blue) 55%, transparent)); }
.tr-body { padding: 16px 0; }
.tr-body h2 { font-size: 2rem; margin: 0; }
.tr-body h2 a { color: var(--navy); text-decoration: none; }
.tr-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 24px; margin: 12px 0 0; }
.tr-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); font-weight: 700; }
.tr-facts dd { margin: 0; font-size: .95rem; }

/* ---------- page heroes */
.page-hero { background: linear-gradient(120deg, var(--navy), var(--navy-2) 60%, var(--blue)); color: #fff; padding: 64px 0 56px; position: relative; overflow: hidden; }
.page-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 320px; height: 320px; border-radius: 50%; border: 40px solid rgba(255,255,255,.05); }
.page-hero h1 { font-size: clamp(2.8rem, 6vw, 4.4rem); margin-bottom: .2em; }
.page-hero p { color: var(--soft-light); font-size: 1.15rem; max-width: 640px; }
.join-hero { background: linear-gradient(110deg, color-mix(in srgb, var(--navy) 95%, transparent), color-mix(in srgb, var(--navy) 80%, transparent) 55%, color-mix(in srgb, var(--blue) 60%, transparent)), var(--hero-img) center/cover no-repeat; }
.team-hero { position: relative; background-size: cover; background-position: center; color: #fff; }
.team-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, color-mix(in srgb, var(--navy) 95%, transparent), color-mix(in srgb, var(--navy) 75%, transparent) 60%, color-mix(in srgb, var(--red) 45%, transparent)); }
.team-hero-in { position: relative; padding-top: 48px; padding-bottom: 48px; }
.team-hero h1 { font-size: clamp(3rem, 7vw, 5rem); margin: 0; }
.team-hero p { color: var(--soft-light); margin: 0; }
.team-hero-short { position: absolute; right: 16px; bottom: -30px; font-family: var(--font-head); font-size: 14rem; line-height: 1; color: rgba(255,255,255,.08); pointer-events: none; }
.crumb { color: var(--soft-light); text-decoration: none; font-weight: 700; font-size: .92rem; display: inline-block; margin-bottom: 12px; }
.crumb.dark { color: var(--blue); }
.subnav { position: sticky; top: 76px; z-index: 40; background: #fff; border-bottom: 1px solid var(--line); }
.subnav-in { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.subnav a { white-space: nowrap; padding: 14px 14px; font-weight: 700; color: var(--grey); text-decoration: none; font-size: .95rem; border-bottom: 3px solid transparent; }
.subnav a:hover, .subnav a.active { color: var(--blue); border-bottom-color: var(--red); }
section[id] { scroll-margin-top: 140px; }

/* ---------- match rows */
.match-row { display: grid; grid-template-columns: 78px auto 1fr; gap: 6px 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--line); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
.match-row.win { border-left-color: var(--win); }
.match-row.loss { border-left-color: var(--loss); }
.match-row[hidden] { display: none; }
.mr-date { display: flex; flex-direction: column; line-height: 1.2; font-size: .88rem; color: var(--muted); grid-row: span 2; }
.mr-date strong { color: var(--ink); font-size: .95rem; }
.mr-teams { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .98rem; }
.mr-teams .us { font-weight: 800; color: var(--navy); }
.mr-score { font-family: var(--font-head); font-size: 1.5rem; font-weight: 400; line-height: 1; color: var(--ink); }
.mr-vs { color: var(--muted); font-weight: 600; font-size: .85rem; }
.mr-meta { grid-column: 2 / -1; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: .85rem; color: var(--muted); }
.match-row:not(:has(.chip)) .mr-meta { grid-column: 2 / -1; }
.match-row:not(:has(.chip)) .mr-teams { grid-column: 2 / -1; }
.mr-meta > span:first-child { display: inline-flex; gap: 4px; align-items: center; margin-right: 4px; }

/* ---------- standings */
.table-wrap { overflow-x: auto; }
.standings, .simple { width: 100%; border-collapse: collapse; font-size: .96rem; background: #fff; border-radius: 10px; overflow: hidden; }
.standings th, .simple th { text-align: left; font-size: .75rem; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); padding: 10px 12px; border-bottom: 2px solid var(--line); }
.standings td, .simple td { padding: 10px 12px; border-bottom: 1px solid var(--line); }
.standings tr.us td { background: var(--tint-red); font-weight: 800; color: var(--navy); }
.standings tr.us td:first-child { box-shadow: inset 4px 0 0 var(--red); }
.section-dark .standings { background: rgba(255,255,255,.04); color: #fff; }
.section-dark .standings th { color: var(--soft-light); border-color: rgba(255,255,255,.12); }
.section-dark .standings td { border-color: rgba(255,255,255,.08); }
.section-dark .standings tr.us td { background: color-mix(in srgb, var(--red) 25%, transparent); color: #fff; }
.section-dark .source { color: var(--soft-light); }

/* ---------- video */
.video-box { margin-top: 8px; }
.video-poster { position: relative; display: block; width: 100%; aspect-ratio: 16/9; border: 0; border-radius: var(--radius); overflow: hidden; background-size: cover; background-position: center; cursor: pointer; padding: 0; }
.video-poster::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--navy) 25%, transparent), color-mix(in srgb, var(--navy) 85%, transparent)); }
.video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 78px; height: 78px; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.4); transition: transform .15s; }
.video-play .ic { width: 34px; height: 34px; margin-left: 4px; }
.video-poster:hover .video-play { transform: translate(-50%, -50%) scale(1.08); }
.video-score { position: absolute; left: 50%; top: 16px; transform: translateX(-50%); display: flex; align-items: center; gap: 10px; background: color-mix(in srgb, var(--navy) 90%, transparent); color: #fff; padding: 6px 14px; border-radius: 8px; font-size: .85rem; font-weight: 700; white-space: nowrap; border-bottom: 3px solid var(--red); }
.video-score b { font-family: var(--font-head); font-size: 1.7rem; font-weight: 400; line-height: 1; }
.video-score i { font-style: normal; font-size: .62rem; letter-spacing: 1px; color: var(--soft-light); }
.video-cap { position: absolute; left: 16px; bottom: 14px; right: 16px; color: #fff; text-align: left; font-weight: 700; display: flex; gap: 8px; align-items: center; }
.video-note { font-size: .85rem; color: var(--muted); display: flex; gap: 6px; margin-top: 10px; }
.section-dark .video-note { color: var(--soft-light); }
.video-note .ic { color: var(--win); }
.video-frame.is-yt { padding: 0; overflow: hidden; }
.video-frame.is-yt iframe { width: 100%; height: 100%; border: 0; }
.video-poster.is-yt::before { background: linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--navy) 85%, transparent)); }
.video-frame { aspect-ratio: 16/9; border-radius: var(--radius); background: #000; display: grid; place-items: center; color: #fff; text-align: center; padding: 24px; }
.live-next { display: flex; gap: 10px; align-items: center; margin-top: 18px; }
.live-next .live-dot { background: var(--red); }

/* ---------- CTA band, prices */
.cta-band { background: var(--red); color: #fff; padding: 48px 0; }
.cta-band.blue { background: var(--blue); }
.cta-band-in { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.cta-band h2 { color: #fff; margin: 0 0 .2em; }
.cta-band p { margin: 0; font-size: 1.1rem; max-width: 640px; }
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 32px; }
.price-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 6px; }
.price-card.featured { border: 2px solid var(--red); box-shadow: var(--shadow); }
.pc-label { font-weight: 800; text-transform: uppercase; letter-spacing: 1px; font-size: .8rem; color: var(--blue); }
.price-card b { font-family: var(--font-head); font-size: 3.2rem; font-weight: 400; color: var(--navy); line-height: 1; }
.price-card p { color: var(--muted); margin: 0 0 8px; }
.price-card .btn { align-self: flex-start; margin-top: auto; }
.checks { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 8px; }
.checks li { display: flex; gap: 8px; align-items: flex-start; }
.checks .ic { color: var(--win); margin-top: 3px; }

/* ---------- press / photos */
.press-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.press-card { margin: 0; background: #fff; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); cursor: zoom-in; }
.press-card img { aspect-ratio: 4/3; object-fit: cover; object-position: top; width: 100%; }
.press-card figcaption { padding: 12px 14px; display: flex; flex-direction: column; }
.press-card figcaption span { font-size: .85rem; color: var(--muted); }
.photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.photo { margin: 0; position: relative; border-radius: var(--radius); overflow: hidden; cursor: zoom-in; aspect-ratio: 4/3; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.photo figcaption { position: absolute; inset: auto 0 0 0; padding: 30px 14px 12px; background: linear-gradient(transparent, color-mix(in srgb, var(--navy) 90%, transparent)); color: #fff; display: flex; flex-direction: column; font-size: .85rem; }
.photo figcaption strong { font-size: 1rem; }
.photo figcaption span { display: flex; gap: 5px; align-items: center; color: var(--soft-light); }
.lightbox { position: fixed; inset: 0; background: rgba(5,15,28,.92); z-index: 200; display: grid; place-items: center; padding: 24px; cursor: zoom-out; }
.lightbox img { max-height: 90vh; width: auto; border-radius: 8px; }

/* ---------- roster */
.roster-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; }
.player { background: #fff; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
.player-photo { position: relative; aspect-ratio: 1; background: linear-gradient(160deg, var(--blue), var(--navy)); display: flex; align-items: flex-end; justify-content: center; }
.player-photo.youth { background: linear-gradient(160deg, #5aa9e0, var(--blue)); }
.player-photo svg { width: 70%; fill: rgba(255,255,255,.18); }
.player-num { position: absolute; top: 6px; left: 12px; font-family: var(--font-head); font-size: 3rem; color: #fff; line-height: 1; }
.player-info { padding: 10px 12px; }
.player-info strong { display: block; line-height: 1.2; font-weight: 600; }
.player-info strong span { font-weight: 800; color: var(--navy); }
.player-info small { color: var(--muted); }
.agg { display: inline-block; margin-top: 4px; font-size: .72rem; font-weight: 800; color: var(--blue); background: var(--tint-blue); border-radius: 5px; padding: 1px 6px; }
.staff-list, .train-list { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.staff-list li { display: flex; gap: 12px; align-items: center; }
.staff-list small { display: block; color: var(--muted); }
.avatar { width: 46px; height: 46px; border-radius: 50%; background: var(--navy); color: #fff; display: grid; place-items: center; font-family: var(--font-head); font-size: 1.4rem; flex: none; }
.avatar.lg { width: 72px; height: 72px; font-size: 1.9rem; background: linear-gradient(135deg, var(--blue), var(--navy)); }
.train-list li { display: grid; grid-template-columns: 110px 1fr 1fr; gap: 10px; background: var(--bg-alt); border-radius: 10px; padding: 12px 14px; align-items: center; }
.train-list span { display: flex; gap: 6px; align-items: center; color: var(--muted); font-size: .95rem; }

/* ---------- filters */
.filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; align-items: center; }
.chip-btn { border: 1px solid var(--line); background: #fff; color: var(--navy); font-weight: 700; padding: 8px 14px; border-radius: 999px; cursor: pointer; font-size: .92rem; font-family: inherit; }
.chip-btn[aria-pressed="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.filters .ics { margin-left: auto; }
.cal-cols h2 { font-size: 1.9rem; }

/* ---------- article */
.article-head { padding: 40px 0 16px; }
.article-head h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); color: var(--navy); margin-top: 12px; }
.article-img { width: 100%; border-radius: var(--radius); aspect-ratio: 16/9; object-fit: cover; margin-bottom: 28px; }
.article-body { font-size: 1.12rem; line-height: 1.7; }
.hashtag { color: var(--blue); font-weight: 700; }
.share { display: flex; gap: 12px; align-items: center; margin: 28px 0 56px; padding-top: 20px; border-top: 1px solid var(--line); font-weight: 700; }
.share a { width: 40px; height: 40px; border-radius: 50%; background: var(--bg-alt); display: grid; place-items: center; color: var(--navy); }

/* ---------- forms */
.card { background: #fff; border-radius: 18px; padding: 28px; box-shadow: var(--shadow); border: 1px solid var(--line); }
.form { display: grid; gap: 14px; }
.form h3 { font-family: var(--font-head); font-weight: 400; font-size: 1.9rem; color: var(--navy); margin: 0; }
.form label { display: grid; gap: 6px; font-weight: 700; font-size: .92rem; color: var(--grey); }
.form input:not([type=checkbox]), .form select, .form textarea { font: inherit; font-weight: 400; color: var(--ink); padding: 11px 12px; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; width: 100%; }
.form input:focus, .form select:focus, .form textarea:focus { border-color: var(--blue); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 15%, transparent); }
.form .check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.form .check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--blue); }
.form .file small { font-weight: 400; display: flex; gap: 6px; color: var(--muted); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-ok { background: #e3f5ea; color: var(--win); padding: 12px; border-radius: 10px; font-weight: 700; display: flex; gap: 8px; }
.form-ok[hidden], .cat-suggest[hidden] { display: none; }
.cat-suggest { background: var(--tint-blue); color: var(--blue); padding: 10px 12px; border-radius: 10px; font-weight: 700; display: flex; gap: 8px; align-items: center; margin: 0; }
.invalid { border-color: var(--red) !important; }

/* steps / faq */
.steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: s; }
.steps li { background: var(--bg-alt); border-radius: var(--radius); padding: 24px; }
.steps b { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--red); color: #fff; font-family: var(--font-head); font-size: 1.6rem; font-weight: 400; margin-bottom: 12px; }
.steps p { color: var(--muted); margin: 0; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; padding: 18px 0; font-weight: 700; font-size: 1.08rem; list-style: none; display: flex; justify-content: space-between; gap: 12px; color: var(--navy); }
.faq summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--red); }
.faq details[open] summary::after { content: "−"; }
.faq details p { color: var(--muted); }

/* medical reminders */
.reminder-line { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; position: relative; margin-top: 24px; }
.reminder-line::before { content: ""; position: absolute; left: 8%; right: 8%; top: 27px; height: 3px; background: linear-gradient(90deg, var(--blue), var(--red)); }
.rl-step { position: relative; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.rl-dot { width: 56px; height: 56px; border-radius: 50%; background: #fff; border: 3px solid var(--blue); display: grid; place-items: center; color: var(--blue); }
.rl-step:nth-child(4) .rl-dot, .rl-step:nth-child(5) .rl-dot { border-color: var(--red); color: var(--red); }
.rl-step.end .rl-dot { background: var(--red); border-color: var(--red); color: #fff; }
.rl-step b { font-family: var(--font-head); font-size: 1.5rem; font-weight: 400; color: var(--navy); }
.rl-step small { color: var(--muted); font-size: .85rem; line-height: 1.25; }
.mail-preview { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; margin-bottom: 20px; }
.mp-head { background: var(--bg-alt); padding: 12px 16px; font-size: .88rem; display: grid; gap: 2px; color: var(--muted); }
.mp-head b { color: var(--ink); }
.mp-body { padding: 20px; }
.mp-body img { margin-bottom: 16px; }

/* media */
.clip-grid { columns: 4 220px; column-gap: 16px; }
.clip { break-inside: avoid; margin: 0 0 16px; background: #fff; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; cursor: zoom-in; }
.clip img { width: 100%; }
.clip figcaption { padding: 10px 12px; display: flex; flex-direction: column; font-size: .9rem; }
.clip figcaption span { color: var(--muted); font-size: .8rem; }
.vid-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.vid h3 { font-size: 1rem; margin: 10px 0 2px; }
.vid small { color: var(--muted); }
.vid .video-play { width: 56px; height: 56px; }
@media (max-width: 920px) { .vid-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .vid-grid { grid-template-columns: 1fr; } }
/* vetrina prodotti */
.shop-home .muted { margin-top: -10px; margin-bottom: 20px; }
.order-modal { border: 0; border-radius: 18px; padding: 22px; width: min(520px, 94vw); box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.order-modal::backdrop { background: rgba(5,15,28,.6); }
.om-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.om-head h3 { font-family: var(--font-head); font-weight: 400; font-size: 1.6rem; color: var(--navy); margin: 0; }
.om-x { background: none; border: 0; cursor: pointer; color: var(--muted); }
.om-pay { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px 10px; display: grid; gap: 6px; }
.om-pay legend { font-weight: 700; font-size: .9rem; color: var(--grey); padding: 0 4px; }
.om-pay .check input { accent-color: var(--blue); }
.mail-mini { background: #e7f8e9; border: 1px solid #bfe6cd; border-radius: 10px; padding: 12px; white-space: pre-wrap; font-family: inherit; font-size: .88rem; margin: 6px 0 0; }
/* anteprime per il backend */
body.bare { background: var(--bg-alt); }
body.bare main { pointer-events: auto; }

/* contenuti incorporati */
.embed-h { display: flex; gap: 8px; align-items: center; margin: 28px 0 10px; color: var(--navy); }
.embed { margin: 0 0 16px; max-width: 540px; }
.embed-load { width: 100%; min-height: 160px; border: 1.5px dashed #b8c4d2; border-radius: 14px; background: var(--bg-alt); display: grid; place-items: center; gap: 6px; padding: 24px; cursor: pointer; font: inherit; color: var(--navy); text-align: center; }
.embed-load .ic { width: 34px; height: 34px; color: var(--red); }
.embed-load small { color: var(--muted); }
.embed iframe { width: 100%; border: 0; border-radius: 14px; background: #fff; }
.embed-instagram iframe { height: 720px; }
.embed-facebook iframe { height: 620px; }
.embed-youtube iframe { aspect-ratio: 16/9; height: auto; }
.embed-link { display: flex; gap: 8px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; font-weight: 700; }
.embed-link small { margin-left: auto; color: var(--muted); font-weight: 400; }
.embed figcaption { font-size: .85rem; margin-top: 6px; }

/* diretta in home */
.live-section { background: #0d0f14; color: #fff; position: relative; }
.live-section h2 { color: #fff; margin: 6px 0; }
.live-section .muted, .live-section .note-mini { color: #b9c3cf; }
.live-section .eyebrow { color: #ff6b66; }
.live-section .live-dot { background: var(--red); }
.live-in { display: grid; grid-template-columns: 1fr 1.4fr; gap: 36px; align-items: center; }
.live-head .btn { margin: 14px 0 6px; }
.live-player { aspect-ratio: 16/9; border-radius: var(--radius); overflow: hidden; background: #000; }
.live-player iframe { width: 100%; height: 100%; border: 0; }
.live-wait { position: relative; width: 100%; height: 100%; background-size: cover; background-position: center; display: grid; place-items: center; }
.live-wait::before { content: ""; position: absolute; inset: 0; background: rgba(5,10,20,.65); }
.live-badge { position: absolute; top: 14px; left: 14px; z-index: 1; background: var(--red); font-weight: 800; padding: 4px 10px; border-radius: 6px; display: flex; gap: 6px; align-items: center; }
.countdown.small { position: relative; z-index: 1; width: min(320px, 80%); margin: 0; }
.countdown.small div { background: rgba(255,255,255,.12); }
.live-demo .live-in { opacity: .28; pointer-events: none; user-select: none; filter: grayscale(.4); }
.live-demo-note { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(560px, calc(100% - 32px)); background: #fff; color: var(--ink); border-radius: 12px; padding: 14px 18px; box-shadow: 0 10px 40px rgba(0,0,0,.4); font-weight: 600; display: flex; gap: 10px; align-items: flex-start; margin: 0; }
.live-demo-note .ic { color: var(--red); width: 22px; height: 22px; flex: none; }
@media (max-width: 920px) { .live-in { grid-template-columns: 1fr; gap: 20px; } }

/* calendario: giorni */
.day-group { margin-bottom: 14px; }
.day-head { font-size: .82rem; text-transform: uppercase; letter-spacing: 1px; color: var(--blue); font-weight: 800; margin: 18px 0 8px; padding-bottom: 6px; border-bottom: 2px solid var(--line); }
.day-group:first-of-type .day-head { margin-top: 4px; }
.cal-col .match-row .mr-date strong { display: none; }
.cal-col .match-row .mr-date span { font-size: 1rem; font-weight: 700; color: var(--ink); }
.cal-more { margin-top: 6px; }
.day-group[hidden] { display: none; }

/* classifiche nel calendario */
.st-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; }
.st-grid.single { grid-template-columns: 1fr; }
.st-pane h3 { display: flex; gap: 8px; align-items: center; font-size: 1.2rem; margin: 0 0 2px; color: var(--navy); }
.st-pane .muted { margin: 0 0 8px; font-size: .9rem; }
.st-pane[hidden] { display: none; }
@media (max-width: 920px) { .st-grid { grid-template-columns: 1fr; } }

/* abbonamento calendario */
.cal-sub { background: var(--tint-blue); border-radius: var(--radius); padding: 20px; margin-top: 28px; color: var(--ink); display: grid; gap: 14px; }
.cal-sub-head { display: flex; gap: 14px; }
.cal-sub-head > .ic { width: 30px; height: 30px; color: var(--blue); }
.cal-sub-head p { margin: 4px 0 0; color: var(--grey); }
.cal-sub-pick { display: flex; gap: 10px; align-items: center; font-weight: 700; flex-wrap: wrap; }
.cal-sub-pick select { font: inherit; padding: 8px 10px; border-radius: 9px; border: 1.5px solid #c8d6e6; background: #fff; }
.cal-sub-btns { display: flex; gap: 8px; flex-wrap: wrap; }

/* info box */
.info-box { display: flex; gap: 16px; background: var(--tint-blue); border-radius: var(--radius); padding: 20px; margin-top: 32px; }
.info-box > .ic { width: 32px; height: 32px; color: var(--blue); }
.info-box p { margin: 4px 0 0; color: var(--grey); }

/* club */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 40px; }
.stats div { background: var(--navy); color: #fff; border-radius: var(--radius); padding: 22px; }
.stats b { display: block; font-family: var(--font-head); font-weight: 400; font-size: 2.8rem; line-height: 1; }
.stats span { color: var(--soft-light); }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.values article { border-top: 4px solid var(--red); padding-top: 16px; }
.values h3 { font-family: var(--font-head); font-weight: 400; font-size: 1.8rem; color: var(--navy); margin-bottom: .3em; }
.values p { color: var(--muted); }
.board-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.board-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; }
.board-card small { color: var(--muted); }
.doc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.doc { display: flex; gap: 12px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; color: var(--ink); background: #fff; }
.doc:hover { border-color: var(--blue); }
.doc > .ic { width: 28px; height: 28px; color: var(--blue); }
.doc small { display: block; color: var(--muted); }
.card-img { border-radius: var(--radius); box-shadow: var(--shadow); margin-bottom: 20px; }

/* shop */
.shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.product { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.product img { aspect-ratio: 1; object-fit: contain; }
.product h3 { margin: 0; }
.product > b { font-family: var(--font-head); font-size: 1.8rem; font-weight: 400; color: var(--navy); }
.sizes { display: flex; gap: 4px; flex-wrap: wrap; }
.size { border: 1px solid var(--line); background: #fff; border-radius: 6px; padding: 4px 8px; font-weight: 700; cursor: pointer; font-size: .82rem; font-family: inherit; }
.size[aria-pressed="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }

/* sponsors */
.level-title { font-size: 1.6rem; margin-top: 32px; }
.sponsor-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.sponsor-grid.level-main { grid-template-columns: repeat(3, 1fr); }
.sponsor-grid a { background: #fff; border: 1px solid var(--line); border-radius: 12px; display: grid; place-items: center; padding: 18px; height: 110px; transition: box-shadow .15s; }
.sponsor-grid.level-main a { height: 150px; }
.sponsor-grid a:hover { box-shadow: var(--shadow); }
.sponsor-grid img { max-height: 70px; width: auto; max-width: 100%; object-fit: contain; }
.sponsor-strip { background: var(--bg-alt); padding: 48px 0 32px; border-top: 1px solid var(--line); }
.sponsor-grid-mini { display: grid; grid-template-columns: repeat(10, 1fr); gap: 10px; margin: 16px 0 20px; }
.sponsor-grid-mini a { background: #fff; border-radius: 8px; display: grid; place-items: center; height: 64px; padding: 8px; }
.sponsor-grid-mini img { max-height: 40px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .8; transition: .2s; }
.sponsor-grid-mini a:hover img { filter: none; opacity: 1; }

/* contacts */
.contact-cards { list-style: none; padding: 0; margin: 0 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.contact-cards li { display: flex; gap: 12px; padding: 16px; background: var(--bg-alt); border-radius: 12px; }
.contact-cards li > .ic { width: 26px; height: 26px; color: var(--blue); }
.contact-cards div { display: flex; flex-direction: column; font-size: .95rem; }
.map { border-radius: var(--radius); overflow: hidden; aspect-ratio: 16/10; background: var(--bg-alt); }
.map iframe { width: 100%; height: 100%; border: 0; }
.note-mini.inline { display: inline; }

/* footer */
.site-footer { background: var(--navy); color: var(--soft-light); padding: 56px 0 24px; font-size: .95rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 32px; }
.site-footer h3 { color: #fff; font-family: var(--font-head); font-weight: 400; font-size: 1.4rem; letter-spacing: .5px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.site-footer a { color: var(--soft-light); text-decoration: none; }
.site-footer a:hover { color: #fff; }
.footer-logo { width: 90px; margin-bottom: 14px; }
.footer-social { display: flex; gap: 10px; }
.footer-social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; }
.footer-contact li { display: flex; gap: 8px; align-items: flex-start; }
.footer-contact .ic { margin-top: 3px; color: var(--soft-light); }
.site-footer .btn { margin-top: 16px; }
.footer-legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.1); margin-top: 40px; padding-top: 18px; font-size: .82rem; color: #8ea6c0; }

/* cookie */
.cookie { position: fixed; left: 16px; bottom: 16px; max-width: 380px; background: #fff; border-radius: 14px; box-shadow: 0 10px 40px rgba(0,0,0,.25); padding: 18px; z-index: 90; font-size: .92rem; }
.cookie-actions { display: flex; gap: 8px; }

/* ---------- responsive */
@media (max-width: 1080px) {
  .main-nav a { font-size: 1.15rem; padding: 8px 8px; }
  .sponsor-grid-mini { grid-template-columns: repeat(5, 1fr); }
  .board-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 920px) {
  .burger { display: block; }
  .hide-sm { display: none; }
  .main-nav { position: fixed; inset: 0 0 0 auto; top: 0; width: min(320px, 85vw); background: #fff; flex-direction: column; padding: 90px 20px 20px; box-shadow: -10px 0 40px rgba(0,0,0,.2); transform: translateX(100%); transition: transform .25s, visibility .25s; z-index: 60; visibility: hidden; }
  .main-nav.open { transform: none; visibility: visible; }
  .main-nav a { font-size: 1.4rem; padding: 9px 6px; border-bottom: 1px solid var(--line); border-radius: 0; }
  .main-nav a[aria-current="page"] { box-shadow: inset 4px 0 0 var(--red); padding-left: 14px; }
  .nav-mobile-only { display: block; }
  .header-actions { margin-left: auto; z-index: 70; }
  .hero-in, .two-col, .news-layout { grid-template-columns: 1fr; }
  .hero-in { padding-top: 48px; padding-bottom: 40px; gap: 32px; }
  .score-cards { grid-template-columns: repeat(2, 1fr); }
  .news-grid, .team-grid, .press-grid, .photo-grid { grid-template-columns: repeat(2, 1fr); }
  .price-grid, .steps, .values { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .shop-grid { grid-template-columns: repeat(2, 1fr); }
  .team-row { grid-template-columns: 120px 1fr; padding-right: 0; }
  .tr-btn { grid-column: 1 / -1; margin: 0 16px 16px; }
  .reminder-line { grid-template-columns: repeat(3, 1fr); row-gap: 24px; }
  .reminder-line::before { display: none; }
  .subnav { top: 76px; }
}
@media (max-width: 600px) {
  body { font-size: 16px; }
  .header-in { height: 64px; gap: 12px; }
  .brand img { height: 40px; }
  .subnav { top: 64px; }
  .tb-item { font-size: .78rem; }
  .section { padding: 52px 0; }
  .score-cards, .news-grid, .team-grid, .press-grid, .photo-grid, .shop-grid, .contact-cards, .row2, .tr-facts { grid-template-columns: 1fr; }
  .news-card.compact .news-img { width: 34%; }
  .team-row { grid-template-columns: 1fr; }
  .tr-img { min-height: 110px; }
  .tr-body { padding: 0 16px; }
  .train-list li { grid-template-columns: 1fr 1fr; }
  .train-list li strong { grid-column: 1 / -1; }
  .board-grid { grid-template-columns: repeat(2, 1fr); }
  .sponsor-grid-mini { grid-template-columns: repeat(4, 1fr); }
  .sponsor-grid.level-main { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .countdown b { font-size: 1.8rem; }
  .marquee { height: 58px; }
  .marquee img { height: 30px; }
  .video-score { font-size: .72rem; gap: 6px; padding: 5px 10px; }
  .video-score b { font-size: 1.3rem; }
  .video-score span { max-width: 80px; overflow: hidden; text-overflow: ellipsis; }
  .filters .ics { margin-left: 0; }
  .mr-date { grid-row: auto; }
  .match-row { grid-template-columns: auto 1fr; }
  .match-row .mr-teams, .match-row .mr-meta { grid-column: 1 / -1; }
  .card { padding: 20px; }
  .cookie { right: 16px; max-width: none; }
}

/* Pagina squadra: colori maglia dal backend e roster senza foto */
#roster { --jersey: var(--jersey-home); --jersey-num: var(--jersey-home-num); }
#roster .player-photo { background: linear-gradient(160deg, var(--jersey), color-mix(in srgb, var(--jersey) 80%, #000)); }
#roster .player-num { color: var(--jersey-num); }
#roster .player-photo svg { fill: color-mix(in srgb, var(--jersey-num) 22%, transparent); }
.roster-grid.no-photo .player-photo { aspect-ratio: auto; height: 64px; }
.roster-grid.no-photo .player-photo svg { display: none; }
.team-hero p .chip { vertical-align: 2px; margin-right: 4px; }
.phase-pick { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; font-weight: 600; }
.phase-pick select { font: inherit; padding: 6px 10px; border: 1.5px solid var(--line, #d5dbe3); border-radius: 8px; }

/* Foto giocatori e staff (pagina squadra) */
.player-photo.has-photo { overflow: hidden; }
.player-photo.has-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.player-photo.has-photo .player-num { z-index: 1; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.avatar-img { object-fit: cover; padding: 0; width: 56px; height: 56px; border: 2px solid var(--line); }

/* Pagina partita */
.match-row { position: relative; }
.mr-link { position: absolute; inset: 0; z-index: 0; border-radius: inherit; }
.match-row .mr-meta a, .match-row .mr-meta button { position: relative; z-index: 1; }
.match-row:hover { box-shadow: 0 4px 16px color-mix(in srgb, var(--navy) 12%, transparent); }
.match-hero { background: var(--navy); color: #fff; padding: 28px 0 34px; }
.match-hero .crumb { color: var(--soft-light); }
.mh-kind { margin: 10px 0 18px; color: var(--soft-light); font-weight: 600; }
.mh-board { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; }
.mh-team { font-size: 1.3rem; font-weight: 800; }
.mh-team:first-child { justify-self: end; text-align: right; }
.mh-score { display: flex; gap: 12px; align-items: center; font-family: var(--font-head); font-size: clamp(3rem, 9vw, 5.5rem); line-height: 1; }
.mh-score i { font-style: normal; opacity: .5; }
.mh-vs { font-size: 2.2rem; opacity: .7; }
.mh-when { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: center; margin: 18px 0 0; color: var(--soft-light); }
.mh-when .was { color: #ffb3b0; }
.mp-info { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.mp-info .info-box { display: grid; gap: 8px; align-content: start; }
.mp-info .info-box h3 { margin: 0; }
.mp-info .info-box p { margin: 0; }
.mp-info .btn { justify-self: start; }
.box-public { width: 100%; }
.box-public td.r, .box-public th.r { text-align: right; }
.box-public tr.ne td { color: var(--muted); }
.box-public tfoot td { border-top: 2px solid var(--line); font-weight: 800; }
@media (max-width: 700px) { .mh-board { grid-template-columns: 1fr; text-align: center; } .mh-team:first-child { justify-self: center; text-align: center; } .mh-score { justify-content: center; } .mp-info { grid-template-columns: 1fr; } }
.box-public .bp-name { display: flex; align-items: center; gap: 10px; }
.bp-ph { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; border: 2px solid var(--line); }
.bp-none { display: grid; place-items: center; background: var(--bg-alt); color: var(--muted); font-size: .8rem; font-weight: 800; }

/* Tabellino sportivo (pagina partita): colori propri, leggibile con tema Casa e Trasferta */
.box-sec { background: linear-gradient(180deg, var(--navy), #0f3560); color: #fff; }
.box-sec h2 { color: #fff; margin: 0; }
.box-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.box-tot { display: flex; align-items: baseline; gap: 8px; }
.box-tot b { font-family: var(--font-head); font-size: 3.4rem; line-height: 1; }
.box-tot span { color: var(--soft-light); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; }
.box-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.bx { display: grid; grid-template-columns: 64px 1fr auto; grid-template-rows: auto 6px; align-items: center; gap: 6px 14px; padding: 12px 16px 12px 12px; background: #fff; color: var(--navy); border-radius: 14px; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.bx-ph { position: relative; width: 64px; height: 64px; grid-row: 1 / 3; }
.bx-ph img, .bx-ph > span { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: #e8eef5; color: #5b6b7d; font-weight: 800; border: 3px solid var(--blue); }
.bx-num { position: absolute; right: -6px; bottom: -4px; min-width: 26px; height: 26px; padding: 0 5px; border-radius: 13px; background: var(--red); color: #fff; font: 400 1rem/26px var(--font-head); text-align: center; font-style: normal; border: 2px solid #fff; }
.bx-name { font-weight: 700; line-height: 1.15; font-size: .95rem; }
.bx-name small { display: block; margin-top: 3px; color: var(--red); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.bx-cap { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--navy); color: #fff; font-size: .65rem; text-decoration: none; vertical-align: 2px; }
.bx-pts { text-align: right; line-height: .9; }
.bx-pts b { display: block; font-family: var(--font-head); font-size: 2.6rem; color: var(--navy); }
.bx-pts span { font-size: .65rem; font-weight: 800; color: #8a99aa; letter-spacing: .1em; }
.bx-bar { grid-column: 2 / 4; height: 6px; background: #e8eef5; border-radius: 3px; overflow: hidden; }
.bx-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), var(--red)); border-radius: 3px; }
.bx-top { background: linear-gradient(135deg, #fff 60%, var(--tint-red)); outline: 3px solid var(--red); }
.bx-top .bx-pts b { color: var(--red); }
.bx-ne { margin: 16px 0 0; color: #b9cde2; font-size: .92rem; }
.bx-ne strong { color: #fff; }
.match-hero .tt, .match-hero .tt.us { color: #fff; font-size: 1.4rem; padding: 6px 14px 6px 8px; background: rgba(255,255,255,.1); }
.match-hero .tt.us { background: rgba(255,255,255,.18); }
.pl-avg { display: block; margin-top: 6px; font-size: .85rem; color: var(--grey, #4a5a6a); }
.pl-avg b { font-family: var(--font-head); font-size: 1.35rem; color: var(--red, var(--red)); font-weight: 400; }
.pl-avg-other { display: block; color: var(--muted); font-size: .75rem; }

/* Scheda giocatore (roster) — stile "player card": cognome grande, numero, dati, foto, barra statistiche */
.pc-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important; gap: 18px; }
.pc { display: grid; grid-template-rows: auto 1fr auto; background: #fff; color: var(--navy); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 24px color-mix(in srgb, var(--navy) 12%, transparent); border: 1px solid #e3e8ef; }
.pc-top { display: flex; justify-content: space-between; align-items: flex-start; padding: 16px 18px 0; gap: 10px; }
.pc-id { margin: 0; display: grid; line-height: 1.05; }
.pc-first { font-size: 1rem; font-weight: 700; color: var(--navy); }
.pc-last { font-family: var(--font-head); font-size: 1.9rem; font-weight: 400; letter-spacing: .01em; color: var(--navy); }
.pc-role { margin-top: 4px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8a99aa; }
.pc-num { font-family: var(--font-head); font-size: 3.6rem; line-height: .85; color: var(--navy); }
.pc-mid { display: grid; grid-template-columns: 1fr 120px; gap: 10px; align-items: end; padding: 8px 0 0 18px; min-height: 150px; }
.pc-facts { margin: 0 0 12px; font-size: .8rem; }
.pc-facts div { display: grid; grid-template-columns: 82px 1fr; gap: 6px; padding: 5px 0; border-bottom: 1px solid #e3e8ef; align-items: center; }
.pc-facts dt { font-weight: 800; text-transform: uppercase; font-size: .68rem; letter-spacing: .06em; color: var(--navy); }
.pc-facts dd { margin: 0; color: #3d4a57; }
.pc-facts .chip { font-size: .65rem; }
.pc .pc-photo { position: relative; width: 120px; height: 150px; aspect-ratio: auto; border-radius: 60px 0 0 0; overflow: hidden; align-self: end; }
.pc .pc-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.pc .pc-photo svg { width: 100%; height: 100%; }
.pc-stats { display: flex; border-top: 1px solid #e3e8ef; background: #f5f7fa; }
.pc-stats > * { flex: 1; padding: 10px 6px; text-align: center; border-left: 1px solid #e3e8ef; display: grid; align-content: center; }
.pc-stats small { font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #5b6b7d; }
.pc-stats b { font-family: var(--font-head); font-size: 1.6rem; font-weight: 400; line-height: 1.05; color: var(--navy); }
.pc-stats .pc-season { flex: .9; border-left: 0; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--navy); }
.pc-stats .pc-season small { color: #8a99aa; }
.pc-stats .pc-oth b { color: #8a99aa; font-size: 1.25rem; }
.roster-grid.no-photo .pc-mid { grid-template-columns: 1fr; min-height: 0; padding-right: 18px; }
.roster-grid.no-photo .pc-photo { display: none; }

/* Pagina partita "game center" */
.gc-hero { position: relative; color: #fff; padding: 26px 0 30px; background: linear-gradient(180deg, color-mix(in srgb, var(--navy) 78%, transparent), color-mix(in srgb, var(--navy) 95%, transparent)), var(--gc-bg, none) center 35%/cover no-repeat, var(--navy); overflow: hidden; }
.gc-hero .crumb { color: var(--soft-light); }
.gc-kind { margin: 8px 0 14px; text-align: center; color: var(--soft-light); font-weight: 700; }
.gc-board { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; }
.gc-team { display: grid; justify-items: center; gap: 10px; text-align: center; }
.gc-team strong { font-family: var(--font-head); font-size: 1.5rem; font-weight: 400; letter-spacing: .03em; text-transform: uppercase; }
.gc-logo { width: 96px; height: 96px; object-fit: contain; background: #fff; border-radius: 50%; padding: 12px; box-shadow: 0 8px 26px rgba(0,0,0,.35); }
.gc-opp { display: grid; place-items: center; padding: 0; font-family: var(--font-head); font-size: 2.2rem; color: #fff; background: linear-gradient(135deg, var(--c1) 50%, var(--c2) 50%); text-shadow: 0 2px 6px rgba(0,0,0,.5); border: 3px solid rgba(255,255,255,.85); }
.gc-mid { display: flex; align-items: center; gap: clamp(12px, 3vw, 34px); }
.gc-pts { font-family: var(--font-head); font-weight: 400; font-size: clamp(3.4rem, 10vw, 7rem); line-height: .9; opacity: .72; }
.gc-pts.win { opacity: 1; }
.gc-center { display: grid; justify-items: center; gap: 8px; }
.gc-date { font-weight: 700; font-size: .95rem; white-space: nowrap; }
.gc-pill { background: #fff; color: var(--navy); border-radius: 999px; padding: 2px 16px; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.gc-replay { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 8px 16px; border: 2px solid #fff; border-radius: 999px; color: #fff; text-decoration: none; font-weight: 800; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.gc-replay:hover { background: #fff; color: var(--navy); }
.gc-sub { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; margin: 18px 0 0; color: var(--soft-light); }
.gc-panel { background: #0f2c4c; color: #fff; padding: 26px 0; }
.gc-panel-in { display: grid; grid-template-columns: 1fr 1.3fr; gap: 30px; }
.gc-panel-in.one { grid-template-columns: 1fr; }
.gc-panel h2 { color: #fff; font-size: 1.3rem; margin: 0 0 16px; }
.gc-leaders { display: flex; gap: 22px; flex-wrap: wrap; }
.gc-leader { display: grid; justify-items: center; gap: 6px; text-align: center; }
.gc-name { font-weight: 700; font-size: .85rem; }
.gc-ball { width: 92px; height: 92px; border-radius: 50%; overflow: hidden; background: var(--red); display: grid; place-items: center; border: 3px solid var(--red); }
.gc-ball img { width: 100%; height: 100%; object-fit: cover; }
.gc-ball i { font-style: normal; font-family: var(--font-head); font-size: 2.4rem; }
.gc-leader b { font-weight: 800; font-size: .95rem; }
.gc-leader small { color: var(--soft-light); font-size: .75rem; margin-top: -4px; }
.gc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.gc-card { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 12px; background: #fff; color: var(--navy); border-radius: 6px; overflow: hidden; text-decoration: none; min-height: 84px; }
.gc-card strong { padding-right: 12px; font-size: .95rem; line-height: 1.2; }
.gc-thumb { align-self: stretch; background: var(--navy) center/cover; display: grid; place-items: center; color: #fff; }
.gc-thumb svg { width: 34px; height: 34px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.6)); }
.gc-box { background: #fff; color: var(--navy); }
.gc-box-head { display: flex; align-items: baseline; gap: 14px; border-bottom: 3px solid var(--red); padding-bottom: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.gc-box-head h2 { margin: 0; color: var(--navy); }
.gc-box-head span { color: #5b6b7d; font-weight: 700; }
.gc-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.gc-table th { text-align: left; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: #5b6b7d; padding: 12px 10px; border-bottom: 1px solid #e3e8ef; }
.gc-table td { padding: 8px 10px; border-bottom: 1px solid #eef1f5; color: #1c2b3a; }
.gc-table tbody tr:nth-child(even) td { background: #f7f9fb; }
.gc-table .num { color: #8a99aa; font-weight: 700; width: 36px; }
.gc-table .pts { font-weight: 800; font-size: 1.05rem; color: var(--navy); }
.gc-table tr.ne td { color: #8a99aa; }
.gc-table tfoot td { font-weight: 800; border-top: 2px solid #e3e8ef; border-bottom: 0; }
.gc-pl { display: inline-flex; align-items: center; gap: 10px; }
.gc-pl img, .gc-pl i { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; background: var(--red); color: #fff; font-style: normal; font-size: .7rem; font-weight: 800; display: grid; place-items: center; flex: none; }
.gc-pl abbr { text-decoration: none; color: #8a99aa; font-size: .8rem; }
@media (max-width: 760px) {
  .gc-board { grid-template-columns: 1fr 1fr; }
  .gc-mid { grid-column: 1 / -1; grid-row: 2; justify-content: center; }
  .gc-logo { width: 70px; height: 70px; }
  .gc-team strong { font-size: 1.1rem; }
  .gc-panel-in { grid-template-columns: 1fr; }
  .gc-table .hide-sm { display: none; }
}
.pc-prev { margin: 0; padding: 6px 12px 8px; text-align: center; font-size: .75rem; color: #5b6b7d; background: #f5f7fa; border-top: 1px dashed #e3e8ef; }

/* Scheda giocatore: layout fisso uguale per tutti (dati sotto il ruolo, numero e foto a destra) */
.pc { grid-template-rows: 1fr auto auto; }
.pc-body { display: grid; grid-template-columns: 1fr 120px; gap: 10px; padding: 16px 0 0 18px; min-height: 196px; }
.pc-left { display: grid; align-content: start; gap: 10px; padding-bottom: 12px; }
.pc-right { display: grid; grid-template-rows: auto 1fr; justify-items: end; }
.pc-right .pc-num { padding-right: 16px; }
.pc .pc-right .pc-photo { width: 120px; height: 130px; align-self: end; }
.pc-facts { margin: 0; }
.pc-prev { min-height: 31px; }
.roster-grid.no-photo .pc-body { grid-template-columns: 1fr auto; }
.roster-grid.no-photo .pc-right .pc-photo { display: none; }

/* Pagina partita: album esterno, post social, "Dal campo" */
.gc-album { display: grid; grid-template-columns: minmax(0, 1.4fr) 1fr; border-radius: 14px; overflow: hidden; text-decoration: none; color: var(--navy); background: #fff; box-shadow: 0 8px 24px color-mix(in srgb, var(--navy) 14%, transparent); margin-bottom: 18px; border: 1px solid #e3e8ef; }
.gc-album-cover { min-height: 220px; background: var(--navy) center/cover; position: relative; }
.gc-album-cover span { position: absolute; left: 12px; top: 12px; background: color-mix(in srgb, var(--navy) 85%, transparent); color: #fff; padding: 4px 10px; border-radius: 999px; font-size: .75rem; font-weight: 800; display: inline-flex; gap: 6px; align-items: center; }
.gc-album-txt { display: grid; align-content: center; gap: 6px; padding: 18px 22px; }
.gc-album-txt strong { font-family: var(--font-head); font-size: 1.5rem; font-weight: 400; line-height: 1.1; }
.gc-album-txt small { color: #5b6b7d; }
.gc-album-txt b { color: var(--red); margin-top: 6px; }
.gc-album:hover .gc-album-txt b { text-decoration: underline; }
.gc-social { background: #1877f2; } .gc-social svg { width: 30px; height: 30px; fill: #fff; color: #fff; }
.gc-card strong small { display: block; font-weight: 600; color: #5b6b7d; font-size: .75rem; margin-top: 4px; }
.gc-live { background: #fff7f6; }
.gc-live h2 { display: flex; align-items: center; gap: 10px; color: var(--navy); }
.gc-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.gc-timeline li { display: grid; grid-template-columns: 60px 90px 1fr; gap: 6px 14px; align-items: center; background: #fff; border-radius: 12px; padding: 12px 14px; border-left: 4px solid var(--red); }
.gc-timeline img { grid-column: 1 / -1; width: 100%; max-height: 320px; object-fit: contain; border-radius: 8px; background: var(--navy); }
.gc-timeline p, .gc-timeline small { grid-column: 1 / -1; margin: 0; }
.gc-per { font-weight: 800; color: var(--red); text-transform: uppercase; font-size: .8rem; }
.gc-part { font-family: var(--font-head); font-size: 1.8rem; font-weight: 400; color: var(--navy); }
@media (max-width: 700px) { .gc-album { grid-template-columns: 1fr; } .gc-album-cover { min-height: 180px; } }
.gc-albums { display: grid; gap: 14px; margin-bottom: 18px; }
.gc-albums .gc-album { margin: 0; }
.gc-albums.many { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.gc-albums.many .gc-album { grid-template-columns: 1fr; }
.gc-albums.many .gc-album-cover { min-height: 170px; }
.gc-more-h { margin: 22px 0 10px; }
.gc-videos .gc-card { background: #fff; }
.gc-embeds { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.team-filter { margin-top: -6px; }
.team-filter .chip { margin-right: 2px; }
.media-albums { margin-bottom: 22px; }
.vid small a { color: var(--blue); }
[hidden] { display: none !important; }

/* ---- Notifiche, app ed email ---- */
.bell-link { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--navy); }
.bell-link:hover, .bell-link.on { border-color: var(--red); color: var(--red); }
.bell-link .ic { width: 19px; height: 19px; }
.nt-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.nt-card { position: relative; display: grid; gap: 12px; padding-top: 34px; }
.nt-card h2 { font-size: 2rem; margin: 0; }
.nt-card h3 { font-size: 1.3rem; margin: 8px 0 0; color: var(--navy); }
.nt-card > p { margin: 0; color: var(--muted); }
.nt-num { position: absolute; top: -16px; left: 24px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--red); color: #fff; font-family: var(--font-head); font-size: 1.4rem; box-shadow: 0 4px 12px color-mix(in srgb, var(--red) 35%, transparent); }
.nt-hint { font-size: .92rem; color: var(--grey); background: var(--bg-alt); border-radius: 10px; padding: 10px 12px; margin: 0; display: flex; gap: 8px; align-items: flex-start; }
.nt-hint .ic { flex: none; margin-top: 3px; }
.nt-status { margin: 0; padding: 10px 12px; border-radius: 10px; font-weight: 600; font-size: .95rem; background: #e8f1fa; color: var(--navy); display: flex; gap: 8px; align-items: flex-start; }
.nt-status[data-kind="ok"] { background: #e3f5ea; color: #136c39; }
.nt-status[data-kind="warn"] { background: #fdf3dc; color: #7a4e09; }
.wrap > .nt-status { margin-top: 24px; }
.nt-teams { display: grid; gap: 8px; }
.nt-follow { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; font: inherit; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); cursor: pointer; transition: border-color .15s, background .15s; }
.nt-follow:hover { border-color: var(--blue); }
.nt-follow:disabled { opacity: .6; cursor: progress; }
.nt-follow-name { flex: 1; font-weight: 600; min-width: 0; }
.nt-follow-off, .nt-follow-on { display: inline-flex; align-items: center; gap: 5px; font-size: .85rem; font-weight: 700; white-space: nowrap; }
.nt-follow-off { color: var(--blue); }
.nt-follow-on { color: #136c39; display: none; }
.nt-follow[aria-pressed="true"] { border-color: #1a8f4c; background: #f0faf4; }
.nt-follow[aria-pressed="true"] .nt-follow-off { display: none; }
.nt-follow[aria-pressed="true"] .nt-follow-on { display: inline-flex; }
.nt-follow .ic { width: 16px; height: 16px; }
.nt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .95rem; }
.nt-list li { display: flex; gap: 8px; align-items: flex-start; }
.nt-list .ic { width: 17px; height: 17px; color: var(--win); flex: none; margin-top: 3px; }
.nt-checks { border: 0; margin: 0; padding: 0; display: grid; gap: 6px; }
.nt-checks legend { font-weight: 700; font-size: .92rem; color: var(--grey); margin-bottom: 6px; padding: 0; }
.nt-dialog { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 20px 60px color-mix(in srgb, var(--navy) 35%, transparent); }
.nt-dialog::backdrop { background: color-mix(in srgb, var(--navy) 55%, transparent); }
.nt-dialog-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.nt-dialog-head h2 { font-size: 1.6rem; margin: 0; }
.nt-mailmeta { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; padding: 12px 20px; font-size: .92rem; background: var(--bg-alt); }
.nt-mailmeta dt { color: var(--muted); font-weight: 700; }
.nt-mailmeta dd { margin: 0; overflow-wrap: anywhere; }
.nt-dialog iframe { display: block; width: 100%; height: min(70vh, 640px); border: 0; background: #f1f4f8; }
.team-follow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 16px; }
.nt-follow-hero { width: auto; background: rgba(255,255,255,.95); border-color: transparent; }
.nt-follow-hero .nt-follow-off, .nt-follow-hero .nt-follow-on { font-size: .95rem; }
.team-follow-more { color: #fff; font-weight: 600; font-size: .92rem; }
.nt-status-hero { margin-top: 12px; max-width: 560px; }
@media (max-width: 1000px) { .nt-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .nt-grid { grid-template-columns: 1fr; gap: 32px; } .nt-dialog iframe { height: 60vh; } }
.bell-link span { display: none; }
@media (min-width: 1100px) { .bell-link { width: auto; height: 36px; padding: 0 12px 0 10px; gap: 6px; display: inline-flex; align-items: center; border-radius: 999px; font-weight: 700; font-size: .85rem; text-decoration: none; } .bell-link span { display: inline; } }
.app-band { background: linear-gradient(110deg, var(--navy), var(--blue)); color: #fff; padding: 26px 0; }
.app-band-in { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.app-band-in > div { flex: 1; min-width: 240px; }
.app-band h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 0 0 .15em; }
.app-band p { margin: 0; color: var(--soft-light); max-width: 680px; }
.app-band-ic { width: 54px; height: 54px; border-radius: 16px; background: rgba(255,255,255,.12); display: grid; place-items: center; flex: none; }
.app-band-ic .ic { width: 28px; height: 28px; }
.app-banner { position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 60; display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 14px; padding: 10px 10px 10px 12px; box-shadow: 0 10px 30px color-mix(in srgb, var(--navy) 28%, transparent); border: 1px solid var(--line); }
.app-banner img { width: 40px; height: 40px; border-radius: 10px; flex: none; }
.app-banner span { flex: 1; font-size: .88rem; font-weight: 600; line-height: 1.3; color: var(--navy); }
.app-banner-x { background: none; border: 0; padding: 6px; color: var(--muted); cursor: pointer; display: grid; place-items: center; }
.app-banner-x .ic { width: 18px; height: 18px; }
.train-change { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 10px; padding: 10px 12px; border-radius: 10px; font-size: .95rem; }
.train-change .ic { flex: none; margin-top: 3px; width: 18px; height: 18px; }
.train-change.cancelled { background: #fde8e7; color: #8f1f1c; }
.train-change.moved { background: #fdf3dc; color: #7a4e09; }

/* =====================================================================
   Aggiunte del white label (componenti che la demo non aveva o colori «sopra» un colore della società)
   ===================================================================== */
.btn-red, .badge-live, .steps b, .cta-band { color: var(--on-red); }
.btn-blue { color: var(--on-blue); }
.brand-text { font-family: var(--font-head); font-size: 2rem; color: var(--navy); letter-spacing: .5px; line-height: 1; }
.brand img { max-width: 220px; object-fit: contain; }
a.chip-btn { text-decoration: none; display: inline-block; }
a.chip-btn.on { background: var(--navy); color: #fff; border-color: var(--navy); }
.chip-team { color: #fff; }
.prose { font-size: 1.12rem; line-height: 1.7; }
.prose h2 { font-size: 2rem; margin-top: 1.4em; }
.prose a.tag, .prose span.tag { color: var(--blue); font-weight: 700; text-decoration: none; }
.embed { display: block; margin: 1.5rem 0; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; text-decoration: none; font-weight: 700; }
.embed.yt { position: relative; padding: 0; overflow: hidden; }
.embed.yt img { width: 100%; }
.embed.yt span { position: absolute; left: 1rem; bottom: 1rem; background: color-mix(in srgb, var(--navy) 85%, transparent); color: #fff; padding: .4rem .9rem; border-radius: 999px; }
.news-img.empty { display: grid; place-items: center; color: color-mix(in srgb, #fff 35%, transparent); }
.news-img.empty .ic { width: 48px; height: 48px; }
.notice-band { background: #fff4d6; border-bottom: 1px solid #f0d78c; }
.notice-band .wrap { padding-top: 14px; padding-bottom: 14px; }
.notice-band p { margin: .2rem 0; color: #6b4b00; }
.notice-band b { color: #4a3300; }
.player-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.player-photo .player-num { z-index: 1; text-shadow: 0 2px 8px rgba(0,0,0,.4); }
.tc-img.no-photo { background: linear-gradient(135deg, var(--navy), var(--blue)); }
.team-color-bar { height: 6px; }
.empty-note { color: var(--muted); padding: 24px 0; }
.team-picks { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
label.pick { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; cursor: pointer; font-weight: 600; }
label.pick input { margin: 0; width: 18px; height: 18px; accent-color: var(--blue); }
.push-status { font-weight: 700; }
.push-status.ok, .s-ok { color: var(--win); }
.push-status.warn, .s-err { color: var(--loss); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.match-head-card { text-align: center; }
.match-head-card .score { display: flex; justify-content: center; align-items: center; gap: 1.2rem; flex-wrap: wrap; font-weight: 700; font-size: 1.15rem; }
.match-head-card .score b { font-family: var(--font-head); font-weight: 400; font-size: 3.6rem; color: var(--navy); line-height: 1; }
.contact-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; font-size: 1.05rem; }
.contact-list li { display: flex; gap: 10px; align-items: flex-start; }
.contact-list .ic { color: var(--blue); margin-top: 4px; }
.cal-sub { display: flex; flex-wrap: wrap; gap: 10px; margin: 1rem 0; }
code.copy { display: block; padding: .7rem; background: var(--bg-alt); border: 1px solid var(--line); border-radius: 10px; word-break: break-all; user-select: all; }
.sponsor-levels h2 { margin-top: 1.5rem; }
.sponsor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; margin-bottom: 1rem; }
.sponsor-grid a, .sponsor-grid span { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); height: 110px; display: grid; place-items: center; padding: 12px; font-weight: 700; color: var(--grey); text-decoration: none; }
.sponsor-grid.level-main { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.sponsor-grid.level-main a, .sponsor-grid.level-main span { height: 150px; }
.sponsor-grid img { max-height: 100%; max-width: 100%; object-fit: contain; }
.sponsor-grid-mini span { background: #fff; border-radius: 8px; display: grid; place-items: center; height: 64px; padding: 8px; font-size: .8rem; font-weight: 700; color: var(--grey); }
.pager { display: flex; justify-content: space-between; margin-top: 2rem; gap: 12px; }
@media (max-width: 920px) { .match-head-card .score b { font-size: 2.8rem; } }
.team-hero, .hero, .page-hero { background-color: var(--navy); }
.team-hero:not([style]) { background-image: linear-gradient(120deg, var(--navy), var(--blue)); }

/* ---------- calendario: viste Elenco / Mese */
.view-switch { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; margin-left: auto; background: #fff; }
.view-switch a { display: inline-flex; gap: 6px; align-items: center; padding: 6px 14px; border-radius: 999px; font-weight: 700; font-size: .92rem; color: var(--navy); text-decoration: none; }
.view-switch a.on { background: var(--navy); color: #fff; }
.week-nav { display: flex; align-items: center; gap: 12px; margin: 8px 0 20px; flex-wrap: wrap; }
.week-nav b { font-size: 1.05rem; color: var(--navy); }
.month-title { font-family: var(--font-head); font-weight: 400 !important; font-size: 2rem !important; letter-spacing: .5px; min-width: 210px; text-align: center; }
.day-title { font-family: var(--font-head); font-weight: 400; font-size: 1.5rem; color: var(--navy); margin: 22px 0 10px; letter-spacing: .4px; }
.day-title.today { font-size: 2rem; color: var(--red); margin-top: 0; }
.today-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; margin-bottom: 12px; }
.today-card { background: #fff; border: 1px solid var(--line); border-top: 5px solid var(--red); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow); display: grid; gap: 10px; }
.today-card.win { border-top-color: var(--win); } .today-card.loss { border-top-color: var(--loss); }
.tdc-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; text-align: center; font-weight: 700; font-size: 1.05rem; }
.tdc-teams .us { color: var(--navy); font-weight: 800; }
.tdc-teams b { font-family: var(--font-head); font-weight: 400; font-size: 2.6rem; line-height: 1; color: var(--navy); }
.tdc-meta { color: var(--muted); font-size: .92rem; text-align: center; }
.tdc-actions { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.month-grid { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--line); gap: 1px; }
.mg-head { background: var(--navy); color: #fff; text-align: center; font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: 1px; padding: 8px 4px; }
.mg-day { background: #fff; min-height: 112px; padding: 6px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mg-day.out { background: var(--bg-alt); }
.mg-day.out .mg-num { color: #b8c4d2; }
.mg-day.today { box-shadow: inset 0 0 0 2px var(--red); }
.mg-day.today .mg-num { background: var(--red); color: var(--on-red); border-radius: 999px; padding: 0 8px; align-self: flex-start; }
.mg-num { font-weight: 800; font-size: .9rem; color: var(--navy); }
.mg-wd { display: none; }
.mg-ev { display: block; font-size: .78rem; line-height: 1.25; padding: 3px 6px; border-radius: 6px; text-decoration: none; color: var(--ink); background: color-mix(in srgb, var(--c) 14%, #fff); border-left: 3px solid var(--c); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mg-ev:hover { background: color-mix(in srgb, var(--c) 26%, #fff); }
.mg-ev b { font-weight: 800; }
.mg-ev .mg-team { font-weight: 800; color: var(--navy); }
.mg-ev.win { box-shadow: inset -3px 0 0 var(--win); } .mg-ev.loss { box-shadow: inset -3px 0 0 var(--loss); }
.mg-ev.off { opacity: .55; text-decoration: line-through; }
@media (max-width: 760px) {
  /* Sul telefono la griglia diventa un'agenda: solo i giorni con partite, uno sotto l'altro */
  .view-switch { margin-left: 0; }
  .month-grid { grid-template-columns: 1fr; background: transparent; border: 0; gap: 8px; }
  .mg-head, .mg-day:not(.has) { display: none; }
  .mg-day { min-height: 0; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
  .mg-day.today { box-shadow: inset 4px 0 0 var(--red); }
  .mg-wd { display: inline; }
  .mg-num { font-size: 1rem; }
  .mg-ev { white-space: normal; font-size: .92rem; padding: 6px 8px; }
  .tdc-teams b { font-size: 2.1rem; }
}
.cal-cols .today-grid { grid-template-columns: 1fr; }
.cal-cols .day-title { font-size: 1.3rem; margin-top: 16px; }
.cal-cols .day-title.today { font-size: 1.6rem; margin-top: 0; }
.marquee .mq-name { font-weight: 800; color: var(--grey); white-space: nowrap; }

/* =====================================================================
   Tema CASA / TRASFERTA (dalla demo): in trasferta sfondi e testi si invertono
   ===================================================================== */
/* ---------- TRASFERTA: sfondo e testo invertiti ---------- */
/* 1. topbar */
[data-kit="away"] .topbar { background: #fff; color: var(--navy); border-bottom: 1px solid var(--line); }
[data-kit="away"] .tb-social a { color: var(--navy); }
[data-kit="away"] .kit-switch { background: var(--bg-alt); }
[data-kit="away"] .kit-switch button[aria-pressed="true"] { background: var(--navy); color: #fff; }
/* 2. testata */
[data-kit="away"] .site-header { background: var(--navy); border-bottom-color: var(--navy-2); }
[data-kit="away"] .main-nav a { color: #fff; }
[data-kit="away"] .main-nav a:hover { background: rgba(255,255,255,.1); color: #fff; }
[data-kit="away"] .main-nav a[aria-current="page"] { color: #fff; }
[data-kit="away"] .lang { border-color: rgba(255,255,255,.25); }
[data-kit="away"] .lang a { color: var(--soft-light); }
[data-kit="away"] .lang a[aria-current="true"] { background: #fff; color: var(--navy); }
[data-kit="away"] .burger { color: #fff; }
[data-kit="away"] .brand img { background: #fff; border-radius: 8px; padding: 3px 6px; }
@media (max-width: 920px) { [data-kit="away"] .main-nav { background: var(--navy); } [data-kit="away"] .main-nav a { border-bottom-color: rgba(255,255,255,.12); } }
/* 3. hero */
[data-kit="away"] .hero { background: #fff; color: var(--navy); }
[data-kit="away"] .hero-bg::after { background: linear-gradient(100deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 45%, rgba(255,255,255,.55) 100%); }
[data-kit="away"] .hero-lead { color: var(--grey); }
[data-kit="away"] .hero .eyebrow.light { color: var(--blue); }
[data-kit="away"] .hero .btn-ghost-light { color: var(--navy); border-color: var(--navy); background: rgba(255,255,255,.6); }
/* 4. next-card */
[data-kit="away"] .next-card { background: var(--navy); color: #fff; box-shadow: 0 20px 50px color-mix(in srgb, var(--navy) 35%, transparent); }
[data-kit="away"] .next-label { color: color-mix(in srgb, var(--red) 55%, #fff); }
[data-kit="away"] .countdown div { background: #fff; color: var(--navy); }
[data-kit="away"] .countdown span { color: var(--blue); }
[data-kit="away"] .next-meta .ic { color: var(--soft-light); }
[data-kit="away"] .nt-vs { color: var(--soft-light); }
[data-kit="away"] .next-card .btn-blue { background: #fff; color: var(--navy); }
[data-kit="away"] .demo-toggle { color: #f5d77a; border-color: #b8952f; }
/* 5. ultimi risultati (le score-card restano bianche) */
[data-kit="away"] .results-strip { background: var(--navy); color: #fff; }
/* 6. sezioni alternate */
[data-kit="away"] .section-alt { background: var(--navy-2); color: color-mix(in srgb, var(--blue) 10%, #fff); }
/* 7. le nostre squadre (tc-body resta bianco) */
[data-kit="away"] .section-teams { background: var(--navy); color: color-mix(in srgb, var(--blue) 10%, #fff); }
/* testi comuni sulle sezioni diventate scure */
[data-kit="away"] :is(.results-strip, .section-alt, .section-teams) :is(h2, .section-head h2) { color: #fff; }
[data-kit="away"] :is(.results-strip, .section-alt, .section-teams) :is(.source, .hint, .note-mini, .muted) { color: var(--soft-light); }
[data-kit="away"] :is(.results-strip, .section-alt, .section-teams) :is(.link-arrow, .source a, .hint a) { color: var(--soft-light); }
[data-kit="away"] :is(.results-strip, .section-alt, .section-teams) .eyebrow { color: var(--soft-light); }
[data-kit="away"] :is(.section-alt) .hint code { background: rgba(255,255,255,.12); color: #fff; }
[data-kit="away"] .section-alt :is(.card, .news-card, .player, .info-box) :is(h2, h3) { color: var(--navy); }
/* 8. video + classifica: da scuro a chiaro */
[data-kit="away"] .section-dark { background: var(--bg-alt); color: var(--ink); }
[data-kit="away"] .section-dark h2 { color: var(--navy); }
[data-kit="away"] .section-dark .eyebrow.light { color: var(--blue); }
[data-kit="away"] .section-dark .link-arrow.light { color: var(--blue); }
[data-kit="away"] .section-dark .video-note, [data-kit="away"] .section-dark .source { color: var(--muted); }
[data-kit="away"] .section-dark .source a { color: var(--blue); }
[data-kit="away"] .section-dark .standings { background: #fff; color: var(--ink); }
[data-kit="away"] .section-dark .standings th { color: var(--muted); border-color: var(--line); }
[data-kit="away"] .section-dark .standings td { border-color: var(--line); }
[data-kit="away"] .section-dark .standings tr.us td { background: var(--tint-red); color: var(--navy); }
[data-kit="away"] .section-dark .standings .tt { background: linear-gradient(90deg, color-mix(in srgb, var(--c1) 16%, transparent), color-mix(in srgb, var(--c2) 16%, transparent)); }
[data-kit="away"] .section-dark .standings .tt.us { color: var(--navy); }
@media (max-width: 600px) { .tb-item { display: none; } .kit-switch { margin-left: 0; } }
.kit-anim .topbar, .kit-anim .site-header, .kit-anim .hero-bg::after, .kit-anim .next-card, .kit-anim .results-strip, .kit-anim .section-alt, .kit-anim .section-dark { transition: background-color .35s, color .35s; }
/* Roster: le schede indossano la maglia (casa o trasferta) */
#roster { --jersey: var(--jersey-home, var(--blue)); --jersey-num: var(--jersey-home-num, #fff); }
[data-kit="away"] #roster { --jersey: var(--jersey-away, var(--navy)); --jersey-num: var(--jersey-away-num, #fff); }
#roster .player-photo { background: linear-gradient(160deg, var(--jersey), color-mix(in srgb, var(--jersey) 80%, #000)); }
#roster .player-num { color: var(--jersey-num); }
#roster .player-photo svg { fill: color-mix(in srgb, var(--jersey-num) 22%, transparent); }
[data-kit="away"] .notice-band { background: #4a3a0a; border-color: #6b5410; } [data-kit="away"] .notice-band p, [data-kit="away"] .notice-band b { color: #fff4d6; }
[data-kit="away"] .app-band { background: var(--navy-2); }
[data-kit="away"] .brand-text { color: #fff; }
[data-kit="away"] .bell-link { background: transparent; color: #fff; border-color: rgba(255,255,255,.3); }

/* =====================================================================
   Menu, selettore maglia, social e piè di pagina (sistemati per il white label)
   ===================================================================== */
.main-nav { gap: 2px; align-items: center; }
.main-nav a, .nav-group-btn { white-space: nowrap; font-size: 1.22rem; padding: 8px 10px; }
.nav-group { position: relative; }
.nav-group-btn { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; cursor: pointer; font-family: var(--font-head); letter-spacing: .6px; color: var(--navy); border-radius: 8px; }
.nav-group-btn .ic { width: 16px; height: 16px; transition: transform .15s; }
.nav-group-btn:hover { background: var(--bg-alt); color: var(--blue); }
.nav-group-btn[aria-current="page"] { color: var(--blue); box-shadow: inset 0 -3px 0 var(--red); border-radius: 0; }
.nav-drop { position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); padding: 6px; display: none; z-index: 60; }
.nav-drop a { display: block; font-family: var(--font-body); font-size: 1rem; font-weight: 700; letter-spacing: 0; color: var(--navy) !important; padding: 9px 12px; border-radius: 8px; }
.nav-drop a:hover { background: var(--bg-alt); }
.nav-drop a[aria-current="page"] { color: var(--blue) !important; box-shadow: none; background: var(--tint-blue); }
.nav-group:hover .nav-drop, .nav-group:focus-within .nav-drop, .nav-group.open .nav-drop { display: block; }
.nav-group:hover .nav-group-btn .ic, .nav-group.open .nav-group-btn .ic { transform: rotate(180deg); }
.header-actions { gap: 10px; }
/* selettore maglia nella barra del menu: piccolo, due magliette */
.site-header .kit-switch { display: flex; gap: 2px; padding: 3px; margin: 0; border-radius: 999px; border: 1px solid var(--line); background: #fff; }
.site-header .kit-switch button { display: inline-grid; place-items: center; width: 34px; height: 30px; padding: 0; border: 0; border-radius: 999px; background: none; cursor: pointer; opacity: .55; }
.site-header .kit-switch button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.site-header .kit-switch button[aria-pressed="true"] { opacity: 1; background: var(--bg-alt); box-shadow: inset 0 0 0 1px var(--line); }
.site-header .kit-switch .kj { width: 18px; height: 20px; }
/* lingue leggibili in entrambi i temi */
.lang a { color: var(--grey); }
.lang a:hover { color: var(--navy); }
/* social nella barra in alto */
.topbar-in { justify-content: flex-start; }
.tb-phone { margin-left: auto; }
.tb-phone a { color: inherit; text-decoration: none; }
.tb-social { display: flex; gap: 12px; }
.tb-social a { color: inherit; display: flex; opacity: .85; }
.tb-social a:hover { opacity: 1; }
/* piè di pagina */
.footer-grid { grid-template-columns: 1.3fr 1fr 1fr 1.3fr; }
.footer-logo-box { display: inline-grid; place-items: center; width: 84px; height: 84px; background: #fff; border-radius: 16px; padding: 8px; margin-bottom: 14px; }
.footer-logo-box img { max-width: 100%; max-height: 100%; object-fit: contain; }
.site-footer { color: color-mix(in srgb, #fff 78%, var(--navy)); }
.site-footer a { color: color-mix(in srgb, #fff 82%, var(--navy)); }
.site-footer a:hover { color: #fff; }
.site-footer h3 { margin-bottom: .7rem; }
.footer-social { margin-top: 12px; }
.footer-social a { color: #fff; }
.footer-social a:hover { background: var(--red); }
.footer-legal { color: color-mix(in srgb, #fff 60%, var(--navy)); }
/* tema trasferta: testata scura → voci chiare */
[data-kit="away"] .nav-group-btn { color: #fff; }
[data-kit="away"] .nav-group-btn:hover { background: rgba(255,255,255,.1); color: #fff; }
[data-kit="away"] .site-header .kit-switch { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.25); }
[data-kit="away"] .site-header .kit-switch button[aria-pressed="true"] { background: #fff; }
[data-kit="away"] .lang a { color: rgba(255,255,255,.75); }
[data-kit="away"] .lang a:hover { color: #fff; }
[data-kit="away"] .lang a[aria-current="true"] { background: #fff; color: var(--navy); }
[data-kit="away"] .brand img { background: #fff; border-radius: 10px; padding: 3px 6px; }
[data-kit="away"] .topbar { color: var(--navy); }
@media (max-width: 1180px) { .main-nav a, .nav-group-btn { font-size: 1.08rem; padding: 8px 7px; } .bell-link span { display: none; } }
@media (max-width: 920px) {
  .main-nav { align-items: stretch; }
  /* menu a fisarmonica: «Società» e «Squadre» si aprono con un tocco, così il resto del menu resta a portata */
  .main-nav { overflow-y: auto; overscroll-behavior: contain; padding-bottom: 40px; }
  .main-nav a, .nav-group-btn { font-size: 1.4rem; padding: 9px 6px; }
  .nav-group { display: block; border-bottom: 1px solid var(--line); }
  .nav-group-btn { display: flex; width: 100%; justify-content: space-between; border-radius: 0; text-transform: uppercase; }
  .nav-group-btn .ic { width: 22px; height: 22px; }
  .nav-group-btn[aria-current="page"] { box-shadow: inset 4px 0 0 var(--red); padding-left: 14px; }
  .nav-drop, .nav-group:hover .nav-drop, .nav-group:focus-within .nav-drop { position: static; display: none; min-width: 0; border: 0; box-shadow: none; padding: 0 0 8px 12px; background: transparent; }
  .nav-group.open .nav-drop { display: block; }
  .nav-group:hover .nav-group-btn .ic { transform: none; }
  .nav-group.open .nav-group-btn .ic { transform: rotate(180deg); }
  .nav-drop a { font-size: 1.05rem; padding: 8px 6px; border-radius: 8px; border-bottom: 0; }
  [data-kit="away"] .nav-group { border-bottom-color: rgba(255,255,255,.12); }
  [data-kit="away"] .nav-drop a { color: #fff !important; }
  [data-kit="away"] .nav-drop a:hover { background: rgba(255,255,255,.1); }
  .site-header .kit-switch button { width: 30px; }
  .tb-item:not(.tb-phone) { display: none; }
}
@media (max-width: 600px) { .lang { display: none; } }

/* iscriviti */
.join-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: start; }
.years-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; margin-top: 12px; }
.years-table th, .years-table td { padding: 10px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.years-table th { background: var(--navy); color: #fff; font-size: .8rem; text-transform: uppercase; letter-spacing: 1px; }
.join-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px; border-top: 4px solid var(--red); }
.join-form { display: grid; gap: 14px; }
.join-form h3 { margin: 0; }
.join-form label { display: grid; gap: 4px; font-weight: 700; font-size: .92rem; color: var(--navy); }
.join-form input, .join-form select, .join-form textarea { font: inherit; font-weight: 400; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); width: 100%; box-sizing: border-box; }
.join-form input:focus, .join-form select:focus, .join-form textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
.join-form .join-check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; color: var(--muted); }
.join-form .join-check input { width: auto; margin-top: 4px; }
.join-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.join-hint { margin: -6px 0 0; color: var(--blue); font-weight: 700; }
.join-err { background: #fdecea; color: #b42318; padding: 10px 12px; border-radius: 8px; margin: 0; }
.join-ok { text-align: center; padding: 20px 0; }
.join-ok .ic { width: 48px; height: 48px; color: #2b8a3e; }
.hp { position: absolute !important; left: -9999px; }
@media (max-width: 800px) { .join-grid, .join-2 { grid-template-columns: 1fr; } .join-card { padding: 20px; } }
.cal-split-head { display: flex; justify-content: flex-end; margin-bottom: 4px; }

/* scheda giocatore «player card» (roster) */
.pc-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important; gap: 18px; }
.pc { display: grid; grid-template-rows: 1fr auto auto; background: #fff; color: var(--navy); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 24px rgba(10,37,64,.12); border: 1px solid #e3e8ef; }
.pc-body { display: grid; grid-template-columns: 1fr 120px; gap: 10px; padding: 16px 0 0 18px; min-height: 196px; }
.pc-left { display: grid; align-content: start; gap: 10px; padding-bottom: 12px; }
.pc-id { margin: 0; display: grid; line-height: 1.05; }
.pc-first { font-size: 1rem; font-weight: 700; color: var(--navy); }
.pc-last { font-family: var(--font-head); font-size: 1.9rem; font-weight: 400; letter-spacing: .01em; color: var(--navy); text-transform: uppercase; }
.pc-role { margin-top: 4px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8a99aa; }
.pc-right { display: grid; grid-template-rows: auto 1fr; justify-items: end; }
.pc-num { font-family: var(--font-head); font-size: 3.6rem; line-height: .85; color: var(--navy); padding-right: 16px; }
.pc-facts { margin: 0; font-size: .8rem; }
.pc-facts div { display: grid; grid-template-columns: 82px 1fr; gap: 6px; padding: 5px 0; border-bottom: 1px solid #e3e8ef; align-items: center; }
.pc-facts dt { font-weight: 800; text-transform: uppercase; font-size: .68rem; letter-spacing: .06em; color: var(--navy); }
.pc-facts dd { margin: 0; color: #3d4a57; }
.pc-facts dd a { text-decoration: none; }
.pc-facts .chip { font-size: .65rem; }
.pc .pc-photo { position: relative; width: 120px; height: 130px; border-radius: 60px 0 0 0; overflow: hidden; align-self: end; background: var(--bg-alt); }
.pc .pc-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.pc .pc-photo svg { width: 100%; height: 100%; fill: #c5cfdb; }
.pc-stats { display: flex; border-top: 1px solid #e3e8ef; background: #f5f7fa; }
.pc-stats > * { flex: 1; padding: 10px 6px; text-align: center; border-left: 1px solid #e3e8ef; display: grid; align-content: center; }
.pc-stats small { font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #5b6b7d; }
.pc-stats b { font-family: var(--font-head); font-size: 1.6rem; font-weight: 400; line-height: 1.05; color: var(--navy); }
.pc-stats .pc-season { flex: .9; border-left: 0; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--navy); }
.pc-stats .pc-season small { color: #8a99aa; }
.pc-stats .pc-oth b { color: #8a99aa; font-size: 1.25rem; }
.pc-prev { margin: 0; padding: 6px 12px 8px; min-height: 31px; text-align: center; font-size: .75rem; color: #5b6b7d; background: #f5f7fa; border-top: 1px dashed #e3e8ef; }
[data-kit="away"] .pc { color: var(--navy); }
.view-switch button { display: inline-flex; gap: 6px; align-items: center; padding: 6px 14px; border-radius: 999px; font: inherit; font-weight: 700; font-size: .92rem; color: var(--navy); background: none; border: 0; cursor: pointer; }
.cal-split[data-view="elenco"] [data-calv="elenco"], .cal-split[data-view="mese"] [data-calv="mese"] { background: var(--navy); color: #fff; }
.cal-split[data-view="elenco"] [data-pane="mese"], .cal-split[data-view="mese"] [data-pane="elenco"] { display: none; }
.club-history { max-width: 820px; margin: 32px auto; font-size: 1.08rem; line-height: 1.7; color: var(--ink); }
.board-card .avatar-img { width: 72px; height: 72px; }
.join-hero { --hero-img: none; }
.clip a, .photo a { display: block; } [data-mpane] [hidden] { display: none !important; }
/* Tema trasferta: dentro i riquadri bianchi delle sezioni scure il testo torna scuro (classifiche, tabelle, schede) */
[data-kit="away"] .section-alt :is(.table-wrap, table.standings, table.simple, .gc-table, .years-table, .join-card, .pc, .clip, .doc, .price-card, .mail-preview, .match-row, .today-card, .score-card, .std-box) { color: var(--ink); }
[data-kit="away"] .section-alt :is(.table-wrap, .join-card, .pc, .doc, .price-card, .std-box) :is(h2, h3, th, b, strong) { color: var(--navy); }

/* Calendario: classifiche a fisarmonica in fondo */
.std-box { background: var(--bg); border-radius: var(--radius); margin: 0 0 12px; padding: 4px 16px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.std-box > summary { cursor: pointer; padding: 12px 0; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.std-box[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 8px; }

/* Righe partita dentro le fasce scure (es. «Ultima partita» nella pagina squadra) */
.section-dark .match-row { color: var(--ink); }
.values.one { grid-template-columns: 1fr; gap: 14px; }
.values.one h3 { font-size: 1.4rem; }
.join-roles { border: 0; padding: 0; margin: 0 0 12px; display: flex; flex-direction: column; gap: 6px; }
.join-roles legend { font-weight: 600; margin-bottom: 6px; }
.card.mb { margin-bottom: 20px; }
.cal-notice { margin: 0 0 18px; padding: 10px 14px; border-radius: var(--radius); background: color-mix(in srgb, var(--red) 8%, var(--bg)); }

/* Pagina 404 */
.nf { padding: 80px 0 100px; }
.nf .center, .nf h1 { text-align: center; }
.nf-code { font-family: var(--font-head); font-size: clamp(6rem, 22vw, 11rem); line-height: .9; margin: 0; color: var(--red); letter-spacing: 4px; }
.nf h1 { margin: 6px 0 10px; }
.nf .lead { color: var(--muted); max-width: 520px; margin: 0 auto 26px; text-align: center; }
.nf-actions, .nf-links { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.nf-links { margin-top: 18px; }

/* Pagina partita: post social con il colore del social */
.gc-social.is-ig { background: linear-gradient(135deg, #f58529, #dd2a7b 50%, #8134af); }
.gc-social.is-tiktok { background: #111; }
.gc-social.is-yt { background: #ff0000; }
.gc-social.is-wa { background: #25d366; }
.gc-social.is-doc, .gc-social.is-camera { background: var(--navy); }
.gc-social svg { fill: none; stroke: #fff; }

/* ===== Scheda partita unica (home, calendario, pagina squadra) ===== */
.mc-list { display: grid; gap: 10px; margin-bottom: 18px; }
.mc { position: relative; display: grid; grid-template-columns: 56px 1fr; min-height: 132px; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: 0 2px 10px color-mix(in srgb, var(--navy) 8%, transparent); color: var(--ink); }
.mc.off { opacity: .6; }
.mc-team { background: var(--tc); color: var(--tc-ink); display: grid; place-items: center; font-family: var(--font-head); font-size: 1.15rem; letter-spacing: .5px; writing-mode: vertical-rl; transform: rotate(180deg); text-transform: uppercase; }
.mc-body { display: grid; grid-template-rows: 1fr auto; gap: 10px; padding: 14px 18px 14px; min-width: 0; }
.mc-line { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; min-width: 0; }
.mc-side { font-weight: 700; font-size: 1rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.mc-side.home { text-align: right; }
.mc-side.away { text-align: left; }
.mc-side.us { color: var(--navy); font-weight: 800; }
.mc-mid { font-family: var(--font-head); font-weight: 400; font-size: 2.3rem; line-height: 1; color: var(--navy); white-space: nowrap; }
.mc-mid.win-txt { color: var(--win); } .mc-mid.loss-txt { color: var(--loss); }
/* Cartellino della squadra con i colori della maglia (bandierina a due colori + sfondo sfumato), come nel pannello */
.tt-bar { flex: none; width: 8px; height: 16px; border-radius: 2px; background: linear-gradient(90deg, var(--c1) 50%, var(--c2) 50%); box-shadow: 0 0 0 1px rgba(10,37,64,.18); }
.mc-side.tt { display: flex; align-items: center; gap: 7px; max-width: 100%; padding: 3px 8px; border-radius: 7px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--c1) 16%, transparent), color-mix(in srgb, var(--c2) 16%, transparent)); }
.mc-side.tt.home { justify-self: end; padding-right: 5px; }
.mc-side.tt.away { justify-self: start; padding-left: 5px; }
.mc-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-actions { display: flex; gap: 8px; justify-content: safe center; flex-wrap: nowrap; min-width: 0; }
.mc-actions .btn { white-space: nowrap; flex: 0 0 auto; }
.mc-actions .mc-where { flex: 0 1 auto; min-width: 0; max-width: 260px; }
.mc-where span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.mc .live-dot { background: #fff; }
/* triangolo nell'angolo in alto a destra */
.mc-flag { position: absolute; top: 0; right: 0; width: 92px; height: 92px; overflow: hidden; pointer-events: none; }
.mc-flag span { position: absolute; top: 18px; right: -30px; width: 130px; transform: rotate(45deg); text-align: center; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; padding: 3px 0; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.mc-flag.is-yellow span { background: #f5c518; color: #2b2300; }
.mc-flag.is-red span { background: #e5484d; color: #fff; }
.mc-flag.is-blue span { background: #2aa4e0; color: #fff; }
.mc-flag.is-purple span { background: #7c4dcc; color: #fff; }
@media (max-width: 640px) {
  .mc { grid-template-columns: 40px 1fr; min-height: 124px; }
  .mc-team { font-size: .95rem; }
  .mc-body { padding: 12px 12px; }
  .mc-line { gap: 8px; }
  .mc-side { font-size: .9rem; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .mc-side.tt { display: flex; gap: 5px; padding: 3px 6px; }
  .mc-nm { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .mc-mid { font-size: 1.9rem; }
  .mc-actions { flex-wrap: wrap; }
  .mc-where { max-width: 100%; }
}
[data-kit="away"] .section-alt .mc, .section-dark .mc { color: var(--ink); }

/* Pagina partita: convocati */
.callup-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.callup-list li { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; font-weight: 600; color: var(--ink); }
.cl-num { font-family: var(--font-head); font-size: 1.5rem; color: var(--navy); min-width: 32px; text-align: center; }
/* Schede strette (colonne del calendario): «Diretta» invece di «Diretta programmata», l'indirizzo resta leggibile */
.mc-body { container-type: inline-size; }
.mc-short { display: none; }
.mc-actions .mc-where { min-width: 120px; }
@container (max-width: 420px) { .mc-long { display: none; } .mc-short { display: inline; } }
.mc:has(.mc-flag) .mc-body { padding-right: 44px; }
.mc-body { position: relative; }
.mc-time { position: absolute; top: 9px; left: 12px; display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; font-weight: 700; color: var(--muted); }
.mc-time .ic { width: 13px; height: 13px; }

/* Colori delle squadre: bandierina a due colori (schede, classifiche) */
.tt-flag { display: inline-block; width: 14px; height: 14px; border-radius: 50%; vertical-align: -2px; background: linear-gradient(135deg, var(--c1) 50%, var(--c2) 50%); box-shadow: 0 0 0 1px rgba(0,0,0,.18); flex: 0 0 auto; }
.tt-flag.unknown { opacity: .45; }
table.standings td .tt-flag { margin-right: 6px; }
/* Pagina partita: matita dell'admin per i colori dell'avversario */
.gc-team { position: relative; }
.opp-edit { margin-top: 6px; }
.opp-edit > summary { list-style: none; cursor: pointer; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--navy); font-size: 1rem; }
.opp-edit > summary::-webkit-details-marker { display: none; }
.opp-edit form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: center; margin-top: 8px; background: #fff; color: var(--ink); padding: 8px 10px; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.opp-edit label { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; font-size: .85rem; }
.opp-edit input[type=color] { width: 40px; height: 30px; padding: 0; border: 0; background: none; }
/* Biglietti e shop */
.product-ph { aspect-ratio: 1; display: grid; place-items: center; background: var(--bg-alt); border-radius: 10px; color: var(--muted); }
.product-ph .ic { width: 48px; height: 48px; }
.product > b { font-family: var(--font-head); font-size: 1.8rem; font-weight: 400; color: var(--navy); }
.product .btn { margin-top: auto; }
.card-price { font-family: var(--font-head); font-size: 3rem; font-weight: 400; color: var(--navy); }
@media (max-width: 900px) { .shop-grid { grid-template-columns: repeat(2, 1fr); } }

/* «Dalle tribune» */
.trib-card { max-width: 560px; margin: 0 auto; }
.trib-title { font-size: 2rem; margin: 4px 0 6px; }
.trib-score { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: end; }
.trib-score label { display: grid; gap: 4px; text-align: center; font-weight: 700; font-size: .9rem; }
.trib-score input { font-family: var(--font-head); font-size: 2.6rem; text-align: center; padding: 6px; }
.trib-score b { font-size: 2rem; padding-bottom: 12px; }
.trib-periods { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0; }
.join-ok-mini { background: color-mix(in srgb, var(--win) 12%, #fff); color: var(--win); padding: 8px 12px; border-radius: 8px; font-weight: 700; }
.gc-pts.live { color: #fff; opacity: .95; }
.gc-pill.live { background: var(--red); color: #fff; }
.trib-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.trib-feed li { display: grid; grid-template-columns: 56px 1fr; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; color: var(--ink); }
.trib-feed time { font-family: var(--font-head); font-size: 1.3rem; color: var(--red); }
.trib-feed p { margin: 4px 0; }
.trib-feed img { max-width: 100%; max-height: 360px; border-radius: 10px; margin-top: 6px; }
.trib-feed small { color: var(--muted); }

/* News: post di Instagram incorporato al clic */
.embed.ig, .embed.fb { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin: 18px 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.embed.ig iframe, .embed.fb iframe { width: 100%; max-width: 540px; min-height: 640px; border: 0; border-radius: 12px; background: #fff; }

/* =====================================================================
   Maglia da trasferta su TUTTE le pagine: l'opposto della maglia di casa.
   Casa = testate blu e sezioni chiare; trasferta = testate chiare e sezioni blu.
   Le schede (card, partite, news, tabelle…) restano bianche e leggibili.
   ===================================================================== */
[data-kit="away"] body { background: var(--navy); }
/* testate delle pagine */
[data-kit="away"] .page-hero, [data-kit="away"] .gc-hero { background: linear-gradient(120deg, #fff, var(--bg-alt) 60%, color-mix(in srgb, var(--blue) 12%, #fff)); color: var(--navy); }
[data-kit="away"] .page-hero::after { border-color: color-mix(in srgb, var(--navy) 6%, transparent); }
[data-kit="away"] :is(.page-hero, .gc-hero, .team-hero) :is(h1, h2, h3) { color: var(--navy); }
[data-kit="away"] :is(.page-hero, .team-hero) p, [data-kit="away"] .gc-hero .crumb { color: var(--grey); }
[data-kit="away"] :is(.page-hero, .gc-hero, .team-hero) a:not(.btn):not(.chip-btn) { color: var(--blue); }
[data-kit="away"] .gc-hero { background: linear-gradient(180deg, color-mix(in srgb, #fff 82%, transparent), color-mix(in srgb, #fff 95%, transparent)), var(--gc-bg, none) center 35%/cover no-repeat, #fff; }
[data-kit="away"] .team-hero { background-color: #fff; color: var(--navy); }
[data-kit="away"] .team-hero::before { background: linear-gradient(100deg, rgba(255,255,255,.96), rgba(255,255,255,.82) 60%, color-mix(in srgb, var(--blue) 25%, transparent)); }
[data-kit="away"] .team-hero-short { color: color-mix(in srgb, var(--navy) 8%, transparent); }
[data-kit="away"] .subnav { background: var(--navy-2); border-bottom-color: rgba(255,255,255,.08); }
[data-kit="away"] .subnav a { color: var(--soft-light); }
[data-kit="away"] .subnav a:hover, [data-kit="away"] .subnav a.active { color: #fff; }

/* sezioni: quelle chiare diventano blu (quelle già blu sono sistemate sopra) */
[data-kit="away"] .section:not(.section-alt):not(.section-dark):not(.section-teams) { background: var(--navy); }
[data-kit="away"] :is(.section, .section-alt):not(.section-dark) { color: color-mix(in srgb, var(--blue) 10%, #fff); }
[data-kit="away"] :is(.section, .section-alt):not(.section-dark) :is(h1, h2, h3, h4) { color: #fff; }
[data-kit="away"] :is(.section, .section-alt):not(.section-dark) :is(.muted, .lead, .hint, .source, .note-mini, .empty-note, .eyebrow, small) { color: var(--soft-light); }
[data-kit="away"] :is(.section, .section-alt):not(.section-dark) a:not(.btn):not(.chip-btn) { color: var(--soft-light); }
[data-kit="away"] :is(.section, .section-alt):not(.section-dark) a:not(.btn):not(.chip-btn):hover { color: #fff; }
[data-kit="away"] :is(.section, .section-alt):not(.section-dark) :is(hr, .sep) { border-color: rgba(255,255,255,.12); }
/* …ma dentro le schede bianche tutto torna come prima */
[data-kit="away"] :is(.section, .section-alt) :is(.card, .news-card, .team-card, .team-row, .match-row, .standings, .simple, .price-card, .press-card, .player, .score-card,
  .product, .doc, .clip, .mc, .today-card, .join-card, .bx, .pc, .gc-card, .gc-box, .gc-album, .gc-timeline li, .callup-list li, .trib-feed li, .embed,
  .info-box, .std-box, .mg-day, .years-table, .mail-preview, .cookie, .app-banner, .cal-notice, .view-switch, .train-list li) { color: var(--ink); }
[data-kit="away"] :is(.section, .section-alt) :is(.card, .news-card, .team-card, .team-row, .match-row, .price-card, .press-card, .player, .score-card, .product, .doc, .mc,
  .today-card, .join-card, .bx, .pc, .gc-card, .gc-box, .gc-album, .info-box, .std-box, .mg-day, .embed, .cal-notice) :is(h1, h2, h3, h4) { color: var(--navy); }
[data-kit="away"] :is(.section, .section-alt) :is(.card, .news-card, .team-card, .team-row, .match-row, .standings, .simple, .price-card, .press-card, .player, .score-card,
  .product, .doc, .clip, .mc, .today-card, .join-card, .bx, .pc, .gc-card, .gc-box, .gc-album, .gc-timeline li, .callup-list li, .trib-feed li, .embed, .info-box, .std-box,
  .mg-day, .years-table, .cal-notice) :is(.muted, .hint, .source, .note-mini, .eyebrow, small) { color: var(--muted); }
[data-kit="away"] :is(.section, .section-alt) :is(.card, .news-card, .team-card, .team-row, .match-row, .standings, .simple, .price-card, .press-card, .player, .score-card,
  .product, .doc, .clip, .mc, .today-card, .join-card, .bx, .pc, .gc-card, .gc-box, .gc-album, .gc-timeline li, .callup-list li, .trib-feed li, .embed, .info-box, .std-box,
  .mg-day, .years-table, .cal-notice) a:not(.btn):not(.chip-btn) { color: var(--blue); }
/* video senza scheda: titolo e data sul blu */
[data-kit="away"] :is(.section, .section-alt) .vid h3 { color: #fff; }
[data-kit="away"] :is(.section, .section-alt) .vid small { color: var(--soft-light); }

/* piè di pagina chiaro */
[data-kit="away"] .site-footer { background: #fff; color: var(--grey); border-top: 1px solid var(--line); }
[data-kit="away"] .site-footer h3 { color: var(--navy); }
[data-kit="away"] .site-footer a { color: var(--navy); }
[data-kit="away"] .site-footer a:hover { color: var(--blue); }
[data-kit="away"] .footer-social a { background: var(--bg-alt); }
[data-kit="away"] .footer-contact .ic { color: var(--blue); }
[data-kit="away"] .footer-legal { border-top-color: var(--line); color: var(--muted); }
.kit-anim :is(body, .page-hero, .gc-hero, .team-hero, .subnav, .section, .site-footer) { transition: background-color .35s, color .35s; }
[data-kit="away"] :is(.section, .section-alt) :is(.view-switch, .train-list li) a:not(.btn):not(.on) { color: var(--grey); }
[data-kit="away"] :is(.section, .section-alt) .train-list li :is(span, small) { color: var(--muted); }
[data-kit="away"] .week-nav b { color: #fff; }
[data-kit="away"] .section .gc-table { background: #fff; border-radius: 12px; overflow: hidden; }
/* Diretta: pulsante che carica il player di YouTube nella pagina */
.live-open { position: absolute; z-index: 1; bottom: 16px; right: 16px; display: inline-flex; gap: 6px; align-items: center; background: var(--red); color: #fff; border: 0; border-radius: 999px; padding: 9px 16px; font: inherit; font-weight: 800; cursor: pointer; }
.live-open:hover { filter: brightness(1.08); }
.live-open .ic { width: 16px; height: 16px; }
.live-player[data-embed] .live-wait { cursor: default; }
[data-kit="away"] .live-section { background: #0d0f14; }
/* Scheda partita: più dirette (la nostra, l'altra società, un genitore…) in un elenco */
.mc-lives { position: relative; display: inline-block; }
.mc-lives > summary { list-style: none; cursor: pointer; }
.mc-lives > summary::-webkit-details-marker { display: none; }
.mc-lives-list { position: fixed; z-index: 80; min-width: 230px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); padding: 6px; display: grid; gap: 2px; }
.mc-lives-list a { display: grid; grid-template-columns: 18px 1fr; column-gap: 8px; align-items: center; padding: 8px 10px; border-radius: 8px; color: var(--navy); text-decoration: none; font-weight: 700; font-size: .9rem; }
.mc-lives-list a:hover { background: var(--bg-alt); }
.mc-lives-list .ic { width: 16px; height: 16px; color: var(--red); grid-row: span 2; }
.mc-lives-list small { grid-column: 2; color: var(--muted); font-weight: 400; font-size: .78rem; }
/* Riquadro della prossima partita: partita già iniziata */
.next-now { display: flex; gap: 10px; align-items: center; justify-content: center; margin: 18px 0; padding: 16px; border-radius: 12px; background: rgba(255,255,255,.1); font-family: var(--font-head); font-size: 1.8rem; letter-spacing: 1px; color: #fff; }
[data-kit="away"] .next-now { background: rgba(255,255,255,.12); }
/* Punteggio parziale «Dalle tribune» mentre si gioca */
.mc-time.mc-live { color: var(--red); font-weight: 800; }
.mc-time.mc-live .live-dot { width: 7px; height: 7px; }
.mc-mid.live-txt { color: var(--red); }
.next-now small { display: block; font-family: var(--font-body); font-size: .8rem; letter-spacing: 0; opacity: .8; margin-left: 6px; }

/* ---------- Matita dell'admin (quick_edit): cambiare «al volo» dal sito, solo per chi amministra */
.qe { position: absolute; z-index: 30; top: 12px; right: 12px; color: var(--ink); text-align: left; font-family: var(--font-body); }
.qe > summary { list-style: none; cursor: pointer; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--navy); font-size: 1.05rem; line-height: 1;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--red) 70%, transparent), 0 6px 16px rgba(0,0,0,.25); transition: transform .15s; }
.qe > summary::-webkit-details-marker { display: none; }
.qe > summary:hover { transform: scale(1.1); }
.qe[open] > summary { background: var(--red); color: #fff; }
.qe-pop { position: absolute; right: 0; top: 42px; width: min(340px, calc(100vw - 32px)); background: #fff; border-radius: 12px; padding: 14px; box-shadow: 0 18px 50px rgba(0,0,0,.3); display: grid; gap: 10px; font-size: .95rem; }
.qe.qe-left { right: auto; left: 12px; } .qe.qe-left .qe-pop { right: auto; left: 0; }
.qe.qe-inline { position: relative; top: auto; right: auto; display: inline-block; vertical-align: middle; }
.qe-title { font-size: .78rem; text-transform: uppercase; letter-spacing: 1px; color: var(--red); }
.qe-pop form { display: grid; gap: 8px; margin: 0; }
.qe-pop label { display: flex; gap: 8px; align-items: center; font-size: .92rem; cursor: pointer; }
.qe-pop input[type=file] { font-size: .85rem; max-width: 100%; }
.qe-opts { display: grid; gap: 4px; }
.qe-opts label { padding: 6px 8px; border-radius: 8px; border: 1px solid var(--line); }
.qe-opts label:has(input:checked) { border-color: var(--blue); background: color-mix(in srgb, var(--blue) 8%, #fff); }
.qe-opts small { color: var(--muted); margin-left: auto; white-space: nowrap; }
.qe-link { font-weight: 700; font-size: .9rem; text-decoration: none; }
.qe-note { color: var(--muted); font-size: .82rem; margin: 0; }
.qe-pop .btn { justify-self: start; }
section:has(> .qe), .next-card, .pc, .team-card { position: relative; }
.pc:has(.qe[open]), .team-hero:has(.qe[open]), .hero:has(> .qe[open]), section:has(> .qe[open]) { overflow: visible; z-index: 45; }
.pc-right:has(> .qe) { position: relative; }
.pc-right > .qe { top: auto; bottom: 8px; left: auto; right: 8px; }
.pc-right > .qe > summary { width: 28px; height: 28px; font-size: .9rem; opacity: .6; }
.pc:hover .pc-right > .qe > summary, .pc-right > .qe[open] > summary { opacity: 1; }
.pc-right > .qe .qe-pop { left: auto; right: 0; }
.qe-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.qe-toast { position: fixed; z-index: 200; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; background: #1a8f4c; color: #fff; font-weight: 700; padding: 12px 20px; border-radius: 999px; box-shadow: 0 12px 30px rgba(0,0,0,.25); transition: opacity .25s, transform .25s; }
.qe-toast.err { background: #c8322e; }
.qe-toast.on { opacity: 1; transform: translate(-50%, 0); }
.qe-opts.qe-two { grid-template-columns: 1fr 1fr; }
.qe-opts.qe-two label:first-child { grid-column: 1 / -1; }

/* Contenuti riservati allo staff nella pagina partita (video per gli allenatori, convocati completi) */
.staff-only { border: 2px dashed color-mix(in srgb, var(--red) 55%, transparent); border-radius: 14px; padding: 12px; background: color-mix(in srgb, var(--red) 4%, transparent); }
.staff-note { font-size: .85rem; font-weight: 700; color: var(--red); margin: 0 0 10px; }

/* Classifica: sul computer punti fatti, subiti e differenza; sul telefono solo la differenza, nome su una riga sola, tutto nello schermo */
.standings .std-pm { font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
  .standings { font-size: .88rem; }
  .standings th, .standings td { padding: 9px 6px; }
  .standings th:first-child, .standings td:first-child { padding-left: 10px; width: 1.6em; }
  .standings .std-x { display: none; }
  .standings .std-pm { display: table-cell; color: var(--muted); font-variant-numeric: tabular-nums; }
  .standings td.std-name { max-width: 0; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .standings th:not(:nth-child(2)), .standings td:not(.std-name) { text-align: center; white-space: nowrap; }
  .standings .tt-flag { margin-right: 4px; }
}
/* partita iniziata senza punteggio: «In corso» in verde (prime 2 ore), poi «Risultato in arrivo» */
.mc-time.mc-going { color: var(--win); font-weight: 800; }
.mc-time.mc-going .live-dot { background: var(--win); box-shadow: none; width: 8px; height: 8px; }
.mc-time.mc-wait { color: var(--muted); font-style: italic; }
/* matita dell'admin sulle partite: in basso a destra, porta alla partita nel pannello */
.mc-edit { position: absolute; z-index: 3; right: 8px; bottom: 8px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--navy); text-decoration: none; font-size: .95rem; line-height: 1; box-shadow: 0 2px 8px rgba(0,0,0,.25); border: 1px solid var(--line); }
.mc-edit:hover { background: var(--navy); color: #fff; }
/* riga piccola sotto le squadre: posizione in classifica (ferma all'inizio della partita) e giornata */
.mc-std { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; margin-top: 2px; font-size: .74rem; line-height: 1.2; color: var(--muted); }
.mc-std span:first-child { text-align: right; }
.mc-uff { text-align: center; margin-top: 2px; }
.badge-uff { background: #fff4d6; color: #8a5a00; border: 1px dashed #d9a400; font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; }
.mc-std span:nth-child(2) { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
/* pulsanti delle squadre (calendario, home): nel colore della squadra, come la striscia delle partite; quello scelto ha l'anello d'accento */
.chip-btn.chip-team { background: var(--tc); color: var(--tc-ink); border-color: color-mix(in srgb, var(--tc) 75%, #000); text-decoration: none; }
.chip-btn.chip-team:hover { filter: brightness(1.1); }
.filters .chip-btn.on { outline: 3px solid var(--red); outline-offset: 2px; }
a.chip-btn.chip-team.on { background: var(--tc); color: var(--tc-ink); border-color: var(--tc); }
.filters:has(.chip-team.on) .chip-team:not(.on) { opacity: .6; }
.cal-split-head .team-chips { margin: 0 auto 0 0; }
.cal-split-head:has(.team-chips) { flex-wrap: wrap; gap: 12px; align-items: center; }
.cal-split-head .team-chips { margin-bottom: 0; }
/* classifica nella pagina della partita: anche l'avversario evidenziato (noi: rosso, loro: grigio-blu) */
.standings tr.opp td { background: color-mix(in srgb, var(--navy) 9%, #fff); font-weight: 800; color: var(--navy); }
.standings tr.opp td:first-child { box-shadow: inset 4px 0 0 var(--navy); }
.section-dark .standings tr.opp td { background: rgba(255,255,255,.1); color: #fff; }
.section-dark .standings tr.opp td:first-child { box-shadow: inset 4px 0 0 #fff; }
.cal-split-head:has(.team-chips) { margin-bottom: 18px; }

/* Schede partita: l'orario (in alto a sinistra) e il cartellino «Posticipata» non coprono più i nomi delle squadre */
.mc-body:has(> .mc-time) { padding-top: 32px; }
@media (max-width: 640px) {
  .mc:has(.mc-flag) .mc-body { padding-right: 12px; padding-top: 32px; }
  .mc-flag { width: auto; height: auto; border-bottom-left-radius: 9px; }
  .mc-flag span { position: static; display: block; width: auto; transform: none; padding: 4px 10px; font-size: .72rem; box-shadow: none; }
}
@media (max-width: 640px) {
  /* Telefono: punteggio un po' più piccolo, così «Basket Piani Bolzano» sta intero (fino a 3 righe) invece di «Basket Piani…» */
  .mc-line { gap: 6px; }
  .mc-mid { font-size: 1.65rem; }
  .mc-side, .mc-nm { -webkit-line-clamp: 3; font-size: .86rem; overflow-wrap: anywhere; }
  .mc-side.tt { padding: 3px 5px; }
}
@media (max-width: 900px) {
  /* Piè di pagina: la regola a 4 colonne più su annullava quella per tablet/telefono */
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child, .footer-grid > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  /* Scritte piccole delle schede giocatore e delle etichette: almeno ~11,5px, leggibili al sole */
  .pc-facts dt, .pc-stats .pc-season, .pc-stats small, .pc-facts .chip, .chip { font-size: .72rem; }
}
/* Telefono/tablet: maglia (tema) e lingua in cima al menu; nella barra in alto restano solo campanella e menu */
@media (max-width: 920px) {
  .site-header .kit-head, .site-header .lang-head { display: none; }
  .main-nav .nav-prefs { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 0 14px; margin-bottom: 6px; border-bottom: 1px solid var(--line); }
  .site-header .kit-nav button { width: auto; height: 40px; padding: 0 14px 0 10px; gap: 6px; display: inline-flex; align-items: center; font-weight: 700; font-size: .95rem; color: var(--navy); }
  .site-header .kit-nav button span { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
  .site-header .kit-nav .kj { width: 20px; height: 22px; }
  .main-nav .lang-nav { display: flex; }
  .main-nav .lang-nav a { font-family: inherit; font-size: .95rem; padding: 8px 10px; border-bottom: 0; }
  [data-kit="away"] .main-nav .nav-prefs { border-bottom-color: rgba(255,255,255,.12); }
  [data-kit="away"] .site-header .kit-nav button { color: #fff; }
  [data-kit="away"] .site-header .kit-nav button[aria-pressed="true"] { color: var(--navy); }
}

/* Tema «trasferta» (scuro): articoli e pagine di testo (.prose) stanno direttamente sullo sfondo blu della pagina, quindi testo chiaro */
[data-kit="away"] :is(.prose, main > article.wrap) { color: color-mix(in srgb, #fff 88%, var(--navy)); }
[data-kit="away"] :is(.prose :is(h2, h3, strong, b), main > article.wrap .article-head h1) { color: #fff; }
[data-kit="away"] :is(.prose a, .prose a.tag, main > article.wrap :is(.crumb.dark, .share a)) { color: color-mix(in srgb, var(--blue) 45%, #fff); }
[data-kit="away"] :is(.prose .muted, main > article.wrap .news-meta time) { color: var(--soft-light); }
/* …anche le schede chiare dei passaggi (Iscriviti: «Compila il modulo», «Ti richiamiamo»…) */
[data-kit="away"] .section .steps li { color: var(--ink); }
[data-kit="away"] .section .steps li h3 { color: var(--navy); }
[data-kit="away"] .section .steps li p { color: var(--muted); }
.mc[hidden], .mc-list[hidden], .day-title[hidden], .cal-more[hidden] { display: none; }
/* Matita avversario: logo */
.opp-edit .opp-logo { flex-basis: 100%; justify-content: center; font-weight: 600; }
.opp-edit .opp-logo input[type=file] { max-width: 210px; font-size: .8rem; }
