/* Shared layout layer, loaded after page styles so the same rules win everywhere. */
:root { --green:#0d4b2a; --green-2:#123b27; --ink:#0d1110; --muted:#42534a; --cream:#ffffff; --line:#dfe5e1; --white:#fff; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:100px; }
body { font-family:Arial,Helvetica,sans-serif; font-size:16px; color:var(--ink); }
*, *::before, *::after { box-sizing:border-box; }
img { max-width:100%; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
[hidden] { display:none !important; }
.container { width:min(1160px,calc(100% - 40px)); }
.section,.profile-section,.article-section,.match-section { padding-block:64px; }
.section-heading { margin-bottom:28px; }
main .section-heading h1,.league-page h1,.privacy-header h1 { font-size:clamp(32px,4.8vw,64px); line-height:1.06; letter-spacing:-.035em; margin:0 0 18px; overflow-wrap:anywhere; }
main .section-heading h2,.section h2 { font-size:clamp(26px,3.5vw,44px); line-height:1.1; letter-spacing:-.025em; }
.section-intro,.section-heading>p:not(.eyebrow),.season-note { font-size:16px; line-height:1.6; max-width:75ch; }
.eyebrow,.kicker { font-size:11px; line-height:1.5; letter-spacing:.1em; }
.site-header { z-index:60; }
.nav { height:80px; gap:20px; }
.brand { flex-shrink:0; }
.brand strong { font-size:22px; line-height:1; }
.brand span { font-size:10px; }
.brand img { width:54px; height:54px; }
.nav-links { gap:18px; font-size:12px; }
.nav-links a { white-space:nowrap; }
.nav-links a[aria-current=page] { color:var(--green); text-decoration:underline; text-underline-offset:6px; }
.menu-toggle { color:var(--green); min-width:44px; min-height:44px; padding:6px; line-height:1; }
.btn,.button,.profile-button { min-height:44px; font-size:12px; letter-spacing:.04em; }
.data-note { font-size:13px; line-height:1.55; margin:16px 0 24px; padding:12px 16px; background:#fff; color:#17251d; border:1px solid var(--line); border-left:4px solid var(--green); }
.text-link { color:var(--green); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.player-tools { margin:24px 0 18px; max-width:620px; }
.player-tools label { display:block; font-size:14px; font-weight:700; margin-bottom:8px; }
.player-tools input { display:block; width:100%; min-height:48px; border:1px solid #a5b5ab; border-radius:6px; background:#fff; padding:12px 14px; font-size:16px; }
.player-tools p { margin:8px 0; color:var(--muted); font-size:14px; line-height:1.5; }
.player-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:20px 0 40px; }
.player-card { min-width:0; padding:20px; box-shadow:none; border:1px solid var(--line); border-top:3px solid var(--green); }
.section .player-card h2 { font-size:20px; line-height:1.25; letter-spacing:-.02em; text-transform:none; margin:0 0 20px; overflow-wrap:anywhere; }
.player-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.player-stats dt { font-size:10px; white-space:nowrap; overflow-wrap:normal; word-break:normal; letter-spacing:0; line-height:1.4; }
.player-stats dd { font-family:Arial,Helvetica,sans-serif; font-size:23px; line-height:1.2; margin:6px 0 0; font-weight:800; }
.stats-panels { gap:16px; margin:24px 0 40px; }
.stats-panel { min-width:0; padding:22px; box-shadow:none; }
.section .stats-panel h2 { font-size:22px; line-height:1.15; letter-spacing:-.02em; margin:10px 0 18px; }
.stats-ranking { padding:0; }
.stats-ranking-item { align-items:baseline; gap:12px; font-size:14px; line-height:1.5; padding:10px 0; }
.stats-ranking-item>span { min-width:0; overflow-wrap:anywhere; }
.stats-ranking-item>strong { flex-shrink:0; }
.table-controls { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; margin:16px 0; font-size:14px; }
.table-controls button { padding:10px 14px; border:1px solid var(--green); background:var(--green); color:white; min-height:44px; border-radius:4px; font-weight:700; }
.stats-table-wrap,.league-table-wrap { max-width:100%; overflow:auto; overscroll-behavior-inline:contain; }
.stats-table { width:100%; min-width:1200px; text-align:left; border-collapse:separate; border-spacing:0; }
.stats-table th,.stats-table td { padding:12px; font-size:13px; }
.stats-table th { letter-spacing:.02em; font-size:11px; white-space:normal; }
.stats-table td:first-child,.stats-table th:first-child { position:sticky; left:0; z-index:1; background:#fff; min-width:150px; max-width:240px; overflow-wrap:anywhere; border-right:1px solid var(--line); }
.stats-table th:first-child { background:#eef2ef; z-index:2; }
.compact-stats { min-width:0; table-layout:fixed; }
.compact-stats th:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(6)):not(:nth-child(16)),.compact-stats td:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(6)):not(:nth-child(16)) { display:none; }
.compact-stats th:first-child,.compact-stats td:first-child { width:44%; min-width:0; position:static; }
.compact-stats td:not(:first-child),.compact-stats th:not(:first-child) { text-align:center; }
.league-table { width:100%; min-width:0; border-collapse:collapse; table-layout:fixed; }
.league-table th,.league-table td { padding:12px 8px; font-size:14px; }
.league-table th { font-size:11px; letter-spacing:0; }
.league-table th:nth-child(2),.league-table td:nth-child(2) { width:38%; overflow-wrap:anywhere; }
.league-table th:not(:nth-child(2)),.league-table td:not(:nth-child(2)) { text-align:center; }
.league-page #league-table-heading { font-size:24px; line-height:1.2; }
.club-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding-block:24px; }
.club-shortcuts a { padding:20px; background:var(--green); color:white; border-radius:4px; }
.club-shortcuts strong { display:block; font-size:20px; margin-bottom:8px; }
.club-shortcuts span { font-size:14px; line-height:1.4; }
.record-card,.career-card,.minor-stat,.season-row,.leaderboard-row,.archive-match,.journey-grid article { min-width:0; overflow-wrap:anywhere; }
.profile-hero h1,.article-heading h1,.match-hero h1 { overflow-wrap:anywhere; }
footer .footer-bottom { flex-wrap:wrap; }
@media(max-width:1100px) {
 .topbar { display:none; }
 .nav { height:72px; }
 .menu-toggle { display:block; }
 .nav-links { position:absolute; top:72px; left:0; right:0; display:none; flex-direction:column; gap:0; padding:8px 20px 18px; background:white; max-height:calc(100dvh - 72px); overflow-y:auto; box-shadow:0 12px 16px #0001; }
 .nav-links.open { display:flex; }
 .nav-links a { padding:14px 0; border-bottom:1px solid var(--line); font-size:14px; }
 .player-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:800px) {
 .stats-panels { grid-template-columns:1fr; }
 .player-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .stats-panel { padding:20px; }
 .career-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .minor-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .season-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .season-row h3 { grid-column:1/-1; }
 .archive-match,.results-list .archive-match { grid-template-columns:1fr; gap:10px; }
 .club-shortcuts { gap:10px; }
 .club-shortcuts a { padding:16px; }
}
@media(max-width:560px) {
 .container { width:calc(100% - 32px); }
 .nav { height:68px; }
 .nav-links { top:68px; max-height:calc(100dvh - 68px); }
 .brand img { width:46px; height:46px; }
 .brand strong { font-size:19px; }
 .brand span { font-size:9px; }
 .brand { gap:10px; }
 main>.section,.section,.profile-section,.article-section,.match-section { padding-block:40px; }
 .player-grid { grid-template-columns:1fr; }
 .section .player-card h2 { font-size:21px; margin-bottom:16px; }
 .player-card { padding:20px; }
 .player-stats dt { font-size:12px; }
 .player-stats dd { font-size:24px; }
 .league-table th,.league-table td { font-size:12px; padding:12px 4px; }
 .league-table th:nth-child(2),.league-table td:nth-child(2) { width:34%; }
 .compact-stats th,.compact-stats td { padding:12px 5px; font-size:12px; }
 .compact-stats th { font-size:10px; }
 .club-shortcuts { grid-template-columns:1fr; }
 .season-controls { align-items:stretch; flex-direction:column; }
 .journey-grid { grid-template-columns:1fr; }
 .profile-hero h1,.article-heading h1,.match-hero h1 { font-size:clamp(32px,9vw,48px); line-height:1.08; }
 .profile-hero-grid,.article-layout { grid-template-columns:1fr; }
 .footer-grid { grid-template-columns:1fr; }
}

.stats-table-wrap { max-height: min(70vh,640px); margin-bottom:32px; }
.stats-table th { position:sticky; top:0; z-index:2; }
.stats-table th:first-child { z-index:3; }
.compact-stats th:first-child { position:sticky; top:0; }
@media print { .stats-table-wrap { max-height:none; overflow:visible; } .site-header,.player-tools,.table-controls { display:none; } }

@media(max-width:400px) { .compact-stats th:nth-child(6) { font-size:0; } .compact-stats th:nth-child(6)::after { content:'Ast'; font-size:10px; } }
@media(max-width:400px) { .compact-stats th:nth-child(3) { font-size:0; } .compact-stats th:nth-child(3) abbr { font-size:0; } .compact-stats th:nth-child(3)::after { content:'Gls'; font-size:10px; } }
.not-found .panel { color:#fff; }
button:disabled { cursor:default; }
.season-controls { display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin:20px 0; }
.season-selector { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:700; }
.season-selector select { min-height:44px; min-width:140px; padding:10px 12px; font-size:16px; background:#fff; border:1px solid #a5b5ab; border-radius:4px; }
@media(max-width:560px) { .season-controls { align-items:stretch; flex-direction:column; } .season-selector { justify-content:space-between; } }
/* Features guide */
.feature-spotlight { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:32px; padding:32px; background:var(--cream); border-top:4px solid var(--green); margin:32px 0; }
.feature-spotlight h2,.features-page .feature-card h2,.features-page .feature-coming-soon h2,.features-page .feature-updates h2 { font-size:clamp(23px,2.5vw,32px); line-height:1.2; margin:12px 0 16px; letter-spacing:-.02em; }
.features-page p,.feature-tip li { font-size:16px; line-height:1.65; color:var(--muted); }
.feature-tag { font-size:11px; font-weight:800; color:var(--green); letter-spacing:.08em; }
.feature-tip { align-self:center; padding:24px; background:white; border:1px solid var(--line); }
.feature-tip strong { color:var(--green); font-size:20px; }
.feature-tip ol { padding-left:20px; margin-bottom:0; }
.feature-tip li { margin:8px 0; }
.feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.feature-card { padding:28px; background:white; border:1px solid var(--line); border-top:3px solid var(--green); }
.feature-card .text-link { display:inline-block; margin-top:8px; }
.feature-links { display:flex; gap:12px 24px; flex-wrap:wrap; }
.feature-coming-soon { margin:32px 0; padding:28px; background:var(--green-2); color:white; border-radius:4px; }
.feature-coming-soon .feature-tag { display:inline-block; color:var(--green); background:var(--cream); border-radius:3px; padding:7px 10px; }
.feature-coming-soon p { color:#dae6df; }
.feature-coming-soon .text-link { color:white; }
.feature-updates { padding:20px 0; max-width:80ch; }
@media(max-width:720px) { .feature-spotlight,.feature-grid { grid-template-columns:1fr; } .feature-spotlight,.feature-card,.feature-coming-soon { padding:24px; } }
/* Readable labels on light panels and a dark fallback behind hero photography. */
.eyebrow.dark { color:var(--green); }
.credit-note { color:var(--muted); }
.hero { background-color:var(--green-2); }
/* Modern club design: one card system, soft corners, crisp white surfaces. */
:root { --radius-card:18px; --radius-control:11px; --shadow-card:0 6px 24px rgba(13,40,26,.045); --line:#e0e8e3; }
body { -webkit-font-smoothing:antialiased; }
main { isolation:isolate; }
.site-header { box-shadow:0 1px 0 var(--line),0 4px 20px #102c1c06; background:rgba(255,255,255,.97); }
.nav-links a { letter-spacing:.025em; font-weight:700; }
.nav-links a[aria-current=page] { text-decoration:none; }
.nav-links a[aria-current=page]::after { transform:scaleX(1); }
:is(.btn,.button,.profile-button,.article-button,.privacy-back,.season-tab,.leaderboard-tab,.table-controls button) { border-radius:var(--radius-control); }
.btn,.button,.profile-button,.article-button,.privacy-back { gap:8px; text-transform:none; font-size:14px; font-weight:700; letter-spacing:0; transition:background-color .16s,box-shadow .16s; }
.btn:hover,.profile-button:hover { box-shadow:0 4px 14px #0d4b2a18; }
.season-selector select,.player-tools input { border-radius:var(--radius-control); border-color:#cbd8d0; }
.player-tools input { box-shadow:0 2px 8px #0d4b2a04; }
:is(.player-card,.stats-panel,.career-card,.record-card,.honour-card,.honour-item,.club-card,.v2-card,.news-card,.related-story,.media-card,.journey-grid article,.detail-card,.content-block,.sponsor-logo,.sponsor-card,.partner-card,.feature-card) { border-radius:var(--radius-card); box-shadow:var(--shadow-card); }
.player-card,.stats-panel,.career-card,.record-card,.honour-card,.club-card,.v2-card,.journey-grid article,.detail-card,.media-card { border:1px solid var(--line); }
.player-card { padding:24px; }
.player-card h2,.section .player-card h2 { font-size:20px; letter-spacing:-.025em; }
.player-name-link { text-underline-offset:4px; }
.player-name-link:hover { text-decoration:underline; }
.player-stats div { border-top:1px solid var(--line); padding-top:10px; }
.player-stats dt { color:#526159; font-weight:700; }
.player-stats dd { font-size:25px; letter-spacing:-.03em; }
.stats-panel,.career-card,.record-card { padding:24px; }
.stats-panel h2 { text-transform:none; }
.match-card,.fixture-feature,.latest-video,.sponsor-cta { border-radius:22px; overflow:hidden; box-shadow:var(--shadow-card); }
.stats-table-wrap,.league-table-wrap { border:1px solid var(--line); border-radius:var(--radius-card); box-shadow:var(--shadow-card); }
.league-table th,.stats-table th { background:#f0f5f2; }
.league-table td,.stats-table td { border-color:#edf1ee; }
.league-table tr:last-child td { border-bottom:0; }
.league-table .harthill-row { background:var(--green); color:white; }
.data-note { border:1px solid var(--line); border-radius:var(--radius-control); padding:14px 16px; color:#42534a; background:#fff; }
.club-shortcuts { gap:16px; padding-block:28px; }
.club-shortcuts a { border-radius:var(--radius-card); padding:24px; box-shadow:var(--shadow-card); }
.club-shortcuts strong { font-size:21px; letter-spacing:-.025em; }
.gallery-grid img,.promotion-poster,.story-image,.profile-mark,.article-hero-image,.article-hero-fallback { border-radius:var(--radius-card); }
.media-empty,.stats-state,.leaderboard-empty { border-radius:var(--radius-control); }
.related-story { border:1px solid var(--line); }
.feature-spotlight,.feature-card,.feature-coming-soon,.feature-updates { background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-card); }
.features-page { background:#f5f8f6; }
.features-page>.container { max-width:1100px; }
.features-page>.container>.section-heading { max-width:760px; margin-bottom:36px; }
.features-page .section-heading h1 { font-size:clamp(36px,5vw,64px); text-transform:none; letter-spacing:-.045em; line-height:1.03; }
.features-page .section-intro { max-width:58ch; color:#42534a; font-size:18px; line-height:1.65; }
.feature-spotlight { gap:36px; padding:36px; margin:0 0 24px; }
.features-page .feature-spotlight h2 { font-size:clamp(28px,3.3vw,40px); letter-spacing:-.04em; text-transform:none; margin-top:14px; }
.feature-tip { border-radius:16px; padding:24px; background:#fff; border-color:var(--line); box-shadow:none; }
.feature-tip strong { font-size:17px; letter-spacing:-.02em; }
.feature-tip ol { margin-top:12px; }
.feature-tip li { font-size:14px; line-height:1.6; }
.feature-grid { gap:24px; align-items:stretch; }
.features-page .feature-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:32px; margin:0; max-width:none; }
.feature-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:#eff5f1; color:var(--green); margin-bottom:20px; }
.feature-icon svg { width:25px; height:25px; }
.feature-card .feature-tag { font-size:10px; letter-spacing:.1em; font-weight:800; color:#42614e; }
.features-page .feature-card h2 { font-size:26px; text-transform:none; letter-spacing:-.035em; line-height:1.2; margin:10px 0 14px; }
.feature-card p { margin:0 0 14px; font-size:15px; line-height:1.7; color:#42534a; }
.feature-card>.text-link,.feature-card>.feature-links { margin-top:auto; padding-top:10px; }
.feature-card .text-link { font-size:14px; text-decoration:none; color:var(--green); }
.feature-card .text-link:hover { text-decoration:underline; }
.feature-coming-soon .feature-tag { padding:6px 10px; border-radius:100px; background:#eff5f1; color:var(--green); letter-spacing:.06em; }
.feature-coming-soon p { color:#42534a; }
.feature-updates strong { color:var(--ink); }
@media(max-width:1100px) { .nav-links { border-radius:0 0 18px 18px; } }
@media(max-width:720px) {
 .feature-spotlight { grid-template-columns:1fr; padding:28px; gap:24px; }
 .feature-grid { grid-template-columns:1fr; gap:18px; }
 .features-page .feature-card { padding:28px; }
 .features-page .section-intro { font-size:17px; }
}
@media(max-width:560px) {
 .features-page>.container { width:calc(100% - 32px); }
 .features-page .feature-card,.feature-spotlight { padding:24px; border-radius:18px; }
 .features-page .feature-card h2 { font-size:24px; }
 .player-card { padding:22px; }
 .club-shortcuts a { padding:22px; }
 .btn,.button,.profile-button { min-height:46px; }
}
@media(prefers-reduced-motion:reduce) { .btn,.button,.profile-button,.article-button,.privacy-back { transition:none; } }

.v2-story-section { background:#f5f8f6; }
.results-list { border-top:0; }
.archive-match,.results-list .archive-match { border:1px solid var(--line); border-radius:14px; margin-bottom:10px; padding:20px; box-shadow:var(--shadow-card); }
.leaderboard-row,.season-row,.media-list-item { border-radius:14px; }
.minor-stats { border-radius:var(--radius-card); overflow:hidden; }
.profile-status,.match-status { border-radius:100px; }
