:root {
    --ffl-navy-950: #07182f;
    --ffl-navy-900: #0d2343;
    --ffl-navy-800: #173d6c;
    --ffl-navy-700: #245488;
    --ffl-green: #16834a;
    --ffl-green-dark: #0e6738;
    --ffl-gold: #d5a940;
    --ffl-gold-soft: #f6e8bc;
    --ffl-red: #c93636;
    --ffl-ink: #152238;
    --ffl-muted: #66758a;
    --ffl-line: #dce3eb;
    --ffl-surface: #ffffff;
    --ffl-canvas: #f3f6f9;
    --ffl-radius: 18px;
    --ffl-shadow: 0 16px 45px rgba(13, 35, 67, 0.09);
}

/* Elenco squadre desktop: cinque colonne identiche e margini laterali simmetrici. */
@media (min-width:768px) {
  .ffl-teams-page .ffl-teams-list {
    width:100%;
    max-width:none;
    margin:60px auto 0;
    padding:0 30px;
  }
  .ffl-teams-page .ffl-teams-list > .row {
    margin-right:0;
    margin-left:0;
  }
  .ffl-teams-page .ffl-teams-list > .row > [class*="col-"] {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:34px 24px;
    padding-right:0;
    padding-left:0;
  }
  .ffl-teams-page .ffl-teams-list__item {
    width:auto;
    height:240px;
    min-width:0;
    margin:0;
    float:none;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    text-align:center;
    font-size:14px;
  }
  .ffl-teams-page .ffl-teams-list__item p {
    width:100%;
    margin:0 0 14px;
  }
  .ffl-teams-page .ffl-teams-list__item img {
    display:block;
    width:100%;
    max-width:150px;
    height:150px;
    margin:0 auto;
    object-fit:contain;
  }
}

@media (min-width:768px) and (max-width:1199px) {
  .ffl-teams-page .ffl-teams-list > .row > [class*="col-"] {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

/* Informazione aggiuntiva destinata alla vista compatta dell'archivio giocatori. */
.ffl-player-team-mobile {
  display:none;
}

/* Rifiniture mobile richieste dopo il controllo su iPhone. */
@media (max-width:767px) {
  body.ffl-season-page,
  body.ffl-top-scorer-page,
  body.ffl-albo-page {
    max-width:100%;
    overflow-x:hidden;
  }

  /* Calendario stagione: lo scorrimento appartiene solo alla tabella. */
  .ffl-season-page > .container {
    width:calc(100% - 16px);
    max-width:calc(100% - 16px);
    padding-right:0;
    padding-left:0;
  }
  .ffl-season-page > .container > .row {
    margin-right:0;
    margin-left:0;
  }
  .ffl-season-page > .container > .row > .box {
    width:100%;
    max-width:100%;
    min-width:0;
    padding:22px 12px;
    overflow:hidden;
  }
  .ffl-season-page .box > .col-lg-12 {
    width:100%;
    min-width:0;
    padding-right:0;
    padding-left:0;
    float:none;
  }
  .ffl-season-page .ffl-season-table-wrap {
    width:100%;
    max-width:100%;
    display:block;
    overflow-x:auto!important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  .ffl-season-page .ffl-season-table {
    width:1320px!important;
    min-width:1320px!important;
    max-width:none!important;
    table-layout:fixed;
  }
  .ffl-season-page .ffl-season-table td {
    padding:9px 6px!important;
    font-size:10px!important;
    line-height:1.3;
    white-space:normal!important;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .ffl-season-page .ffl-season-table tr:first-child td {
    padding:12px 7px!important;
    font-size:10px!important;
    line-height:1.25;
  }

  /* Champions ed Europa League: ogni incontro contiene sempre due righe. */
  .ffl-champions-page .ffl-champions-matchday table,
  .ffl-europa-page .ffl-cup-matchday table {
    table-layout:fixed;
  }
  .ffl-champions-page .ffl-champions-matchday tr:not(:first-child),
  .ffl-europa-page .ffl-cup-matchday tr:not(:first-child) {
    height:64px;
  }
  .ffl-champions-page .ffl-champions-matchday tr:not(:first-child) > td,
  .ffl-europa-page .ffl-cup-matchday tr:not(:first-child) > td {
    height:64px;
    padding:7px 5px!important;
    vertical-align:middle!important;
    line-height:1.3;
    white-space:normal!important;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .ffl-champions-page .ffl-champions-matchday tr:not(:first-child) > td:nth-child(1),
  .ffl-champions-page .ffl-champions-matchday tr:not(:first-child) > td:nth-child(2),
  .ffl-europa-page .ffl-cup-matchday tr:not(:first-child) > td:nth-child(1),
  .ffl-europa-page .ffl-cup-matchday tr:not(:first-child) > td:nth-child(2) {
    width:44%!important;
  }
  .ffl-champions-page .ffl-champions-matchday tr:not(:first-child) > td:nth-child(3),
  .ffl-europa-page .ffl-cup-matchday tr:not(:first-child) > td:nth-child(3) {
    width:12%!important;
  }

  /* Coppa Italia: proporzioni originarie e scorrimento orizzontale fluido. */
  body.ffl-coppa-italia-page .table-responsive.ffl-coppa-scroll {
    width:100%;
    max-width:100%;
    display:block;
    overflow-x:auto!important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  body.ffl-coppa-italia-page .ffl-coppa-scroll > table.ffl-coppa-italia-table {
    width:1120px!important;
    min-width:1120px!important;
    max-width:none!important;
    table-layout:fixed;
  }
  body.ffl-coppa-italia-page .ffl-coppa-italia-table th,
  body.ffl-coppa-italia-page .ffl-coppa-italia-table td {
    padding:11px 7px!important;
    font-size:11px!important;
    line-height:1.3;
    white-space:nowrap!important;
    overflow-wrap:normal;
    word-break:normal;
  }

  /* Elenco giocatori: la squadra compare sotto il calciatore. */
  .ffl-public-player-table td:first-child strong {
    display:block;
    line-height:1.25;
  }
  .ffl-public-player-table .ffl-player-team-mobile {
    display:block;
    margin-top:4px;
    color:#66758b;
    font-size:9px;
    font-weight:700;
    line-height:1.25;
  }

  /* Archivio giornate: colonne e righe regolari, senza parole spezzate. */
  body.ffl-archive-days-page .table-responsive.ffl-archive-matches-frame {
    width:100%;
    max-width:100%;
    overflow:hidden!important;
  }
  body.ffl-archive-days-page table.ffl-archive-matches-table {
    width:100%!important;
    min-width:0!important;
    table-layout:fixed;
  }
  body.ffl-archive-days-page .ffl-archive-matches-table tr {
    height:76px;
  }
  body.ffl-archive-days-page .ffl-archive-matches-table td {
    height:76px;
    padding:7px 5px!important;
    vertical-align:middle!important;
    font-size:9.5px!important;
    line-height:1.3;
    white-space:normal!important;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  body.ffl-archive-days-page .ffl-archive-matches-table td:nth-child(1),
  body.ffl-archive-days-page .ffl-archive-matches-table td:nth-child(2) {
    width:31%!important;
  }
  body.ffl-archive-days-page .ffl-archive-matches-table td:nth-child(3) {
    width:9%!important;
  }
  body.ffl-archive-days-page .ffl-archive-matches-table td:nth-child(4) {
    width:29%!important;
  }
  body.ffl-archive-days-page .ffl-archive-matches-table .btn {
    width:100%;
    min-width:0;
    padding:9px 5px;
    font-size:10px;
    line-height:1.2;
    white-space:nowrap;
  }

  /* Capocannoniere: tutte le colonne restano nel box e “Gol” non si spezza. */
  .ffl-top-scorer-page > .container,
  .ffl-top-scorer-page > .container > .row,
  .ffl-top-scorer-page > .container > .row > .box,
  .ffl-top-scorer-page .box > .col-lg-12 {
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .ffl-top-scorer-page .box > .col-lg-12 {
    padding-right:0;
    padding-left:0;
  }
  .ffl-top-scorer-page .table-responsive {
    width:100%;
    max-width:100%;
    overflow:hidden!important;
  }
  .ffl-top-scorer-page table.table-bordered {
    width:100%!important;
    min-width:0!important;
    table-layout:fixed;
  }
  .ffl-top-scorer-page table.table-bordered td:nth-child(1) { width:34%!important; }
  .ffl-top-scorer-page table.table-bordered td:nth-child(2) { width:50%!important; }
  .ffl-top-scorer-page table.table-bordered td:nth-child(3) { width:16%!important; }
  .ffl-top-scorer-page table.table-bordered td {
    padding:10px 4px!important;
    font-size:9.5px!important;
    line-height:1.3;
    vertical-align:middle!important;
    overflow-wrap:normal;
    word-break:normal;
  }
  .ffl-top-scorer-page table.table-bordered tr:first-child td:nth-child(3) {
    font-size:9.5px!important;
    white-space:nowrap!important;
  }

  /* Albo d'oro: nessun elemento può allargare la pagina oltre il telefono. */
  .ffl-albo-page .albo-wrap,
  .ffl-albo-page .albo-grid,
  .ffl-albo-page .albo-card {
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .ffl-albo-page .albo-wrap {
    width:calc(100% - 20px);
  }
  .ffl-albo-page .albo-table {
    width:100%;
    max-width:100%;
    table-layout:fixed;
  }
  .ffl-albo-page .albo-table th,
  .ffl-albo-page .albo-table td {
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
  }
}

/* Pagina squadra: il nome nel pannello scuro conserva la gerarchia originale. */
body.ffl-team-page .ffl-team-hero .ffl-team-title h1 {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:clamp(40px,6vw,68px)!important;
  line-height:.98!important;
  letter-spacing:-2px!important;
}

body.ffl-team-page .ffl-section-heading h2 {
  text-align:center!important;
  text-transform:uppercase!important;
}

body.ffl-team-page .ffl-team-section > .ffl-section-heading {
  width:100%!important;
  max-width:none!important;
  margin-right:auto!important;
  margin-left:auto!important;
  text-align:center!important;
}

@media (max-width:767px) {
  body.ffl-team-page .ffl-team-hero .ffl-team-title h1 {
    font-size:38px!important;
  }
}

.ffl-regulation-page { background:#eef3f8; }
.ffl-regulation-page .container { max-width:1180px; }
.ffl-regulation-tools { margin:34px -15px 24px; padding:32px; border-radius:20px; background:linear-gradient(135deg,#0b294d,#174b72); color:#fff; box-shadow:0 18px 44px rgba(9,32,62,.15); }
.ffl-regulation-tools > span { color:#e0b43f; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.ffl-regulation-tools h1 { margin:8px 0; font-size:34px; font-weight:900; }
.ffl-regulation-tools p { color:#d8e3ef; }
.ffl-regulation-tools label { display:block; margin:20px 0 7px; }
.ffl-regulation-tools input { width:100%; padding:14px 16px; border:1px solid rgba(255,255,255,.22); border-radius:10px; background:#fff; color:#102b4c; }
#ffl-rule-index { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
#ffl-rule-index a { padding:8px 11px; border-radius:999px; background:rgba(255,255,255,.11); color:#fff; font-size:12px; text-decoration:none; }
#ffl-rule-index a:hover { background:#138e50; }
#ffl-rule-result { display:block; margin-top:14px; color:#cbd8e6; }
.ffl-regulation-page .container > .row { scroll-margin-top:20px; }
.ffl-regulation-page .container > .row[hidden] { display:none!important; }
@media(max-width:767px){.ffl-regulation-tools{padding:22px 18px}.ffl-regulation-tools h1{font-size:26px}#ffl-rule-index{max-height:220px;overflow:auto}}

.ffl-preview-banner {
    position: relative;
    z-index: 1100;
    padding: 9px 16px;
    color: #533c00;
    background: var(--ffl-gold-soft);
    box-shadow: 0 1px 0 rgba(83, 60, 0, .12);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .55px;
    text-align: center;
    text-transform: uppercase;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    color: var(--ffl-ink);
    background: var(--ffl-canvas);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 8% 0%, rgba(36, 84, 136, .10), transparent 28rem),
        radial-gradient(circle at 92% 18%, rgba(22, 131, 74, .08), transparent 24rem);
}

a {
    color: var(--ffl-navy-700);
}

a:hover,
a:focus {
    color: var(--ffl-green-dark);
}

:focus-visible {
    outline: 3px solid rgba(213, 169, 64, .75);
    outline-offset: 3px;
}

.ffl-site-header {
    position: relative;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(110deg, rgba(7, 24, 47, .98), rgba(23, 61, 108, .96)),
        url('/immagini/bg.jpg') center 58% / cover;
}

.ffl-site-header::after {
    content: "";
    position: absolute;
    inset: auto -8% -62px 38%;
    height: 110px;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 50%;
}

.ffl-header-inner {
    min-height: 208px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

/* Header stabile: usa su tutte le pagine la stessa larghezza della Home. */
.ffl-site-header .ffl-header-inner.container {
    width: calc(100% - 48px);
    max-width: 1240px;
}

.ffl-identity {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 38px;
    color: #fff;
    text-decoration: none;
}

.ffl-identity:hover,
.ffl-identity:focus {
    color: #fff;
    text-decoration: none;
}

.ffl-header-logo {
    width: 184px;
    height: 184px;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, .22));
}

.ffl-identity-copy {
    display: grid;
    gap: 4px;
}

.ffl-identity-copy strong {
    font-size: clamp(30px, 3.6vw, 46px);
    line-height: 1;
    letter-spacing: -.5px;
    text-transform: uppercase;
}

.ffl-identity-copy small {
    color: rgba(255, 255, 255, .72);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.ffl-header-meta {
    display: flex;
    align-items: center;
    gap: 14px;
}

.ffl-primary-action,
.ffl-mobile-action {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border-radius: 12px;
    color: #fff;
    background: var(--ffl-green);
    box-shadow: 0 9px 22px rgba(3, 73, 38, .28);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .55px;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.ffl-primary-action:hover,
.ffl-primary-action:focus,
.ffl-mobile-action:hover,
.ffl-mobile-action:focus {
    color: #fff;
    background: var(--ffl-green-dark);
    box-shadow: 0 12px 28px rgba(3, 73, 38, .35);
    text-decoration: none;
    transform: translateY(-1px);
}

.ffl-navbar.navbar-default {
    position: sticky;
    top: 0;
    z-index: 1000;
    min-height: 58px;
    margin: 0 0 34px;
    border: 0;
    border-bottom: 1px solid rgba(13, 35, 67, .08);
    border-radius: 0;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 8px 22px rgba(13, 35, 67, .06);
}

.ffl-navbar .navbar-nav {
    display: flex;
    float: none;
    justify-content: center;
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .45px;
}

.ffl-navbar .navbar-nav > li > a {
    min-height: 58px;
    padding: 20px 16px 17px;
    color: #33445a;
    line-height: 18px;
    text-transform: uppercase;
}

.ffl-navbar .navbar-nav > li > a::after {
    content: "";
    position: absolute;
    right: 16px;
    bottom: 10px;
    left: 16px;
    height: 3px;
    border-radius: 3px;
    background: var(--ffl-green);
    opacity: 0;
    transform: scaleX(.4);
    transition: opacity .2s ease, transform .2s ease;
}

.ffl-navbar .navbar-nav > li.active > a,
.ffl-navbar .navbar-nav > li.active > a:hover,
.ffl-navbar .navbar-nav > li > a:hover,
.ffl-navbar .navbar-nav > li > a:focus,
.ffl-navbar .navbar-nav > .open > a,
.ffl-navbar .navbar-nav > .open > a:hover,
.ffl-navbar .navbar-nav > .open > a:focus {
    color: var(--ffl-navy-900);
    background: transparent;
}

.ffl-navbar .navbar-nav > li.active > a::after,
.ffl-navbar .navbar-nav > li > a:hover::after {
    opacity: 1;
    transform: scaleX(1);
}

.ffl-navbar .dropdown-menu {
    min-width: 235px;
    padding: 10px;
    border: 1px solid var(--ffl-line);
    border-radius: 14px;
    box-shadow: var(--ffl-shadow);
}

.ffl-navbar .dropdown-menu > li > a {
    padding: 10px 12px;
    border-radius: 9px;
    color: #33445a;
    font-size: 14px;
    font-weight: 650;
}

.ffl-navbar .dropdown-menu > li > a:hover,
.ffl-navbar .dropdown-menu > li > a:focus {
    color: #fff;
    background: #173f70;
}

/* Il vecchio foglio grafico apre i menu al passaggio del mouse, mentre
   Bootstrap conserva anche lo stato .open. Su desktop mostriamo quindi
   esclusivamente il menu appartenente alla voce realmente sorvolata. */
@media (min-width: 768px) {
    .ffl-navbar .navbar-nav > li.dropdown:not(:hover) > .dropdown-menu {
        display: none !important;
    }

    .ffl-navbar .navbar-nav > li.dropdown:hover > .dropdown-menu {
        display: block;
    }
}

.ffl-mobile-action {
    display: none;
    margin: 12px 15px 18px;
}

.box {
    margin-bottom: 26px;
    padding: 30px;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: var(--ffl-radius);
    background: var(--ffl-surface);
    box-shadow: var(--ffl-shadow);
}

.intro-text {
    color: var(--ffl-muted);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.intro-text strong {
    color: var(--ffl-navy-900);
}

hr {
    max-width: 86px;
    border-color: var(--ffl-gold);
    border-width: 2px 0 0;
}

.table-responsive {
    border: 0;
    border-radius: 14px;
}

.table {
    margin-bottom: 0;
    background: #fff;
}

.table > tbody > tr > td,
.table > thead > tr > th {
    padding: 14px 16px;
    border-color: var(--ffl-line);
    vertical-align: middle;
}

.table > tbody > tr:nth-child(even) {
    background: #f8fafc;
}

.btn-primary {
    min-height: 44px;
    padding: 11px 20px;
    border-color: var(--ffl-green);
    border-radius: 10px;
    background: var(--ffl-green);
    font-weight: 750;
}

.btn-primary:hover,
.btn-primary:focus {
    border-color: var(--ffl-green-dark);
    background: var(--ffl-green-dark);
}

@media (max-width: 991px) {
    .ffl-header-inner {
        min-height: 154px;
    }

    .ffl-header-logo {
        width: 132px;
        height: 132px;
    }

    .ffl-navbar .navbar-nav > li > a {
        padding-right: 10px;
        padding-left: 10px;
        font-size: 11px;
    }
}

@media (max-width: 767px) {
    body {
        font-size: 15px;
    }

    .ffl-site-header {
        position: relative;
    }

    .ffl-header-inner {
        min-height: 108px;
    }

    .ffl-header-logo {
        width: 88px;
        height: 88px;
    }

    .ffl-identity {
        gap: 11px;
    }

    .ffl-identity-copy strong {
        font-size: 18px;
    }

    .ffl-identity-copy small {
        font-size: 9px;
        letter-spacing: 1px;
    }

    .ffl-header-meta {
        display: none;
    }

    .ffl-navbar.navbar-default {
        min-height: 52px;
        margin-bottom: 20px;
    }

    .ffl-navbar .navbar-header {
        display: block;
    }

    .ffl-navbar .navbar-toggle {
        min-width: 44px;
        min-height: 40px;
        margin-top: 6px;
        border-color: var(--ffl-line);
        border-radius: 10px;
    }

    .ffl-navbar .navbar-brand {
        display: block;
        height: 52px;
        padding: 17px 15px;
        color: var(--ffl-navy-900);
        font-size: 14px;
    }

    .ffl-navbar .navbar-nav {
        display: block;
        margin: 8px 0;
    }

    .ffl-navbar .navbar-nav > li > a {
        min-height: 46px;
        padding: 14px 15px;
        font-size: 13px;
    }

    .ffl-navbar .navbar-nav > li > a::after {
        display: none;
    }

    .ffl-navbar .dropdown-menu {
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .ffl-navbar .dropdown-menu > li > a {
        padding: 11px 24px;
    }

    .ffl-mobile-action {
        display: flex;
    }

    .box {
        margin-bottom: 16px;
        padding: 22px 16px;
        border-radius: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

/* Homepage */
.ffl-home-page .ffl-navbar {
    margin-bottom: 0;
}

.ffl-hero {
    position: relative;
    overflow: hidden;
    margin-bottom: 54px;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(5, 19, 38, .96) 0%, rgba(8, 30, 57, .88) 48%, rgba(8, 30, 57, .50) 100%),
        url('/immagini/bg.jpg') center 58% / cover;
}

.ffl-hero::after {
    content: "";
    position: absolute;
    right: -8vw;
    bottom: -190px;
    width: 620px;
    height: 320px;
    border: 2px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: inset 0 0 0 70px rgba(255, 255, 255, .025);
}

.ffl-hero-grid {
    position: relative;
    z-index: 1;
    min-height: 620px;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr);
    align-items: center;
    gap: clamp(48px, 8vw, 110px);
    padding-top: 78px;
    padding-bottom: 78px;
}

.ffl-eyebrow,
.ffl-card-kicker,
.ffl-section-heading > span,
.ffl-card-heading span {
    display: block;
    margin-bottom: 10px;
    color: var(--ffl-gold);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 1.7px;
    text-transform: uppercase;
}

.ffl-hero h1 {
    max-width: 760px;
    margin: 0 0 24px;
    color: #fff;
    font-size: clamp(44px, 6vw, 76px);
    font-weight: 900;
    letter-spacing: -2.7px;
    line-height: .99;
    text-transform: none;
}

.ffl-hero-copy > p {
    max-width: 650px;
    margin: 0 0 30px;
    color: rgba(255, 255, 255, .78);
    font-size: 18px;
    line-height: 1.7;
}

.ffl-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 46px;
}

.ffl-button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .5px;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.ffl-button:hover,
.ffl-button:focus {
    text-decoration: none;
    transform: translateY(-1px);
}

.ffl-button--primary {
    color: #fff;
    background: var(--ffl-green);
    box-shadow: 0 12px 28px rgba(3, 73, 38, .32);
}

.ffl-button--primary:hover,
.ffl-button--primary:focus {
    color: #fff;
    background: var(--ffl-green-dark);
}

.ffl-button--ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, .34);
    background: rgba(255, 255, 255, .06);
}

.ffl-button--ghost:hover,
.ffl-button--ghost:focus {
    color: #fff;
    border-color: rgba(255, 255, 255, .60);
    background: rgba(255, 255, 255, .12);
}

.ffl-button--dark {
    color: #fff;
    background: var(--ffl-navy-900);
}

.ffl-button--dark:hover,
.ffl-button--dark:focus {
    color: #fff;
    background: var(--ffl-navy-700);
}

.ffl-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 38px;
}

.ffl-hero-stats div {
    display: grid;
    gap: 2px;
}

.ffl-hero-stats strong {
    color: #fff;
    font-size: 25px;
    line-height: 1;
}

.ffl-hero-stats span {
    color: rgba(255, 255, 255, .56);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.ffl-matchday-card {
    padding: 30px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 22px;
    background: rgba(255, 255, 255, .11);
    box-shadow: 0 25px 55px rgba(0, 0, 0, .24);
    backdrop-filter: blur(12px);
}

.ffl-matchday-number {
    margin-bottom: 8px;
    color: #fff;
    font-size: 26px;
    font-weight: 850;
}

.ffl-matchday-date {
    color: rgba(255, 255, 255, .80);
    font-size: 16px;
}

.ffl-matchday-time {
    margin-bottom: 27px;
    color: var(--ffl-gold-soft);
    font-size: 14px;
    font-weight: 800;
}

.ffl-matchday-card p {
    margin: 0 0 28px;
    color: rgba(255, 255, 255, .70);
}

.ffl-progress-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 9px;
    color: rgba(255, 255, 255, .68);
    font-size: 12px;
    font-weight: 750;
    text-transform: uppercase;
}

.ffl-progress-label strong {
    color: #fff;
}

.ffl-progress {
    height: 8px;
    overflow: hidden;
    margin-bottom: 26px;
    border-radius: 99px;
    background: rgba(255, 255, 255, .16);
}

.ffl-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--ffl-green), #52c983);
}

.ffl-matchday-card > a {
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.ffl-dashboard {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 24px;
    margin-bottom: 70px;
}

.ffl-content-card {
    min-width: 0;
    padding: 30px;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: var(--ffl-radius);
    background: #fff;
    box-shadow: var(--ffl-shadow);
}

.ffl-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.ffl-card-heading h2,
.ffl-section-heading h2,
.ffl-story-copy h2,
.ffl-auction-copy > h2 {
    margin: 0;
    color: var(--ffl-navy-900);
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 880;
    letter-spacing: -.7px;
    line-height: 1.12;
    text-transform: none;
}

.ffl-card-heading > a {
    flex: none;
    margin-top: 9px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.ffl-mini-standings {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ffl-mini-standings li {
    min-height: 66px;
    display: grid;
    grid-template-columns: 34px 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid #edf1f5;
    border-radius: 13px;
    background: #fbfcfd;
}

.ffl-mini-standings img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.ffl-mini-standings a {
    overflow: hidden;
    color: var(--ffl-ink);
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ffl-mini-standings li > strong {
    color: var(--ffl-navy-800);
    font-size: 14px;
}

.ffl-position {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e9eef4;
    color: var(--ffl-navy-900);
    font-size: 12px;
    font-weight: 900;
}

.ffl-position--1 { background: #f4d67c; }
.ffl-position--2 { background: #dce3e9; }
.ffl-position--3 { background: #d9aa82; }

.ffl-news-card {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg, var(--ffl-navy-900), var(--ffl-navy-800));
}

.ffl-news-card::after {
    content: "";
    position: absolute;
    right: -72px;
    bottom: -90px;
    width: 230px;
    height: 230px;
    border: 35px solid rgba(255, 255, 255, .04);
    border-radius: 50%;
}

.ffl-news-card .ffl-card-heading h2 {
    color: #fff;
}

.ffl-news-card time {
    display: inline-flex;
    margin-bottom: 16px;
    padding: 6px 10px;
    border-radius: 99px;
    color: var(--ffl-gold-soft);
    background: rgba(255, 255, 255, .08);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.ffl-news-card p {
    position: relative;
    z-index: 1;
    max-width: 590px;
    color: rgba(255, 255, 255, .74);
}

.ffl-text-link {
    position: relative;
    z-index: 1;
    color: #fff;
    font-size: 13px;
    font-weight: 850;
}

.ffl-text-link:hover,
.ffl-text-link:focus {
    color: var(--ffl-gold-soft);
}

.ffl-quick-section {
    margin-bottom: 78px;
}

.ffl-section-heading {
    max-width: 680px;
    margin-bottom: 28px;
}

.ffl-section-heading--compact {
    margin-bottom: 22px;
}

.ffl-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ffl-quick-card {
    min-height: 205px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 24px;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: 16px;
    color: var(--ffl-ink);
    background: #fff;
    box-shadow: 0 10px 30px rgba(13, 35, 67, .06);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.ffl-quick-card:hover,
.ffl-quick-card:focus {
    color: var(--ffl-ink);
    box-shadow: var(--ffl-shadow);
    text-decoration: none;
    transform: translateY(-3px);
}

.ffl-quick-icon {
    min-width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 28px;
    padding: 0 9px;
    border-radius: 12px;
    color: var(--ffl-navy-800);
    background: #eaf0f7;
    font-size: 16px;
    font-weight: 900;
}

.ffl-quick-card strong {
    margin-bottom: 7px;
    color: inherit;
    font-size: 17px;
}

.ffl-quick-card small {
    color: var(--ffl-muted);
    font-size: 13px;
    line-height: 1.5;
}

.ffl-quick-card--green {
    color: #fff;
    background: linear-gradient(145deg, var(--ffl-green), var(--ffl-green-dark));
}

.ffl-quick-card--green:hover,
.ffl-quick-card--green:focus {
    color: #fff;
}

.ffl-quick-card--green .ffl-quick-icon {
    color: #fff;
    background: rgba(255, 255, 255, .16);
}

.ffl-quick-card--green small {
    color: rgba(255, 255, 255, .72);
}

.ffl-quick-card--gold .ffl-quick-icon {
    color: #6b4c00;
    background: var(--ffl-gold-soft);
}

.ffl-story-section {
    padding: 80px 0;
    background: #fff;
}

.ffl-story-grid {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    align-items: center;
    gap: clamp(40px, 7vw, 90px);
}

.ffl-eyebrow--dark {
    color: var(--ffl-green);
}

.ffl-story-copy p {
    margin: 22px 0 28px;
    color: var(--ffl-muted);
    font-size: 17px;
    line-height: 1.75;
}

.ffl-story-gallery {
    position: relative;
    min-height: 440px;
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    grid-template-rows: 1fr 1fr;
    gap: 12px;
}

.ffl-story-gallery img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 16px;
    opacity: 1;
    transform: scale(1);
    transition: opacity .18s ease, transform .35s ease;
}

.ffl-story-gallery img:first-child {
    grid-row: 1 / span 2;
}

.ffl-story-gallery.is-changing img {
    opacity: .18;
    transform: scale(.985);
}

.ffl-story-controls {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
}

@media (prefers-reduced-motion: reduce) {
    .ffl-story-gallery img {
        transition: none;
    }
}

/* Homepage: impaginazione editoriale e gallerie storiche */
.ffl-header-inner::before,
.ffl-header-inner::after,
.ffl-hero-grid::before,
.ffl-hero-grid::after,
.ffl-dashboard::before,
.ffl-dashboard::after,
.ffl-story-grid::before,
.ffl-story-grid::after,
.ffl-footer-inner::before,
.ffl-footer-inner::after {
    display: none !important;
    content: none !important;
}

.ffl-home-page .container {
    width: calc(100% - 48px);
    max-width: 1240px;
}

.ffl-home-page main {
    overflow: hidden;
}

.ffl-hero {
    margin-bottom: 0;
}

.ffl-hero-grid {
    min-height: 510px;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 390px);
    gap: 64px;
    padding-top: 62px;
    padding-bottom: 62px;
}

.ffl-hero h1 {
    max-width: 800px;
    font-size: clamp(45px, 5vw, 70px);
}

.ffl-hero-actions {
    margin-bottom: 34px;
}

.ffl-media-section {
    padding-top: 72px;
    padding-bottom: 64px;
}

.ffl-media-section--lead {
    padding-top: 34px;
    padding-bottom: 0;
}

.ffl-section-heading--centered {
    max-width: 760px;
    margin: 0 auto 30px;
    text-align: center;
}

.ffl-section-heading--centered p,
.ffl-section-heading--awards p {
    margin: 12px 0 0;
    color: var(--ffl-muted);
    font-size: 15px;
    line-height: 1.65;
}

.ffl-media-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, .72fr);
    align-items: stretch;
    gap: 24px;
}

.ffl-player-carousel {
    position: relative;
    min-height: 460px;
    overflow: hidden;
    border-radius: 22px;
    background: var(--ffl-navy-950);
    box-shadow: var(--ffl-shadow);
}

.ffl-media-section--lead .ffl-player-carousel {
    min-height: 580px;
}

.ffl-player-slides,
.ffl-player-slide {
    position: absolute;
    inset: 0;
    margin: 0;
}

.ffl-player-slide {
    visibility: hidden;
    opacity: 0;
    transition: opacity .55s ease, visibility .55s ease;
}

.ffl-player-slide.is-active {
    visibility: visible;
    opacity: 1;
}

.ffl-player-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.ffl-carousel-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(4, 18, 37, .88) 100%);
    pointer-events: none;
}

.ffl-carousel-caption {
    position: absolute;
    left: 28px;
    bottom: 25px;
    z-index: 2;
    display: grid;
    gap: 3px;
    color: #fff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.ffl-carousel-caption span {
    color: var(--ffl-gold-soft);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.ffl-carousel-caption strong {
    max-width: 760px;
    font-size: clamp(22px, 3vw, 34px);
    line-height: 1.08;
}

.ffl-league-strip {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    margin-top: 18px;
    border: 1px solid rgba(13, 35, 67, .09);
    border-radius: 16px;
    background: var(--ffl-navy-900);
    box-shadow: 0 10px 30px rgba(13, 35, 67, .05);
}

.ffl-league-strip > div {
    min-height: 104px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 22px;
    background: #fff;
}

.ffl-league-strip > div > strong {
    color: var(--ffl-navy-900);
    font-size: 25px;
    line-height: 1.1;
}

.ffl-league-strip > div > span {
    margin-top: 5px;
    color: var(--ffl-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .75px;
    text-transform: uppercase;
}

.ffl-league-strip .ffl-league-strip__matchday {
    min-height: 112px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px) auto;
    align-items: center;
    gap: 32px;
    padding: 16px 24px;
    background: var(--ffl-navy-900);
}

.ffl-deadline-action {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    border-radius: 11px;
    color: #fff;
    background: var(--ffl-green);
    box-shadow: 0 9px 22px rgba(3, 73, 38, .28);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .45px;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.ffl-deadline-action:hover,
.ffl-deadline-action:focus {
    color: #fff;
    background: var(--ffl-green-dark);
    box-shadow: 0 12px 28px rgba(3, 73, 38, .35);
    text-decoration: none;
    transform: translateY(-1px);
}

.ffl-deadline-summary {
    min-width: 0;
}

.ffl-deadline-summary > span {
    display: block;
    margin-bottom: 7px;
    color: var(--ffl-gold-soft);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .85px;
    text-transform: uppercase;
}

.ffl-deadline-summary > strong {
    display: block;
    color: #fff;
    font-size: 20px;
    line-height: 1.2;
}

.ffl-countdown {
    display: grid;
    grid-template-columns: repeat(4, minmax(54px, 1fr));
    gap: 7px;
    margin: 0;
}

.ffl-countdown > span {
    min-width: 0;
    padding: 7px 8px 6px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 9px;
    background: rgba(255, 255, 255, .07);
    text-align: center;
}

.ffl-countdown strong,
.ffl-countdown small {
    display: block;
}

.ffl-countdown strong {
    color: #fff;
    font-size: 18px;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.ffl-countdown small {
    margin-top: 4px;
    color: rgba(255, 255, 255, .62);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.ffl-carousel-controls {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ffl-carousel-controls button,
.ffl-story-controls button,
.ffl-awards-controls button {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 50%;
    color: #fff;
    background: rgba(5, 22, 43, .64);
    font-size: 27px;
    line-height: 1;
    transition: background .2s ease, transform .2s ease;
}

.ffl-carousel-controls button:hover,
.ffl-carousel-controls button:focus,
.ffl-story-controls button:hover,
.ffl-story-controls button:focus,
.ffl-awards-controls button:hover,
.ffl-awards-controls button:focus {
    background: var(--ffl-green);
    transform: translateY(-1px);
}

.ffl-newspaper-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: 25px;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--ffl-shadow);
}

.ffl-newspaper-heading span {
    display: block;
    margin-bottom: 7px;
    color: var(--ffl-gold);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.ffl-newspaper-heading h2 {
    margin: 0 0 18px;
    color: var(--ffl-navy-900);
    font-size: 26px;
    font-weight: 880;
    letter-spacing: -.5px;
    line-height: 1.1;
    text-transform: none;
}

.ffl-newspaper-cover {
    min-height: 0;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: 17px;
    border: 1px solid var(--ffl-line);
    border-radius: 13px;
    background: #f2f4f7;
}

.ffl-newspaper-cover img {
    width: 100%;
    height: 100%;
    max-height: 365px;
    display: block;
    object-fit: contain;
}

.ffl-text-link--dark {
    color: var(--ffl-navy-800);
}

.ffl-dashboard {
    align-items: stretch;
    gap: 24px;
    margin-top: 64px;
    margin-bottom: 64px;
}

.ffl-news-card {
    order: 1;
}

.ffl-standings-card {
    order: 2;
}

.ffl-dashboard > .ffl-content-card {
    height: 100%;
    margin: 0;
}

.ffl-quick-section {
    padding-top: 68px;
    margin-bottom: 68px;
}

.ffl-press-section {
    padding-bottom: 70px;
}

.ffl-press-grid {
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
    align-items: stretch;
    gap: 24px;
}

.ffl-press-grid .ffl-newspaper-card {
    min-height: 570px;
}

.ffl-press-grid .ffl-newspaper-cover img {
    max-height: 500px;
}

.ffl-weekly-card {
    min-height: 570px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 48px;
    border-radius: 22px;
    color: #fff;
    background:
        linear-gradient(180deg, rgba(6, 23, 43, .28), rgba(6, 23, 43, .94)),
        url('/immagini/bg.jpg') center / cover;
    box-shadow: var(--ffl-shadow);
}

.ffl-weekly-card h2 {
    max-width: 610px;
    margin: 0 0 18px;
    color: #fff;
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 900;
    letter-spacing: -1.4px;
    line-height: 1.03;
    text-transform: none;
}

.ffl-weekly-card p {
    max-width: 620px;
    margin: 0 0 25px;
    color: rgba(255, 255, 255, .74);
    font-size: 16px;
    line-height: 1.7;
}

.ffl-weekly-card .ffl-button--dark {
    background: var(--ffl-green);
}

.ffl-competitions-card {
    justify-content: center;
}

.ffl-competitions-card h2 {
    margin-bottom: 10px;
}

.ffl-competitions-card > p {
    margin-bottom: 22px;
}

.ffl-competition-list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.ffl-competition-list li {
    min-width: 0;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 12px 13px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 12px;
    background: rgba(255, 255, 255, .09);
    backdrop-filter: blur(5px);
}

.ffl-competition-list li > span {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--ffl-navy-950);
    background: var(--ffl-gold-soft);
    font-size: 12px;
    font-weight: 900;
}

.ffl-competition-list strong,
.ffl-competition-list small {
    display: block;
}

.ffl-competition-list strong {
    overflow: hidden;
    color: #fff;
    font-size: 14px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ffl-competition-list small {
    margin-top: 3px;
    color: rgba(255, 255, 255, .64);
    font-size: 10px;
    line-height: 1.25;
}

.ffl-awards-section {
    padding: 72px 0 76px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(24, 141, 78, .25), transparent 34%),
        linear-gradient(145deg, var(--ffl-navy-950), var(--ffl-navy-800));
}

.ffl-section-heading--awards {
    max-width: none;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.ffl-section-heading--awards h2 {
    color: #fff;
}

.ffl-section-heading--awards p {
    max-width: 620px;
    color: rgba(255, 255, 255, .67);
}

.ffl-awards-controls {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 3;
    display: flex;
    gap: 8px;
}

.ffl-awards-stage {
    position: relative;
}

.ffl-awards-carousel {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    padding: 2px 2px 15px;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-color: rgba(255, 255, 255, .24) transparent;
    scrollbar-width: thin;
}

.ffl-award-card {
    min-width: 0;
    flex: 0 0 calc((100% - 36px) / 3);
    height: 430px;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 18px;
    background: rgba(255, 255, 255, .07);
    scroll-snap-align: start;
}

.ffl-award-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.ffl-story-section {
    padding: 72px 0;
    border-top: 0;
    background:
        radial-gradient(circle at 8% 12%, rgba(36, 84, 136, .055), transparent 34rem),
        radial-gradient(circle at 92% 88%, rgba(22, 131, 74, .045), transparent 30rem),
        linear-gradient(180deg, #edf2f7 0%, #f5f7fa 100%);
}

.ffl-story-copy--history {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 42px 48px;
    border: 1px solid rgba(13, 35, 67, .07);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(13, 35, 67, .06);
}

.ffl-story-copy--history p {
    margin-bottom: 0;
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}

.ffl-auction-copy {
    display: block;
    margin-top: 28px;
    padding: 42px 48px;
    border: 1px solid rgba(13, 35, 67, .07);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(13, 35, 67, .06);
}

.ffl-auction-copy > h2 {
    margin-bottom: 30px;
}

.ffl-auction-text {
    columns: 1;
}

.ffl-auction-text p {
    break-inside: avoid;
    margin: 0 0 20px;
    color: var(--ffl-muted);
    font-size: 16px;
    line-height: 1.72;
}

.ffl-auction-text p:last-child {
    margin-bottom: 0;
    color: var(--ffl-muted);
    font-weight: 400;
}

.ffl-auction-copy .ffl-story-gallery {
    min-height: 0;
    height: 520px;
    max-height: none;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 42px;
    margin-bottom: 0;
}

.ffl-auction-copy .ffl-story-gallery img:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
}

.ffl-auction-copy .ffl-story-gallery img:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
    height: 100%;
    margin: 0;
}

.ffl-auction-copy .ffl-story-gallery img:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    height: 100%;
    margin: 0;
}

/* Footer */
.ffl-sponsors {
    padding: 66px 0 58px;
    border-top: 1px solid rgba(13, 35, 67, .08);
    background: var(--ffl-canvas);
}

.ffl-sponsor-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ffl-sponsor-grid a {
    height: 118px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    border: 1px solid var(--ffl-line);
    border-radius: 14px;
    background: #fff;
}

.ffl-sponsor-grid img {
    max-width: 100%;
    max-height: 82px;
    object-fit: contain;
}

.ffl-footer {
    padding: 34px 0;
    color: rgba(255, 255, 255, .70);
    background: var(--ffl-navy-950);
}

.ffl-footer-inner {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) auto;
    align-items: center;
    gap: 35px;
}

.ffl-footer-inner--minimal {
    display: flex;
    justify-content: center;
    text-align: center;
}

.ffl-footer-inner--minimal .ffl-copyright {
    font-size: 13px;
}

.ffl-footer-brand {
    display: flex;
    align-items: center;
    gap: 13px;
}

.ffl-footer-brand img {
    width: 54px;
    height: 54px;
    object-fit: contain;
}

.ffl-footer-brand div {
    display: grid;
}

.ffl-footer-brand strong {
    color: #fff;
    text-transform: uppercase;
}

.ffl-footer-brand span,
.ffl-copyright {
    margin: 0;
    color: rgba(255, 255, 255, .55);
    font-size: 12px;
}

.ffl-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.ffl-footer-links a,
.ffl-footer-mark {
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
    font-weight: 750;
}

.ffl-footer-links a:hover,
.ffl-footer-links a:focus,
.ffl-footer-mark:hover,
.ffl-footer-mark:focus {
    color: #fff;
}

.ffl-go-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 900;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 13px;
    color: #fff;
    background: var(--ffl-navy-800);
    box-shadow: 0 12px 28px rgba(13, 35, 67, .25);
    font-size: 22px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease;
}

.ffl-go-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

@media (max-width: 991px) {
    .ffl-hero-grid {
        min-height: 520px;
        grid-template-columns: minmax(0, 1fr) 320px;
        gap: 35px;
    }

    .ffl-hero h1 {
        font-size: 49px;
    }

    .ffl-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ffl-media-grid {
        grid-template-columns: minmax(0, 1.65fr) minmax(240px, .75fr);
    }

    .ffl-player-carousel {
        min-height: 390px;
    }

    .ffl-media-section--lead .ffl-player-carousel {
        min-height: 460px;
    }

    .ffl-league-strip {
        grid-template-columns: 1fr;
    }

    .ffl-league-strip .ffl-league-strip__matchday {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 16px;
        padding: 20px;
    }

    .ffl-league-strip__matchday .ffl-countdown {
        grid-column: 1 / -1;
    }

    .ffl-press-grid {
        grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
    }

    .ffl-press-grid .ffl-newspaper-card,
    .ffl-weekly-card {
        min-height: 500px;
    }

    .ffl-weekly-card {
        padding: 36px;
    }

    .ffl-competition-list {
        grid-template-columns: 1fr;
    }

    .ffl-newspaper-cover img {
        max-height: 300px;
    }

    .ffl-award-card {
        flex-basis: calc((100% - 18px) / 2);
        height: 390px;
    }

    .ffl-auction-copy .ffl-story-gallery {
        min-height: 0;
        height: 430px;
        max-height: none;
        margin-top: 32px;
    }

    .ffl-auction-copy {
        grid-template-columns: 1fr;
        margin-top: 24px;
        padding: 36px;
    }

    .ffl-auction-text {
        columns: 1;
    }

    .ffl-footer-inner {
        grid-template-columns: 1fr auto;
    }

    .ffl-copyright {
        grid-column: auto;
    }
}

@media (max-width: 767px) {
    .ffl-home-page .container {
        width: auto;
        max-width: none;
    }

    .ffl-hero {
        margin-bottom: 0;
    }

    .ffl-hero-grid {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 32px;
        padding-top: 54px;
        padding-bottom: 48px;
    }

    .ffl-hero h1 {
        font-size: 40px;
        letter-spacing: -1.5px;
    }

    .ffl-hero-copy > p {
        font-size: 16px;
    }

    .ffl-hero-actions {
        display: grid;
    }

    .ffl-button {
        width: 100%;
    }

    .ffl-hero-stats {
        gap: 20px;
        justify-content: space-between;
    }

    .ffl-hero-stats strong {
        font-size: 21px;
    }

    .ffl-matchday-card,
    .ffl-content-card {
        padding: 22px;
        border-radius: 16px;
    }

    .ffl-dashboard {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-bottom: 48px;
    }

    .ffl-media-section {
        padding-top: 48px;
        padding-bottom: 44px;
    }

    .ffl-media-section--lead {
        padding-top: 18px;
        padding-bottom: 0;
    }

    .ffl-section-heading--centered {
        text-align: left;
    }

    .ffl-media-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ffl-player-carousel {
        min-height: 300px;
        border-radius: 16px;
    }

    .ffl-media-section--lead .ffl-player-carousel {
        min-height: 280px;
    }

    .ffl-carousel-caption {
        left: 18px;
        bottom: 18px;
        max-width: calc(100% - 140px);
    }

    .ffl-carousel-controls,
    .ffl-story-controls,
    .ffl-awards-controls {
        right: 12px;
        bottom: 12px;
        gap: 6px;
    }

    .ffl-carousel-controls button,
    .ffl-story-controls button,
    .ffl-awards-controls button {
        width: 38px;
        height: 38px;
    }

    .ffl-newspaper-card {
        padding: 20px;
        border-radius: 16px;
    }

    .ffl-league-strip {
        grid-template-columns: 1fr;
        margin-top: 12px;
    }

    .ffl-league-strip > div {
        min-height: 86px;
        padding: 15px 10px;
        text-align: center;
    }

    .ffl-league-strip > div > strong {
        font-size: 20px;
    }

    .ffl-league-strip .ffl-league-strip__matchday {
        min-height: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        padding: 24px 20px;
        text-align: left;
    }

    .ffl-deadline-summary > span {
        margin-bottom: 6px;
    }

    .ffl-deadline-summary > strong {
        font-size: 19px;
        line-height: 1.35;
    }

    .ffl-countdown {
        width: 100%;
        max-width: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .ffl-countdown > span {
        padding: 12px 8px 10px;
    }

    .ffl-countdown strong {
        font-size: 24px;
    }

    .ffl-countdown small {
        font-size: 9px;
    }

    .ffl-deadline-action {
        width: 100%;
        min-height: 50px;
    }

    .ffl-press-section {
        padding-bottom: 48px;
    }

    .ffl-press-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ffl-press-grid .ffl-newspaper-card,
    .ffl-weekly-card {
        min-height: 0;
    }

    .ffl-weekly-card {
        min-height: 380px;
        padding: 28px 22px;
        border-radius: 16px;
    }

    .ffl-weekly-card h2 {
        font-size: 31px;
    }

    .ffl-competition-list {
        grid-template-columns: 1fr;
    }

    .ffl-newspaper-cover img {
        max-height: 480px;
    }

    .ffl-card-heading {
        display: block;
    }

    .ffl-card-heading > a {
        display: inline-block;
        margin-top: 12px;
    }

    .ffl-mini-standings li {
        grid-template-columns: 30px 38px minmax(0, 1fr) auto;
        gap: 8px;
        padding: 9px;
    }

    .ffl-mini-standings img {
        width: 34px;
        height: 34px;
    }

    .ffl-quick-section {
        padding-top: 48px;
        margin-bottom: 52px;
    }

    .ffl-quick-grid {
        grid-template-columns: 1fr;
    }

    .ffl-quick-card {
        min-height: 150px;
    }

    .ffl-quick-icon {
        margin-bottom: 18px;
    }

    .ffl-story-section {
        padding: 52px 0;
    }

    .ffl-awards-section {
        padding: 52px 0 56px;
    }

    .ffl-section-heading--awards {
        align-items: flex-end;
        gap: 16px;
    }

    .ffl-section-heading--awards p {
        display: none;
    }

    .ffl-award-card {
        flex-basis: 82%;
        height: 400px;
    }

    .ffl-story-copy--history {
        padding: 30px 24px;
        border-radius: 16px;
    }

    .ffl-auction-copy .ffl-story-gallery {
        min-height: 0;
        height: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 300px 165px;
        gap: 12px;
        margin-top: 28px;
        margin-bottom: 0;
    }

    .ffl-auction-copy {
        margin-top: 20px;
        padding: 30px 24px;
    }

    .ffl-auction-text p {
        font-size: 15px;
        line-height: 1.65;
    }

    .ffl-auction-copy .ffl-story-gallery img:first-child {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .ffl-auction-copy .ffl-story-gallery img:nth-child(2),
    .ffl-auction-copy .ffl-story-gallery img:nth-child(3) {
        width: 100%;
        height: 100%;
        margin: 0;
    }

    .ffl-auction-copy .ffl-story-gallery img:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
    }

    .ffl-auction-copy .ffl-story-gallery img:nth-child(3) {
        grid-column: 2;
        grid-row: 2;
    }

    .ffl-sponsors {
        padding: 48px 0;
    }

    .ffl-sponsor-grid {
        grid-template-columns: 1fr;
    }

    .ffl-sponsor-grid a {
        height: 92px;
    }

    .ffl-footer-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .ffl-footer-links {
        gap: 12px 18px;
    }

    .ffl-copyright {
        grid-column: auto;
    }
}

/* Comunicazioni ufficiali */
.ffl-news-archive-page,
.ffl-news-detail-page {
    background: var(--ffl-canvas);
}

.ffl-news-archive-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ffl-news-archive-card {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    padding: 32px;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--ffl-shadow);
}

.ffl-news-archive-meta,
.ffl-news-detail-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--ffl-green-dark);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .65px;
    text-transform: uppercase;
}

.ffl-news-archive-meta span,
.ffl-news-detail-meta span {
    padding: 4px 8px;
    border-radius: 999px;
    color: #6b4c00;
    background: var(--ffl-gold-soft);
}

.ffl-news-archive-card h2 {
    margin: 0 0 16px;
    color: var(--ffl-navy-900);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 880;
    letter-spacing: -.6px;
    line-height: 1.1;
}

.ffl-news-archive-card p {
    margin: 0 0 24px;
    color: var(--ffl-muted);
    line-height: 1.7;
}

.ffl-news-archive-card .ffl-text-link {
    margin-top: auto;
}

.ffl-news-detail-card {
    max-width: 980px;
    margin: 28px auto 0;
    padding: clamp(32px, 5vw, 62px);
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--ffl-shadow);
}

.ffl-news-back-link {
    display: inline-flex;
    margin-bottom: 28px;
    color: var(--ffl-navy-700);
    font-size: 13px;
    font-weight: 800;
}

.ffl-news-detail-card h1 {
    margin: 0 0 28px;
    color: var(--ffl-navy-900);
    font-size: clamp(34px, 5vw, 54px);
    font-weight: 900;
    letter-spacing: -1.5px;
    line-height: 1.02;
}

.ffl-news-detail-content {
    color: var(--ffl-muted);
    font-size: 17px;
    line-height: 1.75;
}

.ffl-news-detail-content img {
    max-width: 100%;
    height: auto;
}

.ffl-news-detail-content a {
    overflow-wrap: anywhere;
}

@media (max-width: 767px) {
    .ffl-news-archive-grid {
        grid-template-columns: 1fr;
    }

    .ffl-news-archive-card {
        min-height: 0;
        padding: 26px 22px;
    }

    .ffl-news-detail-card {
        margin-top: 18px;
        padding: 28px 22px;
        border-radius: 16px;
    }

    .ffl-news-detail-content {
        font-size: 15px;
    }
}

/* Classifica */
.ffl-page-main {
    padding-bottom: 76px;
}

.ffl-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 36px;
    margin: 18px 0 38px;
}

.ffl-page-heading h1,
.ffl-empty-state h1 {
    margin: 0 0 10px;
    color: var(--ffl-navy-900);
    font-size: clamp(36px, 5vw, 58px);
    font-weight: 900;
    letter-spacing: -2px;
    line-height: 1;
    text-transform: none;
}

.ffl-page-heading p,
.ffl-empty-state p {
    margin: 0;
    color: var(--ffl-muted);
    font-size: 17px;
}

.ffl-podium {
    width: 100%;
    max-width: 860px;
    display: grid;
    grid-template-columns: .88fr 1fr .78fr;
    align-items: end;
    gap: 14px;
    margin: 0 auto 26px;
}

.ffl-podium-card {
    position: relative;
    min-height: 152px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px 16px 16px;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: 18px;
    color: var(--ffl-ink);
    background: #fff;
    box-shadow: var(--ffl-shadow);
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease;
}

.ffl-podium-card:hover,
.ffl-podium-card:focus {
    color: var(--ffl-ink);
    text-decoration: none;
    transform: translateY(-3px);
}

.ffl-podium-card--1 {
    min-height: 166px;
    border-color: rgba(192, 142, 22, .72);
    background: linear-gradient(145deg, #ffe9a3, #fff7d8);
    box-shadow: 0 20px 44px rgba(164, 117, 13, .22);
}

.ffl-podium-card--2 {
    min-height: 144px;
    border-color: #aebdca;
    background: linear-gradient(145deg, #dfe7ee, #f8fafc);
}

.ffl-podium-card--3 {
    min-height: 130px;
    padding-top: 18px;
    padding-bottom: 14px;
    border-color: #d29a69;
    background: linear-gradient(145deg, #efc6a4, #fff0e2);
}

@media (min-width: 768px) {
    .ffl-podium-card--1 {
        height: 220px;
    }

    .ffl-podium-card--2 {
        height: 190px;
    }

    .ffl-podium-card--3 {
        height: 164px;
    }
}

.ffl-podium-rank {
    position: absolute;
    top: 12px;
    left: 12px;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--ffl-navy-900);
    background: #dce3e9;
    font-weight: 900;
}

.ffl-podium-card--1 .ffl-podium-rank { background: #f4d67c; }
.ffl-podium-card--3 .ffl-podium-rank { background: #d9aa82; }

.ffl-podium-card img {
    width: 48px;
    height: 48px;
    margin-bottom: 7px;
    object-fit: contain;
}

.ffl-podium-card strong {
    margin-bottom: 2px;
    font-size: 14px;
}

.ffl-podium-card small {
    min-height: 20px;
    color: var(--ffl-muted);
}

.ffl-podium-card b {
    margin-top: 5px;
    color: var(--ffl-navy-800);
    font-size: 14px;
}

.ffl-ranking-card {
    overflow: hidden;
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: var(--ffl-radius);
    background: #fff;
    box-shadow: var(--ffl-shadow);
}

.ffl-ranking-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 26px 30px;
    border-bottom: 1px solid var(--ffl-line);
}

.ffl-ranking-card-heading span:first-child {
    display: block;
    margin-bottom: 4px;
    color: var(--ffl-green);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.ffl-ranking-card-heading h2 {
    margin: 0;
    color: var(--ffl-navy-900);
    font-size: 24px;
    font-weight: 880;
    text-transform: none;
}

.ffl-ranking-count {
    padding: 8px 11px;
    border-radius: 99px;
    color: var(--ffl-muted);
    background: #eef2f6;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.ffl-ranking-table > thead > tr > th {
    border-bottom: 1px solid var(--ffl-line);
    color: var(--ffl-muted);
    background: #f8fafc;
    font-size: 11px;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.ffl-ranking-table > tbody > tr > td {
    padding: 15px 20px;
}

.ffl-ranking-table > tbody > tr.is-position-1 > td { background: #fff0b9; }
.ffl-ranking-table > tbody > tr.is-position-2 > td { background: #e6edf3; }
.ffl-ranking-table > tbody > tr.is-position-3 > td { background: #f3d2b7; }

.ffl-ranking-team {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ffl-ink);
}

.ffl-ranking-team:hover,
.ffl-ranking-team:focus {
    color: var(--ffl-navy-700);
    text-decoration: none;
}

.ffl-ranking-team img {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.ffl-table-rank {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--ffl-navy-900);
    background: #eef2f6;
    font-size: 12px;
    font-weight: 900;
}

.ffl-table-rank--1 { background: #f4d67c; }
.ffl-table-rank--2 { background: #dce3e9; }
.ffl-table-rank--3 { background: #d9aa82; }

.ffl-points-pill {
    display: inline-flex;
    min-width: 46px;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: #fff;
    background: var(--ffl-navy-800);
}

/* Pagina squadra */
.ffl-team-hero-grid::before,
.ffl-team-hero-grid::after,
.ffl-team-overview::before,
.ffl-team-overview::after {
    display: none !important;
    content: none !important;
}

.ffl-team-hero {
    margin-top: -34px;
    margin-bottom: 42px;
    padding: 70px 0 62px;
    color: #fff;
    background:
        radial-gradient(circle at 78% 10%, rgba(213, 169, 64, .17), transparent 25rem),
        linear-gradient(130deg, var(--ffl-navy-950), var(--ffl-navy-800));
}

.ffl-team-hero-grid {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    align-items: center;
    gap: 58px;
}

.ffl-team-emblems {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 12px;
}

.ffl-team-emblem-card,
.ffl-team-shirt-card {
    min-height: 240px;
    display: grid;
    grid-template-rows: 150px auto;
    align-items: center;
    justify-content: center;
    justify-items: center;
    gap: 12px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 18px;
    background: rgba(255, 255, 255, .08);
}

.ffl-team-shirt-card {
    min-height: 240px;
}

.ffl-team-emblem-card img,
.ffl-team-shirt-card img {
    width: 100%;
    max-width: 100%;
    height: 150px;
    align-self: center;
    justify-self: center;
    object-fit: contain;
}

.ffl-team-shirt-card img {
    height: 120px;
}

.ffl-team-emblem-card span,
.ffl-team-shirt-card span {
    align-self: start;
    color: rgba(255, 255, 255, .58);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.ffl-team-title h1 {
    max-width: 780px;
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(40px, 6vw, 68px);
    font-weight: 900;
    letter-spacing: -2px;
    line-height: .98;
    text-transform: none;
}

.ffl-team-title > p {
    margin-bottom: 34px;
    color: rgba(255, 255, 255, .68);
    font-size: 16px;
}

.ffl-team-stat-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, .15);
}

.ffl-team-stat-row div {
    display: grid;
    gap: 3px;
    padding: 22px 18px 0 0;
}

.ffl-team-stat-row strong {
    color: #fff;
    font-size: 24px;
}

.ffl-team-stat-row span {
    color: rgba(255, 255, 255, .52);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.ffl-team-overview {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    align-items: stretch;
    gap: 24px;
    margin-bottom: 70px;
}

.ffl-team-president-card,
.ffl-team-history,
.ffl-trophy-card,
.ffl-roster-block {
    border: 1px solid rgba(13, 35, 67, .08);
    border-radius: var(--ffl-radius);
    background: #fff;
    box-shadow: var(--ffl-shadow);
}

.ffl-team-president-card {
    height: 100%;
    overflow: hidden;
}

.ffl-team-president-card > img {
    width: 100%;
    height: 290px;
    display: block;
    object-fit: cover;
    object-position: center top;
}

.ffl-team-president-card > div {
    padding: 22px;
}

.ffl-team-president-card span,
.ffl-team-president-card small {
    color: var(--ffl-muted);
    font-size: 11px;
    font-weight: 750;
    text-transform: uppercase;
}

.ffl-team-president-card h2 {
    margin: 5px 0 4px;
    color: var(--ffl-navy-900);
    font-size: 20px;
    text-transform: none;
}

.ffl-team-history {
    height: 100%;
    padding: 34px;
}

.ffl-team-history h2 {
    margin: 0 0 20px;
    color: var(--ffl-navy-900);
    font-size: 30px;
    font-weight: 880;
    text-transform: none;
}

.ffl-rich-text,
.ffl-rich-text p {
    color: #44546a;
    font-size: 16px;
    line-height: 1.78;
}

.ffl-team-section {
    margin-bottom: 70px;
}

.ffl-trophy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ffl-trophy-card {
    min-height: 92px;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 15px 20px;
}

.ffl-trophy-card img {
    width: 52px;
    height: 52px;
    object-fit: contain;
}

.ffl-trophy-card div {
    display: grid;
    gap: 2px;
}

.ffl-trophy-card strong {
    color: var(--ffl-ink);
}

.ffl-trophy-card span {
    color: var(--ffl-muted);
    font-size: 12px;
}

.ffl-trophy-card > b {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #6b4c00;
    background: var(--ffl-gold-soft);
    font-size: 17px;
}

.ffl-roster-block {
    overflow: hidden;
    margin-bottom: 22px;
}

.ffl-roster-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 24px;
    color: #fff;
    background: var(--ffl-navy-900);
}

.ffl-roster-heading img {
    width: 51px;
    height: 59px;
    object-fit: contain;
}

.ffl-roster-heading h3 {
    margin: 0;
    font-size: 16px;
    text-transform: none;
}

.ffl-roster-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ffl-role-card {
    min-width: 0;
    padding: 20px 16px;
    border-right: 1px solid var(--ffl-line);
}

.ffl-role-card:last-child {
    border-right: 0;
}

.ffl-role-card h4 {
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 3px solid var(--ffl-navy-700);
    color: var(--ffl-navy-900);
    font-size: 10px;
    letter-spacing: .6px;
}

.ffl-role-card--p h4 { border-color: #e8b33b; }
.ffl-role-card--d h4 { border-color: #36a46b; }
.ffl-role-card--c h4 { border-color: #3b7fc4; }
.ffl-role-card--a h4 { border-color: #d65353; }

.ffl-role-card ul {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ffl-role-card li {
    min-height: 36px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 30px;
    align-items: center;
    gap: 8px;
}

.ffl-role-card li strong {
    overflow: hidden;
    color: var(--ffl-ink);
    font-size: 12px;
    text-overflow: ellipsis;
}

.ffl-role-card li span,
.ffl-no-players {
    margin: 0;
    color: var(--ffl-muted);
    font-size: 10px;
    text-transform: uppercase;
}

.ffl-role-card li .ffl-roster-player-copy {
    min-width: 0;
    display: grid;
    gap: 1px;
    color: inherit;
    text-transform: none;
}

.ffl-roster-player-copy strong {
    display: block;
    white-space: normal;
}

.ffl-role-card li .ffl-roster-player-copy small {
    overflow: hidden;
    color: var(--ffl-muted);
    font-size: 9px;
    font-weight: 650;
    letter-spacing: .25px;
    line-height: 1.25;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.ffl-roster-club-logo {
    width: 28px;
    height: 28px;
    display: block;
    justify-self: end;
    object-fit: contain;
}

.ffl-empty-state {
    min-height: 440px;
    padding-top: 80px;
    text-align: center;
}

.ffl-empty-state p {
    margin-bottom: 28px;
}

@media (max-width: 991px) {
    .ffl-team-hero-grid,
    .ffl-team-overview {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 32px;
    }

    .ffl-team-stat-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ffl-roster-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ffl-role-card {
        border-right: 1px solid var(--ffl-line);
        border-bottom: 1px solid var(--ffl-line);
    }
}

@media (max-width: 767px) {
    .ffl-page-heading {
        display: block;
        margin: 8px 0 28px;
    }

    .ffl-page-heading .ffl-button {
        margin-top: 20px;
    }

    .ffl-podium {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .ffl-podium-card,
    .ffl-podium-card--1,
    .ffl-podium-card--2,
    .ffl-podium-card--3 {
        width: 100%;
        height: 165px;
        min-height: 165px;
        padding: 20px 18px 17px;
        justify-self: stretch;
    }

    .ffl-podium-card--1 {
        order: -1;
    }

    .ffl-ranking-card-heading {
        padding: 20px;
    }

    body.ffl-ranking-page .ffl-page-main {
        width: 100%;
        max-width: 100%;
        padding-right: 12px;
        padding-left: 12px;
        overflow-x: hidden;
    }

    .ffl-ranking-card {
        width: 100%;
        max-width: 100%;
    }

    .ffl-ranking-table > thead > tr > th:nth-child(3),
    .ffl-ranking-table > tbody > tr > td:nth-child(3) {
        display: none;
    }

    .ffl-ranking-table > tbody > tr > td {
        padding: 11px 7px;
    }

    .ffl-ranking-card .table-responsive {
        width: 100%;
        overflow: hidden;
    }

    .ffl-ranking-table {
        display: block;
        width: 100%;
        max-width: 100%;
        table-layout: auto;
    }

    .ffl-ranking-table > thead,
    .ffl-ranking-table > tbody {
        display: block;
        width: 100%;
    }

    .ffl-ranking-table > thead > tr,
    .ffl-ranking-table > tbody > tr {
        width: 100%;
        display: grid;
        grid-template-columns: 58px minmax(0, 1fr) 56px;
        align-items: center;
    }

    .ffl-ranking-table > thead > tr > th,
    .ffl-ranking-table > tbody > tr > td {
        width: auto !important;
        min-width: 0;
        display: block;
    }

    .ffl-ranking-table > thead > tr > th:nth-child(3),
    .ffl-ranking-table > tbody > tr > td:nth-child(3) {
        display: none !important;
    }

    .ffl-ranking-table > tbody > tr.is-position-1 { background: #fff0b9; }
    .ffl-ranking-table > tbody > tr.is-position-2 { background: #e6edf3; }
    .ffl-ranking-table > tbody > tr.is-position-3 { background: #f3d2b7; }

    .ffl-ranking-table > tbody > tr.is-top-three > td {
        background: transparent !important;
    }

    .ffl-ranking-table > thead > tr > th {
        padding: 11px 7px;
        font-size: 9px;
        letter-spacing: .35px;
    }

    .ffl-ranking-table > thead > tr > th:last-child,
    .ffl-ranking-table > tbody > tr > td:last-child {
        text-align: right;
    }

    .ffl-ranking-team {
        width: 100%;
        display: grid;
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 8px;
    }

    .ffl-ranking-team img {
        width: 32px;
        height: 32px;
    }

    .ffl-ranking-team strong {
        min-width: 0;
        font-size: 11px;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .ffl-table-rank {
        width: 28px;
        height: 28px;
    }

    .ffl-points-pill {
        min-width: 42px;
        min-height: 32px;
        font-size: 11px;
    }

    .ffl-team-hero {
        margin-top: -20px;
        padding: 44px 0;
    }

    .ffl-team-hero-grid,
    .ffl-team-overview {
        grid-template-columns: 1fr;
    }

    .ffl-team-emblems {
        max-width: 330px;
        margin: 0 auto;
    }

    .ffl-team-title {
        text-align: center;
    }

    .ffl-team-title h1 {
        font-size: 38px;
    }

    .ffl-team-stat-row div {
        padding: 18px 8px 0;
    }

    .ffl-team-overview,
    .ffl-team-section {
        margin-bottom: 48px;
    }

    .ffl-team-president-card {
        max-width: 360px;
        margin: 0 auto;
    }

    .ffl-team-history {
        padding: 24px;
    }

    .ffl-trophy-grid,
    .ffl-roster-grid {
        grid-template-columns: 1fr;
    }

.ffl-role-card {
        border-right: 0;
    }
}

/* Archivio giocatori pubblico */
.ffl-player-archive-page { background:#eef3f8; }
.ffl-player-archive { margin:34px 0 70px; padding:38px; border:1px solid var(--ffl-line); border-radius:22px; background:#fff; box-shadow:var(--ffl-shadow); }
.ffl-player-archive > header span { color:var(--ffl-gold); font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.ffl-player-archive > header h1 { margin:7px 0 6px; color:var(--ffl-navy-900); font-size:34px; font-weight:900; }
.ffl-player-archive > header p { color:var(--ffl-muted); }
.ffl-public-player-filters { margin:28px 0 20px; padding:22px; border-radius:16px; background:#f3f6f9; }
.ffl-filter-group > strong { display:block; margin-bottom:10px; color:var(--ffl-navy-900); }
.ffl-filter-pills { display:flex; flex-wrap:wrap; gap:8px; }
.ffl-filter-pills a { display:inline-flex; align-items:center; gap:7px; padding:9px 13px; border:1px solid var(--ffl-line); border-radius:999px; color:var(--ffl-navy-900); background:#fff; font-size:12px; font-weight:800; text-decoration:none; }
.ffl-filter-pills a b { width:25px; height:25px; display:inline-grid; place-items:center; border-radius:50%; color:#fff; background:var(--role-color,#173f70); }
.ffl-filter-pills a.is-active { color:#fff; border-color:var(--role-color,#173f70); background:var(--role-color,#173f70); }
.ffl-filter-pills a.is-active b { background:rgba(255,255,255,.2); }
.ffl-filter-role-P{--role-color:#d6a928}.ffl-filter-role-D{--role-color:#15935a}.ffl-filter-role-C{--role-color:#2684d7}.ffl-filter-role-A{--role-color:#dc4b52}
.ffl-public-player-table .ffl-role-badge { display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; min-width:25px; max-width:25px; padding:0; border-radius:50%; color:#fff; background:var(--role-color); font-size:10px; font-weight:900; line-height:25px; vertical-align:middle; }
.ffl-public-player-table .ffl-role-P{--role-color:#d6a928}.ffl-public-player-table .ffl-role-D{--role-color:#15935a}.ffl-public-player-table .ffl-role-C{--role-color:#2684d7}.ffl-public-player-table .ffl-role-A{--role-color:#dc4b52}.ffl-public-player-table .ffl-role-M{--role-color:#111827}
.ffl-filter-selects { display:grid; grid-template-columns:170px 190px minmax(220px,1fr); gap:12px; margin-top:18px; }
.ffl-filter-selects label { color:#52657d; font-size:11px; letter-spacing:.05em; text-transform:uppercase; }
.ffl-filter-selects select,.ffl-filter-selects input { width:100%; height:42px; margin-top:6px; padding:0 12px; border:1px solid #ccd7e3; border-radius:9px; color:var(--ffl-navy-900); background:#fff; }
.ffl-player-result { display:flex; justify-content:space-between; gap:18px; margin-bottom:13px; color:var(--ffl-muted); font-size:12px; }
.ffl-player-result strong { color:var(--ffl-navy-900); }
.ffl-player-result i { width:9px; height:9px; display:inline-block; margin-left:12px; border-radius:50%; }.ffl-player-result i:first-child{margin-left:0}
.ffl-availability { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border-radius:999px; font-size:11px; font-weight:850; }.ffl-availability::before{width:8px;height:8px;border-radius:50%;background:currentColor;content:''}
.is-free { color:#087a40; }.ffl-availability.is-free{background:#e4f5ec}.is-busy{color:#9a3440}.ffl-availability.is-busy{background:#fae9eb}
.ffl-series-chip { padding:5px 8px; border-radius:7px; color:#214c79; background:#e7eef7; font-size:11px; font-weight:800; }
.ffl-public-player-table th { color:#52657d; background:#f5f8fb; font-size:11px; text-transform:uppercase; }.ffl-public-player-table td:first-child strong{color:var(--ffl-navy-900)}
.ffl-player-empty { padding:30px; text-align:center; color:var(--ffl-muted); }

/* Cornici coerenti per tutte le tabelle */
.table-responsive.ffl-table-frame,.box > [class*="col-"] > .table-responsive,.box .mobile-scroll { overflow-x:auto; border:1px solid var(--ffl-line); border-radius:14px; background:#fff; }
.box > [class*="col-"] > .table-responsive,
.box > [class*="col-"] > .mobile-scroll,
.box > [class*="col-"] > .table-bordered { margin-bottom:18px; }
.box > [class*="col-"] > .table-responsive:last-child,
.box > [class*="col-"] > .mobile-scroll:last-child,
.box > [class*="col-"] > .table-bordered:last-child { margin-bottom:0; }
.table-responsive > .table-bordered,.mobile-scroll > .table-bordered { border:0; }
.table-responsive > .table-bordered > thead > tr:first-child > th,.table-responsive > .table-bordered > tbody > tr:first-child > td { border-top:0; }
.table-responsive > .table-bordered tr > :first-child,.mobile-scroll > .table-bordered tr > :first-child { border-left:0; }
.table-responsive > .table-bordered tr > :last-child,.mobile-scroll > .table-bordered tr > :last-child { border-right:0; }
.table-responsive > .table-bordered > tbody > tr:last-child > td,.mobile-scroll > .table-bordered > tbody > tr:last-child > td { border-bottom:0; }

/* Anche le tabelle storiche prive di contenitore chiudono correttamente i quattro angoli. */
.box > [class*="col-"] > .table-bordered,
.box > .table-bordered,
.ffl-page-content .table-bordered {
    overflow: hidden;
    border: 1px solid var(--ffl-line);
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 14px;
    background: #fff;
}
.box .table-bordered > thead:first-child > tr:first-child > th:first-child,
.box .table-bordered > tbody:first-child > tr:first-child > td:first-child { border-top-left-radius: 13px; }
.box .table-bordered > thead:first-child > tr:first-child > th:last-child,
.box .table-bordered > tbody:first-child > tr:first-child > td:last-child { border-top-right-radius: 13px; }
.box .table-bordered > tbody > tr:last-child > td:first-child { border-bottom-left-radius: 13px; }
.box .table-bordered > tbody > tr:last-child > td:last-child { border-bottom-right-radius: 13px; }

/* Statistiche */
.ffl-stats-page .box { overflow:hidden; }
.ffl-stats-page .mobile-scroll { width:100%; padding:0; }
.ffl-stats-page #statsTable { width:100%; max-width:100%; table-layout:fixed; }
.ffl-stats-page #statsTable td:first-child { width:180px; padding-left:14px; padding-right:8px; }
.ffl-stats-page #statsTable td { overflow:hidden; padding:10px 5px; font-size:12px; text-overflow:ellipsis; }
.ffl-stats-page #statsTable td:last-child { padding-left:2px; padding-right:2px; font-size:11px; white-space:nowrap; }
.ffl-stats-page .sort-arrow { width:48px; display:flex; justify-content:center; }

/* Calendario: tutte le colonne entro la pagina */
.ffl-season-table-wrap { width:100%; overflow:hidden!important; }
.ffl-season-table { width:100%!important; table-layout:fixed; }
.ffl-season-table td { padding:11px 3px!important; font-size:12px; line-height:1.3; overflow-wrap:anywhere; word-break:normal; }
.ffl-season-table tr:first-child td { padding:15px 4px!important; color:#fff; background:linear-gradient(180deg,var(--ffl-navy-700),var(--ffl-navy-900)); font-size:11px; font-weight:850; line-height:1.25; letter-spacing:.15px; }
.ffl-season-table td:nth-child(1){width:6%}.ffl-season-table td:nth-child(2){width:10%}.ffl-season-table td:nth-child(3){width:7%}.ffl-season-table td:nth-child(4){width:10%}.ffl-season-table td:nth-child(n+5){width:9.57%}

@media(max-width:1199px) and (min-width:768px){
 .ffl-season-table td{font-size:10px}.ffl-season-table tr:first-child td{font-size:9px}
}

/* Regolamento: indice tradizionale */
.ffl-regulation-tools { color:var(--ffl-navy-900); background:#fff; border:1px solid var(--ffl-line); box-shadow:var(--ffl-shadow); }
.ffl-regulation-tools h1 { color:var(--ffl-navy-900); }.ffl-regulation-tools p{color:var(--ffl-muted)}
#ffl-rule-index { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(var(--ffl-rule-rows,10),auto); grid-auto-flow:column; column-gap:34px; margin-top:24px; border-top:1px solid var(--ffl-line); }
#ffl-rule-index a { min-height:50px; display:grid; grid-template-columns:35px 1fr; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--ffl-line); border-radius:0; color:var(--ffl-navy-900); background:transparent; font-size:13px; }
#ffl-rule-index a span { width:29px; height:29px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--ffl-green); font-size:11px; }
#ffl-rule-index a:hover { color:var(--ffl-green); background:transparent; }

@media(max-width:767px){
 .ffl-player-archive{padding:24px 16px}.ffl-player-archive>header h1{font-size:29px}.ffl-filter-selects{grid-template-columns:1fr}.ffl-player-result{display:block}.ffl-public-player-table th:nth-child(3),.ffl-public-player-table td:nth-child(3){display:none}
 #ffl-rule-index{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.ffl-season-table td{padding:7px 2px!important;font-size:8px}.ffl-season-table tr:first-child td{padding:9px 2px!important;font-size:7px}.ffl-stats-page #statsTable{min-width:900px}
}

/* Intestazioni coerenti per tutte le tabelle del sito pubblico. */
.table > thead > tr > th,
.table.table-bordered > tbody > tr > th,
.gridtable th,
.ffl-public-player-table > thead > tr > th,
.ffl-ranking-table > thead > tr > th,
.ffl-season-table tr:first-child > td {
  border-color:rgba(255,255,255,.16) !important;
  color:#fff !important;
  background:linear-gradient(110deg,#123d6d,#2878ad) !important;
}
.table > thead > tr > th a,
.table.table-bordered > tbody > tr > th a,
.gridtable th a { color:#fff !important; }

/* Il gradiente attraversa l'intera riga senza ripartire in ogni colonna. */
.table > thead > tr,
.table.table-bordered > tbody > tr:has(> th),
.gridtable tr:has(> th),
.ffl-season-table tr:first-child {
  background:linear-gradient(110deg,#123d6d,#2878ad) !important;
}
.table > thead > tr > th,
.table > thead > tr > td,
.table.table-bordered > tbody > tr:has(> th) > th,
.gridtable tr:has(> th) > th,
.ffl-season-table tr:first-child > td {
  background:transparent !important;
}

/* Pagine di accesso e consultazione formazioni */
.ffl-access-page .box { padding:0 !important; background:transparent !important; box-shadow:none !important; }
.ffl-access-shell { width:100%; max-width:none; margin:38px auto 54px; }
.ffl-access-page > main.container { width:min(1240px,calc(100% - 40px)); max-width:none; }
.ffl-access-heading { text-align:center; margin-bottom:24px; }
.ffl-access-heading .eyebrow { color:#d6a928; font-size:12px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.ffl-access-heading h1 { color:#0d294d; margin:8px 0 6px; font-size:clamp(26px,4vw,40px); font-weight:900; }
.ffl-access-heading p { color:#66758b; margin:0; }
.ffl-access-card { overflow:hidden; background:#fff; border:1px solid #dce5ef; border-radius:22px; box-shadow:0 18px 45px rgba(13,41,77,.12); }
.ffl-access-card__head { display:flex; align-items:center; gap:18px; padding:24px 28px; color:#fff; background:linear-gradient(115deg,#0b2749,#184978 62%,#2186b7); }
.ffl-access-logo { width:76px; height:76px; padding:8px; display:grid; place-items:center; flex:0 0 auto; background:#fff; border-radius:16px; }
.ffl-access-logo img { max-width:100%; max-height:100%; }
.ffl-access-card__head h2 { margin:0 0 5px; font-size:22px; font-weight:900; }
.ffl-access-card__head p { margin:0; color:rgba(255,255,255,.78); }
.ffl-access-card__body { padding:28px; }
.ffl-access-form { display:grid; gap:18px; }
.ffl-access-form label { color:#0d294d; font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.ffl-access-form .form-control { height:52px; margin-top:7px; border:1px solid #ccd8e5; border-radius:12px; box-shadow:none; font-size:16px; }
.ffl-access-form .btn { min-height:52px; border:0; border-radius:12px; font-weight:900; background:#16884a; color:#fff; }
.ffl-access-form .btn:hover,.ffl-access-form .btn:focus { background:#0f713d; color:#fff; }
.ffl-selector-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.ffl-selector-summary div { padding:16px; background:#f3f7fb; border:1px solid #dce5ef; border-radius:13px; }
.ffl-selector-summary span { display:block; color:#718096; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.ffl-selector-summary strong { display:block; margin-top:5px; color:#0d294d; font-size:17px; }
.ffl-lineups { display:grid; gap:18px; margin-top:26px; }
.ffl-lineup-card { overflow:hidden; border:1px solid #dce5ef; border-radius:18px; background:#fff; box-shadow:0 12px 30px rgba(13,41,77,.08); }
.ffl-lineup-card__head { padding:18px 22px; color:#fff; background:linear-gradient(115deg,#0b2749,#184978 62%,#2186b7); display:flex; justify-content:space-between; gap:15px; align-items:center; }
.ffl-lineup-card__head h3 { margin:0; font-size:18px; font-weight:900; }
.ffl-lineup-meta { display:flex; gap:16px; color:rgba(255,255,255,.82); font-size:12px; }
.ffl-lineup-list { margin:0; padding:22px 30px 26px; }
.ffl-lineup-player { display:grid; grid-template-columns:42px minmax(0,1fr); gap:7px; padding:5px 0; color:#263a54; }
.ffl-lineup-number { color:#657994; text-align:right; font-variant-numeric:tabular-nums; }
.ffl-lineup-player.is-coach { grid-template-columns:42px minmax(0,1fr); margin:16px 0; padding:11px 0; border-top:1px solid #dce5ef; border-bottom:1px solid #dce5ef; }
@media(max-width:767px){.ffl-access-shell{margin:20px 0 34px}.ffl-access-card{border-radius:17px}.ffl-access-card__head,.ffl-access-card__body{padding:20px}.ffl-access-logo{width:62px;height:62px}.ffl-selector-summary{grid-template-columns:1fr}.ffl-lineup-card__head{display:block}.ffl-lineup-meta{margin-top:8px;display:block}.ffl-lineup-list{padding:18px 16px 22px}.ffl-lineup-player{grid-template-columns:34px minmax(0,1fr)}.ffl-lineup-player.is-coach{grid-template-columns:34px minmax(0,1fr)}}

/* Titoli composti uniformi: tutte le parole condividono font, peso e colore. */
body .intro-text,
body .intro-text strong { color:var(--ffl-navy-900)!important; font-family:Inter,"Open Sans",Arial,sans-serif!important; font-size:13px; font-weight:850!important; letter-spacing:.1em; }

/* Titolo principale delle pagine storiche, uniformato alle pagine nuove. */
.container > .row:first-of-type > .box > [class*="col-"] > h1.intro-text,
.container > .row:first-of-type > .box > [class*="col-"] > h2.intro-text {
  margin:0 0 28px !important;
  color:var(--ffl-navy-900) !important;
  font-family:Inter,"Open Sans",Arial,sans-serif !important;
  font-size:34px !important;
  font-weight:900 !important;
  letter-spacing:-.035em !important;
  line-height:1.04 !important;
  text-align:center !important;
  text-transform:uppercase !important;
}
.container > .row:first-of-type > .box > [class*="col-"] > h1.intro-text strong,
.container > .row:first-of-type > .box > [class*="col-"] > h2.intro-text strong {
  color:inherit !important;
  font:inherit !important;
  letter-spacing:inherit !important;
}
.container > .row:first-of-type > .box > [class*="col-"] > hr:has(+ .intro-text),
.container > .row:first-of-type > .box > [class*="col-"] > .intro-text + hr {
  display:none !important;
}
@media(max-width:767px){
  .container > .row:first-of-type > .box > [class*="col-"] > h1.intro-text,
  .container > .row:first-of-type > .box > [class*="col-"] > h2.intro-text {font-size:26px!important;margin-bottom:22px!important;}
}

/* Calendario stagione: il titolo della legenda replica il titolo principale. */
.ffl-season-page .ffl-season-legend-heading > h2.intro-text {
  margin:0 0 28px!important;
  color:var(--ffl-navy-900)!important;
  font-family:Inter,"Open Sans",Arial,sans-serif!important;
  font-size:34px!important;
  font-weight:900!important;
  letter-spacing:-.02em!important;
  line-height:1.04!important;
  text-align:center!important;
  text-transform:uppercase!important;
}
.ffl-season-page .ffl-season-legend-heading > h2.intro-text strong {
  color:inherit!important;
  font:inherit!important;
  letter-spacing:inherit!important;
}
.ffl-season-page .ffl-season-legend-heading > hr {
  display:none!important;
}
@media(max-width:767px){
  .ffl-season-page .ffl-season-legend-heading > h2.intro-text {
    font-size:26px!important;
    margin-bottom:22px!important;
  }
}

/* Coppa Italia: tabella compatta e interamente visibile senza scorrimento orizzontale. */
.ffl-coppa-italia-page .table-responsive { overflow:hidden; border:1px solid var(--ffl-line); border-radius:16px; }
.ffl-coppa-italia-table { width:100%; table-layout:fixed; margin:0; }
.ffl-coppa-italia-table th,
.ffl-coppa-italia-table td { padding:13px 5px!important; text-align:center; vertical-align:middle!important; font-size:12px; line-height:1.25; overflow-wrap:anywhere; }
.ffl-coppa-italia-table thead th { color:#fff!important; background:transparent!important; border-color:rgba(255,255,255,.16)!important; font-weight:850; }
.ffl-coppa-italia-table thead tr { background:linear-gradient(115deg,#0b2749,#184978 62%,#2186b7); }
.ffl-coppa-italia-table tbody tr:nth-child(odd) { background:#f6f9fc; }
.ffl-coppa-italia-table tbody td:nth-child(2) { font-weight:750; }
@media(max-width:767px){.ffl-coppa-italia-page .box{padding:18px 8px}.ffl-coppa-italia-table th,.ffl-coppa-italia-table td{padding:9px 2px!important;font-size:7px}.ffl-coppa-italia-table th:nth-child(2),.ffl-coppa-italia-table td:nth-child(2){font-size:7.5px}}

/* Uniformazione finale: pagine storiche nello stesso sistema grafico delle pagine nuove. */
.ffl-legacy-modern-page {
  color:var(--ffl-navy-900);
  background:#eef3f8;
}
.ffl-legacy-modern-page > .container {
  margin-top:34px;
  margin-bottom:70px;
}
.ffl-legacy-modern-page > .container > .row {
  margin-right:0;
  margin-bottom:28px;
  margin-left:0;
}
.ffl-legacy-modern-page > .container > .row > .box {
  width:100%;
  margin:0;
  padding:38px;
  overflow:hidden;
  border:1px solid var(--ffl-line);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--ffl-shadow);
}
.ffl-legacy-modern-page > .container > .row > .box > [class*="col-"] {
  width:100%;
  margin-left:0;
  float:none;
}

/* Titoli: stessa gerarchia di Archivio giocatori, senza il vecchio doppio filetto. */
.ffl-legacy-modern-page h1.intro-text,
.ffl-legacy-modern-page h2.intro-text,
.ffl-access-heading h1,
.ffl-player-archive > header h1,
.albo-heading h1,
.ffl-page-heading h1,
#ffl-regulation-title {
  margin:7px 0 28px!important;
  color:var(--ffl-navy-900)!important;
  font-family:Inter,"Open Sans",Arial,sans-serif!important;
  font-size:34px!important;
  font-weight:900!important;
  letter-spacing:-.035em!important;
  line-height:1.08!important;
  text-align:center!important;
  text-transform:uppercase!important;
}
.ffl-legacy-modern-page h1.intro-text strong,
.ffl-legacy-modern-page h2.intro-text strong {
  color:inherit!important;
  font:inherit!important;
  letter-spacing:inherit!important;
}
.ffl-legacy-modern-page hr:has(+ .intro-text),
.ffl-legacy-modern-page .intro-text + hr {
  display:none!important;
}

/* Selettori e filtri: larghezza piena e testo regolare. */
.ffl-access-page--wide .ffl-access-shell {
  width:100%;
  max-width:none;
}
.ffl-access-page--wide > main.container {
  width:min(1240px,calc(100% - 40px));
  max-width:none;
}
.ffl-access-page--wide .ffl-access-form label {
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
.ffl-access-form select.form-control,
.ffl-access-form select.form-control option,
.ffl-legacy-modern-page select.form-control,
.ffl-legacy-modern-page select.form-control option,
.ffl-legacy-selector select.form-control,
.ffl-legacy-selector select.form-control option {
  font-family:Inter,"Open Sans",Arial,sans-serif;
  font-weight:400!important;
  text-transform:none!important;
}

/* Le pagine nate con il vecchio impianto a tabelle diventano pannelli moderni a piena larghezza. */
.ffl-classic-modern-page {
  color:var(--ffl-navy-900);
  background:#eef3f8!important;
}
.ffl-classic-modern-page > table {
  width:min(1240px,calc(100% - 40px))!important;
  margin:34px auto 70px!important;
  overflow:hidden;
  border:1px solid var(--ffl-line)!important;
  border-radius:22px;
  background:#fff!important;
  box-shadow:var(--ffl-shadow);
}
.ffl-classic-modern-page > table table,
.ffl-classic-modern-page table[width="965"],
.ffl-classic-modern-page table[width="933"] {
  width:100%!important;
  max-width:100%!important;
}
.ffl-classic-modern-page .titolo_pagina {
  height:auto!important;
  padding:36px 38px 24px!important;
  color:var(--ffl-navy-900)!important;
  font-family:Inter,"Open Sans",Arial,sans-serif!important;
  font-size:34px!important;
  font-weight:900!important;
  letter-spacing:-.035em!important;
  line-height:1.08!important;
  text-align:center!important;
  text-transform:uppercase!important;
}
.ffl-classic-modern-page select,
.ffl-classic-modern-page select option {
  font-family:Inter,"Open Sans",Arial,sans-serif!important;
  font-weight:400!important;
}
.ffl-classic-modern-page input,
.ffl-classic-modern-page select,
.ffl-classic-modern-page textarea {
  max-width:100%;
}
.ffl-legacy-selector {
  width:100%;
  margin:0;
  padding:22px;
  border:1px solid var(--ffl-line);
  border-radius:16px;
  background:#f5f8fb;
}
.ffl-legacy-selector p {
  margin:0 0 16px;
  color:var(--ffl-muted);
  font-weight:400;
  text-align:left!important;
}
.ffl-legacy-selector__controls {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  width:100%;
}
.ffl-legacy-selector__controls .form-control,
.ffl-legacy-selector__controls .btn {
  width:100%!important;
  height:48px;
  margin:0!important;
  border-radius:10px;
}
.ffl-legacy-selector__controls .btn {
  min-width:150px;
  border:0;
  color:#fff;
  background:var(--ffl-green);
}
.ffl-legacy-selector__result {
  margin:18px 0;
  color:var(--ffl-navy-900);
  font-weight:800;
  text-align:left;
}

/* Home: tutte le intestazioni editoriali usano il carattere del box News. */
.ffl-home-page .ffl-card-heading h2,
.ffl-home-page .ffl-weekly-card h2,
.ffl-home-page .ffl-section-heading h2,
.ffl-home-page .ffl-story-copy h2,
.ffl-home-page .ffl-auction-copy > h2,
.ffl-home-page .ffl-standings-card h2,
.ffl-home-page .ffl-news-card h2,
.ffl-home-page .ffl-competitions-card h2,
.ffl-home-page .ffl-section-heading--awards h2 {
  font-family:Inter,"Open Sans",Arial,sans-serif!important;
  font-size:clamp(24px,3vw,34px)!important;
  font-weight:880!important;
  letter-spacing:-.7px!important;
  line-height:1.12!important;
  text-transform:none!important;
}

@media(max-width:767px) {
  .ffl-access-page > main.container { width:calc(100% - 16px); }
  .ffl-access-page--wide > main.container { width:calc(100% - 16px); }
  .ffl-legacy-modern-page > .container { margin-top:20px; margin-bottom:42px; }
  .ffl-legacy-modern-page > .container > .row { margin-bottom:18px; }
  .ffl-legacy-modern-page > .container > .row > .box { padding:24px 16px; border-radius:18px; }
  .ffl-legacy-modern-page h1.intro-text,
  .ffl-legacy-modern-page h2.intro-text,
  .ffl-access-heading h1 { font-size:26px!important; margin-bottom:22px!important; }
  .ffl-player-archive > header h1,
  .albo-heading h1,
  .ffl-page-heading h1,
  #ffl-regulation-title { font-size:26px!important; margin-bottom:10px!important; }
  .ffl-legacy-selector { padding:16px; }
  .ffl-legacy-selector__controls { grid-template-columns:1fr; }
  .ffl-legacy-selector__controls .btn { min-width:0; }
  .ffl-classic-modern-page > table { width:calc(100% - 16px)!important; margin:18px auto 42px!important; border-radius:17px; }
  .ffl-classic-modern-page .titolo_pagina { padding:26px 18px 18px!important; font-size:26px!important; }
}

/* Champions League e dettaglio partita: colonne affiancate e responsive. */
.ffl-champions-pair-grid,
.ffl-match-header-grid,
.ffl-match-tables-grid {
  display:grid;
  min-width:0;
}
.ffl-champions-pair-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  margin-left:0;
  margin-right:0;
}
.ffl-match-header-grid {
  grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);
  align-items:center;
  gap:20px;
}
.ffl-match-tables-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.ffl-champions-pair-grid > [class*="col-"],
.ffl-match-header-grid > [class*="col-"],
.ffl-match-tables-grid > [class*="col-"] {
  width:auto;
  min-width:0;
  margin:0;
  padding:0;
  float:none;
}
.ffl-match-tables-grid .table-responsive,
.ffl-match-tables-grid table {
  width:100%;
  max-width:100%;
}
.ffl-match-header-grid > :nth-child(2) p {
  margin:0!important;
}
@media(max-width:767px) {
  .ffl-champions-pair-grid,
  .ffl-match-header-grid,
  .ffl-match-tables-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .ffl-match-header-grid > :nth-child(2) {
    padding:4px 0;
  }
}

/* Uniformazione globale delle pagine pubbliche (Home esclusa).
   Mantiene il carattere moderno già adottato dal restyling ed elimina
   le vecchie famiglie tipografiche dai contenuti e dai controlli. */
body:not(.ffl-home-page),
body:not(.ffl-home-page) table,
body:not(.ffl-home-page) input,
body:not(.ffl-home-page) button,
body:not(.ffl-home-page) select,
body:not(.ffl-home-page) textarea,
body:not(.ffl-home-page) option,
body:not(.ffl-home-page) h1,
body:not(.ffl-home-page) h2,
body:not(.ffl-home-page) h3,
body:not(.ffl-home-page) h4,
body:not(.ffl-home-page) h5,
body:not(.ffl-home-page) h6,
body:not(.ffl-home-page) .intro-text,
body:not(.ffl-home-page) .titolo_pagina {
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
}

/* Riduzione globale di 2px della scala base dei titoli interni. */
body:not(.ffl-home-page) h1 { font-size:34px; }
body:not(.ffl-home-page) h2 { font-size:28px; }
body:not(.ffl-home-page) h3 { font-size:22px; }
body:not(.ffl-home-page) h4 { font-size:16px; }
body:not(.ffl-home-page) h5 { font-size:12px; }
body:not(.ffl-home-page) h6 { font-size:10px; }

/* Tutti i titoli delle pagine interne sono centrati e condividono
   lo stesso blu del sistema grafico attuale. */
body:not(.ffl-home-page) h1,
body:not(.ffl-home-page) h2,
body:not(.ffl-home-page) h3,
body:not(.ffl-home-page) h4,
body:not(.ffl-home-page) h5,
body:not(.ffl-home-page) h6,
body:not(.ffl-home-page) .titolo_pagina,
body:not(.ffl-home-page) .ffl-champions-group-title {
  color:var(--ffl-navy-900)!important;
  text-align:center!important;
}

/* Archivio formazioni: il nome squadra resta leggibile sulla testata blu. */
body.ffl-access-page .ffl-lineup-card__head h3 {
  color:#fff!important;
  text-align:left!important;
}

/* Calendario campionato: testata di ogni giornata uguale alle altre tabelle. */
.ffl-league-calendar-page .ffl-league-calendar-heading {
  background:linear-gradient(110deg,#123d6d,#2878ad)!important;
}
.ffl-league-calendar-page .ffl-league-calendar-heading > td {
  padding:14px 16px!important;
  border-color:rgba(255,255,255,.16)!important;
  color:#fff!important;
  background:transparent!important;
  font-weight:850!important;
  letter-spacing:.04em;
  text-align:center!important;
}

/* Le testate delle giornate nelle coppe usano il gradiente comune.
   Le righe degli incontri sottostanti conservano lo sfondo alternato. */
.ffl-cup-page table.table-bordered > tbody > tr:first-child:has(> td[colspan]),
.ffl-cup-page table.table-bordered > tr:first-child:has(> td[colspan]),
.ffl-cup-page table.table-bordered > tbody > tr:first-child[style*="font-weight"] {
  background:linear-gradient(110deg,#123d6d,#2878ad)!important;
}
.ffl-cup-page table.table-bordered > tbody > tr:first-child > td[colspan],
.ffl-cup-page table.table-bordered > tr:first-child > td[colspan],
.ffl-cup-page table.table-bordered > tbody > tr:first-child[style*="font-weight"] > td {
  padding:14px 16px!important;
  border-color:rgba(255,255,255,.16)!important;
  color:#fff!important;
  background:transparent!important;
  font-weight:850!important;
  letter-spacing:.04em;
  text-align:center!important;
}

/* Home: titoli editoriali richiesti centrati e in maiuscolo. */
.ffl-home-page .ffl-story-copy--history > h2,
.ffl-home-page .ffl-auction-copy > h2,
.ffl-home-page .ffl-section-heading--awards h2,
.ffl-home-page .ffl-sponsors #ffl-sponsor-title {
  width:100%;
  text-align:center!important;
  text-transform:uppercase!important;
}
.ffl-home-page .ffl-section-heading--awards,
.ffl-home-page .ffl-sponsors .ffl-section-heading {
  width:100%;
  max-width:none;
  display:block;
  text-align:center;
}

/* Correzioni esclusivamente mobile: il layout desktop resta invariato. */
@media (max-width:767px) {
  /* Spazi laterali e verticali più equilibrati nelle pagine storiche. */
  .ffl-legacy-modern-page > .container {
    width:calc(100% - 16px);
    padding-right:0;
    padding-left:0;
    margin-bottom:20px;
  }
  .ffl-legacy-modern-page > .container > .row > .box {
    padding:22px 12px;
  }
  .ffl-sponsors {
    padding:32px 0 28px;
  }

  /* Tabelle semplici: nessun contenuto oltre il bordo del box. */
  .ffl-legacy-modern-page .table-responsive:not(.ffl-season-table-wrap),
  .ffl-legacy-modern-page .ffl-table-frame {
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .ffl-legacy-modern-page .table-responsive:not(.ffl-season-table-wrap) > table,
  .ffl-legacy-modern-page table.table-bordered {
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    table-layout:fixed;
  }
  .ffl-legacy-modern-page table.table-bordered td,
  .ffl-legacy-modern-page table.table-bordered th {
    padding:10px 6px!important;
    font-size:11px;
    line-height:1.35;
    white-space:normal!important;
    overflow-wrap:break-word;
    word-break:normal;
  }

  /* Le giornate del calendario campionato hanno una vera testata mobile. */
  .ffl-league-calendar-page table.table-bordered > tbody > tr:first-child:has(> td[colspan]),
  .ffl-league-calendar-page table.table-bordered > tr:first-child:has(> td[colspan]) {
    background:linear-gradient(110deg,#123d6d,#2878ad)!important;
  }
  .ffl-league-calendar-page table.table-bordered > tbody > tr:first-child > td[colspan],
  .ffl-league-calendar-page table.table-bordered > tr:first-child > td[colspan] {
    padding:13px 8px!important;
    border-color:rgba(255,255,255,.16)!important;
    color:#fff!important;
    background:transparent!important;
    font-weight:850;
    text-align:center!important;
  }

  /* Coppe: nomi completi su più righe e risultati sempre visibili. */
  .ffl-cup-page table.table-bordered td,
  .ffl-cup-page table.table-bordered th {
    padding:10px 5px!important;
    font-size:10.5px;
    text-align:center;
  }
  .ffl-cup-page table.table-bordered tr > :last-child:not(:first-child) {
    min-width:0;
  }
  .ffl-champions-page .ffl-champions-pair-grid {
    gap:16px;
  }
  .ffl-champions-page .ffl-champions-matchday {
    margin-bottom:14px;
  }

  /* Supercoppe: spazio sufficiente ai nomi, risultato compatto. */
  .ffl-cup-page table.table-bordered.text-center td:nth-child(1),
  .ffl-cup-page table.table-bordered.text-center td:nth-child(2) {
    width:43%!important;
  }
  .ffl-cup-page table.table-bordered.text-center td:nth-child(3) {
    width:14%!important;
  }

  /* Classifica cannonieri: tre colonne leggibili senza scorrimento. */
  .ffl-top-scorer-page .table-responsive {
    overflow:hidden!important;
  }
  .ffl-top-scorer-page table.table-bordered td:nth-child(1) { width:38%!important; }
  .ffl-top-scorer-page table.table-bordered td:nth-child(2) { width:47%!important; }
  .ffl-top-scorer-page table.table-bordered td:nth-child(3) { width:15%!important; }
  .ffl-top-scorer-page table.table-bordered td {
    padding:10px 4px!important;
    font-size:9.5px;
  }

  /* Calendario stagione: undici colonne consultabili senza sovrapposizioni. */
  .ffl-season-page .box {
    padding-right:12px;
    padding-left:12px;
  }
  .ffl-season-table-wrap {
    width:100%;
    max-width:100%;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  .ffl-season-table {
    width:960px!important;
    min-width:960px!important;
    table-layout:fixed;
  }
  .ffl-season-table td {
    padding:8px 5px!important;
    font-size:10px!important;
    overflow-wrap:normal;
    white-space:normal;
  }
  .ffl-season-table tr:first-child td {
    padding:10px 5px!important;
    font-size:9px!important;
  }

  /* Archivio giocatori: su smartphone restano le informazioni essenziali. */
  .ffl-player-archive-page > main.container {
    width:100%;
    padding-right:12px;
    padding-left:12px;
  }
  .ffl-player-archive-page .ffl-player-archive {
    margin:20px 0 36px;
    padding:22px 12px;
  }
  .ffl-public-player-table {
    width:100%!important;
    table-layout:fixed;
  }
  .ffl-public-player-table th:nth-child(n+3),
  .ffl-public-player-table td:nth-child(n+3) {
    display:none!important;
  }
  .ffl-public-player-table th:nth-child(1),
  .ffl-public-player-table td:nth-child(1) { width:68%!important; }
  .ffl-public-player-table th:nth-child(2),
  .ffl-public-player-table td:nth-child(2) { width:32%!important; }
  .ffl-public-player-table th,
  .ffl-public-player-table td {
    padding:11px 8px!important;
    font-size:11px;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .ffl-public-player-table td:first-child strong {
    font-size:12px;
  }
  .ffl-public-player-table td:nth-child(2) {
    font-size:10px;
  }

  /* Dettaglio partita: cinque colonne sempre comprese nel box. */
  .ffl-match-page .ffl-match-tables-grid {
    gap:18px;
  }
  .ffl-match-page .ffl-table-frame {
    overflow:hidden!important;
  }
  .ffl-match-page .ffl-lineup-table th,
  .ffl-match-page .ffl-lineup-table td {
    padding:9px 3px!important;
    font-size:10.5px;
  }
  .ffl-match-page .ffl-lineup-table th:nth-child(n+3) {
    padding-right:1px!important;
    padding-left:1px!important;
    font-size:8px!important;
    letter-spacing:-.15px;
  }
  .ffl-match-page .ffl-lineup-table td:nth-child(2) {
    font-size:10px;
  }

  /* Elenco squadre: griglia compatta a due colonne. */
  .ffl-teams-page .ffl-teams-list {
    width:100%;
    margin-top:24px!important;
    padding:0;
  }
  .ffl-teams-page .ffl-teams-list > .row {
    margin-right:0;
    margin-left:0;
  }
  .ffl-teams-page .ffl-teams-list > .row > [class*="col-"] {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px 14px;
    margin:0;
    padding:0!important;
  }
  .ffl-teams-page .ffl-teams-list__item {
    width:auto!important;
    min-height:154px;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    margin:0!important;
    float:none!important;
    text-align:center;
    font-size:12px!important;
  }
  .ffl-teams-page .ffl-teams-list__item p {
    width:100%;
    margin:0;
    text-align:center;
    overflow-wrap:anywhere;
  }
  .ffl-teams-page .ffl-teams-list__item p:first-child {
    height:104px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:10px;
  }
  .ffl-teams-page .ffl-teams-list__item a {
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .ffl-teams-page .ffl-teams-list__item img {
    display:block;
    width:100%;
    max-width:104px;
    height:104px;
    margin:0 auto;
    object-fit:contain;
  }

  /* Scheda squadra: testo storico più compatto e naturale su iPhone. */
  .ffl-team-page .ffl-team-history {
    padding:20px 18px;
  }
  .ffl-team-page .ffl-team-history h2 {
    margin-bottom:14px;
    font-size:24px!important;
  }
  .ffl-team-page .ffl-rich-text,
  .ffl-team-page .ffl-rich-text p {
    font-size:14px;
    line-height:1.6;
    text-align:left!important;
  }
  .ffl-team-page .ffl-team-overview,
  .ffl-team-page .ffl-team-section {
    margin-bottom:32px;
  }

  /* Classifica: elimina il grande vuoto prima degli sponsor. */
  .ffl-ranking-page .ffl-page-main {
    padding-bottom:28px;
  }
}

/* Priorità finale alle due tabelle mobili che hanno regole storiche dedicate. */
@media (max-width:767px) {
  .ffl-season-page .ffl-season-table-wrap {
    width:100%;
    max-width:100%;
    display:block;
    overflow-x:auto!important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  .ffl-season-page .ffl-season-table {
    width:1320px!important;
    min-width:1320px!important;
    max-width:none!important;
    table-layout:fixed;
  }
  .ffl-season-page .ffl-season-table td,
  .ffl-season-page .ffl-season-table tr:first-child td {
    white-space:normal!important;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .ffl-season-page .ffl-season-table tr:first-child td {
    padding:12px 7px!important;
    font-size:10px!important;
    line-height:1.25;
  }

  .ffl-top-scorer-page table.table-bordered td:nth-child(1) { width:34%!important; }
  .ffl-top-scorer-page table.table-bordered td:nth-child(2) { width:50%!important; }
  .ffl-top-scorer-page table.table-bordered td:nth-child(3) { width:16%!important; }
  .ffl-top-scorer-page table.table-bordered tr:first-child td:nth-child(3) {
    white-space:nowrap!important;
  }

  /* Archivio giornate: testo perfettamente centrato nel pulsante. */
  body.ffl-archive-days-page .ffl-archive-matches-table .btn {
    height:52px;
    min-height:52px;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    padding:0 5px!important;
    text-align:center!important;
  }

  /* Champions League: ultima fase, classifica e finale condividono la stessa cornice. */
  .ffl-champions-page .ffl-champions-final-matchday,
  .ffl-champions-page .ffl-champions-summary-frame {
    width:100%;
    max-width:100%;
    overflow:hidden;
    border:1px solid var(--ffl-line,#dce5ef)!important;
    border-radius:14px;
    background:#fff;
  }
  .ffl-champions-page .ffl-champions-final-matchday {
    margin-bottom:16px;
  }
  .ffl-champions-page .ffl-champions-final-matchday:last-child {
    margin-bottom:0;
  }
  .ffl-champions-page .ffl-champions-final-stage-table,
  .ffl-champions-page .ffl-champions-stage-ranking-table,
  .ffl-champions-page .ffl-champions-final-table {
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    border:0!important;
    border-collapse:collapse!important;
    table-layout:fixed;
  }
  .ffl-champions-page .ffl-champions-final-stage-table td,
  .ffl-champions-page .ffl-champions-stage-ranking-table td,
  .ffl-champions-page .ffl-champions-final-table td {
    border:1px solid var(--ffl-line,#dce5ef)!important;
    vertical-align:middle!important;
  }
  .ffl-champions-page .ffl-champions-final-stage-table tr:not(:first-child),
  .ffl-champions-page .ffl-champions-final-stage-table tr:not(:first-child) > td,
  .ffl-champions-page .ffl-champions-final-table tr,
  .ffl-champions-page .ffl-champions-final-table td {
    height:64px;
  }
  .ffl-champions-page .ffl-champions-final-stage-table tr:not(:first-child) > td,
  .ffl-champions-page .ffl-champions-final-table td {
    padding:7px 5px!important;
    line-height:1.3;
    white-space:normal!important;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .ffl-champions-page .ffl-champions-stage-ranking-table tr,
  .ffl-champions-page .ffl-champions-stage-ranking-table td {
    height:52px;
  }
}

/* Sistema unico per tutte le tabelle pubbliche: cornice e quattro angoli arrotondati. */
body table.table,
body table.gridtable,
body table.albo-table,
body table.ffl-public-player-table,
body table.ffl-ranking-table {
  overflow:hidden;
  border:1px solid var(--ffl-line,#dce5ef)!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  border-radius:14px!important;
  background:#fff;
}

body .table-responsive,
body .mobile-scroll,
body .ffl-table-frame {
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  border:1px solid var(--ffl-line,#dce5ef);
  border-radius:14px!important;
  background:#fff;
  -webkit-overflow-scrolling:touch;
}

body .table-responsive > table.table,
body .mobile-scroll > table.table,
body .ffl-table-frame > table.table {
  margin-bottom:0;
  border:0!important;
  border-radius:13px!important;
}

body table.table > thead:first-child > tr:first-child > :first-child,
body table.table > tbody:first-child > tr:first-child > :first-child,
body table.gridtable > thead:first-child > tr:first-child > :first-child,
body table.gridtable > tbody:first-child > tr:first-child > :first-child {
  border-top-left-radius:13px!important;
}
body table.table > thead:first-child > tr:first-child > :last-child,
body table.table > tbody:first-child > tr:first-child > :last-child,
body table.gridtable > thead:first-child > tr:first-child > :last-child,
body table.gridtable > tbody:first-child > tr:first-child > :last-child {
  border-top-right-radius:13px!important;
}
body table.table > tbody:last-child > tr:last-child > :first-child,
body table.gridtable > tbody:last-child > tr:last-child > :first-child {
  border-bottom-left-radius:13px!important;
}
body table.table > tbody:last-child > tr:last-child > :last-child,
body table.gridtable > tbody:last-child > tr:last-child > :last-child {
  border-bottom-right-radius:13px!important;
}

/* Champions League: cornice identica e realmente arrotondata in ogni fase. */
.ffl-champions-page .ffl-champions-standings-frame,
.ffl-champions-page .ffl-champions-matchday,
.ffl-champions-page .ffl-champions-final-matchday,
.ffl-champions-page .ffl-champions-summary-frame {
  width:100%;
  max-width:100%;
  overflow:hidden;
  border:1px solid var(--ffl-line,#dce5ef)!important;
  border-radius:14px!important;
  background:#fff;
  clip-path:inset(0 round 14px);
}

.ffl-champions-page .ffl-champions-standings-frame > table,
.ffl-champions-page .ffl-champions-matchday > table,
.ffl-champions-page .ffl-champions-final-matchday > table,
.ffl-champions-page .ffl-champions-summary-frame > table {
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  border:0!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  border-radius:13px!important;
}

.ffl-champions-page .ffl-champions-final-matchday {
  margin-bottom:18px;
}
.ffl-champions-page .ffl-champions-final-matchday:last-child {
  margin-bottom:0;
}

/* Dettaglio partita: nuova visualizzazione professionale della formazione. */
.ffl-match-page .ffl-formation-viewer {
  width:min(100%,880px);
  margin:0 auto;
  padding:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  color:#fff;
  background:linear-gradient(145deg,#060b10 0%,#0a141c 52%,#071018 100%);
  box-shadow:0 24px 55px rgba(5,20,34,.24);
}

.ffl-match-page .ffl-formation-switch {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px;
  margin:0 auto 18px;
  padding:4px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:#14212a;
}

.ffl-match-page .ffl-formation-switch__button {
  min-width:0;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:8px 16px;
  overflow:hidden;
  border:0;
  border-radius:999px;
  color:#dce5ec;
  background:transparent;
  font:800 13px/1.2 Inter,"Open Sans",Arial,sans-serif;
  transition:color .55s ease,background .55s ease,transform .55s ease,box-shadow .55s ease;
}

.ffl-match-page .ffl-formation-switch__button:hover,
.ffl-match-page .ffl-formation-switch__button:focus {
  color:#fff;
  outline:0;
}

.ffl-match-page .ffl-formation-switch__button.is-active {
  color:#10233d;
  background:linear-gradient(115deg,#f7e8a3,#e9cf6c);
  box-shadow:0 8px 22px rgba(222,190,72,.22);
}

.ffl-match-page .ffl-formation-switch__button:active {
  transform:scale(.985);
}

.ffl-match-page .ffl-formation-switch__button img {
  width:34px;
  height:34px;
  flex:0 0 auto;
  object-fit:contain;
}

.ffl-match-page .ffl-formation-switch__button span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ffl-match-page .ffl-formation-panels {
  display:grid;
}

.ffl-match-page .ffl-formation-panel {
  min-width:0;
  grid-area:1/1;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(26px) scale(.99);
  transition:opacity .85s ease,transform .85s cubic-bezier(.22,.72,.25,1),visibility .85s;
}

.ffl-match-page .ffl-formation-panel.is-active {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(0) scale(1);
}

.ffl-match-page .ffl-modern-pitch {
  position:relative;
  width:min(100%,760px);
  aspect-ratio:3/4;
  margin:0 auto;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.2);
  border-radius:22px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),rgba(0,0,0,.08)),
    repeating-linear-gradient(0deg,#257840 0,#257840 12.5%,#2b8246 12.5%,#2b8246 25%);
  box-shadow:inset 0 0 45px rgba(0,0,0,.16);
  isolation:isolate;
}

.ffl-match-page .ffl-modern-pitch::after {
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.07),transparent 42%);
  content:"";
}

.ffl-match-page .ffl-pitch-markings {
  position:absolute;
  inset:4.5%;
  z-index:1;
  border:2px solid rgba(255,255,255,.38);
  pointer-events:none;
}

.ffl-match-page .ffl-pitch-halfway {
  position:absolute;
  top:50%;
  right:0;
  left:0;
  border-top:2px solid rgba(255,255,255,.36);
}

.ffl-match-page .ffl-pitch-circle {
  position:absolute;
  top:50%;
  left:50%;
  width:24%;
  aspect-ratio:1;
  border:2px solid rgba(255,255,255,.36);
  border-radius:50%;
  transform:translate(-50%,-50%);
}

.ffl-match-page .ffl-pitch-circle::after {
  position:absolute;
  top:50%;
  left:50%;
  width:6px;
  height:6px;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  transform:translate(-50%,-50%);
  content:"";
}

.ffl-match-page .ffl-pitch-box {
  position:absolute;
  left:50%;
  width:42%;
  height:15%;
  border:2px solid rgba(255,255,255,.36);
  transform:translateX(-50%);
}

.ffl-match-page .ffl-pitch-box--top {
  top:-2px;
  border-top:0;
}

.ffl-match-page .ffl-pitch-box--bottom {
  bottom:-2px;
  border-bottom:0;
}

.ffl-match-page .ffl-pitch-team-label {
  position:absolute;
  top:2.3%;
  left:50%;
  z-index:4;
  max-width:70%;
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:#fff;
  background:rgba(5,24,15,.72);
  box-shadow:0 8px 20px rgba(0,0,0,.15);
  transform:translateX(-50%);
  backdrop-filter:blur(8px);
}

.ffl-match-page .ffl-pitch-team-label img {
  width:27px;
  height:27px;
  flex:0 0 auto;
  object-fit:contain;
}

.ffl-match-page .ffl-pitch-team-label strong {
  min-width:0;
  overflow:hidden;
  font:850 11px/1.15 Inter,"Open Sans",Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ffl-match-page .ffl-pitch-players {
  position:absolute;
  inset:0;
  z-index:3;
}

.ffl-match-page .ffl-pitch-line {
  position:absolute;
  right:4.5%;
  left:4.5%;
  display:grid;
  grid-template-columns:repeat(var(--players),minmax(0,1fr));
  align-items:start;
  justify-items:center;
}

.ffl-match-page .ffl-pitch-line--attack { top:13%; }
.ffl-match-page .ffl-pitch-line--midfield { top:37%; }
.ffl-match-page .ffl-pitch-line--defence { top:61%; }
.ffl-match-page .ffl-pitch-line--goalkeeper { top:84.5%; }

.ffl-match-page .ffl-pitch-player {
  position:relative;
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.ffl-match-page .ffl-pitch-shirt {
  position:relative;
  width:clamp(42px,7.2vw,72px);
  height:clamp(42px,7.2vw,72px);
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 18px rgba(0,0,0,.24);
}

.ffl-match-page .ffl-pitch-shirt > img {
  width:78%;
  height:78%;
  object-fit:contain;
  filter:drop-shadow(0 4px 4px rgba(0,0,0,.18));
}

.ffl-match-page .ffl-pitch-rating,
.ffl-match-page .ffl-pitch-captain {
  position:absolute;
  z-index:2;
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border:2px solid #fff;
  border-radius:999px;
  color:#10243e;
  background:#f6d55f;
  font:900 10px/1 Inter,"Open Sans",Arial,sans-serif;
  box-shadow:0 3px 8px rgba(0,0,0,.18);
}

.ffl-match-page .ffl-pitch-rating {
  top:auto;
  bottom:-6px;
  left:-8px;
  padding:0 5px;
}

.ffl-match-page .ffl-pitch-captain {
  top:auto;
  bottom:-6px;
  right:-8px;
  min-width:24px;
  color:#fff;
  background:#173d6c;
}

.ffl-match-page .ffl-pitch-player-name {
  max-width:92%;
  margin-top:7px;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:0;
  color:#fff;
  background:transparent;
  font:800 clamp(8px,1.35vw,12px)/1.15 Inter,"Open Sans",Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-shadow:0 2px 5px rgba(0,0,0,.8);
  box-shadow:none;
  backdrop-filter:none;
}

.ffl-match-page .ffl-pitch-events {
  position:absolute;
  top:-9px;
  z-index:4;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.ffl-match-page .ffl-pitch-events--left { left:-11px; }
.ffl-match-page .ffl-pitch-events--right { right:-11px; }

.ffl-match-page .ffl-pitch-events img,
.ffl-match-page .ffl-pitch-substitution .sostituto > img {
  width:18px;
  height:18px;
  padding:2px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:#fff;
  object-fit:contain;
  box-shadow:0 2px 7px rgba(0,0,0,.2);
}

.ffl-match-page .ffl-pitch-substitution {
  position:absolute;
  top:100%;
  left:50%;
  z-index:5;
  width:max-content;
  max-width:105%;
  margin-top:22px;
  transform:translateX(-50%);
}

.ffl-match-page .ffl-pitch-substitution .sostituto {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
  color:#fff;
  font:750 7px/1.1 Inter,"Open Sans",Arial,sans-serif;
}

.ffl-match-page .ffl-pitch-substitution .bolla-sostituto {
  max-width:100%;
  display:flex;
  align-items:center;
  gap:3px;
  overflow:hidden;
  color:#fff;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-shadow:0 2px 4px rgba(0,0,0,.75);
}

.ffl-match-page .ffl-pitch-substitution .bolla-sostituto img {
  width:13px !important;
  height:13px;
  flex:0 0 auto;
  object-fit:contain;
}

.ffl-match-page .ffl-pitch-substitution [style*="clear"] { display:none; }

.ffl-match-page .ffl-pitch-sideline {
  width:min(100%,760px);
  min-height:58px;
  margin:10px auto 0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:17px;
  color:#fff;
  background:linear-gradient(120deg,#10283a,#07151f);
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}

.ffl-match-page .ffl-pitch-module,
.ffl-match-page .ffl-pitch-status {
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  font:850 9px/1 Inter,"Open Sans",Arial,sans-serif;
  white-space:nowrap;
}

.ffl-match-page .ffl-pitch-coach {
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}

.ffl-match-page .ffl-pitch-coach > img {
  width:34px;
  height:34px;
  flex:0 0 auto;
  object-fit:contain;
}

.ffl-match-page .ffl-pitch-coach strong {
  min-width:0;
  overflow:hidden;
  font:850 11px/1.15 Inter,"Open Sans",Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ffl-match-page .ffl-pitch-coach span {
  padding:4px 6px;
  border-radius:7px;
  color:#dfe8ef;
  background:rgba(255,255,255,.07);
  font:700 8px/1 Inter,"Open Sans",Arial,sans-serif;
  white-space:nowrap;
}

@media (max-width:767px) {
  .ffl-match-page .ffl-formation-viewer {
    width:100%;
    padding:9px;
    border-radius:19px;
  }
  .ffl-match-page .ffl-formation-switch {
    margin-bottom:10px;
  }
  .ffl-match-page .ffl-formation-switch__button {
    min-height:48px;
    gap:6px;
    padding:6px 8px;
    font-size:9.5px;
  }
  .ffl-match-page .ffl-formation-switch__button img {
    width:25px;
    height:25px;
  }
  .ffl-match-page .ffl-modern-pitch {
    border-radius:15px;
  }
  .ffl-match-page .ffl-pitch-shirt {
    width:clamp(34px,11vw,46px);
    height:clamp(34px,11vw,46px);
  }
  .ffl-match-page .ffl-pitch-rating,
  .ffl-match-page .ffl-pitch-captain {
    min-width:19px;
    height:19px;
    border-width:1px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-captain {
    min-width:19px;
  }
  .ffl-match-page .ffl-pitch-rating { top:auto; bottom:-5px; left:-6px; }
  .ffl-match-page .ffl-pitch-captain { top:auto; bottom:-5px; right:-6px; }
  .ffl-match-page .ffl-pitch-player-name {
    max-width:96%;
    margin-top:5px;
    padding:0;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-events {
    top:-7px;
    gap:1px;
  }
  .ffl-match-page .ffl-pitch-events--left { left:-8px; }
  .ffl-match-page .ffl-pitch-events--right { right:-8px; }
  .ffl-match-page .ffl-pitch-events img,
  .ffl-match-page .ffl-pitch-substitution .sostituto > img {
    width:13px;
    height:13px;
    padding:1px;
  }
  .ffl-match-page .ffl-pitch-substitution {
    max-width:118%;
    margin-top:17px;
  }
  .ffl-match-page .ffl-pitch-substitution .sostituto {
    font-size:5.5px;
  }
  .ffl-match-page .ffl-pitch-substitution .bolla-sostituto img {
    width:10px !important;
    height:10px;
  }
  .ffl-match-page .ffl-pitch-sideline {
    min-height:50px;
    grid-template-columns:auto minmax(0,1fr);
    gap:6px;
    margin-top:7px;
    padding:7px;
    border-radius:13px;
  }
  .ffl-match-page .ffl-pitch-module,
  .ffl-match-page .ffl-pitch-status {
    padding:5px 7px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-status { display:none; }
  .ffl-match-page .ffl-pitch-coach {
    gap:4px;
    justify-content:flex-start;
  }
  .ffl-match-page .ffl-pitch-coach > img {
    width:27px;
    height:27px;
  }
  .ffl-match-page .ffl-pitch-coach strong { font-size:8px; }
  .ffl-match-page .ffl-pitch-coach span {
    padding:3px;
    font-size:6px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .ffl-match-page .ffl-formation-panel,
  .ffl-match-page .ffl-formation-switch__button {
    transition:none;
  }
}

/* Dettaglio partita: rifinitura campo, indicatori e cambio formazione. */
.ffl-match-page .ffl-formation-switch {
  position:relative;
  isolation:isolate;
}

.ffl-match-page .ffl-formation-switch::before {
  position:absolute;
  top:4px;
  bottom:4px;
  left:4px;
  z-index:0;
  width:calc(50% - 4px);
  border-radius:999px;
  background:linear-gradient(115deg,#f7e8a3,#e9cf6c);
  box-shadow:0 8px 22px rgba(222,190,72,.22);
  transform:translateX(0);
  transition:transform .95s cubic-bezier(.22,.72,.25,1);
  content:"";
}

.ffl-match-page .ffl-formation-switch.is-second-active::before {
  transform:translateX(100%);
}

.ffl-match-page .ffl-formation-switch__button {
  position:relative;
  z-index:1;
  transition:color .75s ease,transform .45s ease;
}

.ffl-match-page .ffl-formation-switch__button.is-active {
  background:transparent;
  box-shadow:none;
}

.ffl-match-page .ffl-formation-panels {
  overflow:hidden;
}

.ffl-match-page .ffl-formation-panel {
  opacity:0;
  visibility:visible;
  transform:translateX(105%);
  transition:opacity .82s ease,transform 1s cubic-bezier(.22,.72,.25,1);
  will-change:transform,opacity;
}

.ffl-match-page .ffl-formation-panel.is-before { transform:translateX(-105%); }
.ffl-match-page .ffl-formation-panel.is-after { transform:translateX(105%); }
.ffl-match-page .ffl-formation-panel.is-active {
  opacity:1;
  transform:translateX(0);
}

.ffl-match-page .ffl-pitch-markings {
  overflow:hidden;
}

.ffl-match-page .ffl-pitch-box {
  width:50%;
  height:18%;
}

.ffl-match-page .ffl-pitch-goal-area {
  position:absolute;
  left:50%;
  width:26%;
  height:7.5%;
  border:2px solid rgba(255,255,255,.38);
  transform:translateX(-50%);
}

.ffl-match-page .ffl-pitch-goal-area--top {
  top:-2px;
  border-top:0;
}

.ffl-match-page .ffl-pitch-goal-area--bottom {
  bottom:-2px;
  border-bottom:0;
}

.ffl-match-page .ffl-pitch-penalty-arc {
  position:absolute;
  left:50%;
  width:18%;
  height:6.75%;
  border:2px solid rgba(255,255,255,.38);
  transform:translateX(-50%);
}

.ffl-match-page .ffl-pitch-penalty-arc--top {
  top:17.8%;
  border-top:0;
  border-radius:0 0 999px 999px;
}

.ffl-match-page .ffl-pitch-penalty-arc--bottom {
  bottom:17.8%;
  border-bottom:0;
  border-radius:999px 999px 0 0;
}

.ffl-match-page .ffl-pitch-penalty-spot {
  position:absolute;
  left:50%;
  width:6px;
  height:6px;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  transform:translateX(-50%);
}

.ffl-match-page .ffl-pitch-penalty-spot--top { top:12%; }
.ffl-match-page .ffl-pitch-penalty-spot--bottom { bottom:12%; }

.ffl-match-page .ffl-pitch-corner {
  position:absolute;
  width:4%;
  aspect-ratio:1;
  border:2px solid rgba(255,255,255,.38);
}

.ffl-match-page .ffl-pitch-corner--tl {
  top:-2px;
  left:-2px;
  border-top:0;
  border-left:0;
  border-radius:0 0 100% 0;
}

.ffl-match-page .ffl-pitch-corner--tr {
  top:-2px;
  right:-2px;
  border-top:0;
  border-right:0;
  border-radius:0 0 0 100%;
}

.ffl-match-page .ffl-pitch-corner--bl {
  bottom:-2px;
  left:-2px;
  border-bottom:0;
  border-left:0;
  border-radius:0 100% 0 0;
}

.ffl-match-page .ffl-pitch-corner--br {
  right:-2px;
  bottom:-2px;
  border-right:0;
  border-bottom:0;
  border-radius:100% 0 0 0;
}

.ffl-match-page .ffl-pitch-shirt,
.ffl-match-page .ffl-pitch-coach-avatar {
  border:2px solid #05090c;
  box-shadow:0 7px 17px rgba(0,0,0,.22),0 0 0 1px rgba(255,255,255,.12);
}

.ffl-match-page .ffl-pitch-events,
.ffl-match-page .ffl-pitch-coach-events {
  position:absolute;
  top:-7px;
  right:-14px;
  left:auto;
  z-index:5;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.ffl-match-page .ffl-pitch-event {
  width:24px;
  height:24px;
  display:grid;
  flex:0 0 auto;
  place-items:center;
  padding:2px;
  border:2px solid;
  border-radius:50%;
  color:#17324c;
  background:#fff;
  font:900 9px/1 Inter,"Open Sans",Arial,sans-serif;
  box-shadow:0 3px 8px rgba(0,0,0,.18);
}

.ffl-match-page .ffl-pitch-event.is-bonus { border-color:#35c66a; }
.ffl-match-page .ffl-pitch-event.is-handicap { border-color:#df4b57; }

.ffl-match-page .ffl-pitch-event img {
  width:100%;
  height:100%;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  object-fit:contain;
  box-shadow:none;
}

.ffl-match-page .ffl-pitch-player-name {
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:3px;
  text-shadow:none;
}

.ffl-match-page .ffl-pitch-player-name .ffl-pitch-captain {
  position:static;
  min-width:17px;
  width:17px;
  height:17px;
  display:inline-grid;
  flex:0 0 auto;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.62);
  border-radius:50%;
  color:#fff;
  background:#68727b;
  font-family:inherit;
  font-size:inherit;
  font-style:normal;
  font-weight:900;
  line-height:inherit;
  box-shadow:none;
}

.ffl-match-page .ffl-pitch-coach-event-icon::before {
  display:block;
  color:#17324c;
  font:900 15px/1 Arial,sans-serif;
  content:"+";
}

.ffl-match-page .ffl-pitch-coach-event-icon.is-handicap::before {
  color:#8f1f2a;
  content:"−";
}

.ffl-match-page .ffl-pitch-substitution .bolla-sostituto {
  text-shadow:none;
}

.ffl-match-page .ffl-pitch-sideline {
  min-height:112px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 22px;
}

.ffl-match-page .ffl-pitch-module {
  padding:12px 18px;
  font-size:15px;
}

.ffl-match-page .ffl-pitch-coach {
  margin-left:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}

.ffl-match-page .ffl-pitch-coach-avatar {
  position:relative;
  width:68px;
  height:68px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.96);
}

.ffl-match-page .ffl-pitch-coach-avatar > img {
  width:78%;
  height:78%;
  object-fit:contain;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.16));
}

.ffl-match-page .ffl-pitch-coach .ffl-pitch-rating {
  min-width:24px;
  height:24px;
  padding:0 5px;
  border:2px solid #fff;
  color:#10243e;
  background:#f6d55f;
  font:900 10px/1 Inter,"Open Sans",Arial,sans-serif;
}

.ffl-match-page .ffl-pitch-coach .ffl-pitch-event {
  width:24px;
  height:24px;
  padding:2px;
  border-width:2px;
  border-radius:50%;
  color:#17324c;
  background:#fff;
  font:900 9px/1 Inter,"Open Sans",Arial,sans-serif;
}

.ffl-match-page .ffl-pitch-coach strong {
  max-width:150px;
  color:#fff;
  font-size:11px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media (max-width:767px) {
  .ffl-match-page .ffl-formation-switch::before {
    top:4px;
    bottom:4px;
  }
  .ffl-match-page .ffl-formation-panel {
    transition-duration:.9s;
  }
  .ffl-match-page .ffl-pitch-event {
    width:19px;
    height:19px;
    padding:1px;
    border-width:1.5px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-player-name .ffl-pitch-captain {
    min-width:13px;
    width:13px;
    height:13px;
    font-size:6px;
  }
  .ffl-match-page .ffl-pitch-coach-event-icon::before {
    font-size:11px;
  }
  .ffl-match-page .ffl-pitch-events {
    top:-6px;
    right:-10px;
    left:auto;
    gap:2px;
  }
  .ffl-match-page .ffl-pitch-sideline {
    min-height:82px;
    display:flex;
    gap:10px;
    padding:9px 12px;
  }
  .ffl-match-page .ffl-pitch-module {
    padding:9px 13px;
    font-size:12px;
  }
  .ffl-match-page .ffl-pitch-coach {
    margin-left:auto;
    justify-content:center;
  }
  .ffl-match-page .ffl-pitch-coach-avatar {
    width:48px;
    height:48px;
  }
  .ffl-match-page .ffl-pitch-coach .ffl-pitch-rating,
  .ffl-match-page .ffl-pitch-coach .ffl-pitch-event {
    min-width:19px;
    width:19px;
    height:19px;
    padding:1px;
    border-width:1.5px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-coach-events {
    top:-5px;
    right:-10px;
    gap:2px;
  }
  .ffl-match-page .ffl-pitch-coach strong {
    max-width:100px;
    font-size:8px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .ffl-match-page .ffl-formation-switch::before,
  .ffl-match-page .ffl-formation-panel {
    transition:none;
  }
}

/* Dettaglio partita: sostituzioni e indicatori circolari definitivi. */
.ffl-match-page .ffl-pitch-rating,
.ffl-match-page .ffl-pitch-coach .ffl-pitch-rating {
  min-width:24px;
  width:24px;
  height:24px;
  padding:0;
  border-radius:50%;
  box-sizing:border-box;
  background:#ffd21f;
  font:800 10px/1 Inter,"Open Sans",Arial,sans-serif;
}

.ffl-match-page .ffl-pitch-player-name .ffl-pitch-captain {
  min-width:24px;
  width:24px;
  height:24px;
  border:2px solid #fff;
  box-sizing:border-box;
  font:800 10px/1 Inter,"Open Sans",Arial,sans-serif;
}

.ffl-match-page .ffl-pitch-coach .ffl-pitch-coach-events {
  padding:0;
  border-radius:0;
  color:inherit;
  background:transparent;
  font:inherit;
  box-shadow:none;
}

.ffl-match-page .ffl-pitch-coach .ffl-pitch-event {
  min-width:24px;
  width:24px;
  height:24px;
  padding:2px;
  border-radius:50%;
  box-sizing:border-box;
  background:#fff;
}

.ffl-match-page .ffl-pitch-sub-out,
.ffl-match-page .ffl-pitch-sub-in {
  position:relative;
  width:24px;
  height:24px;
  display:block;
  flex:0 0 24px;
  border:2px solid #e6e9ec;
  border-radius:50%;
  box-sizing:border-box;
  background:#fff;
  box-shadow:0 3px 8px rgba(0,0,0,.2);
}

.ffl-match-page .ffl-pitch-sub-out {
  position:absolute;
  top:-8px;
  left:-12px;
  z-index:6;
}

.ffl-match-page .ffl-pitch-sub-out::before,
.ffl-match-page .ffl-pitch-sub-in::before {
  position:absolute;
  top:4px;
  left:5px;
  width:10px;
  height:13px;
  clip-path:polygon(35% 0,65% 0,65% 54%,100% 54%,50% 100%,0 54%,35% 54%);
  background:#ef5364;
  content:"";
}

.ffl-match-page .ffl-pitch-sub-out::after,
.ffl-match-page .ffl-pitch-sub-in::after {
  content:none;
}

.ffl-match-page .ffl-pitch-sub-in::before {
  top:4px;
  bottom:auto;
  background:#51b969;
  transform:rotate(180deg);
}

.ffl-match-page .ffl-pitch-substitution {
  top:100%;
  width:max-content;
  max-width:none;
  min-height:24px;
  margin-top:10px;
  display:grid;
  grid-template-columns:24px minmax(0,auto) 24px;
  align-items:start;
  gap:4px;
  color:#fff;
}

.ffl-match-page .ffl-pitch-sub-meta {
  position:relative;
  width:24px;
  height:24px;
  display:block;
}

.ffl-match-page .ffl-pitch-sub-meta .ffl-pitch-sub-in {
  position:absolute;
  bottom:15px;
  left:0;
  z-index:2;
}

.ffl-match-page .ffl-pitch-sub-rating {
  position:absolute;
  inset:0;
  z-index:1;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  padding:0;
  border:2px solid #fff;
  border-radius:50%;
  box-sizing:border-box;
  color:#10243e;
  background:#ffd21f;
  font:800 10px/1 Inter,"Open Sans",Arial,sans-serif;
  box-shadow:0 3px 8px rgba(0,0,0,.18);
}

.ffl-match-page .ffl-pitch-rating,
.ffl-match-page .ffl-pitch-coach .ffl-pitch-rating,
.ffl-match-page .ffl-pitch-sub-rating,
.ffl-match-page .ffl-pitch-sub-out,
.ffl-match-page .ffl-pitch-sub-in {
  border:0;
}

.ffl-match-page .ffl-pitch-sub-name {
  max-width:110px;
  min-height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  font:800 clamp(8px,1.35vw,12px)/1.15 Inter,"Open Sans",Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ffl-match-page .ffl-pitch-sub-events {
  position:static;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}

.ffl-match-page .ffl-pitch-sub-events .ffl-pitch-event {
  width:24px;
  height:24px;
}

@media (max-width:767px) {
  .ffl-match-page .ffl-pitch-rating,
  .ffl-match-page .ffl-pitch-coach .ffl-pitch-rating,
  .ffl-match-page .ffl-pitch-player-name .ffl-pitch-captain,
  .ffl-match-page .ffl-pitch-coach .ffl-pitch-event,
  .ffl-match-page .ffl-pitch-sub-events .ffl-pitch-event {
    min-width:19px;
    width:19px;
    height:19px;
    padding:0;
    border-width:1.5px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-sub-out,
  .ffl-match-page .ffl-pitch-sub-in {
    width:19px;
    height:19px;
    flex-basis:19px;
    border-width:1.5px;
  }
  .ffl-match-page .ffl-pitch-sub-out {
    top:-6px;
    left:-9px;
  }
  .ffl-match-page .ffl-pitch-sub-out::before,
  .ffl-match-page .ffl-pitch-sub-in::before {
    top:3px;
    left:4px;
    width:8px;
    height:11px;
  }
  .ffl-match-page .ffl-pitch-sub-in::before {
    top:3px;
    bottom:auto;
  }
  .ffl-match-page .ffl-pitch-substitution {
    min-height:19px;
    margin-top:8px;
    grid-template-columns:19px minmax(0,auto) 19px;
    gap:3px;
  }
  .ffl-match-page .ffl-pitch-sub-meta,
  .ffl-match-page .ffl-pitch-sub-rating {
    width:19px;
    height:19px;
  }
  .ffl-match-page .ffl-pitch-sub-rating {
    border-width:1.5px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-sub-meta .ffl-pitch-sub-in {
    bottom:12px;
  }
  .ffl-match-page .ffl-pitch-sub-name {
    max-width:76px;
    min-height:19px;
    font-size:7px;
  }
  .ffl-match-page .ffl-pitch-sub-events {
    gap:1px;
  }
  .ffl-match-page .ffl-formation-viewer {
    width:calc(100% + 30px);
    max-width:none;
    margin-right:-15px;
    margin-left:-15px;
  }
  .ffl-match-page .ffl-lineup-table th:first-child,
  .ffl-match-page .ffl-lineup-table td:first-child {
    padding-right:0!important;
    padding-left:0!important;
    text-align:center!important;
  }
  .ffl-match-page .ffl-lineup-table td:first-child img {
    max-width:28px;
    height:auto;
    display:block;
    margin-right:auto!important;
    margin-left:auto!important;
  }
}

/* Dettaglio partita: colonna ingresso con freccia e voto sempre visibili. */
.ffl-match-page .ffl-pitch-substitution {
  grid-template-columns:24px minmax(0,auto) 24px;
  grid-template-rows:24px auto;
  column-gap:4px;
  row-gap:6px;
  align-items:start;
}

.ffl-match-page .ffl-pitch-sub-in {
  position:relative;
  inset:auto;
  grid-column:1;
  grid-row:1;
}

.ffl-match-page .ffl-pitch-sub-rating {
  position:relative;
  inset:auto;
  grid-column:1;
  grid-row:2;
}

.ffl-match-page .ffl-pitch-sub-name {
  grid-column:2;
  grid-row:2;
}

.ffl-match-page .ffl-pitch-sub-events {
  grid-column:3;
  grid-row:2;
  align-self:start;
}

.ffl-match-page .ffl-pitch-sub-out::before,
.ffl-match-page .ffl-pitch-sub-in::before {
  top:50%;
  left:50%;
  width:14px;
  height:14px;
  clip-path:none;
  background-color:transparent;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  transform:translate(-50%,-50%);
}

.ffl-match-page .ffl-pitch-sub-out::before {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 15'%3E%3Cpath fill='%23ef5364' d='M4.75 1h4.5v6H13l-6 7-6-7h3.75z'/%3E%3C/svg%3E");
}

.ffl-match-page .ffl-pitch-sub-in::before {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 15'%3E%3Cpath fill='%2351b969' d='M7 1l6 7H9.25v6h-4.5V8H1z'/%3E%3C/svg%3E");
  transform:translate(-50%,-50%);
}

@media (max-width:767px) {
  .ffl-match-page .ffl-pitch-substitution {
    grid-template-columns:19px minmax(0,auto) 19px;
    grid-template-rows:19px auto;
    column-gap:3px;
    row-gap:5px;
  }
  .ffl-match-page .ffl-pitch-sub-rating {
    flex-basis:19px;
  }
  .ffl-match-page .ffl-pitch-sub-out::before,
  .ffl-match-page .ffl-pitch-sub-in::before {
    top:50%;
    left:50%;
    width:12px;
    height:13px;
  }
}

/* Pacchetto finale dettaglio partita: sponsor, tabelle, punteggio e reparti. */
body:not(.ffl-home-page) .ffl-sponsors .ffl-section-heading,
body:not(.ffl-home-page) .ffl-sponsors #ffl-sponsor-title {
  width:100%;
  max-width:none;
  display:block;
  margin-right:auto;
  margin-left:auto;
  text-align:center!important;
}

/* Gli angoli interni restano retti: si arrotonda soltanto il perimetro
   complessivo formato dall'intestazione Titolari e dal Totale squadra. */
.ffl-match-page .ffl-table-frame .ffl-lineup-table th,
.ffl-match-page .ffl-table-frame .ffl-lineup-table td,
.ffl-match-page .ffl-table-frame .ffl-total-table th,
.ffl-match-page .ffl-table-frame .ffl-total-table td {
  border-radius:0!important;
}

.ffl-match-page .ffl-table-frame > .ffl-lineup-table,
.ffl-match-page .ffl-table-frame > .ffl-total-table {
  margin:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
}

/* Le regole globali usano selettori molto specifici sui primi e ultimi
   elementi: qui vengono neutralizzati tutti gli angoli dei tavoli interni. */
body.ffl-match-page .ffl-table-frame > table.table > thead:first-child > tr:first-child > th:first-child,
body.ffl-match-page .ffl-table-frame > table.table > thead:first-child > tr:first-child > th:last-child,
body.ffl-match-page .ffl-table-frame > table.table > tbody:first-child > tr:first-child > td:first-child,
body.ffl-match-page .ffl-table-frame > table.table > tbody:first-child > tr:first-child > td:last-child,
body.ffl-match-page .ffl-table-frame > table.table > tbody:last-child > tr:last-child > td:first-child,
body.ffl-match-page .ffl-table-frame > table.table > tbody:last-child > tr:last-child > td:last-child,
body.ffl-match-page .ffl-table-frame > table.table > tbody,
body.ffl-match-page .ffl-table-frame > table.table > tbody > tr {
  border-radius:0!important;
}

body.ffl-match-page .ffl-table-frame > table.ffl-lineup-table:first-child > thead:first-child > tr:first-child > th:first-child {
  border-top-left-radius:13px!important;
}

body.ffl-match-page .ffl-table-frame > table.ffl-lineup-table:first-child > thead:first-child > tr:first-child > th:last-child {
  border-top-right-radius:13px!important;
}

body.ffl-match-page .ffl-table-frame > table.ffl-total-table:last-child > tbody:last-child > tr:last-child > td:first-child {
  border-bottom-left-radius:13px!important;
}

body.ffl-match-page .ffl-table-frame > table.ffl-total-table:last-child > tbody:last-child > tr:last-child > td:last-child {
  border-bottom-right-radius:13px!important;
}

.ffl-match-page .ffl-pitch-line--attack { top:13%; }
.ffl-match-page .ffl-pitch-line--midfield { top:37%; }
.ffl-match-page .ffl-pitch-line--defence { top:61%; }
.ffl-match-page .ffl-pitch-line--goalkeeper { top:84.5%; }

.ffl-match-page .ffl-pitch-sideline {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
}

.ffl-match-page .ffl-pitch-module {
  justify-self:start;
}

.ffl-match-page .ffl-pitch-score {
  min-width:72px;
  min-height:52px;
  display:inline-grid;
  place-items:center;
  justify-self:center;
  padding:8px 16px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  color:#10243e;
  background:#ffd21f;
  box-shadow:0 8px 18px rgba(0,0,0,.2);
  font:900 24px/1 Inter,"Open Sans",Arial,sans-serif;
  font-variant-numeric:tabular-nums;
}

.ffl-match-page .ffl-pitch-coach {
  justify-self:end;
  margin-left:0;
}

@media (max-width:767px) {
  .ffl-match-page .ffl-pitch-sideline {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    gap:7px;
  }
  .ffl-match-page .ffl-pitch-score {
    min-width:50px;
    min-height:38px;
    padding:6px 10px;
    font-size:16px;
  }
}

/* Testata mobile identica in Home e pagine interne. */
@media (max-width:767px) {
  .ffl-header-inner .ffl-identity {
    width:100%;
    min-width:0;
  }
  .ffl-header-inner .ffl-identity-copy {
    min-width:0;
    gap:4px;
  }
  .ffl-header-inner .ffl-identity-copy strong {
    font-size:18px;
    line-height:1;
    white-space:nowrap;
  }
  .ffl-header-inner .ffl-identity-copy small {
    display:block;
    font-size:7px;
    line-height:1.25;
    letter-spacing:.65px;
    white-space:nowrap;
  }
}

/* Dettaglio partita: sostituti separati dal campo. */
.ffl-match-page .ffl-substitutes-panel {
  width:min(100%,760px);
  margin:14px auto 0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  color:#fff;
  background:linear-gradient(120deg,#12324b,#0b2438);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}

.ffl-match-page .ffl-substitutes-panel h3 {
  margin:0;
  padding:14px 18px;
  border-bottom:1px solid rgba(255,255,255,.12);
  color:#fff!important;
  font:700 16px/1.2 Inter,"Open Sans",Arial,sans-serif;
  text-align:left;
  text-transform:none;
}

.ffl-match-page .ffl-substitutes-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  background:transparent;
}

.ffl-match-page .ffl-substitute-card {
  min-width:0;
  min-height:152px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding:16px 10px 13px;
  color:#fff;
  border-right:1px solid rgba(255,255,255,.1);
  background:transparent;
  text-align:center;
}

.ffl-match-page .ffl-substitute-card:nth-child(3n) {
  border-right:0;
}

.ffl-match-page .ffl-substitute-visual {
  position:relative;
  width:82px;
  height:76px;
  flex:0 0 76px;
}

.ffl-match-page .ffl-substitute-shirt {
  position:absolute;
  top:2px;
  left:50%;
  width:clamp(42px,7.2vw,72px);
  height:clamp(42px,7.2vw,72px);
  display:grid;
  place-items:center;
  overflow:hidden;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.96);
  box-shadow:none;
  transform:translateX(-50%);
}

.ffl-match-page .ffl-pitch-shirt {
  border:0!important;
  box-shadow:none!important;
}

.ffl-match-page .ffl-substitute-shirt img {
  width:78%;
  height:78%;
  object-fit:contain;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.16));
}

.ffl-match-page .ffl-substitute-visual > .ffl-pitch-sub-in {
  position:absolute;
  top:0;
  left:0;
  z-index:5;
}

.ffl-match-page .ffl-substitute-visual > .ffl-pitch-sub-rating {
  position:absolute;
  right:auto;
  bottom:0;
  left:0;
  z-index:5;
}

.ffl-match-page .ffl-substitute-visual > .ffl-pitch-sub-events {
  position:absolute;
  top:0;
  right:-2px;
  z-index:5;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.ffl-match-page .ffl-substitute-visual .ffl-pitch-event {
  width:24px;
  height:24px;
}

.ffl-match-page .ffl-substitute-card > strong {
  max-width:100%;
  margin-top:5px;
  overflow:hidden;
  color:#fff;
  font:400 12px/1.2 Inter,"Open Sans",Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ffl-match-page .ffl-substitute-replaces {
  max-width:100%;
  margin-top:5px;
  overflow:hidden;
  color:#93a0aa;
  font:400 10px/1.2 Inter,"Open Sans",Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* I nomi restano più leggeri; titoli, intestazioni e valori mantengono il loro peso. */
.ffl-match-page .ffl-pitch-player-name,
.ffl-match-page .ffl-pitch-coach > strong,
.ffl-match-page .ffl-lineup-table tbody td:nth-child(2) {
  font-weight:400!important;
}

@media (max-width:767px) {
  .ffl-match-page .ffl-substitutes-panel {
    width:100%;
    margin-top:12px;
    border-radius:15px;
  }
  .ffl-match-page .ffl-substitutes-panel h3 {
    padding:11px 13px;
    font-size:13px;
  }
  .ffl-match-page .ffl-substitutes-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .ffl-match-page .ffl-substitute-card {
    min-height:116px;
    padding:11px 4px 9px;
  }
  .ffl-match-page .ffl-substitute-visual {
    width:58px;
    height:54px;
    flex-basis:54px;
  }
  .ffl-match-page .ffl-substitute-shirt {
    width:clamp(34px,11vw,46px);
    height:clamp(34px,11vw,46px);
  }
  .ffl-match-page .ffl-substitute-visual > .ffl-pitch-sub-in,
  .ffl-match-page .ffl-substitute-visual > .ffl-pitch-sub-rating,
  .ffl-match-page .ffl-substitute-visual .ffl-pitch-event {
    width:19px;
    height:19px;
  }
  .ffl-match-page .ffl-substitute-card > strong {
    margin-top:4px;
    font-size:9px;
  }
  .ffl-match-page .ffl-substitute-replaces {
    margin-top:4px;
    font-size:8px;
  }
}
