*{box-sizing:border-box;margin:0;padding:0}:root{--red:#d92127;--navy:#050922;--purple:#2e146b;--ink:#11162b;--muted:#616579;--line:#dedfe4;--paper:#fff;--soft:#f5f5f7;--route1:#2e146b;--route2:#492b80;--route3:#67499a;--route4:#896fb4}html{scroll-behavior:smooth}body{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.55}a{color:inherit}.container{width:min(1180px,calc(100% - 40px));margin:0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:9999;top:10px;left:10px;background:#fff;color:#000;padding:10px;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(5,9,34,.98);color:#fff;position:sticky;top:0;z-index:1000;border-bottom:1px solid rgba(255,255,255,.1)}.site-brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:900}.site-brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:10px}.site-brand span{max-width:210px;line-height:1.1}.site-nav{display:flex;align-items:center;gap:23px}.site-nav a{text-decoration:none;font-size:14px;font-weight:800}.site-nav a:hover{color:#ff777b}.site-nav .nav-cta{background:var(--red);padding:14px 20px;text-transform:uppercase;letter-spacing:.08em}.menu-button{display:none;background:none;border:0}.loading-screen,.error-page{min-height:60vh;display:grid;place-items:center;text-align:center}.loader{width:42px;height:42px;border:5px solid #e5e1ee;border-top-color:var(--purple);border-radius:50%;display:block;margin:0 auto 12px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.image-hero{min-height:690px;position:relative;display:grid;align-items:end;background:linear-gradient(135deg,#72171c,#2e146b);background-image:linear-gradient(90deg,rgba(64,6,13,.78),rgba(46,20,107,.42)),url('/assets/images/home-hero.jpg');background-size:cover;background-position:center}.hero-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,9,34,.42),transparent 52%)}.hero-content{position:relative;z-index:1;width:min(1180px,calc(100% - 40px));margin:0 auto;padding:80px 0 90px;color:#fff}.eyebrow,.section-kicker{display:block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.13em;color:var(--red);margin-bottom:12px}.eyebrow{color:#fff}.hero-content h1,.page-hero h1,.league-hero h1,.team-public-hero h1{font-size:clamp(52px,8vw,104px);line-height:.93;letter-spacing:-.055em;font-weight:900}.hero-content p{max-width:700px;font-size:20px;font-weight:700;margin-top:26px}.hero-actions{display:flex;gap:12px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;text-decoration:none;border:0;cursor:pointer;font-weight:900;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.button-red{background:var(--red);color:#fff}.button-light{background:#fff;color:var(--red)}.intro-section{padding:92px 0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--ink);padding-top:40px}.intro-grid h2,.section-heading h2,.prose-layout h2,.contact-layout h2{font-size:clamp(34px,5vw,58px);line-height:1;letter-spacing:-.04em}.intro-grid p{font-size:18px;margin-bottom:18px}.numbers-section{background:var(--navy);color:#fff;padding:48px 0}.numbers-grid,.team-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.15)}.number-card{background:var(--navy);padding:30px}.number-card strong{display:block;font-size:50px;line-height:1;color:var(--red);font-weight:900}.number-card span{display:block;margin-top:10px;font-weight:900}.section-block{padding:90px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.section-heading.compact{margin-bottom:18px}.section-heading h2{font-size:44px}.section-heading a{color:var(--red);font-weight:900;text-decoration:none}.section-heading small{color:var(--muted);font-weight:700}.league-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.league-card{min-height:260px;display:flex;align-items:center;gap:28px;padding:32px;color:#fff;text-decoration:none;position:relative;overflow:hidden}.league-card:after{content:'→';position:absolute;right:28px;bottom:18px;font-size:34px}.league-card img{width:120px;height:120px;object-fit:contain;background:#fff;border-radius:18px;padding:8px}.league-card h3{font-size:32px;line-height:1}.league-card p{font-weight:900;margin-top:10px}.league-card span{display:block;opacity:.8;margin-top:5px}.split-data-section{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-top:30px;padding-bottom:90px}.public-fixture-list{border-top:1px solid var(--line)}.public-fixture{display:grid;grid-template-columns:110px minmax(0,1fr) 90px minmax(0,1fr);align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.public-fixture time{font-size:12px;color:var(--muted);font-weight:800}.fixture-team{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:900}.fixture-team a{text-decoration:none}.fixture-team.home{justify-content:flex-end;text-align:right}.fixture-team img{width:30px;height:30px;object-fit:contain}.fixture-score{text-align:center}.fixture-score strong{font-size:22px;color:var(--purple)}.fixture-score small{display:block;font-size:9px;color:var(--muted)}.content-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.content-card{border:1px solid var(--line);background:#fff}.content-card>img,.content-placeholder{width:100%;height:210px;object-fit:cover}.content-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--purple));color:#fff;font-size:28px;font-weight:900}.content-card>div:last-child{padding:22px}.content-card span{font-size:11px;color:var(--red);font-weight:900;text-transform:uppercase}.content-card h3{font-size:24px;line-height:1.1;margin:8px 0}.content-card h3 a{text-decoration:none}.content-card p{color:var(--muted);font-size:14px}.content-card small{display:block;margin-top:18px;color:var(--muted)}.cta-section{background:var(--red);color:#fff;padding:100px 0;text-align:center}.cta-section h2{font-size:clamp(38px,6vw,72px);line-height:1;max-width:950px;margin:0 auto 30px}.light{color:#fff}.page-hero{padding:110px 0;color:#fff}.page-hero h1{max-width:1100px}.page-hero p{font-size:20px;font-weight:700;margin-top:20px}.hero-purple{background:linear-gradient(135deg,#050922,#6c42a0)}.hero-red{background:linear-gradient(135deg,#831319,#d92127)}.hero-rules{background:linear-gradient(135deg,#75c4ea,#c5a1e8)}.hero-cups{background:linear-gradient(135deg,#78632a,#e0bd54)}.image-about{background:linear-gradient(90deg,rgba(5,9,34,.75),rgba(5,9,34,.25)),url('/assets/images/about-hero.jpg') center/cover}.league-hero{color:#fff;padding:90px 0}.league-hero-inner,.team-public-hero-inner{display:flex;align-items:center;gap:45px}.league-hero img,.team-public-hero img{width:190px;height:190px;object-fit:contain;background:#fff;border-radius:24px;padding:12px}.league-hero p{font-size:18px;font-weight:800;margin-top:16px}.table-scroll{overflow-x:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:center}th{background:#f4f3f7;color:var(--purple);font-size:11px;text-transform:uppercase}td{font-size:13px;font-weight:700}.league-table th:nth-child(2),.league-table td:nth-child(2),.squad-table th:first-child,.squad-table td:first-child{text-align:left}.league-table td a{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900}.league-table td img{width:34px;height:34px;object-fit:contain}.league-table small{color:var(--red)}.table-notes{margin-top:15px;border-left:4px solid var(--red);padding:12px 16px;background:#fff5f5}.data-band{background:var(--navy);color:#fff;padding:80px 0}.two-table-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.data-band .section-heading h2{color:#fff}.dark-table{border-color:rgba(255,255,255,.15)}.dark-table th{background:#261c49;color:#fff}.dark-table td{border-color:rgba(255,255,255,.13);color:#fff}.team-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.public-team-card{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:18px;padding:18px;border:1px solid var(--line);text-decoration:none}.public-team-card img{width:70px;height:70px;object-fit:contain}.public-team-card h3{font-size:20px}.public-team-card p{color:var(--muted)}.public-team-card>span{color:var(--red);font-weight:900}.team-public-hero{background:var(--purple);color:#fff;padding:75px 0}.team-public-hero h1{font-size:clamp(42px,7vw,76px)}.back-link{display:inline-block;color:#fff;margin-bottom:12px;font-weight:900}.team-summary-section{padding:40px 0 30px}.team-summary-grid{margin-bottom:30px;background:var(--line)}.team-summary-grid .number-card{background:#fff;color:var(--ink)}.eligibility-public-card{padding:28px;border:1px solid var(--line)}.public-eligibility-bar{display:flex;height:34px;overflow:hidden;border-radius:999px;background:#e9e5ef}.public-eligibility-bar span{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900}.route-1{background:var(--route1)}.route-2{background:var(--route2)}.route-3{background:var(--route3)}.route-4{background:var(--route4)}.public-eligibility-key{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.public-eligibility-key>div{display:grid;grid-template-columns:12px 1fr auto;gap:8px}.public-eligibility-key i{width:12px;height:12px;border-radius:3px}.public-eligibility-key span{display:grid}.public-eligibility-key small{font-size:10px;color:var(--muted)}.prose-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:80px}.prose-content p{margin-bottom:20px}.prose-content .lead{font-size:22px;font-weight:900;color:var(--red)}.structure-section{background:#f5f5f7;padding:85px 0}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr)}.feature-grid article{padding:28px;min-height:240px;color:#fff}.feature-grid article:nth-child(odd){background:var(--red)}.feature-grid article:nth-child(even){background:#25255d}.feature-grid h3{font-size:28px;margin-bottom:18px}.about-image-band{color:#fff;padding:100px 0;background:linear-gradient(90deg,rgba(46,20,107,.9),rgba(217,33,39,.55)),url('/assets/images/about-team.jpg') center/cover}.about-image-band h2{font-size:48px;max-width:800px}.about-image-band ul{margin-top:28px;padding-left:20px;font-weight:800}.rules-page{padding:45px 0 90px}.mffl-rules>p{font-size:17px;margin-bottom:20px}.callout{background:#fafafa;border:1px solid #eee;border-left:4px solid var(--red);padding:15px;margin:16px 0}.accordion{border-bottom:1px solid var(--line)}.accordion>button{width:100%;border:0;background:none;text-align:left;padding:18px 10px;color:var(--red);font-size:20px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.accordion>button:after{content:'+';float:right}.accordion.active>button:after{content:'−'}.accordion-content{display:none;padding:0 12px 22px}.accordion.active .accordion-content{display:block}.accordion-content p,.accordion-content li{margin:8px 0}.accordion-content ul,.accordion-content ol{padding-left:24px}.accordion-content .table-wrap{overflow-x:auto}.article-hero{background:linear-gradient(135deg,var(--navy),var(--purple));color:#fff;padding:100px 0}.article-hero.has-image{background-image:linear-gradient(90deg,rgba(5,9,34,.86),rgba(46,20,107,.5)),var(--article-image);background-size:cover;background-position:center}.article-hero h1{font-size:clamp(44px,7vw,86px);line-height:.95;max-width:950px}.article-hero p{font-size:20px;max-width:760px;margin-top:20px}.article-hero small{display:block;margin-top:18px}.article-body{max-width:850px;padding-top:65px;padding-bottom:90px;font-size:18px}.article-body p,.article-body h2,.article-body h3,.article-body ul{margin-bottom:22px}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.media-card{border:1px solid var(--line)}.media-card img,.media-card .content-placeholder{height:230px;width:100%;object-fit:cover}.media-card>div:last-child{padding:22px}.media-card p{color:var(--muted);margin:10px 0 20px}.resource-group{margin-bottom:42px}.resource-group h2{font-size:34px;margin-bottom:16px}.resource-list a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid var(--line);text-decoration:none}.resource-list p{color:var(--muted)}.resource-list span{color:var(--red);font-weight:900}.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:70px;padding-top:80px;padding-bottom:90px}.contact-form{display:grid;gap:16px}.contact-form label{font-weight:900}.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:7px;border:2px solid var(--line);padding:14px;font:inherit}.contact-form textarea{min-height:160px;resize:vertical}.honeypot{position:absolute!important;left:-9999px!important}.success-message{color:#176b36;font-weight:900}.error-message{color:var(--red);font-weight:900}.empty-state{border:1px dashed var(--line);padding:28px;color:var(--muted);font-weight:800;background:#fafafa}.site-footer{background:var(--navy);color:#fff;padding:55px max(24px,calc((100vw - 1180px)/2));display:grid;grid-template-columns:1.5fr 1fr;gap:30px}.site-footer p{max-width:550px;color:#c6c8d3;margin-top:8px}.site-footer nav{display:flex;gap:18px;justify-content:flex-end;flex-wrap:wrap}.site-footer a{text-decoration:none;font-weight:800}.site-footer small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:18px}.error-page div{max-width:650px;padding:40px}.error-page span{color:var(--red);font-weight:900}.error-page h1{font-size:48px;line-height:1;margin:10px 0}.error-page p{margin-bottom:20px}
@media(max-width:900px){.site-brand span{display:none}.menu-button{display:block;width:46px;height:46px}.menu-button span:not(.sr-only){display:block;height:3px;background:#fff;margin:6px}.site-nav{display:none;position:absolute;left:0;right:0;top:94px;background:var(--navy);padding:20px;flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.site-nav a{padding:10px}.intro-grid,.split-data-section,.two-table-grid,.prose-layout,.contact-layout{grid-template-columns:1fr}.league-card-grid,.content-card-grid,.media-grid{grid-template-columns:1fr 1fr}.feature-grid{grid-template-columns:1fr 1fr}.public-eligibility-key{grid-template-columns:1fr 1fr}.league-hero-inner,.team-public-hero-inner{align-items:flex-start}.numbers-grid,.team-summary-grid{grid-template-columns:1fr 1fr}.team-card-grid{grid-template-columns:1fr}}
@media(max-width:620px){.container{width:min(100% - 28px,1180px)}.site-header{height:78px}.site-nav{top:78px}.site-brand img{width:48px;height:48px}.image-hero{min-height:610px}.hero-content{padding-bottom:55px}.hero-content h1{font-size:50px}.hero-content p{font-size:17px}.hero-actions{display:grid}.intro-section,.section-block{padding:62px 0}.intro-grid{gap:30px}.numbers-grid,.team-summary-grid,.league-card-grid,.content-card-grid,.media-grid,.feature-grid{grid-template-columns:1fr}.number-card strong{font-size:42px}.league-card{display:block}.league-card img{margin-bottom:22px}.section-heading{display:block}.section-heading a,.section-heading small{display:block;margin-top:12px}.public-fixture{grid-template-columns:1fr 60px 1fr}.public-fixture time{grid-column:1/-1}.fixture-team{font-size:11px}.fixture-team img{width:26px;height:26px}.league-hero-inner,.team-public-hero-inner{display:block}.league-hero img,.team-public-hero img{width:130px;height:130px;margin-bottom:24px}.league-hero h1,.team-public-hero h1{font-size:48px}.team-card-grid{grid-template-columns:1fr}.public-team-card{grid-template-columns:55px 1fr}.public-team-card img{width:55px;height:55px}.public-team-card>span{grid-column:2}.public-eligibility-key{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr}.site-footer nav{justify-content:flex-start}.site-footer small{grid-column:1}.about-image-band h2{font-size:36px}.page-hero h1{font-size:50px}.article-hero h1{font-size:45px}th,td{padding:10px 9px}}


/* CLEANER MAIN NAVIGATION */

.nav-dropdown {
  position: relative;
}

.nav-dropdown summary {
  list-style: none;
  cursor: pointer;
  font-size: 14px;
  font-weight: 800;
}

.nav-dropdown summary::-webkit-details-marker {
  display: none;
}

.nav-dropdown summary::after {
  content: "⌄";
  margin-left: 7px;
  color: #ff9ca0;
}

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 18px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 190px;
  padding: 9px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: var(--navy);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}

.nav-dropdown-menu a {
  display: block;
  padding: 11px 13px;
  white-space: nowrap;
}

.nav-dropdown-menu a:hover {
  background: rgba(255, 255, 255, 0.08);
}

.data-published {
  color: #aeb1c1;
  font-weight: 700;
}

@media (max-width: 900px) {
  .nav-dropdown summary {
    padding: 10px;
  }

  .nav-dropdown-menu {
    position: static;
    transform: none;
    min-width: 0;
    margin: 2px 0 4px 12px;
    padding: 0 0 0 12px;
    border: 0;
    border-left: 2px solid rgba(255, 255, 255, 0.2);
    box-shadow: none;
  }
}


/* MOBILE LEAGUE TABLE */

@media (max-width: 620px) {
  .table-scroll {
    overflow-x: visible;
    width: 100%;
    border-radius: 14px;
  }

  .league-table {
    width: 100%;
    table-layout: fixed;
  }

  .league-table th,
  .league-table td {
    padding: 11px 3px;
    font-size: 12px;
    white-space: nowrap;
  }

  /* Hide GF and GA on mobile. GD and Pts remain visible. */
  .league-table th:nth-child(7),
  .league-table td:nth-child(7),
  .league-table th:nth-child(8),
  .league-table td:nth-child(8) {
    display: none;
  }

  .league-table th:nth-child(1),
  .league-table td:nth-child(1) {
    width: 30px;
  }

  .league-table th:nth-child(2),
  .league-table td:nth-child(2) {
    width: auto;
    padding-left: 6px;
    padding-right: 5px;
  }

  .league-table th:nth-child(3),
  .league-table td:nth-child(3),
  .league-table th:nth-child(4),
  .league-table td:nth-child(4),
  .league-table th:nth-child(5),
  .league-table td:nth-child(5),
  .league-table th:nth-child(6),
  .league-table td:nth-child(6) {
    width: 28px;
  }

  .league-table th:nth-child(9),
  .league-table td:nth-child(9) {
    width: 34px;
  }

  .league-table th:nth-child(10),
  .league-table td:nth-child(10) {
    width: 38px;
    padding-right: 5px;
  }

  .league-table td:nth-child(2) a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    min-width: 0;
    white-space: normal;
    line-height: 1.2;
    font-size: 12px;
  }

  .league-table td:nth-child(2) img {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
  }

  .league-table td:nth-child(2) small {
    grid-column: 2;
    font-size: 9px;
  }

  .league-table th {
    font-size: 10px;
  }

  .league-table td:last-child,
  .league-table th:last-child {
    background: #faf8fd;
  }
}

@media (max-width: 390px) {
  .league-table th,
  .league-table td {
    padding-left: 2px;
    padding-right: 2px;
    font-size: 11px;
  }

  .league-table th:nth-child(1),
  .league-table td:nth-child(1) {
    width: 27px;
  }

  .league-table th:nth-child(3),
  .league-table td:nth-child(3),
  .league-table th:nth-child(4),
  .league-table td:nth-child(4),
  .league-table th:nth-child(5),
  .league-table td:nth-child(5),
  .league-table th:nth-child(6),
  .league-table td:nth-child(6) {
    width: 25px;
  }

  .league-table th:nth-child(9),
  .league-table td:nth-child(9) {
    width: 31px;
  }

  .league-table th:nth-child(10),
  .league-table td:nth-child(10) {
    width: 35px;
  }

  .league-table td:nth-child(2) a {
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 5px;
    font-size: 11px;
  }

  .league-table td:nth-child(2) img {
    width: 27px;
    height: 27px;
  }
}


/* PUBLIC STATS PAGE */

.stats-page {
  background: #f4f4f8;
  padding: 72px 0 95px;
}

.stats-section + .stats-section {
  margin-top: 72px;
}

.stats-league-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.stats-card {
  overflow: hidden;
  border: 1px solid #e5e5eb;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(5, 9, 34, 0.06);
}

.stats-card-heading {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 20px 22px 16px;
  color: var(--ink);
  text-decoration: none;
}

.stats-card-heading img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.stats-card-heading span {
  display: block;
  color: var(--red);
  font-size: 10px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.stats-card-heading h3 {
  margin-top: 5px;
  font-size: 23px;
  line-height: 1.05;
  font-weight: 900;
}

.stats-card-heading b {
  color: var(--purple);
  font-size: 30px;
  line-height: 1;
}

.stats-list-head,
.stats-player-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 58px;
  align-items: center;
}

.stats-list-head {
  margin: 0 20px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.stats-list-head span:last-child {
  text-align: center;
}

.stats-player-list {
  padding: 0 20px 12px;
}

.stats-player-row {
  min-height: 72px;
  border-top: 1px solid var(--line);
}

.stats-position {
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
  text-align: center;
}

.stats-player-identity {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.stats-player-identity img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}

.stats-player-identity > span {
  display: grid;
  min-width: 0;
}

.stats-player-identity strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.15;
  font-weight: 900;
  text-overflow: ellipsis;
}

.stats-player-identity small {
  overflow: hidden;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.2;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stats-total {
  color: var(--purple);
  font-size: 20px;
  font-weight: 900;
  text-align: center;
}

.stats-empty {
  margin: 0 20px 20px;
  padding: 24px 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

.discipline-ranking-note {
  margin-bottom: 20px;
  padding: 14px 18px;
  border-left: 4px solid var(--red);
  background: #ffffff;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.discipline-ranking-note strong {
  color: var(--ink);
}

.discipline-ranking-note span {
  margin: 0 5px;
}

.discipline-table-card {
  padding: 0 22px 14px;
}

.discipline-table-head,
.discipline-ranking-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 50px 50px 50px;
  align-items: center;
}

.discipline-table-head {
  min-height: 48px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.discipline-table-head span:nth-child(2) {
  text-align: left;
}

.discipline-ranking-row {
  min-height: 76px;
  border-top: 1px solid var(--line);
  text-align: center;
}

.discipline-ranking-row > strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
}

@media (max-width: 760px) {
  .stats-page {
    padding: 54px 0 70px;
  }

  .stats-section + .stats-section {
    margin-top: 56px;
  }

  .stats-league-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .stats-card-heading {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    padding: 17px 16px 14px;
  }

  .stats-card-heading img {
    width: 46px;
    height: 46px;
  }

  .stats-card-heading h3 {
    font-size: 20px;
  }

  .stats-list-head {
    margin: 0 14px;
  }

  .stats-player-list {
    padding: 0 14px 10px;
  }

  .stats-player-row {
    min-height: 66px;
  }

  .discipline-ranking-note {
    font-size: 12px;
  }

  .discipline-table-card {
    padding: 0 12px 10px;
  }

  .discipline-table-head,
  .discipline-ranking-row {
    grid-template-columns: 28px minmax(0, 1fr) 34px 38px 34px;
  }

  .discipline-ranking-row {
    min-height: 70px;
  }

  .discipline-ranking-row .stats-player-identity {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 8px;
    text-align: left;
  }

  .discipline-ranking-row .stats-player-identity img {
    width: 32px;
    height: 32px;
  }

  .discipline-ranking-row .stats-player-identity strong {
    font-size: 13px;
  }

  .discipline-ranking-row .stats-player-identity small {
    font-size: 9px;
  }

  .discipline-ranking-row > strong {
    font-size: 12px;
  }
}

@media (max-width: 390px) {
  .stats-player-identity {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 8px;
  }

  .stats-player-identity img {
    width: 32px;
    height: 32px;
  }

  .stats-player-identity strong {
    font-size: 13px;
  }

  .discipline-table-head,
  .discipline-ranking-row {
    grid-template-columns: 25px minmax(0, 1fr) 30px 34px 30px;
  }
}


/* LINKED LEAGUE NAMES */

.inline-league-link,
.fixture-league-link,
.reach-league-link,
.team-league-link,
.feature-grid h3 a {
  color: inherit;
  font-weight: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(211, 31, 38, 0.45);
  text-underline-offset: 3px;
}

.inline-league-link:hover,
.fixture-league-link:hover,
.reach-league-link:hover,
.team-league-link:hover,
.feature-grid h3 a:hover {
  color: var(--red);
}

/* TEAM PUBLIC PROFILE */

.team-public-identity {
  min-width: 0;
}

.team-public-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.team-league-link {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 900;
}

.team-profile-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.team-profile-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  color: #ffffff;
  transition: transform 0.15s ease, background 0.15s ease;
}

.team-profile-icon:hover {
  transform: translateY(-2px);
  background: var(--red);
}

.team-profile-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.team-profile-icon:first-child svg path {
  fill: currentColor;
  stroke: none;
}

.team-ground-line {
  display: flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin-top: 13px;
  color: rgba(255, 255, 255, 0.88);
}

.team-ground-line svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.team-ground-line span {
  display: grid;
  font-size: 13px;
  font-weight: 900;
}

.team-ground-line small {
  margin-top: 2px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.about-rules-button {
  display: inline-flex;
  margin-top: 20px;
}



/* TEAM PROFILE LINKS */

.team-public-identity {
  min-width: 0;
}

.team-public-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.team-league-link {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 900;
}

.team-profile-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.team-profile-icon {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  color: #ffffff;
  transition: transform 0.15s ease, background 0.15s ease;
}

.team-profile-icon:hover {
  transform: translateY(-2px);
  background: var(--red);
}

.team-profile-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.team-profile-icon-facebook svg path {
  fill: currentColor;
  stroke: none;
}

.team-ground-line {
  display: flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.90);
}

.team-ground-line svg {
  width: 21px;
  height: 21px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.team-ground-line span {
  display: grid;
  font-size: 13px;
  font-weight: 900;
}

.team-ground-line small {
  margin-top: 2px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.about-rules-button {
  display: inline-flex;
  margin-top: 20px;
}

/* OUR REACH */

.hero-reach {
  background:
    linear-gradient(120deg, rgba(5, 9, 34, 0.97), rgba(77, 0, 137, 0.88)),
    radial-gradient(circle at 80% 30%, rgba(213, 31, 38, 0.52), transparent 42%);
}

.reach-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr);
  gap: 64px;
  align-items: center;
  padding-top: 72px;
  padding-bottom: 72px;
}

.reach-overview-copy h2 {
  max-width: 720px;
  margin-top: 8px;
  color: var(--ink);
  font-size: clamp(38px, 5vw, 66px);
  line-height: 0.98;
  font-weight: 900;
  letter-spacing: -0.045em;
}

.reach-overview-copy p {
  max-width: 690px;
  margin-top: 24px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.65;
}

.reach-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
  border-radius: 18px;
  background: var(--navy);
}

.reach-stat {
  display: grid;
  align-content: center;
  min-height: 150px;
  padding: 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.reach-stat:last-child {
  border-right: 0;
}

.reach-stat strong {
  color: var(--red);
  font-size: 42px;
  line-height: 1;
  font-weight: 900;
}

.reach-stat span {
  margin-top: 8px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.reach-map-section {
  padding: 72px 0;
  background: #f4f4f7;
}

.reach-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 24px;
}

.reach-section-heading h2 {
  margin-top: 6px;
  color: var(--ink);
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1;
  font-weight: 900;
}

.reach-section-heading p {
  max-width: 420px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
  text-align: right;
}

.reach-map-card {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  border: 1px solid #d7d7de;
  border-radius: 22px;
  background: #e8e8ed;
  box-shadow: 0 20px 50px rgba(5, 9, 34, 0.10);
}

.reach-map {
  position: relative;
  z-index: 0;
  width: 100%;
  min-height: 560px;
  background: #e8e8ed;
}

.reach-coming-soon {
  display: grid;
  place-items: center;
  min-height: 560px;
  color: var(--muted);
  font-size: 18px;
  font-weight: 900;
}

.reach-logo-marker-shell {
  background: transparent;
  border: 0;
}

.reach-logo-marker {
  position: relative;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 4px solid #ffffff;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 7px 20px rgba(5, 9, 34, 0.34);
}

.reach-logo-marker::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  width: 15px;
  height: 15px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 4px solid #ffffff;
  border-bottom: 4px solid #ffffff;
  background: #ffffff;
  z-index: -1;
}

.reach-logo-marker img {
  width: 39px;
  height: 39px;
  object-fit: contain;
}

.reach-map-popup {
  display: grid;
  justify-items: center;
  min-width: 170px;
  padding: 4px;
  text-align: center;
}

.reach-map-popup img {
  width: 56px;
  height: 56px;
  margin-bottom: 8px;
  object-fit: contain;
}

.reach-map-popup strong {
  color: var(--ink);
  font-size: 14px;
}

.reach-map-popup span {
  display: grid;
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.3;
}

.reach-map-popup a {
  margin-top: 9px;
  color: var(--red);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.reach-directory-section {
  padding-top: 76px;
  padding-bottom: 96px;
}

.reach-league-directory {
  display: grid;
  gap: 46px;
}

.reach-league-group {
  border-top: 1px solid var(--line);
  padding-top: 22px;
}

.reach-league-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}

.reach-league-heading h3 a {
  color: var(--ink);
  font-size: 28px;
  line-height: 1;
  font-weight: 900;
  text-decoration: none;
}

.reach-league-heading h3 a:hover {
  color: var(--red);
}

.reach-league-heading span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.reach-team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.reach-team-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  background: #ffffff;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.reach-team-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(5, 9, 34, 0.08);
}

.reach-team-main {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  color: var(--ink);
  text-decoration: none;
}

.reach-team-main img {
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.reach-team-main > span {
  display: grid;
  min-width: 0;
}

.reach-team-main strong {
  font-size: 14px;
  line-height: 1.2;
}

.reach-team-main small {
  overflow: hidden;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
  text-overflow: ellipsis;
}

.reach-card-league {
  color: var(--purple);
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.leaflet-container {
  font-family: inherit;
}

.leaflet-control-attribution {
  font-size: 9px;
}

.coming-soon-panel {
  max-width: 900px;
  text-align: center;
}

.coming-soon-panel h2 {
  margin: 8px 0 10px;
  font-size: clamp(42px, 6vw, 74px);
  font-weight: 900;
}

.coming-soon-panel p {
  color: var(--muted);
}

@media (max-width: 980px) {
  .reach-overview {
    grid-template-columns: 1fr;
    gap: 36px;
  }

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

@media (max-width: 700px) {
  .reach-overview {
    padding-top: 52px;
    padding-bottom: 52px;
  }

  .reach-stat-grid {
    grid-template-columns: 1fr;
  }

  .reach-stat {
    min-height: 100px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  .reach-stat:last-child {
    border-bottom: 0;
  }

  .reach-section-heading {
    display: block;
  }

  .reach-section-heading p {
    margin-top: 10px;
    text-align: left;
  }

  .reach-map-card,
  .reach-map,
  .reach-coming-soon {
    min-height: 460px;
  }

  .reach-team-grid {
    grid-template-columns: 1fr;
  }

  .reach-team-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .team-profile-icon {
    width: 36px;
    height: 36px;
  }
}


/* ================================================================
   MFFL LEAGUE COLOUR SYSTEM

   PREMIERSHIP
   Base:   #3d2078 → #6b39ce

   CHAMPIONSHIP
   Base:   #1866a9 → #279cff

   REGIONAL ACCENTS
   East:   #ff6c00
   West:   #ffd800
   ================================================================ */

.league-prem-east {
  --league-start: #3d2078;
  --league-end: #6b39ce;
  --league-accent: #ff6c00;
}

.league-prem-west {
  --league-start: #3d2078;
  --league-end: #6b39ce;
  --league-accent: #ffd800;
}

.league-champ-east {
  --league-start: #1866a9;
  --league-end: #279cff;
  --league-accent: #ff6c00;
}

.league-champ-west {
  --league-start: #1866a9;
  --league-end: #279cff;
  --league-accent: #ffd800;
}

/* Homepage and Leagues page cards */

.league-card.league-prem-east,
.league-card.league-prem-west,
.league-card.league-champ-east,
.league-card.league-champ-west {
  background:
    linear-gradient(
      135deg,
      var(--league-start) 0%,
      var(--league-end) 100%
    );
  box-shadow: inset 0 7px 0 var(--league-accent);
}

.league-card.league-prem-east::after,
.league-card.league-prem-west::after,
.league-card.league-champ-east::after,
.league-card.league-champ-west::after {
  color: var(--league-accent);
}

/* Individual league page headers */

.league-hero.league-prem-east,
.league-hero.league-prem-west,
.league-hero.league-champ-east,
.league-hero.league-champ-west {
  background:
    linear-gradient(
      135deg,
      var(--league-start) 0%,
      var(--league-end) 100%
    );
  box-shadow: inset 0 8px 0 var(--league-accent);
}

.league-hero[class*="league-"] .eyebrow {
  color: var(--league-accent);
}

/* Public team-page headers inherit their league */

.team-public-hero.league-prem-east,
.team-public-hero.league-prem-west,
.team-public-hero.league-champ-east,
.team-public-hero.league-champ-west {
  background:
    linear-gradient(
      135deg,
      var(--league-start) 0%,
      var(--league-end) 100%
    );
  box-shadow: inset 0 8px 0 var(--league-accent);
}

.team-public-hero[class*="league-"] .team-profile-icon:hover {
  background: var(--league-accent);
  color: #050922;
}

/* About Us structure panels */

.feature-grid .league-feature {
  position: relative;
  min-height: 240px;
  background:
    linear-gradient(
      145deg,
      var(--league-start) 0%,
      var(--league-end) 100%
    );
  box-shadow: inset 0 6px 0 var(--league-accent);
}

.feature-grid .league-feature:nth-child(odd),
.feature-grid .league-feature:nth-child(even) {
  background:
    linear-gradient(
      145deg,
      var(--league-start) 0%,
      var(--league-end) 100%
    );
}

.feature-grid .league-feature h3 {
  margin-bottom: 18px;
}

.feature-grid .league-feature h3 a {
  color: #ffffff;
  text-decoration-color: var(--league-accent);
  text-decoration-thickness: 4px;
  text-underline-offset: 6px;
}

/* Stats page cards */

.stats-card.league-prem-east,
.stats-card.league-prem-west,
.stats-card.league-champ-east,
.stats-card.league-champ-west {
  border-top: 6px solid var(--league-accent);
}

.stats-card[class*="league-"] .stats-card-heading {
  background:
    linear-gradient(
      135deg,
      var(--league-start) 0%,
      var(--league-end) 100%
    );
  color: #ffffff;
}

.stats-card[class*="league-"] .stats-card-heading span {
  color: var(--league-accent);
}

.stats-card[class*="league-"] .stats-card-heading h3,
.stats-card[class*="league-"] .stats-card-heading b {
  color: #ffffff;
}

/* League-name links throughout fixtures, team pages, About and Reach */

.league-name-link {
  text-decoration-color: var(--league-accent, rgba(211, 31, 38, 0.45));
  text-decoration-thickness: 3px;
  text-underline-offset: 4px;
}

.league-name-link.league-prem-east:hover,
.league-name-link.league-champ-east:hover {
  color: #ff6c00;
}

.league-name-link.league-prem-west:hover,
.league-name-link.league-champ-west:hover {
  color: #9a8200;
}


/* ================================================================
   LEAGUE DETAIL PAGES
   Keep overview cards bold, but use restrained colours inside
   league, fixture and team-detail pages.
   ================================================================ */

/* Breadcrumbs */

.public-breadcrumb {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
}

.public-breadcrumb a {
  color: #ffffff;
  text-decoration: none;
}

.public-breadcrumb a:hover {
  color: var(--league-accent, #ffffff);
}

.public-breadcrumb i {
  color: var(--league-accent, rgba(255, 255, 255, 0.62));
  font-style: normal;
  font-size: 16px;
}

.public-breadcrumb span[aria-current="page"] {
  color: rgba(255, 255, 255, 0.72);
}

/* League-page hero: slightly calmer than the overview cards */

.league-hero.league-prem-east,
.league-hero.league-prem-west {
  background:
    linear-gradient(
      125deg,
      #251344 0%,
      #3d2078 72%,
      #4d2b8d 100%
    );
  box-shadow: inset 0 6px 0 var(--league-accent);
}

.league-hero.league-champ-east,
.league-hero.league-champ-west {
  background:
    linear-gradient(
      125deg,
      #0e3c68 0%,
      #1866a9 72%,
      #2078bf 100%
    );
  box-shadow: inset 0 6px 0 var(--league-accent);
}

.league-hero[class*="league-"] .eyebrow {
  color: var(--league-accent);
}

/* Team-page hero: MFFL navy with only a league/accent detail */

.team-public-hero.league-prem-east,
.team-public-hero.league-prem-west,
.team-public-hero.league-champ-east,
.team-public-hero.league-champ-west {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(
      125deg,
      #050922 0%,
      #11162b 68%,
      var(--league-start) 160%
    );
  box-shadow: inset 0 6px 0 var(--league-accent);
}

.team-public-hero[class*="league-"]::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: -160px;
  right: -110px;
  width: 430px;
  height: 430px;
  border-radius: 999px;
  background: var(--league-end);
  opacity: 0.13;
  pointer-events: none;
}

.team-public-hero .container {
  position: relative;
  z-index: 1;
}

.team-league-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 12px;
  border-left: 4px solid var(--league-accent);
  border-radius: 3px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.10);
  color: #ffffff;
  font-size: 11px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.team-public-hero[class*="league-"] .team-profile-icon:hover {
  background: var(--league-accent);
  color: #050922;
}

/* Fixture and result league labels */

.fixture-score small {
  display: flex;
  justify-content: center;
  margin-top: 4px;
}

.fixture-league-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  border: 1px solid transparent;
  border-left-width: 3px;
  border-radius: 4px;
  padding: 2px 6px;
  background: #f4f3f7;
  font-size: 8px;
  line-height: 1;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.fixture-league-link.league-prem-east,
.fixture-league-link.league-prem-west {
  border-color: rgba(61, 32, 120, 0.18);
  border-left-color: var(--league-accent);
  background: rgba(61, 32, 120, 0.07);
  color: #3d2078;
}

.fixture-league-link.league-champ-east,
.fixture-league-link.league-champ-west {
  border-color: rgba(24, 102, 169, 0.18);
  border-left-color: var(--league-accent);
  background: rgba(39, 156, 255, 0.08);
  color: #1866a9;
}

.fixture-league-link.league-prem-east:hover,
.fixture-league-link.league-prem-west:hover,
.fixture-league-link.league-champ-east:hover,
.fixture-league-link.league-champ-west:hover {
  color: inherit;
  filter: brightness(0.94);
}

/* Stop the generic league underline treatment affecting compact chips */

.fixture-league-link,
.team-league-chip {
  text-decoration: none;
}

/* Mobile breadcrumb and fixture treatment */

@media (max-width: 620px) {
  .public-breadcrumb {
    margin-bottom: 22px;
    font-size: 11px;
  }

  .league-hero,
  .team-public-hero {
    padding-top: 44px;
  }

  .fixture-league-link {
    max-width: 82px;
    overflow: hidden;
    padding-inline: 4px;
    font-size: 7px;
    text-overflow: ellipsis;
  }
}


/* ================================================================
   REACH DIRECTORY LEAGUE LABEL FIX
   League classes provide colour variables only. They must not paint
   backgrounds onto ordinary text links.
   ================================================================ */

.league-name-link.league-prem-east,
.league-name-link.league-prem-west,
.league-name-link.league-champ-east,
.league-name-link.league-champ-west {
  background: transparent;
  box-shadow: none;
}

/* League section headings */

.reach-league-heading h3 a.league-name-link {
  display: inline-block;
  padding: 0 0 7px;
  background: transparent;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 5px solid var(--league-accent);
}

.reach-league-heading h3 a.league-name-link:hover {
  background: transparent;
  color: var(--league-start);
}

/* Small league label on each club card */

.reach-card-league.league-name-link {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border: 1px solid color-mix(in srgb, var(--league-start) 18%, transparent);
  border-left: 4px solid var(--league-accent);
  border-radius: 4px;
  padding: 4px 7px;
  background: color-mix(in srgb, var(--league-start) 7%, white);
  color: var(--league-start);
  font-size: 9px;
  line-height: 1;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.reach-card-league.league-name-link:hover {
  background: color-mix(in srgb, var(--league-start) 12%, white);
  color: var(--league-start);
}

/* Fallback for browsers without color-mix support */

@supports not (background: color-mix(in srgb, black 10%, white)) {
  .reach-card-league.league-prem-east,
  .reach-card-league.league-prem-west {
    border-color: rgba(61, 32, 120, 0.18);
    background: rgba(61, 32, 120, 0.07);
    color: #3d2078;
  }

  .reach-card-league.league-champ-east,
  .reach-card-league.league-champ-west {
    border-color: rgba(24, 102, 169, 0.18);
    background: rgba(39, 156, 255, 0.08);
    color: #1866a9;
  }
}

@media (max-width: 700px) {
  .reach-card-league.league-name-link {
    padding: 4px 6px;
    font-size: 8px;
  }
}


/* ================================================================
   OUR REACH GROUPED MAP PINS
   Clubs sharing a postcode or sitting within 1 km are grouped into
   one numbered marker.
   ================================================================ */

.reach-cluster-marker-shell {
  background: transparent;
  border: 0;
}

.reach-cluster-marker {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  width: 66px;
  height: 66px;
  border: 5px solid #ffffff;
  border-radius: 999px;
  background:
    linear-gradient(
      145deg,
      #1e2154 0%,
      #ce2525 100%
    );
  color: #ffffff;
  box-shadow: 0 8px 23px rgba(5, 9, 34, 0.38);
}

.reach-cluster-marker::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  z-index: -1;
  width: 18px;
  height: 18px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 5px solid #ffffff;
  border-bottom: 5px solid #ffffff;
  background: #ce2525;
}

.reach-cluster-marker strong {
  font-size: 25px;
  line-height: 0.95;
  font-weight: 900;
}

.reach-cluster-marker small {
  margin-top: 3px;
  font-size: 8px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.reach-cluster-popup {
  min-width: 270px;
}

.reach-cluster-popup-heading {
  display: grid;
  justify-items: center;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e1e1e7;
  text-align: center;
}

.reach-cluster-popup-heading strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.1;
  font-weight: 900;
}

.reach-cluster-popup-heading span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.reach-cluster-team-list {
  display: grid;
  gap: 6px;
}

.reach-cluster-team {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid #e2e2e8;
  border-radius: 11px;
  padding: 9px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
  transition:
    transform 0.15s ease,
    border-color 0.15s ease,
    background 0.15s ease;
}

.reach-cluster-team:hover {
  transform: translateY(-1px);
  border-color: #ce2525;
  background: #f8f5fc;
}

.reach-cluster-team img {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.reach-cluster-team > span {
  display: grid;
  min-width: 0;
}

.reach-cluster-team strong {
  color: var(--ink);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 900;
}

.reach-cluster-team small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.3;
}

.reach-cluster-team b {
  color: #ce2525;
  font-size: 22px;
  line-height: 1;
}

@media (max-width: 620px) {
  .reach-cluster-marker {
    width: 58px;
    height: 58px;
  }

  .reach-cluster-marker strong {
    font-size: 22px;
  }

  .reach-cluster-popup {
    min-width: 235px;
  }
}


/* ================================================================
   MFFL HISTORY PAGE
   ================================================================ */

.hero-history {
  background:
    linear-gradient(
      120deg,
      rgba(30, 33, 84, 0.98),
      rgba(206, 37, 37, 0.84)
    ),
    radial-gradient(
      circle at 82% 24%,
      rgba(255, 216, 0, 0.22),
      transparent 38%
    );
}

.history-page {
  padding: 82px 0 105px;
  background: #f4f4f7;
}

.history-season-intro {
  display: grid;
  grid-template-columns: minmax(350px, 0.78fr) minmax(0, 1.65fr);
  gap: 48px;
  align-items: stretch;
  overflow: hidden;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(30, 33, 84, 0.09);
}

.history-season-year {
  display: grid;
  align-content: center;
  min-height: 310px;
  padding: 38px;
  background:
    linear-gradient(
      145deg,
      #1e2154 0%,
      #34396f 62%,
      #ce2525 145%
    );
  color: #ffffff;
}

.history-season-year span {
  color: #ff8a8a;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.history-season-year strong {
  display: block;
  margin-top: 10px;
  font-size: clamp(48px, 5vw, 64px);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.06em;
  white-space: nowrap;
}

.history-season-year small {
  margin-top: 16px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.history-season-copy {
  align-self: center;
  max-width: 780px;
  padding: 46px 52px 46px 0;
}

.history-season-copy h2 {
  margin-bottom: 22px;
  color: #1e2154;
  font-size: clamp(36px, 5vw, 58px);
  line-height: 0.98;
  font-weight: 900;
  letter-spacing: -0.045em;
}

.history-season-copy p {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.65;
}

.history-season-copy p + p {
  margin-top: 15px;
}

.history-honours-section {
  margin-top: 78px;
}

.history-cups-section {
  margin-top: 86px;
}

.history-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid #d8d9e0;
}

.history-section-heading h2 {
  color: #1e2154;
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.history-section-heading p {
  max-width: 430px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
  text-align: right;
}

.history-league-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.history-cup-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.history-honour-card {
  --history-accent: #ce2525;
  --history-head-start: #1e2154;
  --history-head-end: #34396f;

  overflow: hidden;
  border: 1px solid #dedfe5;
  border-radius: 21px;
  background: #ffffff;
  box-shadow: 0 12px 32px rgba(30, 33, 84, 0.07);
}

.history-east {
  --history-accent: #ff6c00;
  --history-head-start: #1e2154;
  --history-head-end: #6b3153;
}

.history-west {
  --history-accent: #ffd800;
  --history-head-start: #1e2154;
  --history-head-end: #766d32;
}

.history-development {
  --history-accent: #65b968;
  --history-head-start: #1e2154;
  --history-head-end: #315e5b;
}

.history-shield {
  --history-accent: #b9c3d4;
  --history-head-start: #1e2154;
  --history-head-end: #47526e;
}

.history-cup {
  --history-accent: #d7ad3f;
  --history-head-start: #1e2154;
  --history-head-end: #755e29;
}

.history-competition-heading {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: center;
  gap: 17px;
  min-height: 130px;
  border-top: 6px solid var(--history-accent);
  padding: 21px;
  background:
    linear-gradient(
      135deg,
      var(--history-head-start),
      var(--history-head-end)
    );
  color: #ffffff;
}

.history-competition-heading span {
  display: block;
  margin-bottom: 5px;
  color: var(--history-accent);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.history-competition-heading h3 {
  font-size: 25px;
  line-height: 1.05;
  font-weight: 900;
}

.history-logo-wrap {
  position: relative;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 16px;
  background: #ffffff;
}

.history-logo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.history-logo-wrap > span {
  display: none;
  color: #1e2154;
  font-size: 24px;
  font-weight: 900;
}

.history-logo-wrap.logo-missing img {
  display: none;
}

.history-logo-wrap.logo-missing > span {
  display: grid;
}

.history-competition-logo {
  width: 86px;
  height: 86px;
  padding: 7px;
}

.history-club-logo {
  width: 76px;
  height: 76px;
  margin: 13px auto 12px;
  border: 1px solid #e3e4e9;
  padding: 7px;
}

.history-placings {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.history-club-place {
  min-width: 0;
  padding: 23px 18px 25px;
  text-align: center;
}

.history-club-place + .history-club-place {
  border-left: 1px solid #e1e2e7;
}

.history-winner {
  background:
    linear-gradient(
      180deg,
      rgba(255, 216, 0, 0.11),
      rgba(255, 255, 255, 0)
    );
}

.history-place-label {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  border-radius: 999px;
  padding: 5px 9px;
  background: #f1f1f4;
  color: var(--muted);
  font-size: 9px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.history-winner .history-place-label {
  background: #ffd800;
  color: #1e2154;
}

.history-club-place strong {
  display: block;
  min-height: 42px;
  color: #1e2154;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 900;
}

@media (max-width: 980px) {
  .history-season-intro {
    grid-template-columns: 290px minmax(0, 1fr);
    gap: 34px;
  }

  .history-season-year {
    padding: 30px;
  }

  .history-season-year strong {
    font-size: 50px;
  }

  .history-season-copy {
    padding-right: 34px;
  }

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

  .history-league-grid .history-honour-card:last-child {
    grid-column: 1 / -1;
    width: calc(50% - 10px);
    justify-self: center;
  }
}

@media (max-width: 720px) {
  .history-page {
    padding-top: 54px;
  }

  .history-season-intro {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .history-season-year {
    min-height: 220px;
    padding: 34px;
  }

  .history-season-year strong {
    font-size: clamp(46px, 15vw, 62px);
  }

  .history-season-copy {
    padding: 32px 26px 38px;
  }

  .history-section-heading {
    display: block;
  }

  .history-section-heading p {
    margin-top: 12px;
    text-align: left;
  }

  .history-league-grid,
  .history-cup-grid {
    grid-template-columns: 1fr;
  }

  .history-league-grid .history-honour-card:last-child {
    grid-column: auto;
    width: auto;
  }
}

@media (max-width: 430px) {
  .history-competition-heading {
    grid-template-columns: 72px minmax(0, 1fr);
    min-height: 112px;
    padding: 17px;
  }

  .history-competition-logo {
    width: 72px;
    height: 72px;
  }

  .history-competition-heading h3 {
    font-size: 21px;
  }

  .history-club-place {
    padding: 20px 10px 23px;
  }

  .history-club-logo {
    width: 66px;
    height: 66px;
  }

  .history-club-place strong {
    font-size: 14px;
  }
}


/* PUBLIC TEAM HOME AND AWAY KITS */

.team-kits-section {
  padding-top: 24px;
  padding-bottom: 38px;
}

.team-kits-heading {
  margin-bottom: 18px;
}

.public-kit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 250px));
  justify-content: start;
  gap: 18px;
}

.public-kit-grid.single-kit {
  grid-template-columns: minmax(0, 250px);
}

.public-kit-card {
  display: grid;
  justify-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(30, 33, 84, 0.07);
}

.public-kit-visual {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 230px;
  padding: 20px;
  background:
    radial-gradient(circle at 50% 42%, #ffffff 0%, #f1f1f5 74%);
}

.public-football-shirt-svg {
  display: block;
  width: 165px;
  height: auto;
  filter: drop-shadow(0 13px 14px rgba(30, 33, 84, 0.18));
}

.public-kit-label {
  display: block;
  width: 100%;
  border-top: 1px solid var(--line);
  padding: 13px 16px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

@media (max-width: 720px) {
  .team-kits-section {
    padding-top: 20px;
    padding-bottom: 30px;
  }

  .public-kit-grid,
  .public-kit-grid.single-kit {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .public-kit-visual {
    min-height: 175px;
    padding: 13px;
  }

  .public-football-shirt-svg {
    width: min(125px, 100%);
  }

  .public-kit-label {
    padding: 11px 8px;
    font-size: 11px;
  }
}

@media (max-width: 390px) {
  .public-kit-grid,
  .public-kit-grid.single-kit {
    gap: 8px;
  }

  .public-kit-visual {
    min-height: 158px;
    padding: 10px;
  }

  .public-football-shirt-svg {
    width: min(112px, 100%);
  }
}

.rules-public-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:22px}.rules-public-meta>div{background:#fff;padding:18px}.rules-public-meta span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.rules-public-meta strong{display:block;color:var(--purple);font-size:17px;margin-top:5px}.rules-change-summary{border-left:5px solid var(--red);padding:17px 19px;background:#fff5f5;margin-bottom:22px}.rules-change-summary strong{color:var(--red);text-transform:uppercase;font-size:11px;letter-spacing:.07em}.rules-change-summary p{margin-top:5px}.rules-public-tools{display:flex;gap:10px;align-items:center;margin-bottom:22px}.rules-public-tools label{flex:1}.rules-public-tools input{width:100%;padding:14px 16px;border:2px solid var(--line);font:inherit}.rules-public-tools button{padding:13px 16px;border:0;background:var(--navy);color:#fff;font-weight:900;cursor:pointer}.rules-page .accordion{scroll-margin-top:115px}.rules-page .accordion[hidden]{display:none}.rules-page .hidden{display:none}.rules-page table{min-width:540px}@media(max-width:700px){.rules-public-meta{grid-template-columns:1fr}.rules-public-tools{display:grid}.rules-public-tools label{width:100%}.rules-public-tools button{width:100%}.accordion>button{font-size:16px!important;padding:17px 4px!important}}

/* ======================================================================
   PUBLIC CLUB RESOURCE LIBRARY
   ====================================================================== */
.resources-intro-section{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;align-items:end;padding-top:78px;padding-bottom:70px}.resources-intro-section h2{font-size:clamp(38px,5vw,64px);line-height:.98;color:var(--navy);margin-top:8px}.resources-intro-section>p{font-size:19px;line-height:1.6;color:var(--muted);font-weight:700}.resource-colours-band{background:var(--navy);color:#fff;padding:72px 0}.resource-section-heading{align-items:end}.resource-colours-band .resource-section-heading h2{color:#fff}.resource-colours-band .resource-section-heading small{color:#c8cad7}.public-colour-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:30px}.public-colour-card{border:1px solid rgba(255,255,255,.18);background:#151a43;color:#fff;border-radius:16px;padding:14px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.public-colour-card:hover,.public-colour-card:focus-visible{transform:translateY(-3px);border-color:#fff;background:#1c2254}.public-colour-card.copied{border-color:#7be0a2}.public-colour-swatch{width:58px;height:58px;border-radius:12px;background:var(--resource-colour);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}.public-colour-card>span:nth-child(2){display:grid;gap:4px;min-width:0}.public-colour-card strong{font-size:15px}.public-colour-card code{color:#d7d9e5;font-size:13px}.public-colour-card em{font-style:normal;color:#fff;font-weight:900;font-size:11px;text-transform:uppercase}.resource-copy-message{min-height:24px;margin-top:14px;color:#bdeacb;font-weight:800}.resources-library-section{padding-top:78px;padding-bottom:100px}.public-resource-controls{display:grid;grid-template-columns:minmax(260px,1fr) 260px;gap:14px;padding:18px;background:#f3f4f8;border:1px solid var(--line);margin:28px 0 42px}.public-resource-controls input,.public-resource-controls select{width:100%;min-height:50px;border:1px solid #cfd2dc;background:#fff;padding:12px 14px;font:inherit;font-weight:700}.public-resource-group{margin-bottom:58px}.public-resource-group-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:3px solid var(--navy);margin-bottom:18px}.public-resource-group-heading h3{font-size:30px;color:var(--navy)}.public-resource-group-heading span{font-size:12px;color:var(--muted);font-weight:900;text-transform:uppercase}.public-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.public-resource-card{display:grid;grid-template-rows:180px 1fr auto;border:1px solid var(--line);background:#fff;min-width:0}.public-resource-preview{display:grid;place-items:center;background:#f7f7fa;border-bottom:1px solid var(--line);overflow:hidden;text-decoration:none}.public-resource-preview img{width:100%;height:100%;object-fit:contain;padding:20px}.public-resource-preview span{display:grid;place-items:center;width:92px;height:112px;border-radius:10px;background:linear-gradient(145deg,var(--navy),var(--purple));color:#fff;font-size:20px;font-weight:900;box-shadow:0 12px 26px rgba(5,9,34,.18)}.public-resource-card-copy{padding:20px}.public-resource-card-copy>span{display:block;color:var(--red);font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.public-resource-card-copy h4{font-size:22px;line-height:1.08;color:var(--navy);margin:8px 0 10px}.public-resource-card-copy p{color:var(--muted);font-size:14px;line-height:1.5}.public-resource-card-copy small{display:block;margin-top:15px;color:#7b8190;font-weight:800;font-size:10px}.public-resource-card-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.public-resource-card-actions a{padding:14px;text-align:center;text-decoration:none;font-weight:900;color:var(--navy)}.public-resource-card-actions a+a{border-left:1px solid var(--line);background:var(--red);color:#fff}.public-resource-card[hidden],.public-resource-group[hidden]{display:none!important}

@media(max-width:1000px){.public-colour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resources-intro-section{gap:40px}}
@media(max-width:720px){.resources-intro-section{grid-template-columns:1fr;gap:22px;padding-top:55px;padding-bottom:50px}.public-resource-controls{grid-template-columns:1fr}.public-resource-grid{grid-template-columns:1fr}.resource-colours-band{padding:55px 0}.public-colour-grid{grid-template-columns:1fr}.public-resource-card{grid-template-rows:150px 1fr auto}.resource-section-heading{align-items:flex-start}.public-resource-group-heading h3{font-size:25px}}

/* ======================================================================
   RECOGNISED WEIGHT LOSS PROGRAMMES
   ====================================================================== */

.about-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.about-action-row .about-rules-button {
  margin-top: 0;
}

.about-action-row .button,
.about-action-row .button-outline-light {
  min-height: 50px;
  border-radius: 0;
}

.button-outline-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 24px;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: 0;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.button-outline-light:hover {
  background: #ffffff;
  color: #1e2154;
}

.programme-public-intro {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.4fr);
  gap: clamp(28px, 6vw, 80px);
  padding-top: clamp(54px, 8vw, 96px);
  padding-bottom: clamp(54px, 8vw, 96px);
}

.programme-public-intro h2 {
  max-width: 520px;
  margin-top: 10px;
  color: #050922;
  font-size: clamp(36px, 5vw, 62px);
  line-height: 0.98;
}

.programme-public-intro-copy {
  display: grid;
  justify-items: start;
  gap: 18px;
}

.programme-public-intro-copy p {
  color: #4d526a;
  font-size: 17px;
  line-height: 1.7;
}

.programme-public-intro-copy .lead {
  color: #1e2154;
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 800;
  line-height: 1.45;
}

.programme-criteria-band {
  padding: clamp(56px, 8vw, 90px) 0;
  background: #1e2154;
  color: #ffffff;
}

.programme-public-heading {
  align-items: end;
}

.programme-public-heading h2 {
  color: #ffffff;
}

.programme-public-heading small {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 800;
}

.programme-public-criteria-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 30px;
}

.programme-public-criteria-grid article {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  min-height: 178px;
  padding: 22px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
}

.programme-public-criteria-grid article > span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #ce2525;
  color: #ffffff;
  font-size: 18px;
  font-weight: 900;
}

.programme-public-criteria-grid h3 {
  margin: 3px 0 9px;
  color: #ffffff;
  font-size: 19px;
}

.programme-public-criteria-grid p {
  color: rgba(255, 255, 255, 0.76);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.55;
}

.programme-directory-section {
  padding-top: clamp(58px, 8vw, 100px);
  padding-bottom: clamp(58px, 8vw, 100px);
}

.programme-directory-heading {
  align-items: end;
}

.programme-directory-heading small {
  color: #6a6f84;
  font-weight: 900;
}

.programme-public-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 30px;
}

.programme-public-card {
  overflow: hidden;
  border: 1px solid #dfe2ec;
  border-radius: 26px;
  background: #ffffff;
  box-shadow: 0 20px 46px rgba(5, 9, 34, 0.08);
}

.programme-public-card.recognised {
  border-top: 7px solid #1f8b5b;
}

.programme-public-card.not-recognised {
  border-top: 7px solid #ce2525;
}

.programme-public-card-image {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 250px;
  padding: 28px;
  border-bottom: 1px solid #e5e7ef;
  background: #f6f7fb;
}

.programme-public-card-image img {
  display: block;
  width: min(100%, 320px);
  height: 190px;
  object-fit: contain;
}

.programme-public-placeholder {
  display: grid;
  place-items: center;
  width: 180px;
  height: 150px;
  border: 2px dashed #c8ccdc;
  border-radius: 18px;
  color: #1e2154;
  font-size: 30px;
  font-weight: 900;
}

.programme-public-status {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 9px 13px;
  border-radius: 999px;
  background: #ce2525;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.programme-public-card.recognised .programme-public-status {
  background: #1f8b5b;
}

.programme-public-card-copy {
  padding: 28px;
}

.programme-public-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 13px;
}

.programme-public-title-row h3 {
  color: #050922;
  font-size: clamp(25px, 3vw, 34px);
  line-height: 1.05;
}

.programme-public-title-row > span {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: #eef0f6;
  color: #1e2154;
  font-size: 12px;
  font-weight: 900;
}

.programme-public-card-copy > p {
  margin-bottom: 22px;
  color: #5b6074;
  font-size: 15px;
  line-height: 1.65;
}

.programme-public-checklist {
  display: grid;
  gap: 9px;
}

.programme-public-check {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid #edd0d3;
  border-radius: 13px;
  background: #fff7f7;
}

.programme-public-check.met {
  border-color: #b8dfca;
  background: #f1fbf6;
}

.programme-public-check > span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: #ce2525;
  color: #ffffff;
  font-size: 18px;
  font-weight: 900;
}

.programme-public-check.met > span {
  background: #1f8b5b;
}

.programme-public-check strong {
  display: block;
  color: #1e2154;
  font-size: 13px;
}

.programme-public-check small {
  display: block;
  margin-top: 2px;
  color: #73778b;
  font-size: 11px;
  font-weight: 700;
}

.programme-website-link {
  display: inline-flex;
  margin-top: 22px;
  color: #ce2525;
  font-weight: 900;
  text-decoration: none;
}

.programme-website-link:hover {
  text-decoration: underline;
}

.programme-unrecognised-band {
  border-top: 1px solid #e1e3eb;
  background: #f4f5f9;
}

.programme-unrecognised-intro {
  max-width: 900px;
  margin: 0 0 28px;
  color: #5a6074;
  font-size: 16px;
  line-height: 1.65;
}

@media (max-width: 960px) {
  .programme-public-criteria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .programme-public-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .about-action-row {
    display: grid;
  }

  .about-action-row .button,
  .button-outline-light {
    width: 100%;
  }

  .programme-public-intro,
  .programme-public-criteria-grid {
    grid-template-columns: 1fr;
  }

  .programme-public-card-image {
    min-height: 210px;
  }

  .programme-public-card-image img {
    height: 150px;
  }

  .programme-public-card-copy {
    padding: 22px;
  }

  .programme-public-title-row {
    display: grid;
  }

  .programme-public-title-row > span {
    justify-self: start;
  }
}


/* RECOGNISED PROGRAMMES — COMPACT PUBLIC CARDS */
.programme-public-card-image {
  min-height: 0;
  aspect-ratio: 3 / 2;
  padding: 0;
  overflow: hidden;
  background: #e9ebf2;
}

.programme-public-card-image img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  background: #0b0f2f;
}

.programme-public-card-copy {
  padding: 24px;
}

.programme-public-checklist {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.programme-public-check {
  grid-template-columns: 27px minmax(0, 1fr);
  gap: 8px;
  min-height: 50px;
  padding: 9px 10px;
  border-radius: 12px;
}

.programme-public-check > span {
  width: 27px;
  height: 27px;
  border-radius: 8px;
  font-size: 16px;
}

.programme-public-check strong {
  min-width: 0;
  font-size: 12px;
  line-height: 1.2;
}

@media (max-width: 720px) {
  .programme-directory-section {
    padding-top: 44px;
    padding-bottom: 44px;
  }

  .programme-public-grid {
    gap: 18px;
    margin-top: 22px;
  }

  .programme-public-card {
    border-radius: 20px;
  }

  .programme-public-card-image {
    aspect-ratio: 3 / 2;
  }

  .programme-public-status {
    top: 14px;
    right: 14px;
    padding: 8px 11px;
    font-size: 11px;
  }

  .programme-public-card-copy {
    padding: 18px;
  }

  .programme-public-title-row {
    display: flex;
    align-items: center;
    margin-bottom: 14px;
  }

  .programme-public-title-row h3 {
    font-size: clamp(22px, 7vw, 28px);
    line-height: 1.05;
  }

  .programme-public-title-row > span {
    justify-self: auto;
    padding: 6px 9px;
  }

  .programme-public-card-copy > p {
    margin-bottom: 16px;
    font-size: 14px;
  }

  .programme-public-checklist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .programme-public-check {
    min-height: 52px;
    padding: 9px;
  }

  .programme-public-check strong {
    font-size: 12px;
  }

  .programme-website-link {
    margin-top: 16px;
  }
}

@media (max-width: 360px) {
  .programme-public-checklist {
    grid-template-columns: 1fr;
  }
}

/* RECOGNISED PROGRAMMES — COMPACT PUBLISHED CRITERIA */
.programme-public-intro-copy {
  gap: 14px;
}

.programme-criteria-band {
  padding: clamp(38px, 5vw, 58px) 0;
}

.programme-public-heading {
  margin-bottom: 18px;
}

.programme-public-heading h2 {
  font-size: clamp(30px, 4vw, 45px);
}

.programme-public-criteria-grid {
  gap: 10px;
  margin-top: 18px;
}

.programme-public-criteria-grid article {
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  min-height: 0;
  padding: 14px;
  border-radius: 14px;
}

.programme-public-criteria-grid article > span {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  font-size: 15px;
}

.programme-public-criteria-grid h3 {
  margin: 1px 0 4px;
  font-size: 16px;
  line-height: 1.2;
}

.programme-public-criteria-grid p {
  font-size: 12px;
  line-height: 1.38;
}

@media (max-width: 720px) {
  .programme-public-intro {
    gap: 22px;
    padding-top: 42px;
    padding-bottom: 42px;
  }

  .programme-public-intro h2 {
    font-size: clamp(34px, 10vw, 45px);
  }

  .programme-public-intro-copy {
    gap: 12px;
  }

  .programme-public-intro-copy .lead {
    font-size: 18px;
    line-height: 1.42;
  }

  .programme-public-intro-copy p {
    font-size: 15px;
    line-height: 1.58;
  }

  .programme-criteria-band {
    padding: 34px 0 38px;
  }

  .programme-public-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
  }

  .programme-public-heading h2 {
    font-size: clamp(30px, 9vw, 40px);
    line-height: 1;
  }

  .programme-public-heading small {
    flex: 0 0 auto;
    margin-top: 0;
    font-size: 11px;
  }

  .programme-public-criteria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
  }

  .programme-public-criteria-grid article {
    display: block;
    padding: 12px;
    border-radius: 13px;
  }

  .programme-public-criteria-grid article > span {
    width: 30px;
    height: 30px;
    margin-bottom: 9px;
    border-radius: 9px;
    font-size: 14px;
  }

  .programme-public-criteria-grid h3 {
    margin: 0 0 5px;
    font-size: 14px;
    line-height: 1.18;
  }

  .programme-public-criteria-grid p {
    font-size: 11px;
    line-height: 1.36;
  }
}

@media (max-width: 370px) {
  .programme-public-criteria-grid {
    grid-template-columns: 1fr;
  }

  .programme-public-criteria-grid article {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
  }

  .programme-public-criteria-grid article > span {
    margin-bottom: 0;
  }
}

/* ======================================================================
   PUBLIC MEDIA CENTRE
   ====================================================================== */
.media-page-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:40px;align-items:end;padding-top:42px;padding-bottom:34px}.media-page-intro h2{margin:6px 0 0;color:var(--navy);font-size:clamp(30px,4vw,52px);line-height:1}.media-page-intro p{margin:0;color:var(--muted);font-size:18px;line-height:1.6;font-weight:700}.media-public-section{padding:42px 0}.media-public-section:nth-of-type(even){background:#f7f8fc}.media-public-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.media-public-heading h2{margin:5px 0 0;color:var(--navy);font-size:clamp(30px,4vw,46px);line-height:1}.media-public-heading p{margin:8px 0 0;color:var(--muted);font-weight:700}.media-public-heading>span{font-size:13px;font-weight:900;color:var(--muted);white-space:nowrap}.media-press-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.press-media-card{display:grid;grid-template-columns:190px minmax(0,1fr);background:#fff;border:1px solid #dde1eb;border-radius:20px;overflow:hidden;box-shadow:0 12px 35px rgba(30,33,84,.06)}.press-media-image{min-height:180px;background:#181a46}.press-media-image img{width:100%;height:100%;object-fit:cover;display:block}.press-media-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#1e2154,#3d2078);color:#fff;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.press-media-copy{padding:20px;display:flex;flex-direction:column}.press-media-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.press-media-meta span{background:#ce2525;color:#fff;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.press-media-meta strong{color:#6a6e82;font-size:12px}.press-media-card h3{margin:0 0 8px;color:var(--navy);font-size:22px;line-height:1.1}.press-media-card p{margin:0;color:var(--muted);line-height:1.45;font-weight:650}.press-media-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:auto;padding-top:16px}.press-media-footer small{color:#85899a;font-weight:800}.press-media-footer a{color:#ce2525;font-weight:900;text-decoration:none}.official-media-album{margin-top:26px}.official-media-album+.official-media-album{margin-top:38px}.official-media-album-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.official-media-album-heading h3{margin:0;color:var(--navy);font-size:26px}.official-media-album-heading small,.official-media-album-heading span{color:var(--muted);font-weight:800}.official-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.official-media-photo,.submitted-media-card{border:0;padding:0;background:#fff;text-align:left;cursor:pointer;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(30,33,84,.08);transition:transform .18s ease,box-shadow .18s ease}.official-media-photo:hover,.submitted-media-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(30,33,84,.14)}.official-media-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.official-media-photo span{display:block;padding:10px 12px;color:var(--navy);font-weight:900;font-size:13px}.submitted-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.submitted-media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.submitted-media-card>div{padding:11px 12px;display:grid;gap:3px}.submitted-media-card strong{color:var(--navy);font-size:14px}.submitted-media-card span{color:var(--muted);font-size:12px;font-weight:750}.media-lightbox[hidden]{display:none}.media-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(3,5,22,.92);display:grid;place-items:center;padding:28px}.media-lightbox-inner{max-width:min(1100px,94vw);max-height:92vh;display:grid;gap:12px}.media-lightbox-inner img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.45)}.media-lightbox-copy{display:grid;gap:3px;color:#fff;text-align:center}.media-lightbox-copy strong{font-size:18px}.media-lightbox-copy span{color:#cfd2df;font-weight:700}.media-lightbox-close{position:fixed;right:20px;top:16px;border:0;background:#fff;color:#1e2154;width:44px;height:44px;border-radius:999px;font-size:30px;line-height:1;cursor:pointer}.media-lightbox-open{overflow:hidden}
@media(max-width:980px){.media-press-grid{grid-template-columns:1fr}.official-media-grid,.submitted-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.media-page-intro{grid-template-columns:1fr;gap:16px;padding-top:28px;padding-bottom:24px}.media-page-intro p{font-size:16px}.media-public-section{padding:30px 0}.media-public-heading{align-items:flex-start}.media-public-heading h2{font-size:30px}.media-press-grid{gap:14px}.press-media-card{grid-template-columns:112px minmax(0,1fr);border-radius:16px}.press-media-image{min-height:145px}.press-media-copy{padding:14px}.press-media-card h3{font-size:18px}.press-media-card p{font-size:13px}.press-media-footer{display:grid;gap:6px}.official-media-grid,.submitted-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.official-media-album-heading h3{font-size:21px}.official-media-photo span{padding:8px;font-size:12px}.submitted-media-card>div{padding:9px}.submitted-media-card strong{font-size:12px}.submitted-media-card span{font-size:11px}.media-lightbox{padding:16px}.media-lightbox-close{right:12px;top:12px;width:40px;height:40px}}
@media(max-width:430px){.media-public-heading>span{display:none}.press-media-card{grid-template-columns:1fr}.press-media-image{aspect-ratio:16/9;min-height:0}.official-media-grid,.submitted-media-grid{grid-template-columns:1fr 1fr}}


/* Official Media albums: folder-first public view */
.official-media-album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.official-media-folder-card{border:0;padding:0;background:#fff;text-align:left;cursor:pointer;border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(30,33,84,.09);transition:transform .2s ease,box-shadow .2s ease;width:100%}.official-media-folder-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(30,33,84,.15)}.official-media-folder-cover{position:relative;aspect-ratio:16/10;background:linear-gradient(135deg,#1e2154,#3d2078);overflow:hidden}.official-media-folder-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .28s ease}.official-media-folder-card:hover .official-media-folder-cover img{transform:scale(1.025)}.official-media-folder-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,9,34,.03) 35%,rgba(5,9,34,.68) 100%);pointer-events:none}.official-media-folder-placeholder{height:100%;display:grid;place-items:center;color:#fff;font-size:34px;font-weight:900}.official-media-folder-badge{position:absolute;z-index:2;left:16px;top:16px;padding:7px 10px;background:#ce2525;color:#fff;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.08em}.official-media-folder-count{position:absolute;z-index:2;right:16px;bottom:14px;color:#fff;font-size:13px;font-weight:900}.official-media-folder-copy{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:18px}.official-media-folder-copy h3{margin:0;color:var(--navy);font-size:23px;line-height:1.08}.official-media-folder-copy small{display:block;margin-top:6px;color:var(--muted);font-weight:800}.official-media-folder-open{color:#ce2525;font-size:12px;font-weight:900;white-space:nowrap}.official-media-album-view[hidden]{display:none}.official-media-album-view{position:fixed;inset:0;z-index:8500;background:#f5f6fa;overflow:auto}.official-media-album-view-header{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:18px max(24px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.97);border-bottom:1px solid #dfe2ec;box-shadow:0 8px 30px rgba(30,33,84,.06);backdrop-filter:blur(12px)}.official-media-album-back{border:2px solid #2e146b;background:#fff;color:#2e146b;min-height:44px;padding:0 16px;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.official-media-album-view-title .section-kicker{margin-bottom:3px}.official-media-album-view-title h2{margin:0;color:var(--navy);font-size:clamp(25px,3vw,38px);line-height:1}.official-media-album-view-title p{margin:6px 0 0;color:var(--muted);font-size:13px;font-weight:800}.official-media-album-close{border:0;width:44px;height:44px;border-radius:50%;background:#1e2154;color:#fff;font-size:28px;line-height:1;cursor:pointer}.official-media-album-view-body{padding-top:28px;padding-bottom:56px}.official-media-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.official-media-album-photo{border:0;padding:0;background:#fff;border-radius:14px;overflow:hidden;cursor:pointer;box-shadow:0 7px 22px rgba(30,33,84,.08);transition:transform .18s ease,box-shadow .18s ease}.official-media-album-photo:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(30,33,84,.14)}.official-media-album-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.official-media-album-photo span{display:block;padding:9px 11px;color:var(--navy);font-size:12px;font-weight:800}.media-album-open,.media-lightbox-open{overflow:hidden}
@media(max-width:980px){.official-media-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.official-media-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.official-media-album-grid{grid-template-columns:1fr;gap:14px}.official-media-folder-cover{aspect-ratio:16/9}.official-media-folder-copy{padding:15px}.official-media-folder-copy h3{font-size:20px}.official-media-album-view-header{grid-template-columns:1fr auto;gap:12px;padding:12px 14px}.official-media-album-back{grid-column:1/-1;justify-self:start;min-height:38px;padding:0 12px}.official-media-album-view-title{min-width:0}.official-media-album-close{width:40px;height:40px}.official-media-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.official-media-album-view-body{padding-top:16px}.official-media-album-photo{border-radius:10px}}
