/*
Theme Name: Ligue 2 Actu
Theme URI: https://ligue2actu.fr
Author: Ligue 2 Actu
Author URI: https://ligue2actu.fr
Description: Portail francais dedie exclusivement a la Ligue 2 : matchs, equipes, joueurs, classement et classement des buteurs, actualites et resultats en direct. Theme editorial, moderne et compact avec identite visuelle francaise (marine et rouge).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: ligue2-actu
Tags: sports, football, news, custom-post-types, responsive
*/

/* =========================================================
   0. DESIGN TOKENS
   ========================================================= */
:root{
	--l2-navy: #062A5E;
	--l2-navy-dark: #041D42;
	--l2-red: #D92332;
	--l2-red-hover: #B91E2B;
	--l2-white: #FFFFFF;
	--l2-bg: #F5F7FA;
	--l2-border: #E1E5EA;
	--l2-text: #101828;
	--l2-muted: #667085;

	--l2-radius: 0px;
	--l2-radius-sm: 0px;
	--l2-shadow: 0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.08);
	--l2-shadow-md: 0 4px 10px rgba(6,42,94,.10);

	--l2-font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--l2-header-h: 64px;
}

/* =========================================================
   1. RESET / BASE
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body{
	margin: 0;
	font-family: var(--l2-font);
	color: var(--l2-text);
	background: var(--l2-bg);
	font-size: 15px;
	line-height: 1.55;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0 0 .5em; line-height:1.25; color: var(--l2-navy); }
table{ border-collapse: collapse; width:100%; }

.l2-container{
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
}
.l2-screen-reader-text{
	position:absolute !important;
	width:1px;height:1px;overflow:hidden;
	clip:rect(1px,1px,1px,1px);
	white-space:nowrap;
}
.l2-skip-link{
	position:absolute; left:-9999px; top:0; z-index:9999;
	background: var(--l2-navy); color:#fff; padding:10px 16px; border-radius: 0;
}
.l2-skip-link:focus{ left:0; }

/* =========================================================
   2. SECTION HEADINGS / BUTTONS / BADGES
   ========================================================= */
.l2-section-title{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:14px;
	padding-bottom:10px;
	border-bottom: 2px solid var(--l2-border);
	position:relative;
}
.l2-section-title h2{
	font-size:15px;
	font-weight:800;
	letter-spacing:.06em;
	text-transform:uppercase;
	color: var(--l2-navy);
	margin:0;
	padding-bottom:10px;
	border-bottom:3px solid var(--l2-red);
	margin-bottom:-12px;
}
.l2-section-title .l2-more{
	font-size:12px;
	font-weight:700;
	color: var(--l2-red);
	white-space:nowrap;
}
.l2-section-title .l2-more:hover{ color: var(--l2-red-hover); }

.l2-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	background: var(--l2-red);
	color:#fff;
	font-size:12.5px;
	font-weight:700;
	letter-spacing:.03em;
	text-transform:uppercase;
	padding:10px 16px;
	border-radius: 0;
	border:none;
	transition: background .15s ease;
}
.l2-btn:hover{ background: var(--l2-red-hover); color:#fff; }

/* Default buttons are outlined navy-on-white (matches the "VOIR TOUS LES..." style) */
.l2-btn, .l2-btn-outline{
	background: var(--l2-white);
	color: var(--l2-navy);
	border:1.5px solid var(--l2-border);
}
.l2-btn:hover, .l2-btn-outline:hover{
	border-color: var(--l2-navy);
	background: var(--l2-navy);
	color:#fff;
}
.l2-btn-solid{
	background: var(--l2-red);
	color:#fff;
	border:none;
}
.l2-btn-solid:hover{ background: var(--l2-red-hover); color:#fff; }
.l2-btn-block{ display:flex; width:100%; margin-top:12px; }

/* Navy bar widget header — used for data widgets inside cards
   (Résultats, Prochains matchs, Classement, Buteurs, team-page widgets). */
.l2-widget-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	background: var(--l2-navy);
	color:#fff;
	padding:12px 16px;
	border-radius: 0;
}
.l2-widget-header h2{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:12.5px;
	font-weight:800;
	letter-spacing:.05em;
	text-transform:uppercase;
	color:#fff;
	margin:0;
}
.l2-widget-header h2 svg{ width:15px !important; height:15px !important; max-width:15px; max-height:15px; flex-shrink:0; opacity:.9; }
.l2-widget-header .l2-more{
	font-size:11px;
	font-weight:700;
	letter-spacing:.02em;
	color: rgba(255,255,255,.85);
	white-space:nowrap;
	text-transform:none;
}
.l2-widget-header .l2-more:hover{ color:#fff; }
.l2-widget-header + .l2-widget{ padding-top:14px; }

.l2-badge{
	display:inline-block;
	font-size:10.5px;
	font-weight:800;
	letter-spacing:.04em;
	text-transform:uppercase;
	padding:3px 8px;
	border-radius:0;
}
.l2-badge-live{ background: var(--l2-red); color:#fff; animation: l2-pulse 1.8s infinite; }
.l2-badge-done{ background: var(--l2-border); color: var(--l2-muted); }
.l2-badge-upcoming{ background: rgba(6,42,94,.08); color: var(--l2-navy); }
@keyframes l2-pulse{ 0%,100%{opacity:1;} 50%{opacity:.55;} }

.l2-card{
	background: var(--l2-white);
	border:1px solid var(--l2-border);
	border-radius: 0;
	box-shadow: var(--l2-shadow);
	overflow:hidden;
}

.l2-empty{
	padding:28px 16px;
	text-align:center;
	color: var(--l2-muted);
	font-size:13.5px;
	background: var(--l2-white);
	border:1px dashed var(--l2-border);
	border-radius: 0;
}

/* =========================================================
   3. TOP UTILITY BAR
   ========================================================= */
.l2-topbar{
	background: var(--l2-navy-dark);
	color: rgba(255,255,255,.85);
	font-size:12px;
}
.l2-topbar .l2-container{
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:38px;
}
.l2-topbar-date, .l2-topbar-season{
	display:inline-flex;
	align-items:center;
	gap:7px;
}
.l2-topbar-date svg, .l2-topbar-season svg{ width:13px !important; height:13px !important; max-width:13px; max-height:13px; opacity:.85; flex-shrink:0; }
.l2-topbar-season{
	font-weight:700;
	letter-spacing:.04em;
	color: rgba(255,255,255,.95);
}
.l2-topbar-right{ display:flex; align-items:center; gap:18px; }
.l2-topbar-social{ display:flex; align-items:center; gap:12px; }
.l2-topbar-social a{
	width:15px;height:15px;
	color: rgba(255,255,255,.75);
	display:flex; align-items:center; justify-content:center;
	transition: color .15s;
}
.l2-topbar-social a:hover{ color:#fff; }
.l2-topbar-social svg{ width:100% !important; height:100% !important; }

/* =========================================================
   4. HEADER
   ========================================================= */
.l2-header{
	background: var(--l2-white);
	border-bottom:1px solid var(--l2-border);
	position: sticky;
	top:0;
	z-index: 500;
}
.l2-header-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:24px;
	padding:14px 0;
}
.l2-logo{
	display:flex;
	align-items:center;
	gap:12px;
	white-space:nowrap;
}
.l2-logo-text{
	display:flex;
	flex-direction:column;
	line-height:1;
	font-weight:900;
	font-size:22px;
	letter-spacing:-.01em;
}
.l2-logo-text .line-1{ color: var(--l2-navy); }
.l2-logo-text .line-2{ color: var(--l2-red); }
.l2-logo-mark{
	width:38px;height:38px;
	display:flex;align-items:center;justify-content:center;
	color: var(--l2-navy);
	flex-shrink:0;
}
.l2-logo-mark svg{ width:100% !important; height:100% !important; }
.l2-logo-dash{
	width:2px;
	height:34px;
	background: var(--l2-border);
	flex-shrink:0;
}
.l2-ad-slot{
	flex:1;
	display:flex;
	justify-content:center;
}
.l2-ad-slot .l2-ad-box{
	width:728px;
	max-width:100%;
	height:90px;
	background: var(--l2-bg);
	border:1px dashed var(--l2-border);
	border-radius:0;
	display:flex;
	align-items:center;
	justify-content:center;
	color: var(--l2-muted);
	font-size:11px;
	text-transform:uppercase;
	letter-spacing:.06em;
}

/* =========================================================
   5. MAIN NAVIGATION
   ========================================================= */
.l2-nav-wrap{
	background: var(--l2-navy);
	border-bottom:3px solid var(--l2-red);
}
.l2-nav-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.l2-main-nav ul{ display:flex; }
.l2-main-nav a{
	display:block;
	padding:13px 18px;
	color: rgba(255,255,255,.88);
	font-size:13px;
	font-weight:700;
	letter-spacing:.03em;
	text-transform:uppercase;
	border-bottom:3px solid transparent;
	transition: all .15s ease;
}
.l2-main-nav a:hover,
.l2-main-nav .current-menu-item > a,
.l2-main-nav .current_page_item > a{
	color:#fff;
	border-bottom-color: var(--l2-red);
	background: rgba(255,255,255,.04);
}
.l2-nav-search{
	display:flex;
	align-items:center;
	padding:0 6px;
}
.l2-nav-search form{ display:flex; align-items:stretch; position:relative; }
.l2-nav-search input[type="search"]{
	background:#fff;
	border:none;
	color: var(--l2-text);
	border-radius: 0;
	padding:9px 14px;
	font-size:12.5px;
	width:170px;
	transition: width .2s ease;
}
.l2-nav-search input[type="search"]::placeholder{ color: var(--l2-muted); }
.l2-nav-search input[type="search"]:focus{ width:210px; outline:none; }
.l2-nav-search button{
	display:flex;
	align-items:center;
	justify-content:center;
	width:38px;
	background: var(--l2-red);
	border:none;
	border-radius: 0;
	color:#fff;
}
.l2-nav-search button:hover{ background: var(--l2-red-hover); }
.l2-nav-search button svg{ width:14px !important; height:14px !important; max-width:14px; max-height:14px; }

.l2-hamburger{
	display:none;
	flex-direction:column;
	gap:4px;
	background:none;
	border:none;
	padding:10px;
}
.l2-hamburger span{ width:22px; height:2px; background:#fff; border-radius:0; }

/* =========================================================
   6. LAYOUT GRID (Homepage 3-column)
   ========================================================= */
.l2-home-grid{
	display:grid;
	grid-template-columns: 25% 1fr 25%;
	gap:22px;
	padding:26px 0 50px;
	align-items:start;
}
.l2-col{ min-width:0; }
.l2-stack > * + *{ margin-top:22px; }

/* =========================================================
   7. RESULTATS / PROCHAINS MATCHS (sidebar widgets)
   ========================================================= */
.l2-widget{ padding:16px; }
.l2-match-date-group{ margin-bottom:6px; }
.l2-match-date-group:last-child{ margin-bottom:0; }
.l2-match-date-label{
	font-size:10.5px;
	font-weight:800;
	letter-spacing:.05em;
	text-transform:uppercase;
	color: var(--l2-muted);
	background: var(--l2-bg);
	padding:6px 8px;
	border-radius:0;
	margin-bottom:4px;
}

/* Stacked match row: optional time on the left, home/away lines on the right. */
.l2-mini-match{
	display:flex;
	align-items:center;
	gap:10px;
	padding:10px 4px;
	border-top:1px solid var(--l2-border);
}
.l2-match-date-group .l2-mini-match:first-of-type{ border-top:none; }
.l2-mini-time{
	font-weight:800;
	color: var(--l2-red);
	font-size:12px;
	width:38px;
	text-align:left;
	flex-shrink:0;
}
.l2-mini-teams{
	flex:1;
	min-width:0;
	display:flex;
	flex-direction:column;
	gap:7px;
}
.l2-mini-team-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	font-size:12.5px;
}
.l2-mini-team-row .l2-mini-team-info{
	display:flex;
	align-items:center;
	gap:7px;
	min-width:0;
	color: var(--l2-text);
	font-weight:600;
}
.l2-mini-team-row .l2-mini-team-info span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.l2-mini-crest{
	width:19px;height:19px;
	border-radius:0;
	background: var(--l2-bg);
	border:1px solid var(--l2-border);
	object-fit:contain;
	flex-shrink:0;
}
.l2-mini-score-cell{
	font-weight:800;
	color: var(--l2-navy);
	font-size:12.5px;
	flex-shrink:0;
}
.l2-mini-score-cell.is-dash{ color: var(--l2-muted); font-weight:600; }

/* =========================================================
   8. HOMEPAGE CENTER — FEATURED + NEWS
   ========================================================= */
/* Featured hero: image left, white text panel right (not a dark overlay). */
.l2-featured{
	display:grid;
	grid-template-columns: 45% 1fr;
	border-radius: 0;
	overflow:hidden;
	box-shadow: var(--l2-shadow);
	border:1px solid var(--l2-border);
	min-height:280px;
	background: var(--l2-white);
}
.l2-featured-media{
	position:relative;
	background: var(--l2-navy);
	min-height:100%;
}
.l2-featured-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.l2-featured-body{
	padding:26px 30px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	color: var(--l2-text);
}
.l2-featured h1{ color: var(--l2-navy); font-size:23px; margin:10px 0 10px; }
.l2-featured p{ color: var(--l2-muted); font-size:13.5px; max-width:520px; }
.l2-featured .l2-meta{ margin-top:8px; }

/* Category label: plain colored uppercase text, no background pill. */
.l2-category{
	display:inline-block;
	color: var(--l2-navy);
	font-size:11px;
	font-weight:800;
	letter-spacing:.05em;
	text-transform:uppercase;
}
.l2-meta{ font-size:11.5px; color: var(--l2-muted); font-weight:600; }

.l2-news-grid-3{
	display:grid;
	grid-template-columns: repeat(3,1fr);
	gap:18px;
	margin-top:20px;
}
.l2-news-card{ overflow:hidden; }
.l2-news-card .l2-thumb{
	aspect-ratio: 16/10;
	background: var(--l2-bg);
	overflow:hidden;
}
.l2-news-card .l2-thumb img{ width:100%; height:100%; object-fit:cover; }
.l2-news-card-body{ padding:12px 14px 16px; }
.l2-news-card-body h3{ font-size:14.5px; margin:8px 0 6px; }
.l2-news-card-body a{ transition: color .15s; }
.l2-news-card-body a:hover{ color: var(--l2-red); }

.l2-news-list{ display:flex; flex-direction:column; gap:14px; margin-top:18px; }
.l2-news-row{
	display:flex;
	gap:16px;
	padding:14px;
	align-items:center;
}
.l2-news-row .l2-thumb{
	width:150px; flex-shrink:0;
	aspect-ratio: 4/3;
	border-radius:0;
	overflow:hidden;
	background: var(--l2-bg);
}
.l2-news-row .l2-thumb img{ width:100%; height:100%; object-fit:cover; }
.l2-news-row-body{ min-width:0; flex:1; }
.l2-news-row-body h3{ font-size:15.5px; margin:6px 0; }
.l2-news-row-body p{ color: var(--l2-muted); font-size:12.5px; margin:0; }
.l2-news-row-chevron{
	flex-shrink:0;
	width:26px; height:26px;
	border-radius:50%;
	background: var(--l2-bg);
	display:flex; align-items:center; justify-content:center;
	color: var(--l2-navy);
	transition: background .15s, color .15s;
}
.l2-news-row-chevron svg{ width:12px !important; height:12px !important; max-width:12px; max-height:12px; }
.l2-news-row:hover .l2-news-row-chevron{ background: var(--l2-red); color:#fff; }

/* =========================================================
   9. RIGHT SIDEBAR — STANDINGS / SCORERS MINI TABLES
   ========================================================= */
.l2-mini-table{ width:100%; border-collapse:collapse; font-size:12px; }
.l2-mini-table th{
	text-align:left;
	font-size:10px;
	letter-spacing:.04em;
	text-transform:uppercase;
	color: var(--l2-muted);
	padding:0 6px 8px;
	border-bottom:1px solid var(--l2-border);
	font-weight:700;
}
.l2-mini-table td{
	padding:8px 6px;
	border-bottom:1px solid var(--l2-border);
	vertical-align:middle;
}
.l2-mini-table tr:last-child td{ border-bottom:none; }
.l2-mini-table .l2-rank{ font-weight:800; color: var(--l2-navy); width:20px; }
.l2-mini-table .l2-team-cell{ display:flex; align-items:center; gap:8px; font-weight:600; }
.l2-mini-table .l2-pts{ font-weight:800; color: var(--l2-red); text-align:right; }
.l2-mini-table td.num{ text-align:center; color: var(--l2-muted); }

/* =========================================================
   10. FULL STANDINGS TABLE
   ========================================================= */
.l2-table-wrap{ overflow-x:auto; }
.l2-standings, .l2-scorers-table{
	width:100%;
	background: var(--l2-white);
	font-size:13px;
}
.l2-standings th, .l2-scorers-table th{
	background: var(--l2-navy);
	color:#fff;
	text-align:left;
	padding:10px 10px;
	font-size:11px;
	letter-spacing:.04em;
	text-transform:uppercase;
	font-weight:700;
}
.l2-standings td, .l2-scorers-table td{
	padding:10px 10px;
	border-bottom:1px solid var(--l2-border);
}
.l2-standings tr:hover td, .l2-scorers-table tr:hover td{ background: var(--l2-bg); }
.l2-standings .l2-team-cell, .l2-scorers-table .l2-player-cell{ display:flex; align-items:center; gap:10px; font-weight:700; }
.l2-standings td.num, .l2-scorers-table td.num, .l2-standings th.num, .l2-scorers-table th.num{ text-align:center; }
.l2-standings .l2-diff-pos{ color:#0F8A3C; font-weight:700; }
.l2-standings .l2-diff-neg{ color: var(--l2-red); font-weight:700; }
.l2-standings td.pts, .l2-scorers-table td.pts{ font-weight:800; color: var(--l2-navy); text-align:center; }
.l2-standings tr.l2-zone-promo td:first-child{ box-shadow: inset 3px 0 0 #0F8A3C; }
.l2-standings tr.l2-zone-playoff td:first-child{ box-shadow: inset 3px 0 0 var(--l2-navy); }
.l2-standings tr.l2-zone-relegation td:first-child{ box-shadow: inset 3px 0 0 var(--l2-red); }
.l2-scorers-table tr.l2-top3 td{ background: rgba(6,42,94,.035); }
.l2-standings-legend{ display:flex; gap:18px; flex-wrap:wrap; margin-top:14px; font-size:11.5px; color: var(--l2-muted); }
.l2-standings-legend span{ display:inline-flex; align-items:center; gap:6px; }
.l2-standings-legend i{ width:10px; height:10px; border-radius:0; display:inline-block; }

/* =========================================================
   11. MATCHES PAGE
   ========================================================= */
.l2-page-header{ padding:26px 0 6px; }
.l2-page-header h1{ font-size:22px; text-transform:uppercase; letter-spacing:.02em; }
.l2-page-sub{ color: var(--l2-muted); font-size:13px; margin-top:-4px; }

.l2-filters-bar{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	align-items:center;
	padding:14px 0;
}
.l2-select{
	background: var(--l2-white);
	border:1px solid var(--l2-border);
	border-radius: 0;
	padding:9px 12px;
	font-size:13px;
	font-weight:600;
	color: var(--l2-text);
}
.l2-matchday-tabs{
	display:flex;
	gap:6px;
	overflow-x:auto;
	padding-bottom:6px;
}
.l2-matchday-tabs a{
	white-space:nowrap;
	padding:7px 14px;
	border-radius:0;
	background: var(--l2-white);
	border:1px solid var(--l2-border);
	font-size:12px;
	font-weight:700;
	color: var(--l2-muted);
}
.l2-matchday-tabs a.active, .l2-matchday-tabs a:hover{
	background: var(--l2-navy);
	border-color: var(--l2-navy);
	color:#fff;
}

.l2-fixture-day{ margin-bottom:26px; }
.l2-fixture-day-heading{
	font-size:12px;
	font-weight:800;
	letter-spacing:.05em;
	text-transform:uppercase;
	color: var(--l2-navy);
	padding:8px 14px;
	background: rgba(6,42,94,.06);
	border-radius:0;
	margin-bottom:10px;
}
.l2-fixture-list{ display:flex; flex-direction:column; gap:10px; }
.l2-fixture-card{
	display:grid;
	grid-template-columns: 90px 1fr auto 1fr 90px;
	align-items:center;
	gap:10px;
	padding:14px 18px;
	transition: box-shadow .15s;
}
.l2-fixture-card:hover{ box-shadow: var(--l2-shadow-md); }
.l2-fixture-status{ text-align:center; font-size:12px; font-weight:800; color: var(--l2-muted); }
.l2-fixture-status.live{ color: var(--l2-red); }
.l2-fixture-team{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:14px; }
.l2-fixture-team.away{ justify-content:flex-end; text-align:right; flex-direction:row-reverse; }
.l2-fixture-crest{
	width:32px; height:32px; object-fit:contain;
	background: var(--l2-bg); border:1px solid var(--l2-border); border-radius:0; flex-shrink:0;
}
.l2-fixture-center{ text-align:center; min-width:70px; }
.l2-fixture-score{ font-size:19px; font-weight:900; color: var(--l2-navy); letter-spacing:.02em; }
.l2-fixture-vs{ font-size:12px; color: var(--l2-muted); font-weight:700; }
.l2-fixture-time-col{ text-align:right; font-size:12px; color: var(--l2-muted); font-weight:700; }

/* =========================================================
   12. SINGLE MATCH PAGE
   ========================================================= */
.l2-match-hero{
	background: var(--l2-navy);
	background-image: linear-gradient(135deg, var(--l2-navy) 0%, var(--l2-navy-dark) 100%);
	border-radius: 0;
	color:#fff;
	padding:30px 26px;
	margin-top:22px;
}
.l2-match-hero-top{
	display:flex; justify-content:center; gap:14px; align-items:center;
	font-size:12px; color: rgba(255,255,255,.75); font-weight:700; text-transform:uppercase; letter-spacing:.04em;
	margin-bottom:20px;
}
.l2-match-hero-top .dot{ width:4px; height:4px; border-radius:50%; background: rgba(255,255,255,.4); }
.l2-match-hero-teams{
	display:grid;
	grid-template-columns: 1fr auto 1fr;
	align-items:center;
	gap:24px;
}
.l2-hero-team{ text-align:center; }
.l2-hero-team img{
	width:76px; height:76px; object-fit:contain; margin:0 auto 12px;
	background:#fff; border-radius:0; padding:8px;
}
.l2-hero-team h2{ color:#fff; font-size:17px; margin:0; }
.l2-hero-score{ text-align:center; }
.l2-hero-score .score{ font-size:46px; font-weight:900; letter-spacing:.03em; }
.l2-hero-score .l2-badge{ margin-top:8px; }
.l2-match-hero-meta{
	text-align:center; margin-top:20px; padding-top:16px;
	border-top:1px solid rgba(255,255,255,.15);
	font-size:12.5px; color: rgba(255,255,255,.75);
}

.l2-match-tabs{
	display:flex; gap:4px; overflow-x:auto;
	margin-top:22px; border-bottom:2px solid var(--l2-border);
}
.l2-match-tabs button{
	background:none; border:none; padding:12px 16px;
	font-size:12.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em;
	color: var(--l2-muted); border-bottom:3px solid transparent; white-space:nowrap;
}
.l2-match-tabs button.active{ color: var(--l2-navy); border-bottom-color: var(--l2-red); }
.l2-match-tab-panel{ display:none; padding:22px 0; }
.l2-match-tab-panel.active{ display:block; }

.l2-event-row{
	display:flex; align-items:center; gap:12px;
	padding:10px 0; border-bottom:1px solid var(--l2-border);
	font-size:13.5px;
}
.l2-event-minute{ font-weight:800; color: var(--l2-navy); width:38px; }
.l2-card-yellow{ display:inline-block; width:10px; height:14px; background:#F2C200; border-radius:0; }
.l2-card-red{ display:inline-block; width:10px; height:14px; background: var(--l2-red); border-radius:0; }

.l2-lineups{ display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.l2-lineup-list li{ padding:6px 0; border-bottom:1px solid var(--l2-border); font-size:13.5px; display:flex; gap:10px; }
.l2-lineup-list .num{ color: var(--l2-muted); font-weight:700; width:22px; }

/* =========================================================
   13. TEAMS DIRECTORY / TEAM PAGE
   ========================================================= */
.l2-teams-grid{
	display:grid;
	grid-template-columns: repeat(auto-fill, minmax(190px,1fr));
	gap:16px;
	margin-top:20px;
}
.l2-team-card{
	text-align:center;
	padding:24px 16px;
	transition: transform .15s, box-shadow .15s;
}
.l2-team-card:hover{ transform: translateY(-3px); box-shadow: var(--l2-shadow-md); }
.l2-team-card img{ width:64px; height:64px; object-fit:contain; margin:0 auto 12px; }
.l2-team-card h3{ font-size:14px; margin:0 0 4px; }
.l2-team-card p{ color: var(--l2-muted); font-size:11.5px; margin:0; }

.l2-team-hero{
	display:flex; align-items:center; gap:22px;
	padding:26px; margin-top:22px;
}
.l2-team-hero img{ width:88px; height:88px; object-fit:contain; }
.l2-team-hero h1{ font-size:24px; margin:0 0 6px; }
.l2-team-info-grid{
	display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
	gap:14px; margin-top:18px;
}
.l2-team-info-item{ padding:14px 16px; }
.l2-team-info-item .label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color: var(--l2-muted); font-weight:700; margin-bottom:4px; }
.l2-team-info-item .value{ font-size:14.5px; font-weight:700; color: var(--l2-navy); }

.l2-squad-grid{
	display:grid; grid-template-columns:repeat(auto-fill, minmax(170px,1fr));
	gap:14px; margin-top:16px;
}
.l2-squad-card{ text-align:center; padding:16px 10px; }
.l2-squad-card img{ width:56px; height:56px; object-fit:cover; border-radius:50%; margin:0 auto 10px; background: var(--l2-bg); }
.l2-squad-card .num{ color: var(--l2-red); font-weight:900; font-size:11px; }
.l2-squad-card h4{ font-size:13px; margin:4px 0 2px; color: var(--l2-text); }
.l2-squad-card .pos{ font-size:11px; color: var(--l2-muted); }

/* =========================================================
   14. PLAYERS DIRECTORY / PLAYER PAGE
   ========================================================= */
.l2-players-filters{
	display:flex; flex-wrap:wrap; gap:10px; padding:14px 0;
}
.l2-players-filters input[type="text"]{
	flex:1; min-width:200px;
	background: var(--l2-white); border:1px solid var(--l2-border);
	border-radius: 0; padding:9px 12px; font-size:13px;
}
.l2-players-grid{
	display:grid; grid-template-columns:repeat(auto-fill, minmax(190px,1fr));
	gap:16px; margin-top:16px;
}
.l2-player-card{ text-align:center; padding:20px 14px; }
.l2-player-card img{ width:72px; height:72px; object-fit:cover; border-radius:50%; margin:0 auto 12px; background: var(--l2-bg); }
.l2-player-card h3{ font-size:13.5px; margin:0 0 4px; }
.l2-player-card p{ font-size:11.5px; color: var(--l2-muted); margin:0; }
.l2-player-card .num-badge{
	display:inline-block; background: var(--l2-navy); color:#fff; font-size:10px; font-weight:800;
	padding:1px 7px; border-radius:0; margin-top:6px;
}

.l2-player-hero{ display:flex; align-items:center; gap:24px; padding:26px; margin-top:22px; }
.l2-player-hero img{ width:104px; height:104px; object-fit:cover; border-radius:50%; background: var(--l2-bg); }
.l2-player-hero h1{ font-size:23px; margin:0 0 4px; }
.l2-player-hero .club{ color: var(--l2-red); font-weight:700; font-size:13px; }
.l2-player-tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.l2-player-tags span{ background: var(--l2-bg); border:1px solid var(--l2-border); padding:4px 10px; border-radius:0; font-size:11.5px; color: var(--l2-muted); font-weight:600; }

.l2-stat-grid{
	display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
	gap:12px; margin-top:20px;
}
.l2-stat-box{ text-align:center; padding:16px 10px; }
.l2-stat-box .num{ font-size:24px; font-weight:900; color: var(--l2-navy); }
.l2-stat-box .lbl{ font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color: var(--l2-muted); font-weight:700; margin-top:4px; }

/* =========================================================
   15. NEWS / ARTICLE
   ========================================================= */
.l2-news-page-grid{
	display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:20px;
}
.l2-pagination{ display:flex; justify-content:center; gap:6px; margin-top:32px; }
.l2-pagination a, .l2-pagination span{
	padding:8px 14px; border-radius:0; border:1px solid var(--l2-border);
	background: var(--l2-white); font-size:13px; font-weight:700; color: var(--l2-navy);
}
.l2-pagination .current{ background: var(--l2-navy); color:#fff; border-color: var(--l2-navy); }

.l2-article-layout{ display:grid; grid-template-columns:1fr 300px; gap:30px; margin-top:22px; align-items:start; }
.l2-article-header .l2-category{ margin-bottom:10px; }
.l2-article-header h1{ font-size:28px; margin:10px 0; }
.l2-article-featured-img{ border-radius: 0; overflow:hidden; margin:18px 0; }
.l2-article-content{ font-size:15.5px; line-height:1.75; color: var(--l2-text); }
.l2-article-content p{ margin:0 0 1.2em; }
.l2-article-content h2{ font-size:20px; margin-top:1.6em; }
.l2-article-content img{ border-radius:0; }
.l2-related-match-box{ padding:16px; margin:20px 0; }
.l2-related-articles{ margin-top:36px; padding-top:24px; border-top:1px solid var(--l2-border); }

/* =========================================================
   16. FOOTER
   ========================================================= */
.l2-footer{ background: var(--l2-navy-dark); color: rgba(255,255,255,.8); margin-top:50px; }
.l2-footer-inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; padding:44px 0 26px; }
.l2-footer h4{ color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; }
.l2-footer ul li{ margin-bottom:8px; font-size:13px; }
.l2-footer ul a:hover{ color:#fff; }
.l2-footer p{ font-size:13px; color: rgba(255,255,255,.65); }
.l2-footer-bottom{
	border-top:1px solid rgba(255,255,255,.1);
	padding:16px 0; text-align:center; font-size:12px; color: rgba(255,255,255,.5);
}

/* =========================================================
   17. 404 / SEARCH
   ========================================================= */
.l2-404{ text-align:center; padding:80px 20px; }
.l2-404 h1{ font-size:80px; color: var(--l2-navy); margin:0; }
.l2-404 p{ color: var(--l2-muted); margin-bottom:22px; }
.l2-search-form-wide{ display:flex; gap:8px; max-width:480px; margin:0 auto 30px; }
.l2-search-form-wide input{ flex:1; padding:12px 16px; border:1px solid var(--l2-border); border-radius:0; font-size:14px; }

/* =========================================================
   18. RESPONSIVE
   ========================================================= */
@media (max-width: 1024px){
	.l2-home-grid{ grid-template-columns: 1fr 30%; }
	.l2-home-grid .l2-col-left{ grid-column: 1 / span 2; order:3; }
	.l2-home-grid .l2-col-center{ grid-column: 1; order:1; }
	.l2-home-grid .l2-col-right{ grid-column: 2; order:2; }
	.l2-news-grid-3{ grid-template-columns:repeat(2,1fr); }
	.l2-article-layout{ grid-template-columns:1fr; }
	.l2-ad-slot{ display:none; }
	.l2-featured{ grid-template-columns:1fr; }
	.l2-featured-media{ min-height:220px; }
}
@media (max-width: 780px){
	.l2-home-grid{ grid-template-columns:1fr; }
	.l2-home-grid .l2-col-left, .l2-home-grid .l2-col-center, .l2-home-grid .l2-col-right{
		grid-column:1; order:initial;
	}
	.l2-home-grid .l2-col-center{ order:1; }
	.l2-home-grid .l2-col-left{ order:2; }
	.l2-home-grid .l2-col-right{ order:3; }
	.l2-news-grid-3{ grid-template-columns:1fr; }
	.l2-news-page-grid{ grid-template-columns:1fr; }
	.l2-hamburger{ display:flex; }
	.l2-main-nav{
		position:fixed; top:var(--l2-header-h); left:0; right:0; bottom:0;
		background: var(--l2-navy); transform: translateX(-100%); transition: transform .25s ease;
		overflow-y:auto; z-index:400;
	}
	.l2-main-nav.is-open{ transform: translateX(0); }
	.l2-main-nav ul{ flex-direction:column; }
	.l2-main-nav a{ padding:16px 22px; border-bottom:1px solid rgba(255,255,255,.08); }
	.l2-nav-inner{ position:relative; }
	.l2-nav-search{ display:none; }
	.l2-fixture-card{ grid-template-columns:60px 1fr 1fr; row-gap:8px; }
	.l2-fixture-time-col{ display:none; }
	.l2-match-hero-teams{ grid-template-columns:1fr; text-align:center; gap:14px; }
	.l2-hero-score{ order:-1; }
	.l2-lineups{ grid-template-columns:1fr; gap:10px; }
	.l2-footer-inner{ grid-template-columns:1fr 1fr; }
	.l2-team-hero, .l2-player-hero{ flex-direction:column; text-align:center; }
}
@media (max-width:480px){
	.l2-footer-inner{ grid-template-columns:1fr; }
	.l2-news-row{ flex-direction:column; }
	.l2-news-row .l2-thumb{ width:100%; }
}
/* v2.2 unified match page */
.l2-match-section{margin-top:28px}.l2-match-content{padding:24px}.l2-match-timeline{overflow:hidden;padding:0}.l2-unified-event{display:grid;grid-template-columns:64px 38px 1fr;align-items:center;gap:8px;padding:15px 18px;border-bottom:1px solid var(--l2-border,#e1e5ea)}.l2-unified-event:last-child{border-bottom:0}.l2-event-minute{font-weight:800;color:#062a5e}.l2-event-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:16px}.l2-unified-event.yellow .l2-event-icon{background:#e6b800;border-radius:2px;width:12px;height:17px}.l2-unified-event.red .l2-event-icon{background:#b4232f;border-radius:2px;width:12px;height:17px}.l2-event-main{display:flex;flex-direction:column;gap:2px}.l2-event-main span{font-size:13px;color:#667085}.l2-standings tr.is-match-team{background:rgba(180,35,47,.06)}

/* v2.3.0 — 2LigaHeute-style unified match event board */
.l2-events-under-score{margin-top:-10px}
.l2-match-events-board{padding:8px 22px;max-width:820px;margin:0 auto}
.l2-event-row{display:grid;grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);align-items:center;min-height:62px;border-bottom:1px solid #e6eaf0}
.l2-event-row:last-child{border-bottom:0}
.l2-event-side{display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.25}
.l2-event-side strong{font-size:14px;color:#0b2f63}
.l2-event-side span{font-size:12px;color:#6a7485}
.l2-event-home{text-align:right;align-items:flex-end;padding-right:18px}
.l2-event-away{text-align:left;align-items:flex-start;padding-left:18px}
.l2-event-center{height:100%;display:flex;align-items:center;justify-content:center;gap:8px;position:relative}
.l2-event-center:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#d9dfe8;z-index:0}
.l2-event-minute,.l2-event-symbol{position:relative;z-index:1;background:#fff}
.l2-event-minute{font-size:12px;font-weight:800;color:#667085;padding:2px 3px}
.l2-event-symbol{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px}
.l2-event-symbol.yellow{border-radius:3px;width:12px;height:17px;background:#f2c94c;font-size:0;padding:0}
.l2-event-symbol.red{border-radius:3px;width:12px;height:17px;background:#c6283d;font-size:0;padding:0}
.l2-event-symbol.sub{font-weight:900;color:#0b2f63;border:1px solid #d9dfe8}
.l2-event-symbol.goal{font-size:16px}
@media(max-width:640px){.l2-match-events-board{padding:6px 10px}.l2-event-row{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)}.l2-event-home{padding-right:8px}.l2-event-away{padding-left:8px}.l2-event-side strong{font-size:12px}.l2-event-side span{font-size:10px}}

/* v2.4.0 match hero balance */
@media (min-width: 769px){
  .l2-match-hero-teams{grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);gap:10px;}
  .l2-hero-team-home{justify-self:end;width:min(240px,100%);}
  .l2-hero-team-away{justify-self:start;width:min(240px,100%);}
  .l2-hero-team-home,.l2-hero-team-away{text-align:center;}
}
\n\n/* v2.4.2 — homepage featured image only */
.home .l2-featured{display:block;min-height:0;}
.home .l2-featured-media{width:100%;aspect-ratio:16/9;min-height:0;overflow:hidden;}
.home .l2-featured-media img{width:100%;height:100%;object-fit:cover;object-position:center;}
.home .l2-featured-body{padding:22px 26px 24px;}

/* v2.5.0 — requested mobile and match-event refinements */
.l2-event-row{
  grid-template-columns:minmax(0,1fr) 34px 52px 34px minmax(0,1fr);
  gap:6px;
}
.l2-event-icon-slot,.l2-event-time{display:flex;align-items:center;justify-content:center;min-height:48px}
.l2-event-time{position:relative}
.l2-event-time:before{content:"";position:absolute;left:50%;top:-8px;bottom:-8px;width:1px;background:#d9dfe8}
.l2-event-time .l2-event-minute{position:relative;z-index:1;background:#fff;padding:3px 5px;min-width:34px;text-align:center}
.l2-event-icon-home{justify-content:flex-end}.l2-event-icon-away{justify-content:flex-start}

@media (max-width:780px){
  /* Homepage order: live/latest results -> upcoming -> news -> standings/scorers */
  .l2-home-grid .l2-col-left{display:contents}
  .l2-home-grid .l2-home-results{order:1}
  .l2-home-grid .l2-home-upcoming{order:2;margin-top:0}
  .l2-home-grid .l2-col-center{order:3}
  .l2-home-grid .l2-col-right{order:4}

  /* Matches archive: compact single horizontal row */
  .l2-fixture-card{
    grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);
    grid-template-areas:"home score away" "status status status";
    gap:7px 8px;padding:12px 10px;min-height:76px;
  }
  .l2-fixture-team.home{grid-area:home;justify-content:flex-end;text-align:right;flex-direction:row}
  .l2-fixture-team.away{grid-area:away;justify-content:flex-start;text-align:left;flex-direction:row-reverse}
  .l2-fixture-center{grid-area:score;min-width:0}
  .l2-fixture-status{grid-area:status;font-size:10px;padding-top:2px}
  .l2-fixture-time-col{display:none}
  .l2-fixture-team{gap:6px;font-size:12px;line-height:1.15;min-width:0}
  .l2-fixture-team span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .l2-fixture-crest{width:27px;height:27px}
  .l2-fixture-score{font-size:17px;white-space:nowrap}

  /* Individual match hero stays on one line on mobile: Team 1 : 1 Team */
  .l2-match-hero{padding:22px 10px}
  .l2-match-hero-teams{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:7px;text-align:center}
  .l2-hero-score{order:initial}
  .l2-hero-team img{width:42px;height:42px;padding:4px;margin-bottom:6px}
  .l2-hero-team h2{font-size:12px;line-height:1.15}
  .l2-hero-score .score{font-size:22px;white-space:nowrap}
  .l2-hero-score .l2-badge{font-size:9px;margin-top:5px}

  .l2-event-row{grid-template-columns:minmax(0,1fr) 27px 42px 27px minmax(0,1fr);gap:3px;min-height:56px}
  .l2-event-home{padding-right:4px}.l2-event-away{padding-left:4px}
  .l2-event-side strong{font-size:11px}.l2-event-side span{font-size:9px}
  .l2-event-symbol{width:22px;height:22px;font-size:14px}
  .l2-event-time .l2-event-minute{font-size:11px;min-width:30px}
}


/* v2.5.1 — desktop fixture alignment: teams sit close to the centered score. */
@media (min-width: 769px) {
  .l2-fixture-card{
    grid-template-columns:90px minmax(0,1fr) 96px minmax(0,1fr) 90px;
    column-gap:14px;
  }
  .l2-fixture-team.home{
    justify-content:flex-end;
    text-align:right;
    flex-direction:row-reverse;
  }
  .l2-fixture-team.away{
    justify-content:flex-start;
    text-align:left;
    flex-direction:row;
  }
  .l2-fixture-center{
    width:96px;
    min-width:96px;
    justify-self:center;
  }
  .l2-fixture-score{white-space:nowrap;}
}


/* v2.5.2 — desktop-only refinements. Mobile layout intentionally unchanged. */
@media (min-width: 769px) {
  /* Keep the match identity compact around the score instead of stretching teams to card edges. */
  .l2-fixture-card{
    grid-template-columns:90px minmax(150px,260px) 96px minmax(150px,260px) 90px;
    justify-content:center;
    column-gap:12px;
  }
  .l2-fixture-team.home{
    justify-content:flex-end;
    text-align:right;
    flex-direction:row-reverse;
  }
  .l2-fixture-team.away{
    justify-content:flex-start;
    text-align:left;
    flex-direction:row;
  }
  .l2-fixture-center{
    width:96px;
    min-width:96px;
    justify-self:center;
  }

  /* Homepage featured news: desktop shows the headline only beneath the image. */
  .home .l2-featured-body{
    padding:16px 22px 18px;
  }
  .home .l2-featured-body .l2-category,
  .home .l2-featured-body p,
  .home .l2-featured-body .l2-meta{
    display:none;
  }
  .home .l2-featured h1{
    margin:0;
  }
}

/* v2.5.3 — desktop-only layout correction. Mobile remains unchanged. */
@media (min-width: 769px) {
  /* Homepage featured story: compact horizontal card, ending at image bottom. */
  .home .l2-featured{
    display:grid !important;
    grid-template-columns:minmax(0, 52%) minmax(0, 48%);
    align-items:stretch;
    min-height:0 !important;
    overflow:hidden;
  }
  .home .l2-featured-media{
    width:100%;
    aspect-ratio:16 / 9;
    min-height:0 !important;
    height:auto;
    overflow:hidden;
  }
  .home .l2-featured-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .home .l2-featured-body{
    height:auto;
    min-height:0;
    padding:18px 22px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .home .l2-featured h1{
    margin:0;
    width:100%;
  }

  /* Match list: status/time are peripheral; match identity is truly centered. */
  .l2-fixture-card{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0, 1fr) 92px minmax(0, 1fr) !important;
    align-items:center;
    column-gap:14px;
    padding-left:125px;
    padding-right:105px;
  }
  .l2-fixture-status{
    position:absolute;
    left:20px;
    top:50%;
    transform:translateY(-50%);
    width:90px;
    text-align:right;
  }
  .l2-fixture-time-col{
    position:absolute;
    right:20px;
    top:50%;
    transform:translateY(-50%);
    width:70px;
    text-align:left;
  }
  .l2-fixture-team.home{
    grid-column:1;
    justify-self:end;
    justify-content:flex-end;
    text-align:right;
    flex-direction:row-reverse;
    width:auto;
    max-width:280px;
  }
  .l2-fixture-center{
    grid-column:2;
    justify-self:center;
    width:92px;
    min-width:92px;
    text-align:center;
  }
  .l2-fixture-team.away{
    grid-column:3;
    justify-self:start;
    justify-content:flex-start;
    text-align:left;
    flex-direction:row;
    width:auto;
    max-width:280px;
  }
}
