/* Shared spacing and responsive geometry for the public club pages. */
body { line-height: 1.65; font-weight: 400; font-optical-sizing: auto; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-weight: 600; line-height: 1.25; letter-spacing: -.035em; text-wrap: pretty; }
strong, b { font-weight: 600; }
.club-nav a, .team-link, .club-identity__stat strong { font-weight: 550; }
.club-main { padding-top: 24px; }
.section-heading, .section-heading--compact, .section-block--squad .section-heading { margin-bottom: 24px; gap: 20px; }
.section-heading h1, .section-heading h2 { margin: 0; }
.section-heading h1 { font-size: clamp(1.8rem, 4vw, 2.5rem); }
.section-heading .eyebrow { margin-bottom: 8px; }
.related-section, .section-block { padding-top: 24px; }
.related-section > h2, .sidebar-card > h3 { margin-bottom: 22px; }
.news-archive-page { border-top: 0; padding-top: 0; }
.news-grid--archive { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.news-grid--archive .news-card { display: flex; flex-direction: column; min-width: 0; }
.news-grid--archive .news-card > img { aspect-ratio: 16 / 10; height: auto; object-fit: cover; }
.news-grid--archive .news-card__body { padding: 22px; }
.news-grid--archive .news-card h3 { margin: 12px 0; font-size: 1.2rem; }
.news-grid--archive .news-card p { margin: 0 0 18px; line-height: 1.65; }
.news-card__meta { flex-wrap: wrap; gap: 8px 14px; }
.article-body { line-height: 1.85; font-size: 1.04rem; }
.article-body p { margin: 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.club-header { backdrop-filter: none; }
.club-nav a { position: relative; gap: 9px; color: #e9e4e4; letter-spacing: 0; }
.nav-icon { width: 21px; height: 21px; flex: 0 0 21px; color: #f04444; }
.club-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(240,68,68,.3); transform: none; }
.club-nav a[aria-current="page"] { color: #fff; }
.club-nav a[aria-current="page"]::after { height: 2px; background: #ed3434; transform: none; }
.club-nav a:hover { color: #fff; background: rgba(211,30,30,.08); }
.club-nav a:focus-visible, .header-toggle:focus-visible { outline: 2px solid #f04444; outline-offset: 4px; }
.header-toggle { border-radius: 14px; background: #251619; border-color: rgba(240,68,68,.35); box-shadow: none; }
.header-toggle span { height: 2px; transition: transform .18s, opacity .18s; }
.header-toggle[aria-expanded="true"] span:first-child { transform: translateY(8px) rotate(45deg); }
.header-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.header-toggle[aria-expanded="true"] span:last-child { transform: translateY(-8px) rotate(-45deg); }
html.menu-open { overflow: hidden; }
.masthead-grid { align-items: stretch; gap: 24px; margin-bottom: 32px; }
.masthead-grid > .masthead-news { grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); }
.masthead-news .mini-headline { min-width: 0; grid-template-columns: 88px minmax(0,1fr); border-radius: 18px; }
.masthead-news .mini-headline img { width: 88px; height: 100%; min-height: 112px; object-fit: cover; }
.masthead-news .mini-headline > div { min-width: 0; padding: 14px 12px; }
.masthead-news .mini-headline strong { font-size: .91rem; line-height: 1.45; }
.masthead-primary, .masthead-side { min-width: 0; }
.masthead-side .match-card--hero { height: 100%; }
.match-card--hero .match-meta { grid-template-columns: minmax(0,1fr); gap: 10px; text-align: center; }
.match-card--hero .match-meta li { display: block; min-width: 0; overflow-wrap: anywhere; }
.match-card--hero .match-meta strong { display: block; margin-top: 2px; font-size: 1.25rem; line-height: 1.4; }
.match-card--hero .hero-actions { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
.match-card--hero .hero-actions a { min-width: 0; min-height: 44px; padding: 10px 8px; display: flex; align-items: center; justify-content: center; text-align: center; white-space: nowrap; font-size: clamp(.75rem,3vw,.95rem); line-height: 1.3; }
.masthead-slider__controls { display: contents; }
.team-badge__side { font-size: .7rem; line-height: 1.4; letter-spacing: .06em; color: var(--club-text-muted); }
.match-card__teams .team-badge { min-width: 0; }
.match-card__teams .team-badge strong { text-align: center; overflow-wrap: anywhere; }
.result-chip strong.result-chip__scoreline { display: flex; align-items: center; gap: 8px; }
.result-chip__scoreline > span { flex: 1; min-width: 0; }
.dashboard-grid { gap: 28px; align-items: start; }
.club-identity__lead h2 { margin: 0 0 16px; font-size: clamp(1.5rem,3vw,2rem); }
.club-identity__lead p { margin: 0 0 24px; line-height: 1.7; }
.club-identity__stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.club-identity__stat { padding: 14px; border: 1px solid var(--club-border); border-radius: 14px; background: rgba(255,255,255,.035); }
.club-identity__stat small, .club-identity__stat strong { display: block; }
.club-identity__stat small { color: var(--club-text-muted); margin-bottom: 6px; }
.club-identity__stat strong { font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere; }
.score-card .section-heading .eyebrow { display: none; }
.score-card, .info-card, .standings-page, .fixtures-page { padding-top: 24px; }
th, td { white-space: normal; overflow-wrap: anywhere; vertical-align: middle; }
.score-card th, .score-card td, .standings-page th, .standings-page td { padding: 14px 8px; font-size: .86rem; }
.score-card th:first-child, .score-card td:first-child, .standings-page th:first-child, .standings-page td:first-child { width: 36px; text-align: center; }
.score-card th:nth-child(n+3), .score-card td:nth-child(n+3) { width: 44px; text-align: center; }
.standings-page th:nth-child(n+3), .standings-page td:nth-child(n+3) { width: 7%; text-align: center; }
.team-link, .score-card .team-link, .standings-page .team-link { display: flex; gap: 10px; width: 100%; }
.team-link span:last-child, .score-card .team-link span:last-child, .standings-page .team-link span:last-child { max-width: none; overflow: visible; white-space: normal; text-overflow: clip; font-size: inherit; line-height: 1.45; overflow-wrap: anywhere; }
.team-link__mark { flex-shrink: 0; }
.fixtures-page th, .fixtures-page td { padding: 16px 12px; line-height: 1.6; }
.fixtures-page th:first-child { width: 20%; }
.fixtures-page th:nth-child(2) { width: 54%; }
.fixtures-page th:nth-child(3), .fixtures-page th:nth-child(4) { width: 13%; }
.table-shell tbody tr:hover { background: rgba(255,255,255,.035); }
.table-shell tbody tr.is-club { background: rgba(204,0,0,.15); }
.standings-page td:last-child strong, .score-card td:last-child strong { color: #fff; font-size: 1.05em; }
@media (min-width: 960px) {
    .club-header__top { grid-template-columns: auto minmax(0,1fr) auto auto; column-gap: 24px; max-width: 1320px; margin: auto; padding: 14px 24px; }
    .brand-mark img { width: 108px; }
    .club-nav { gap: clamp(12px,1.6vw,24px); margin: 0; padding: 0; justify-content: center; }
    .club-nav a { flex-direction: column; gap: 7px; padding: 8px 2px 12px; font-size: .83rem; white-space: nowrap; }
    .club-nav a::after { bottom: 0; }
    .header-weather { min-width: 190px; padding: 12px 16px; }
    .header-weather__location { font-size: .75rem; }
    .header-store img { width: 145px; }
    .dashboard-grid { grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); }
}
@media (min-width: 960px) and (max-width: 1100px) {
    .club-header__top { column-gap: 16px; }
    .header-store img { width: 112px; }
    .header-weather { min-width: 160px; }
    .brand-mark img { width: 90px; }
}
@media (max-width: 959px) {
    .news-grid--archive { grid-template-columns: repeat(2,minmax(0,1fr)); }
    body.menu-open .club-header { position: fixed; top: 0; left: 0; right: 0; }
    body.menu-open .club-shell { padding-top: var(--menu-header-height); }
    .club-nav { top: var(--menu-top,132px); max-height: calc(100dvh - var(--menu-top,132px) - 16px); padding: 12px 20px; gap: 0; border-radius: 20px; }
    .club-nav a { min-height: 58px; padding: 14px 4px; font-size: .98rem; gap: 14px; }
    .club-nav .nav-icon { width: 24px; height: 24px; flex-basis: 24px; }
    /* Its side margins are already supplied by club.css: 100% width adds them twice. */
    .masthead-grid { width: auto; grid-template-columns: minmax(0,1fr); gap: 22px; margin-bottom: 28px; }
    .masthead-slider { min-height: 0; }
    .masthead-slider__viewport { display: grid; min-height: 0; }
    .masthead-slide { position: relative; inset: auto; grid-area: 1 / 1; min-width: 0; transform: none; visibility: hidden; }
    .masthead-slide.is-active { visibility: visible; }
    .masthead-story { display: grid; grid-template-rows: 120px auto; min-height: 0; border: 0; }
    .masthead-story img { position: absolute; inset: 0; height: 100%; min-height: 0; }
    .masthead-story__content { position: relative; inset: auto; grid-row: 2; align-self: end; min-width: 0; padding: 20px 16px; }
    .masthead-story__content h1 { max-width: none; font-size: clamp(1.35rem,6vw,2rem); line-height: 1.2; overflow-wrap: anywhere; }
    .masthead-story__content p { max-width: none; margin: 12px 0 0; font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; }
    .masthead-slider__controls { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; gap: 10px; padding: 8px 12px; background: #300b0b; border-top: 1px solid var(--club-border); }
    .masthead-slider__nav { position: static; transform: none; width: 44px; height: 44px; grid-row: 1; background: rgba(255,255,255,.06); }
    .masthead-slider__nav--prev { grid-column: 1; }
    .masthead-slider__nav--next { grid-column: 3; }
    .masthead-slider__dots { position: static; grid-column: 2; grid-row: 1; gap: 4px; min-width: 0; }
    .masthead-slider__dot { flex: 1; min-width: 0; max-width: 30px; height: 44px; padding: 0; background: transparent; border-radius: 0; display: grid; align-items: center; }
    .masthead-slider__dot::before { content: ""; height: 3px; border-radius: 999px; background: rgba(255,255,255,.32); }
    .masthead-slider__dot.is-active { background: transparent; }
    .masthead-slider__dot.is-active::before { background: #fff; }
    .masthead-grid > .masthead-news { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .score-card th, .score-card td, .standings-page th, .standings-page td { padding: 12px 4px; font-size: .76rem; }
    .score-card th:first-child, .score-card td:first-child, .standings-page th:first-child, .standings-page td:first-child { width: 24px; }
    .score-card th:nth-child(n+3), .score-card td:nth-child(n+3) { width: 30px; }
    .standings-page th:nth-child(n+3), .standings-page td:nth-child(n+3) { width: 27px; }
    .standings-page .team-link, .score-card .team-link { gap: 7px; }
    .standings-page .team-link__logo { width: 22px; height: 22px; flex-basis: 22px; }
    .fixtures-page th, .fixtures-page td { padding: 14px 7px; font-size: .78rem; }
    .fixtures-page th:first-child { width: 23%; }
    .fixtures-page th:nth-child(2) { width: 47%; }
    .fixtures-page th:nth-child(3), .fixtures-page th:nth-child(4) { width: 15%; }
}
@media (max-width: 580px) {
    .news-grid--archive { grid-template-columns: minmax(0,1fr); }
    .masthead-grid > .masthead-news { grid-template-columns: minmax(0,1fr); }
    .masthead-news .mini-headline { grid-template-columns: 96px minmax(0,1fr); }
    .masthead-news .mini-headline img { width: 96px; }
    .section-heading { align-items: flex-start; gap: 12px; }
    .standings-page .team-link { flex-direction: column; align-items: flex-start; gap: 6px; }
    .standings-page .team-link span:last-child { font-size: .73rem; }
    .club-main { padding-top: 20px; }
    .club-identity__stat { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .club-nav, .header-toggle span { transition: none; }
}
