/*
Theme Name: XScore
Theme URI: https://xscore.co.ke
Author: XScore
Description: Sports tabloid back-page design for XScore — bold newsprint headlines, one pitch-green accent, verified-stamp signature, wired directly into your XScore plugins.
Version: 8.0.0
Text Domain: xscore
*/

:root{
	--paper:#E8E2CE;
	--paper-2:#DDD5BB;
	--ink:#181712;
	--ink-soft:#5B584C;
	--line:rgba(24,23,18,.16);
	--pitch:#0F8A4B;
	--pitch-2:#12A85A;
	--tape:#A8781E;
	--navy:#1D3557;
	--lost:#C21F3A;
	--radius:16px;
	--shadow:0 12px 30px rgba(24,23,18,.14);
	--shadow-lg:0 20px 46px rgba(24,23,18,.22);
}

*{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:88px; }

body{
	margin:0;
	background:
		radial-gradient(circle at 3px 3px, rgba(24,23,18,.08) 1.4px, transparent 1.4px) 0 0/22px 22px,
		radial-gradient(ellipse at top, rgba(24,23,18,.05), transparent 60%),
		var(--paper);
	color:var(--ink);
	font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	line-height:1.6;
	overflow-x:hidden;
	width:100%;
}
a{ color:inherit; text-decoration:none; }
a, button, .btn, input[type=submit], .card, .stat-card{ touch-action:manipulation; }
img{ max-width:100%; height:auto; display:block; }
iframe, video, embed, object{ max-width:100%; }
table{ max-width:100%; display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
a:focus-visible, button:focus-visible{ outline:2px solid var(--pitch); outline-offset:3px; }

/* Prevents iOS Safari from auto-zooming in when tapping into a text field —
   any input smaller than 16px triggers this, which feels broken on mobile. */
input, select, textarea{ font-size:16px; }

.container{ width:min(1180px,calc(100% - 28px)); margin-inline:auto; }

h1, h2, h3, .brand, .btn, .eyebrow, .stat-card .n, .footer-heading{ font-family:'Anton',Impact,'Arial Narrow',sans-serif; font-weight:400; }

/* HEADER — light paper bar with a black inverted pill nav for contrast */
.site-header{
	position:sticky; top:0; z-index:50;
	background:rgba(232,226,206,.9);
	backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%);
	border-bottom:2px solid var(--ink);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; min-height:72px; gap:24px; }
.brand{ display:flex; align-items:center; letter-spacing:.01em; font-size:1.5rem; color:var(--ink); font-family:'Anton',sans-serif; }

/* LIQUID GLASS — the floating chrome (nav pill, dropdowns, docks, toasts)
   gets a frosted-glass treatment: translucent fill, heavy blur+saturation,
   a thin bright inner edge, and a soft glow shadow — the iOS control-center
   look. The paper content areas stay flat and matte on purpose; glass is
   reserved for things that float above the page. */
.site-nav ul{
	display:flex; gap:2px; list-style:none; padding:5px; margin:0; align-items:center;
	background:rgba(24,23,18,.72);
	backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%);
	border:1px solid rgba(255,255,255,.16);
	border-radius:999px;
	box-shadow:0 8px 24px rgba(24,23,18,.18), inset 0 1px 0 rgba(255,255,255,.14);
}
.site-nav li{ position:relative; }
.site-nav a{
	display:block; padding:8px 14px; border-radius:999px; color:var(--paper); font-weight:700;
	font-size:.85rem; white-space:nowrap; transition:background .15s ease, color .15s ease;
}
.site-nav a:hover{ background:rgba(255,255,255,.14); color:#fff; }
.site-nav li.current-menu-item > a{ background:var(--pitch); color:#fff; }

/* Dropdown arrow for items with a submenu */
.site-nav li.menu-item-has-children > a::after{
	content:"⌄"; display:inline-block; margin-left:5px; font-size:.85em; opacity:.7;
}

/* Submenu dropdown */
.site-nav ul ul{
	display:block; visibility:hidden; opacity:0; pointer-events:none;
	position:absolute; top:calc(100% + 10px); left:0; min-width:200px;
	background:rgba(24,23,18,.78);
	backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%);
	border:1px solid rgba(255,255,255,.16);
	border-radius:14px;
	padding:6px; gap:2px; box-shadow:0 14px 34px rgba(24,23,18,.24), inset 0 1px 0 rgba(255,255,255,.14);
	transform:translateY(-6px) scale(.98); transition:opacity .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1), visibility .25s;
	z-index:70;
}
.site-nav li:hover > ul{
	visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0) scale(1);
}
.site-nav ul ul li{ width:100%; }
.site-nav ul ul a{
	display:block; padding:9px 12px; border-radius:9px; font-size:.85rem; font-weight:600; white-space:nowrap; font-family:'Inter',sans-serif;
}
.site-nav ul ul li.menu-item-has-children > a::after{ display:none; }
.nav-login-btn{
	display:inline-flex; align-items:center; padding:9px 18px; border-radius:8px;
	background:var(--pitch); color:#fff !important;
	font-weight:800; font-size:.86rem; white-space:nowrap; transition:transform .18s ease; flex-shrink:0;
	font-family:'Inter',sans-serif;
}
.nav-login-btn:hover{ transform:translateY(-1px); }

/* HEADER SEARCH — an accessible, JS-free expandable search using details/summary */
.nav-search{ position:relative; flex-shrink:0; }
.nav-search summary{
	list-style:none; cursor:pointer; width:38px; height:38px; border-radius:50%;
	display:flex; align-items:center; justify-content:center; font-size:1rem;
	border:2px solid var(--ink); background:var(--paper); transition:background .15s ease;
}
.nav-search summary::-webkit-details-marker{ display:none; }
.nav-search summary:hover{ background:var(--paper-2); }
.nav-search[open] summary{ background:var(--ink); color:var(--paper); }
.nav-search-form{
	position:absolute; top:calc(100% + 8px); right:0; z-index:60;
	display:flex; gap:6px;
	background:rgba(232,226,206,.88);
	backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%);
	border:1px solid rgba(24,23,18,.18);
	border-radius:10px; padding:8px; box-shadow:0 14px 34px rgba(24,23,18,.2), inset 0 1px 0 rgba(255,255,255,.5); width:min(280px,80vw);
}
.nav-search-form input{
	flex:1; min-width:0; padding:9px 11px; border-radius:6px; border:1px solid var(--line);
	background:rgba(255,255,255,.7); color:var(--ink); font-size:.9rem;
}
.nav-search-form button{
	border:none; border-radius:6px; background:var(--pitch); color:#fff;
	padding:0 14px; font-weight:800; font-size:.82rem; cursor:pointer; font-family:'Inter',sans-serif;
}

/* TICKER — like an agate-type scores strip along the bottom of a back page */
.xs-ticker{ background:var(--ink); border-bottom:2px solid var(--ink); overflow:hidden; position:relative; }
.xs-ticker::before, .xs-ticker::after{ content:""; position:absolute; top:0; bottom:0; width:30px; z-index:2; pointer-events:none; }
.xs-ticker::before{ left:0; background:linear-gradient(90deg,var(--ink),transparent); }
.xs-ticker::after{ right:0; background:linear-gradient(270deg,var(--ink),transparent); }
.xs-ticker-track{ display:flex; width:max-content; animation:xs-scroll 32s linear infinite; }
.xs-ticker-item{ display:flex; align-items:center; gap:8px; padding:9px 22px; white-space:nowrap; font-size:12.5px; font-weight:600; color:#B9B6A8; border-right:1px solid rgba(255,255,255,.12); font-family:'JetBrains Mono',monospace; }
.xs-ticker-item b{ color:var(--pitch-2); font-weight:800; }
@keyframes xs-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media(prefers-reduced-motion:reduce){ .xs-ticker-track{ animation:none; overflow-x:auto; -webkit-overflow-scrolling:touch; } }

/* HERO — the back-page splash */
/* PULL-QUOTE — blockquotes had no styling at all before; a bare
   browser-default blockquote clashes badly with a tabloid identity. */
.article blockquote{
	margin:26px 0; padding:6px 0 6px 22px; border-left:4px solid var(--pitch);
	font-family:'Anton',sans-serif; font-weight:400; text-transform:none;
	font-size:clamp(1.25rem,3vw,1.6rem); line-height:1.3; color:var(--ink);
	position:relative;
}
.article blockquote p{ margin:0; font-size:inherit; font-family:inherit; color:inherit; }
.article blockquote cite{
	display:block; margin-top:8px; font-family:'Inter',sans-serif; font-style:normal;
	font-size:.8rem; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;
}

/* DROP CAP — the article's opening paragraph gets a large first letter,
   a classic editorial signal that "the story starts here." */
.article > p:first-of-type::first-letter{
	font-family:'Anton',sans-serif; font-weight:400; float:left;
	font-size:3.6em; line-height:.82; padding:4px 8px 0 0; color:var(--pitch);
}

/* FIGURE / CAPTION */
.article figure{ margin:18px 0; }
.article figure img{ margin:0; }
.article figcaption{
	margin-top:6px; font-size:.78rem; color:var(--ink-soft); text-align:center;
	font-family:'Inter',sans-serif; font-style:italic;
}

.hero{ padding:48px 0 36px; }
.hero-panel{
	position:relative; overflow:hidden; border:2px solid var(--ink); border-radius:var(--radius);
	padding:clamp(28px,5vw,62px); text-align:center;
	background:
		radial-gradient(circle at 2.5px 2.5px, rgba(24,23,18,.09) 1.2px, transparent 1.2px) 0 0/18px 18px,
		var(--paper-2);
	box-shadow:var(--shadow-lg);
	animation:xs-fade-up .6s ease both;
}
@keyframes xs-fade-up{
	from{ opacity:0; transform:translateY(14px); }
	to{ opacity:1; transform:translateY(0); }
}
@media(prefers-reduced-motion:reduce){ .hero-panel{ animation:none; } }

/* SIGNATURE ELEMENT — a rotated "verified" rubber-stamp badge, like an
   inspector's ink stamp on a document. This is the one place the design
   spends its boldness; everything else stays quiet paper-and-ink. */
.verified-stamp{
	position:absolute; top:22px; right:22px; z-index:2;
	width:92px; height:92px; border-radius:50%;
	border:3px double var(--pitch); color:var(--pitch);
	display:flex; align-items:center; justify-content:center; text-align:center;
	transform:rotate(-10deg); font-family:'Anton',sans-serif;
	font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; line-height:1.25;
	opacity:.9; pointer-events:none;
}
.verified-stamp span{ display:block; }
.verified-stamp .stamp-check{ font-size:1.3rem; margin-bottom:1px; }
@media(max-width:560px){ .verified-stamp{ width:70px; height:70px; font-size:.5rem; top:14px; right:14px; } }

.eyebrow{
	display:inline-flex; align-items:center; gap:8px; border:2px solid var(--ink);
	background:var(--paper); color:var(--ink); padding:6px 14px; border-radius:999px;
	font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
}
.hero h1{
	max-width:780px; margin:20px auto 14px; font-size:clamp(2.1rem,7vw,4rem); line-height:.98; letter-spacing:-.01em;
	color:var(--ink); text-transform:uppercase;
}
.verified-badge{
	display:inline-flex; align-items:center; justify-content:center;
	width:.5em; height:.5em; border-radius:50%;
	background:var(--pitch); color:var(--paper-2); -webkit-text-fill-color:var(--paper-2);
	font-size:.46em; vertical-align:middle; margin-left:4px;
	box-shadow:0 0 0 0 rgba(15,138,75,.5); animation:xs-verified-pulse 2.4s ease-in-out infinite;
}
@keyframes xs-verified-pulse{
	0%{ box-shadow:0 0 0 0 rgba(15,138,75,.45); }
	70%{ box-shadow:0 0 0 8px rgba(15,138,75,0); }
	100%{ box-shadow:0 0 0 0 rgba(15,138,75,0); }
}
@media(prefers-reduced-motion:reduce){ .verified-badge{ animation:none; } }
.hero p{ max-width:520px; margin:0 auto 28px; color:var(--ink-soft); font-size:clamp(.98rem,2vw,1.1rem); line-height:1.55; font-family:'Inter',sans-serif; }
.hero-actions{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.btn{ display:inline-flex; align-items:center; gap:8px; justify-content:center; min-height:48px; padding:0 22px; border-radius:8px; font-weight:400; letter-spacing:.02em; border:2px solid var(--ink); transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease; text-transform:uppercase; font-size:.92rem; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.98); }
.btn-primary{ background:var(--ink); color:var(--paper); box-shadow:4px 4px 0 rgba(24,23,18,.18); }
.btn-primary:hover{ box-shadow:6px 6px 0 rgba(24,23,18,.22); }
.btn-secondary{ border-color:var(--ink); background:var(--paper); color:var(--ink); }
.btn-secondary:hover{ background:#fff; }
.btn-icon{ font-size:.95em; }
.btn-live-dot{
	width:8px; height:8px; border-radius:50%; background:var(--lost); display:inline-block;
	box-shadow:0 0 0 3px rgba(194,31,58,.22); animation:xs-live-pulse 1.4s ease-in-out infinite;
}
@keyframes xs-live-pulse{ 0%,100%{opacity:1;} 50%{opacity:.4;} }
@media(prefers-reduced-motion:reduce){ .btn-live-dot{ animation:none; } }

/* STATS — an agate-style box-score strip instead of soft glass cards */
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:28px; border:2px solid var(--ink); border-radius:12px; overflow:hidden; background:var(--paper); }
.stat-card{
	padding:16px 8px; text-align:center;
	position:relative; border-right:1px solid var(--ink);
	transition:background .2s ease;
}
.stat-card:last-child{ border-right:none; }
.stat-card:hover{ background:var(--paper-2); }
.stat-card:nth-child(1) .n{ color:var(--pitch); }
.stat-card:nth-child(2) .n{ color:var(--navy); }
.stat-card:nth-child(3) .n{ color:var(--tape); }
.stat-card:nth-child(4) .n{ color:var(--ink); }

/* WIN-RATE GAUGE — reskinned in ink/pitch-green for the paper background */
.win-gauge{ position:relative; width:60px; height:60px; margin:2px auto 4px; }
.win-gauge svg{ width:100%; height:100%; transform:rotate(-90deg); }
.win-gauge-track{ fill:none; stroke:rgba(24,23,18,.12); stroke-width:6; }
.win-gauge-fill{ fill:none; stroke:var(--pitch); stroke-width:6; stroke-linecap:round; transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1); }
.win-gauge-label{
	position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	font-size:.85rem; font-weight:400; font-family:'Anton',sans-serif; color:var(--pitch); letter-spacing:0;
}
@media(prefers-reduced-motion:reduce){ .win-gauge-fill{ transition:none; } }

.stat-icon{ display:block; font-size:1.05rem; margin:4px 0 2px; }
.stat-card .n{ display:block; font-size:1.5rem; letter-spacing:0; }
.stat-card .l{ display:block; font-size:.64rem; color:var(--ink-soft); font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-top:4px; font-family:'Inter',sans-serif; }

/* SECTIONS */
.section{ padding:30px 0 24px; }
.section-head{ display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:20px; border-bottom:2px solid var(--ink); padding-bottom:12px; }
.section-head h2{ font-size:clamp(1.4rem,3vw,1.9rem); margin:0; letter-spacing:-.005em; text-transform:uppercase; color:var(--ink); }
.section-head p{ margin:0; color:var(--ink-soft); font-size:.88rem; font-family:'Inter',sans-serif; }

/* CARD GRID (articles) — clipped-newsprint feel: hard border, offset shadow, tiny tilt on hover */
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.card{ background:var(--paper-2); border:2px solid var(--ink); border-radius:var(--radius); overflow:hidden; box-shadow:4px 4px 0 rgba(24,23,18,.14); transition:transform .2s ease, box-shadow .2s ease; }
.card:hover{ transform:translateY(-4px) rotate(-.4deg); box-shadow:6px 8px 0 rgba(24,23,18,.18); }
.card-body{ padding:17px 18px 19px; }
.card h3{ margin:0 0 8px; font-size:1.08rem; line-height:1.32; letter-spacing:0; font-family:'Inter',sans-serif; font-weight:800; color:var(--ink); }
.card p{ margin:0; color:var(--ink-soft); font-size:.87rem; line-height:1.55; font-family:'Inter',sans-serif; }
.card-meta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:13px; color:var(--ink-soft); font-size:.72rem; font-weight:700; font-family:'JetBrains Mono',monospace; }
.card-meta span + span::before{ content:"·"; margin-right:5px; opacity:.6; }
.post-thumb{ aspect-ratio:16/9; object-fit:cover; background:var(--paper); width:100%; transition:transform .4s ease; overflow:hidden; border-bottom:2px solid var(--ink); }
.thumb-fallback{ aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; font-size:24px; background:var(--paper); transition:transform .4s ease; border-bottom:2px solid var(--ink); }
.card:hover .post-thumb, .card:hover .thumb-fallback{ transform:scale(1.05); }

/* VERIFIED RESULTS — summary strip + card grid */
.results-summary{
	display:flex; align-items:baseline; gap:10px; margin:-6px 0 16px;
	flex-wrap:wrap;
}
.results-summary-score{
	font-family:'Anton',sans-serif; font-weight:400; font-size:1.4rem; color:var(--pitch);
}
.results-summary-label{ font-size:.85rem; color:var(--ink-soft); font-weight:600; font-family:'Inter',sans-serif; }

.results-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.result-card{
	position:relative; overflow:hidden;
	background:var(--paper-2);
	border:2px solid var(--ink); border-radius:12px; padding:14px 16px;
	transition:transform .2s ease, box-shadow .2s ease;
	box-shadow:3px 3px 0 rgba(24,23,18,.1);
}
.result-card:hover{ transform:translateY(-2px); }
.result-card::before{
	content:""; position:absolute; left:0; top:0; bottom:0; width:5px;
}
.result-card-won::before{ background:var(--pitch); }
.result-card-lost::before{ background:var(--lost); }
.result-card-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.result-card-match{ font-weight:700; font-size:.92rem; font-family:'Inter',sans-serif; color:var(--ink); }
.result-team-dot{
	display:inline-block; width:8px; height:8px; border-radius:50%;
	margin-right:5px; vertical-align:middle; box-shadow:0 0 0 1px rgba(24,23,18,.2);
}
.result-vs{ margin:0 5px; font-size:.66rem; font-weight:700; color:var(--ink-soft); text-transform:uppercase; vertical-align:middle; }
.result-card-bottom{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.result-card-date{ font-size:.74rem; color:var(--ink-soft); font-family:'JetBrains Mono',monospace; }
.result-card-pick{ font-size:.8rem; color:var(--ink-soft); font-family:'Inter',sans-serif; }
.result-card-pick strong{ color:var(--ink); font-family:'JetBrains Mono',monospace; }
.result-card-odds{ margin-left:5px; color:var(--navy); font-weight:700; font-family:'JetBrains Mono',monospace; }

.status{ display:inline-flex; padding:4px 10px; border-radius:999px; font-size:.7rem; font-weight:900; font-family:'Inter',sans-serif; }
.status-won{ background:rgba(15,138,75,.14); color:#0d6b3c; border:1px solid rgba(15,138,75,.3); }
.status-lost{ background:rgba(194,31,58,.1); color:var(--lost); border:1px solid rgba(194,31,58,.25); }

@media(max-width:560px){
	.results-grid{ grid-template-columns:1fr; }
}

/* TIP TABLE / RESULTS (kept for other uses, e.g. livescores widget) */
.tip-table-wrap{ overflow-x:auto; border:2px solid var(--ink); border-radius:14px; background:var(--paper-2); box-shadow:var(--shadow); }
.tip-table{ width:100%; border-collapse:collapse; min-width:560px; }
.tip-table th{ padding:13px 16px; text-align:left; background:var(--ink); color:var(--paper); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; font-family:'Inter',sans-serif; font-weight:700; }
.tip-table td{ padding:14px 16px; border-top:1px solid var(--line); color:var(--ink); font-size:.9rem; font-family:'Inter',sans-serif; }
.tip-table tbody tr:nth-child(even) td{ background:rgba(24,23,18,.025); }
.tip-table tr:hover td{ background:rgba(15,138,75,.05); }
.date-relative{ display:block; font-size:.72rem; color:var(--ink-soft); font-weight:600; margin-top:2px; }

/* On phones, convert the results table into stacked cards */
@media(max-width:580px){
	.tip-table-wrap{ overflow:visible; border:none; background:none; box-shadow:none; }
	.tip-table{ min-width:0; }
	.tip-table thead{ display:none; }
	.tip-table, .tip-table tbody, .tip-table tr, .tip-table td{ display:block; width:100%; }
	.tip-table tr{
		background:var(--paper-2); border:2px solid var(--ink); border-radius:12px;
		padding:6px 4px; margin-bottom:10px;
	}
	.tip-table td{
		display:flex; justify-content:space-between; align-items:center;
		padding:8px 14px; border-top:none; font-size:.88rem;
	}
	.tip-table td::before{
		content:attr(data-label); font-weight:800; font-size:.66rem;
		text-transform:uppercase; letter-spacing:.4px; color:var(--pitch); margin-right:12px;
	}
}

/* CONTENT TABLES — any table an editor pastes into an article (league
   standings, head-to-head stats, fixture lists) gets the same branded
   treatment as the tip-table, automatically. functions.php wraps raw
   tables in .xs-table-wrap and copies header text into data-label so
   phones can stack rows into readable cards instead of squeezing a
   wide grid into a narrow screen. */
.xs-table-wrap{
	overflow-x:auto; -webkit-overflow-scrolling:touch;
	border:2px solid var(--ink); border-radius:14px; background:var(--paper-2);
	box-shadow:var(--shadow); margin:24px 0;
	position:relative;
}
.xs-table-wrap table{ display:table; width:100%; border-collapse:collapse; min-width:480px; margin:0; }
.xs-table-wrap th{
	padding:13px 16px; text-align:left; background:var(--ink); color:var(--paper);
	font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; font-family:'Inter',sans-serif; font-weight:700;
	white-space:nowrap;
}
.xs-table-wrap td{
	padding:13px 16px; border-top:1px solid var(--line); color:var(--ink);
	font-size:.9rem; font-family:'Inter',sans-serif;
}
.xs-table-wrap tbody tr:nth-child(even) td{ background:rgba(24,23,18,.025); }
.xs-table-wrap tr:hover td{ background:rgba(15,138,75,.05); }
.xs-table-wrap caption{ caption-side:top; padding:12px 16px 0; text-align:left; font-size:.8rem; color:var(--ink-soft); font-family:'Inter',sans-serif; }

/* Fade hint on the right edge when a table can scroll — removed once
   the reader has scrolled to the end (toggled via JS). */
.xs-table-wrap.xs-scrollable::after{
	content:""; position:absolute; top:2px; right:2px; bottom:2px; width:28px;
	background:linear-gradient(90deg, transparent, var(--paper-2) 88%);
	pointer-events:none; border-radius:0 12px 12px 0;
}

@media(max-width:580px){
	.xs-table-wrap{ border:none; background:none; box-shadow:none; overflow:visible; }
	.xs-table-wrap.xs-scrollable::after{ display:none; }
	.xs-table-wrap table{ min-width:0; }
	.xs-table-wrap thead{ display:none; }
	.xs-table-wrap table, .xs-table-wrap tbody, .xs-table-wrap tr, .xs-table-wrap td{ display:block; width:100%; }
	.xs-table-wrap tr{
		background:var(--paper-2); border:2px solid var(--ink); border-radius:12px;
		padding:4px 4px; margin-bottom:10px;
	}
	.xs-table-wrap td{
		display:flex; justify-content:space-between; align-items:center; gap:10px;
		padding:9px 14px; border-top:none; font-size:.88rem; text-align:right;
	}
	.xs-table-wrap td::before{
		content:attr(data-label); font-weight:800; font-size:.64rem;
		text-transform:uppercase; letter-spacing:.4px; color:var(--pitch); margin-right:auto; text-align:left;
	}
	.xs-table-wrap td:not([data-label]){ justify-content:flex-start; }
}

/* SINGLE POST LAYOUT */
.content-layout{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:26px; padding:36px 0 56px; }
.article{ background:var(--paper-2); border:2px solid var(--ink); border-radius:var(--radius); padding:clamp(20px,4vw,38px); overflow-wrap:break-word; }
.article h1{ font-family:'Anton',sans-serif; font-weight:400; font-size:clamp(1.8rem,4.5vw,2.8rem); line-height:1; letter-spacing:-.01em; margin:0 0 14px; text-transform:uppercase; color:var(--ink); }
.article h2, .article h3{ line-height:1.25; letter-spacing:-.01em; font-family:'Anton',sans-serif; font-weight:400; text-transform:uppercase; color:var(--ink); margin-top:1.6em; }
.article p, .article li{ color:var(--ink); font-size:1.08rem; line-height:1.75; font-family:'Fraunces',Georgia,serif; font-optical-sizing:auto; }
.article-meta{ color:var(--ink-soft); font-size:.88rem; margin-bottom:22px; font-weight:600; font-family:'JetBrains Mono',monospace; }
.article img{ border-radius:12px; margin:18px 0; border:2px solid var(--ink); }
.article a{ color:var(--pitch); text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:2px; font-weight:600; }

/* SHARE BUTTONS */
.share-buttons{
	display:flex; align-items:center; gap:8px; flex-wrap:wrap;
	margin-top:28px; padding-top:22px; border-top:2px solid var(--ink);
}
.share-label{ font-size:.82rem; font-weight:700; color:var(--ink-soft); margin-right:4px; font-family:'Inter',sans-serif; }
.share-btn{
	display:inline-flex; align-items:center; padding:8px 15px; border-radius:8px;
	font-size:.82rem; font-weight:700; border:2px solid var(--ink); cursor:pointer;
	font-family:'Inter',sans-serif; transition:transform .15s ease, opacity .15s ease;
}
.share-btn:hover{ transform:translateY(-2px); }
.share-whatsapp{ background:#25D366; color:#04140b; }
.share-facebook{ background:#1877F2; color:#fff; }
.share-twitter{ background:var(--ink); color:#fff; }
.share-copy{ background:var(--paper); color:var(--ink); }

/* NEXT / PREVIOUS POST NAVIGATION */
.post-nav{
	display:grid; grid-template-columns:1fr 1fr; gap:12px;
	margin-top:20px;
}
.post-nav-link{
	display:block; background:var(--paper-2); border:2px solid var(--ink);
	border-radius:12px; padding:14px 16px; transition:transform .18s ease, box-shadow .18s ease;
	box-shadow:3px 3px 0 rgba(24,23,18,.1);
}
.post-nav-link:hover{ transform:translateY(-2px); box-shadow:4px 5px 0 rgba(24,23,18,.14); }
.post-nav-next{ text-align:right; grid-column:2; }
.post-nav-prev{ grid-column:1; }
.post-nav-label{ display:block; font-size:.72rem; font-weight:800; color:var(--pitch); text-transform:uppercase; letter-spacing:.4px; margin-bottom:5px; font-family:'Inter',sans-serif; }
.post-nav-title{ display:block; font-size:.86rem; font-weight:600; color:var(--ink); line-height:1.35; font-family:'Inter',sans-serif; }

@media(max-width:560px){
	.post-nav{ grid-template-columns:1fr; }
	.post-nav-next{ grid-column:1; text-align:left; }
	.share-buttons{ gap:6px; }
	.share-btn{ padding:7px 12px; font-size:.78rem; }
}

.sidebar{ display:grid; gap:16px; align-content:start; }
.widget{ background:var(--paper-2); border:2px solid var(--ink); border-radius:14px; padding:18px; }
.widget-title{ margin:0 0 12px; color:var(--pitch); font-size:.85rem; text-transform:uppercase; letter-spacing:.06em; font-weight:800; font-family:'Inter',sans-serif; }
.widget-list{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.widget-list li a{ font-size:.88rem; font-weight:600; color:var(--ink); display:block; line-height:1.4; font-family:'Inter',sans-serif; }
.widget-list li a:hover{ color:var(--pitch); }
.widget-list .meta{ display:block; font-size:.72rem; color:var(--ink-soft); margin-top:2px; font-weight:600; }

/* PAGE (no sidebar) */
.page-layout{ padding:36px 0 56px; }

/* NOTICE */
.xs-notice{ background:var(--paper-2); border:2px dashed var(--ink); color:var(--ink-soft); border-radius:12px; padding:14px 18px; font-size:.85rem; font-weight:600; margin-top:26px; font-family:'Inter',sans-serif; }

/* PAGINATION */
.pagination, .navigation.pagination{ display:flex; gap:8px; justify-content:center; margin-top:28px; flex-wrap:wrap; }
.page-numbers{ padding:9px 13px; border-radius:8px; background:var(--paper-2); border:2px solid var(--ink); color:var(--ink); font-weight:700; font-size:.85rem; font-family:'Inter',sans-serif; }
.page-numbers.current{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* FOOTER — the one reversed dark band, echoing the floating dark chrome elsewhere */
.site-footer{
	border-top:2px solid var(--ink);
	padding:0 0 0;
	background:var(--ink);
	color:#A8A599;
	position:relative;
	overflow:hidden;
}

/* CTA STRIP */
.footer-cta{
	display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
	padding:22px 0; margin-top:0; border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-cta-text{ display:flex; flex-direction:column; gap:2px; }
.footer-cta-text strong{ color:#fff; font-size:1rem; font-family:'Inter',sans-serif; }
.footer-cta-text span{ font-size:.84rem; color:#A8A599; font-family:'Inter',sans-serif; }
.footer-cta-btn{ min-height:auto; padding:11px 22px; font-size:.85rem; flex-shrink:0; background:var(--pitch); color:#fff; border-color:var(--pitch); }

.footer-grid{
	display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:32px;
	padding:40px 0 36px; border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-col{
	display:flex; flex-direction:column; gap:11px;
	padding-left:24px; border-left:1px solid rgba(255,255,255,.12);
	position:relative;
}
.footer-col.footer-brand-col{ padding-left:0; border-left:none; }
.footer-brand{
	display:flex; align-items:center; font-size:1.2rem;
	color:#fff; margin-bottom:6px; font-family:'Anton',sans-serif;
}
.footer-blurb{ font-size:.85rem; line-height:1.6; color:#A8A599; margin:0; max-width:280px; font-family:'Inter',sans-serif; }
.footer-whatsapp{
	display:inline-flex; align-items:center; gap:6px; margin-top:6px;
	color:#25D366 !important; font-weight:700; font-size:.85rem; width:fit-content; font-family:'Inter',sans-serif;
}
.footer-heading{
	font-size:.9rem; font-weight:400; text-transform:uppercase; letter-spacing:.04em;
	margin:0 0 4px; position:relative; padding-bottom:9px; color:#fff;
}
.footer-heading::after{
	content:""; position:absolute; left:0; bottom:0; width:22px; height:3px; border-radius:2px; background:var(--pitch);
}

.footer-col a{
	font-size:.87rem; font-weight:500; color:#A8A599; transition:color .15s ease;
	position:relative; width:fit-content; font-family:'Inter',sans-serif;
}
.footer-col a::after{
	content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px;
	background:currentColor; transition:width .2s ease;
}
.footer-col a:hover{ color:var(--pitch-2); }
.footer-col a:hover::after{ width:100%; }
.footer-staff-link{ opacity:.55; }

.footer-bottom{
	display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
	gap:10px; padding:20px 0 24px;
}
.footer-copy{ font-size:.8rem; margin:0; font-family:'Inter',sans-serif; }
.footer-disclaimer{ font-size:.78rem; margin:0; color:#A8A599; font-family:'Inter',sans-serif; }
.footer-disclaimer strong{ color:var(--pitch-2); }
.footer-top-link{
	font-size:.8rem; font-weight:700; color:#A8A599; transition:color .15s ease; font-family:'Inter',sans-serif;
}
.footer-top-link:hover{ color:var(--pitch-2); }

@media(max-width:820px){
	.footer-grid{ grid-template-columns:1fr 1fr; row-gap:24px; }
	.footer-brand-col{ grid-column:1 / -1; padding-left:0; border-left:none; }
	.footer-blurb{ max-width:100%; }
	.footer-col:nth-child(2), .footer-col:nth-child(4){ padding-left:0; border-left:none; }
}

@media(max-width:600px){
	.footer-cta{ flex-direction:column; align-items:flex-start; }
	.footer-cta-btn{ width:100%; text-align:center; }
	.footer-grid{ grid-template-columns:1fr; gap:22px; padding-bottom:26px; }
	.footer-col{ padding-left:0; border-left:none; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); }
	.footer-col.footer-brand-col{ padding-top:0; border-top:none; }
	.footer-bottom{ flex-direction:column; align-items:flex-start; padding-bottom:110px; }
	.site-footer{ padding-top:36px; }
}

/* WELCOME TOAST — shown once per day inside the installed app; glass chrome to match the footer/nav family */
.xs-welcome-toast{
	display:flex; align-items:center; gap:11px;
	position:fixed; left:14px; right:14px; z-index:80;
	top:calc(14px + env(safe-area-inset-top));
	background:rgba(24,23,18,.72);
	backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%);
	border:1px solid rgba(255,255,255,.16); border-radius:14px; padding:12px 12px;
	box-shadow:0 16px 36px rgba(24,23,18,.24), inset 0 1px 0 rgba(255,255,255,.14);
	opacity:0; transform:translateY(-16px) scale(.97);
	transition:opacity .35s cubic-bezier(.2,.8,.2,1), transform .35s cubic-bezier(.2,.8,.2,1);
	max-width:500px; margin:0 auto;
}
.xs-welcome-toast.show{ opacity:1; transform:translateY(0) scale(1); }
.xs-welcome-icon{ font-size:1.4rem; flex-shrink:0; }
.xs-welcome-text{ flex:1; display:flex; flex-direction:column; gap:1px; min-width:0; font-family:'Inter',sans-serif; }
.xs-welcome-text strong{ font-size:.86rem; color:#fff; }
.xs-welcome-text span{ font-size:.74rem; color:#A8A599; }
.xs-welcome-btn{
	background:var(--pitch); color:#fff;
	padding:8px 14px; border-radius:8px; font-weight:800; font-size:.78rem; flex-shrink:0; white-space:nowrap; font-family:'Inter',sans-serif;
	transition:transform .18s ease;
}
.xs-welcome-btn:hover{ transform:translateY(-1px); }
.xs-welcome-close{
	background:none; border:none; color:#A8A599; font-size:1.2rem; line-height:1;
	padding:2px 4px; cursor:pointer; flex-shrink:0;
}

/* INSTALL APP PROMPT */
.xs-install-prompt{
	display:none; align-items:center; gap:12px;
	position:fixed; left:14px; right:14px; bottom:14px; z-index:65;
	background:rgba(24,23,18,.72);
	backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%);
	border:1px solid rgba(255,255,255,.16); border-radius:16px; padding:14px 14px;
	box-shadow:0 16px 36px rgba(24,23,18,.24), inset 0 1px 0 rgba(255,255,255,.14);
}
.xs-install-prompt.show{ display:flex; }
.xs-install-icon{
	width:36px; height:36px; border-radius:10px; font-size:1.1rem; flex-shrink:0;
	display:flex; align-items:center; justify-content:center;
	background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18);
}
.xs-install-text{ flex:1; display:flex; flex-direction:column; gap:1px; min-width:0; font-family:'Inter',sans-serif; }
.xs-install-text strong{ font-size:.88rem; color:#fff; }
.xs-install-text span{ font-size:.74rem; color:#A8A599; line-height:1.3; }
.xs-install-btn{
	background:var(--pitch); color:#fff; border:none;
	padding:9px 16px; border-radius:8px; font-weight:800; font-size:.82rem; flex-shrink:0; cursor:pointer; font-family:'Inter',sans-serif;
	transition:transform .18s ease;
}
.xs-install-btn:hover{ transform:translateY(-1px); }
.xs-install-close{
	background:none; border:none; color:#A8A599; font-size:1.3rem; line-height:1;
	padding:4px 6px; cursor:pointer; flex-shrink:0;
}

/* When the install banner is visible on mobile, it should sit above the bottom nav */
@media(max-width:900px){
	.xs-install-prompt.show{ bottom:calc(78px + env(safe-area-inset-bottom)); }
}

/* BOTTOM NAV — floating glass dock, matches the footer/toast chrome family */
.xs-bottom-nav{
	display:none; position:fixed; left:14px; right:14px; bottom:calc(14px + env(safe-area-inset-bottom)); z-index:60;
	background:rgba(24,23,18,.68);
	backdrop-filter:blur(26px) saturate(180%); -webkit-backdrop-filter:blur(26px) saturate(180%);
	border:1px solid rgba(255,255,255,.16);
	border-radius:22px;
	padding:8px 10px;
	box-shadow:0 16px 36px rgba(24,23,18,.24), inset 0 1px 0 rgba(255,255,255,.14);
}
.xs-bottom-nav-inner{ display:flex; justify-content:space-between; align-items:center; max-width:520px; margin:0 auto; }
.xs-bn-item{
	display:flex; flex-direction:column; align-items:center; gap:2px;
	color:#A8A599; padding:4px 3px; text-decoration:none; flex:1; font-family:'Inter',sans-serif;
}
.xs-bn-circle{
	width:36px; height:36px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	background:transparent; border:1px solid transparent;
	transition:background .25s cubic-bezier(.2,.8,.2,1), border-color .25s ease, transform .25s cubic-bezier(.2,.8,.2,1);
}
.xs-bn-circle svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.9; }
.xs-bn-label{ font-size:8.8px; font-weight:700; transition:color .2s ease; white-space:nowrap; }

.xs-bn-item:hover .xs-bn-circle, .xs-bn-item.active .xs-bn-circle{
	background:var(--pitch);
	border-color:var(--pitch);
	transform:translateY(-3px);
}
.xs-bn-item:hover, .xs-bn-item.active{ color:#fff; }
.xs-bn-item.active .xs-bn-label{ color:#fff; }

/* Safety net: if the nav ever has more items than fit, scroll instead of wrap/break */
.site-nav{ overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; }
.site-nav::-webkit-scrollbar{ display:none; }
.site-nav ul{ flex-wrap:nowrap; }

/* SMALL DESKTOP / LAPTOP */
@media(min-width:901px) and (max-width:1200px){
	.header-inner{ gap:10px; }
	.brand{ font-size:1.25rem; gap:8px; }
	.site-nav a{ padding:7px 10px; font-size:.78rem; }
	.site-nav ul{ gap:0; padding:4px; }
	.nav-login-btn{ padding:8px 14px; font-size:.78rem; }
}

@media(max-width:900px){
	.site-nav{ display:none; }
	.xs-bottom-nav{ display:block; }
	.grid{ grid-template-columns:1fr 1fr; }
	.content-layout{ grid-template-columns:1fr; }
	.stats-grid{ gap:0; }
}

@media(max-width:620px){
	.hero{ padding-top:22px; }
	.hero-panel{ border-radius:14px; }
	.grid{ grid-template-columns:1fr; }
	.section-head{ align-items:flex-start; flex-direction:column; }
	.header-inner{ min-height:64px; }
	.site-footer{ padding-bottom:100px; }
	.stats-grid{ grid-template-columns:repeat(2,1fr); }
	.stat-card{ padding:12px 4px; border-bottom:1px solid var(--ink); }
	.stat-card:nth-child(odd){ border-right:1px solid var(--ink); }
	.stat-card .n{ font-size:1.2rem; }
}

/* SMALL / BUDGET PHONES (320-400px) */
@media(max-width:400px){
	.container{ width:calc(100% - 20px); }
	.header-inner{ gap:8px; padding:12px 0; }
	.brand{ font-size:1.1rem; gap:8px; }
	.nav-login-btn{ padding:11px 14px; font-size:.76rem; }

	.hero-panel{ padding:22px 16px; border-radius:12px; }
	.hero h1{ font-size:1.7rem; }
	.hero p{ font-size:.9rem; }
	.btn{ padding:0 16px; min-height:44px; font-size:.85rem; }

	.stat-card{ padding:10px 3px; }
	.stat-card .n{ font-size:1.05rem; }
	.stat-card .l{ font-size:.58rem; }

	.section-head h2{ font-size:1.2rem; }
	.card-body{ padding:12px 14px; }
	.card h3{ font-size:.95rem; }

	.article{ padding:16px 14px; border-radius:12px; }
	.article h1{ font-size:1.6rem; }
	.article p, .article li{ font-size:1rem; line-height:1.7; }
	.article-meta{ font-size:.8rem; }

	.widget{ padding:14px; border-radius:12px; }

	.xs-bn-circle{ width:30px; height:30px; }
	.xs-bn-circle svg{ width:15px; height:15px; }
	.xs-bn-label{ font-size:7.8px; }
	.xs-bn-item{ padding:3px 1px; }
	.xs-bottom-nav{ left:6px; right:6px; padding:6px 4px; border-radius:18px; }

	.share-buttons{ gap:5px; }
	.share-label{ width:100%; margin-bottom:4px; }
	.share-btn{ padding:6px 10px; font-size:.74rem; }

	.footer-links{ gap:10px; }
	.footer-links a{ font-size:.78rem; }
}

/* SCROLL REVEAL */
.xs-reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.xs-reveal.xs-revealed{ opacity:1; transform:translateY(0); }
@media(prefers-reduced-motion:reduce){ .xs-reveal{ opacity:1; transform:none; transition:none; } }

/* READING PROGRESS BAR — single article pages only */
.xs-progress-bar{
	position:fixed; top:0; left:0; height:3px; width:0%; z-index:100;
	background:var(--pitch);
	transition:width .1s linear;
}

/* AD MANAGER — neutral, clearly-labelled ad containers that don't fight
   the newsprint design, plus a dismissible mobile sticky bar. */
.xs-ad-slot{
	display:flex; align-items:center; justify-content:center;
	width:100%; min-height:60px; overflow:hidden;
	margin:22px 0;
}
.xs-ad-slot:empty{ display:none; margin:0; }
.xs-ad-slot::before{
	content:"Advertisement"; display:block; width:100%; text-align:center;
	font-family:'Inter',sans-serif; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
	color:var(--ink-soft); opacity:.55; margin-bottom:6px; position:absolute; margin-top:-20px;
}
.xs-ad-slot{ position:relative; padding-top:18px; }
.card + .xs-ad-slot,
.result-card + .xs-ad-slot{ grid-column:1 / -1; }

.xs-sticky-ad{
	display:none; position:fixed; left:0; right:0; bottom:0; z-index:59;
	background:var(--paper-2); border-top:1px solid var(--line);
	padding:8px 34px 8px 8px; box-shadow:0 -8px 24px rgba(24,23,18,.16);
}
.xs-sticky-ad-close{
	position:absolute; top:6px; right:8px; width:22px; height:22px; line-height:20px;
	border-radius:50%; border:1px solid var(--line); background:var(--paper);
	color:var(--ink); font-size:16px; cursor:pointer; padding:0;
}
@media(max-width:900px){
	.xs-sticky-ad{ display:block; bottom:calc(78px + env(safe-area-inset-bottom)); }
	.xs-sticky-ad .xs-ad-slot{ margin:0; min-height:50px; }
	.xs-sticky-ad .xs-ad-slot::before{ display:none; }
}
