/*
Theme Name: JEM
Theme URI: https://sudanjem.net/
Author: Sudan JEM
Author URI: https://sudanjem.net
Description: JEM is a premium, RTL-first Arabic editorial theme for sudanjem.net. Packed Google-News density on a white card system, five hero layouts, six card types, an algorithmic personalised homepage, reading intelligence, ad slots, consent-gated analytics, native SEO with FAQ and Speakable schema, and a modular AI integration layer. Mobile-first, accessible and fast. Designed to pair with the JEM Aggregator plugin.
Version: 1.3.2
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sudanjem-glass
Tags: news, rtl-language-support, blog, three-columns, right-sidebar, custom-colors, custom-logo, custom-menu, editor-style, featured-images, block-styles, wide-blocks, threaded-comments, translation-ready, accessibility-ready
*/

/* ==========================================================================
   1. DESIGN TOKENS
   Every colour, radius, space and shadow is centralised here and then
   overridden by the dynamic stylesheet generated from the Customizer.
   ========================================================================== */

:root {
	/* Brand */
	--sjg-primary: #1a73e8;
	--sjg-primary-ink: #0b57d0;
	--sjg-primary-soft: rgba(26, 115, 232, 0.12);
	--sjg-accent: #0f9d58;
	--sjg-accent-soft: rgba(15, 157, 88, 0.12);
	--sjg-highlight: #f9ab00;
	--sjg-danger: #d93025;

	/* Surfaces (light) */
	--sjg-bg: #eef1f7;
	--sjg-bg-grad-a: #eef2f9;
	--sjg-bg-grad-b: #e6ebf5;
	--sjg-surface: rgba(255, 255, 255, 0.74);
	--sjg-surface-solid: #ffffff;
	--sjg-surface-2: rgba(255, 255, 255, 0.55);
	--sjg-surface-3: rgba(240, 243, 249, 0.85);
	--sjg-glass-blur: 18px;
	--sjg-glass-opacity: 0.74;

	/* Text */
	--sjg-ink: #0c1622;
	--sjg-ink-2: #26344a;
	--sjg-muted: #5a6880;
	--sjg-faint: #8b97ab;
	--sjg-on-primary: #ffffff;

	/* Lines */
	--sjg-line: rgba(12, 22, 34, 0.09);
	--sjg-line-strong: rgba(12, 22, 34, 0.16);
	--sjg-border-width: 1px;

	/* Structure */
	--sjg-container: 1320px;
	--sjg-content: 760px;
	--sjg-rail: 336px;
	--sjg-header-h: 68px;
	--sjg-topbar-h: 36px;
	--sjg-radius: 18px;
	--sjg-radius-sm: 12px;
	--sjg-radius-xs: 8px;
	--sjg-radius-pill: 999px;
	--sjg-space: 1;

	/* Elevation */
	--sjg-shadow-xs: 0 1px 2px rgba(12, 22, 34, 0.06);
	--sjg-shadow-sm: 0 2px 6px rgba(12, 22, 34, 0.05), 0 1px 2px rgba(12, 22, 34, 0.04);
	--sjg-shadow: 0 12px 32px -18px rgba(12, 22, 34, 0.28), 0 2px 8px -4px rgba(12, 22, 34, 0.1);
	--sjg-shadow-lg: 0 28px 60px -30px rgba(12, 22, 34, 0.35), 0 8px 20px -12px rgba(12, 22, 34, 0.12);
	--sjg-neu: inset 0 1px 0 rgba(255, 255, 255, 0.65), inset 0 -1px 0 rgba(12, 22, 34, 0.04), 0 1px 2px rgba(12, 22, 34, 0.05);
	--sjg-ring: 0 0 0 3px var(--sjg-primary-soft);

	/* Type */
	--sjg-font: "Tajawal", "IBM Plex Sans Arabic", -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, sans-serif;
	--sjg-font-display: var(--sjg-font);
	--sjg-fs-base: 16.5px;
	--sjg-lh: 1.75;
	--sjg-track: 0;

	/* Motion */
	--sjg-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--sjg-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--sjg-dur: 0.32s;

	/* Layers */
	--sjg-z-header: 900;
	--sjg-z-drawer: 1000;
	--sjg-z-overlay: 1100;
	--sjg-z-toast: 1200;
}

/* Dark design language: its own surface ladder, not an inversion. */
html[data-sjg-theme="dark"] {
	--sjg-bg: #080b11;
	--sjg-bg-grad-a: #0a0e16;
	--sjg-bg-grad-b: #0d121c;
	--sjg-surface: rgba(23, 30, 42, 0.72);
	--sjg-surface-solid: #141a25;
	--sjg-surface-2: rgba(30, 39, 54, 0.6);
	--sjg-surface-3: rgba(18, 24, 34, 0.88);
	--sjg-ink: #eef2f8;
	--sjg-ink-2: #cdd6e4;
	--sjg-muted: #97a4b8;
	--sjg-faint: #6d7b91;
	--sjg-line: rgba(255, 255, 255, 0.09);
	--sjg-line-strong: rgba(255, 255, 255, 0.18);
	--sjg-primary-soft: rgba(120, 170, 255, 0.16);
	--sjg-accent-soft: rgba(52, 199, 132, 0.16);
	--sjg-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.5);
	--sjg-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.45);
	--sjg-shadow: 0 16px 40px -22px rgba(0, 0, 0, 0.9), 0 2px 10px -6px rgba(0, 0, 0, 0.7);
	--sjg-shadow-lg: 0 36px 70px -34px rgba(0, 0, 0, 0.95);
	--sjg-neu: inset 0 1px 0 rgba(255, 255, 255, 0.06), inset 0 -1px 0 rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.5);
	--sjg-glass-opacity: 0.66;
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	html[data-sjg-theme="system"] {
		--sjg-bg: #080b11;
		--sjg-bg-grad-a: #0a0e16;
		--sjg-bg-grad-b: #0d121c;
		--sjg-surface: rgba(23, 30, 42, 0.72);
		--sjg-surface-solid: #141a25;
		--sjg-surface-2: rgba(30, 39, 54, 0.6);
		--sjg-surface-3: rgba(18, 24, 34, 0.88);
		--sjg-ink: #eef2f8;
		--sjg-ink-2: #cdd6e4;
		--sjg-muted: #97a4b8;
		--sjg-faint: #6d7b91;
		--sjg-line: rgba(255, 255, 255, 0.09);
		--sjg-line-strong: rgba(255, 255, 255, 0.18);
		--sjg-primary-soft: rgba(120, 170, 255, 0.16);
		--sjg-accent-soft: rgba(52, 199, 132, 0.16);
		--sjg-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.5);
		--sjg-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.45);
		--sjg-shadow: 0 16px 40px -22px rgba(0, 0, 0, 0.9), 0 2px 10px -6px rgba(0, 0, 0, 0.7);
		--sjg-shadow-lg: 0 36px 70px -34px rgba(0, 0, 0, 0.95);
		--sjg-neu: inset 0 1px 0 rgba(255, 255, 255, 0.06), inset 0 -1px 0 rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.5);
		--sjg-glass-opacity: 0.66;
		color-scheme: dark;
	}
}

/* ==========================================================================
   2. RESET + BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
	direction: rtl;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--sjg-header-h) + 24px);
}

body {
	margin: 0;
	min-height: 100vh;
	font-family: var(--sjg-font);
	font-size: var(--sjg-fs-base);
	line-height: var(--sjg-lh);
	color: var(--sjg-ink);
	background-color: var(--sjg-bg);
	background-image:
		radial-gradient(1200px 620px at 88% -8%, var(--sjg-primary-soft), transparent 62%),
		radial-gradient(900px 520px at 4% 8%, var(--sjg-accent-soft), transparent 58%),
		linear-gradient(180deg, var(--sjg-bg-grad-a), var(--sjg-bg-grad-b) 42%, var(--sjg-bg));
	background-attachment: fixed;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img, svg, video, canvas { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
hr { border: 0; border-top: var(--sjg-border-width) solid var(--sjg-line); margin: 2rem 0; }

a { color: var(--sjg-primary); text-decoration: none; transition: color var(--sjg-dur) var(--sjg-ease); }
a:hover { color: var(--sjg-primary-ink); }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.6em;
	font-family: var(--sjg-font-display);
	font-weight: 700;
	line-height: 1.28;
	letter-spacing: var(--sjg-track);
	color: var(--sjg-ink);
	text-wrap: balance;
}
h1 { font-size: clamp(1.85rem, 1.2rem + 2.2vw, 2.9rem); }
h2 { font-size: clamp(1.45rem, 1.1rem + 1.3vw, 2rem); }
h3 { font-size: clamp(1.2rem, 1rem + 0.7vw, 1.5rem); }
h4 { font-size: 1.13rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.9rem; }
p { margin: 0 0 1.15em; }
strong, b { font-weight: 700; color: var(--sjg-ink); }
small { font-size: 0.82em; }
code, kbd, samp { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace; font-size: 0.9em; }
pre { padding: 1.1rem; border-radius: var(--sjg-radius-sm); background: var(--sjg-surface-3); overflow: auto; direction: ltr; text-align: left; }
blockquote { margin: 1.6rem 0; padding: 1.1rem 1.4rem; border-inline-start: 3px solid var(--sjg-primary); background: var(--sjg-surface-2); border-radius: var(--sjg-radius-sm); color: var(--sjg-ink-2); }
blockquote p:last-child { margin-bottom: 0; }
ul, ol { padding-inline-start: 1.35rem; margin: 0 0 1.15em; }
li { margin-bottom: 0.4em; }
table { width: 100%; border-collapse: collapse; margin: 1.4rem 0; font-size: 0.95em; }
th, td { padding: 0.65rem 0.8rem; border-bottom: var(--sjg-border-width) solid var(--sjg-line); text-align: start; }
th { background: var(--sjg-surface-2); font-weight: 700; }

::selection { background: var(--sjg-primary-soft); color: var(--sjg-ink); }

:focus-visible {
	outline: 2px solid var(--sjg-primary);
	outline-offset: 2px;
	border-radius: var(--sjg-radius-xs);
}

/* Scrollbar */
@supports selector(::-webkit-scrollbar) {
	::-webkit-scrollbar { width: 10px; height: 10px; }
	::-webkit-scrollbar-track { background: transparent; }
	::-webkit-scrollbar-thumb { background: var(--sjg-line-strong); border-radius: 999px; border: 3px solid transparent; background-clip: content-box; }
	::-webkit-scrollbar-thumb:hover { background: var(--sjg-muted); background-clip: content-box; }
}

/* ==========================================================================
   3. LAYOUT PRIMITIVES
   ========================================================================== */

.sjg-wrap {
	width: 100%;
	max-width: var(--sjg-container);
	margin-inline: auto;
	padding-inline: calc(20px * var(--sjg-space));
}
.sjg-wrap--wide { max-width: calc(var(--sjg-container) + 60px); }

.sjg-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--sjg-rail);
	gap: calc(28px * var(--sjg-space));
	align-items: start;
	padding-block: calc(26px * var(--sjg-space)) calc(48px * var(--sjg-space));
}
.sjg-layout--full { grid-template-columns: minmax(0, 1fr); }
.sjg-layout--left { grid-template-columns: var(--sjg-rail) minmax(0, 1fr); }

.sjg-rail { position: sticky; top: calc(var(--sjg-header-h) + 18px); display: grid; gap: calc(18px * var(--sjg-space)); }

.sjg-skip {
	position: absolute;
	inset-inline-start: -9999px;
	top: 0;
	z-index: var(--sjg-z-toast);
	padding: 10px 16px;
	background: var(--sjg-surface-solid);
	border-radius: var(--sjg-radius-sm);
}
.sjg-skip:focus { inset-inline-start: 12px; top: 12px; }

.sjg-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

/* ==========================================================================
   4. GLASS / NEOMORPHIC SURFACES
   ========================================================================== */

.sjg-surface,
.sjg-card,
.sjg-widget,
.sjg-panel {
	position: relative;
	border-radius: var(--sjg-radius);
	border: var(--sjg-border-width) solid var(--sjg-line);
	background:
		linear-gradient(160deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 46%),
		var(--sjg-surface);
	-webkit-backdrop-filter: blur(var(--sjg-glass-blur)) saturate(150%);
	backdrop-filter: blur(var(--sjg-glass-blur)) saturate(150%);
	box-shadow: var(--sjg-neu), var(--sjg-shadow-sm);
}

/* Neomorphic card variant */
body.sjg-cards-neu .sjg-card,
body.sjg-cards-neu .sjg-widget,
body.sjg-cards-neu .sjg-panel {
	background: var(--sjg-bg);
	box-shadow:
		8px 8px 20px rgba(12, 22, 34, 0.07),
		-8px -8px 20px rgba(255, 255, 255, 0.72),
		inset 0 0 0 1px var(--sjg-line);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}
html[data-sjg-theme="dark"] body.sjg-cards-neu .sjg-card,
html[data-sjg-theme="dark"] body.sjg-cards-neu .sjg-widget,
html[data-sjg-theme="dark"] body.sjg-cards-neu .sjg-panel {
	box-shadow:
		8px 8px 22px rgba(0, 0, 0, 0.55),
		-6px -6px 18px rgba(255, 255, 255, 0.03),
		inset 0 0 0 1px var(--sjg-line);
}

/* Flat card variant */
body.sjg-cards-flat .sjg-card,
body.sjg-cards-flat .sjg-widget,
body.sjg-cards-flat .sjg-panel {
	background: var(--sjg-surface-solid);
	box-shadow: var(--sjg-shadow-sm);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

/* ==========================================================================
   5. BUTTONS, CHIPS, BADGES, FORMS
   ========================================================================== */

.sjg-btn {
	--sjg-btn-bg: var(--sjg-surface-2);
	--sjg-btn-ink: var(--sjg-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	padding: 0.62em 1.1em;
	font: inherit;
	font-weight: 600;
	font-size: 0.94rem;
	line-height: 1.2;
	color: var(--sjg-btn-ink);
	background: var(--sjg-btn-bg);
	border: var(--sjg-border-width) solid var(--sjg-line);
	border-radius: var(--sjg-radius-pill);
	cursor: pointer;
	text-align: center;
	transition: transform var(--sjg-dur) var(--sjg-ease), box-shadow var(--sjg-dur) var(--sjg-ease), background var(--sjg-dur) var(--sjg-ease), color var(--sjg-dur) var(--sjg-ease), border-color var(--sjg-dur) var(--sjg-ease);
	-webkit-tap-highlight-color: transparent;
}
.sjg-btn:hover { transform: translateY(-1px); box-shadow: var(--sjg-shadow-sm); color: var(--sjg-btn-ink); }
.sjg-btn:active { transform: translateY(0) scale(0.985); }
.sjg-btn__icon { display: inline-flex; flex: 0 0 auto; }

.sjg-btn--primary {
	--sjg-btn-bg: linear-gradient(140deg, var(--sjg-primary), var(--sjg-primary-ink));
	--sjg-btn-ink: #fff;
	border-color: transparent;
	box-shadow: 0 10px 24px -14px var(--sjg-primary);
}
.sjg-btn--primary:hover { --sjg-btn-ink: #fff; box-shadow: 0 14px 30px -14px var(--sjg-primary); }

.sjg-btn--ghost { --sjg-btn-bg: transparent; }
.sjg-btn--soft { --sjg-btn-bg: var(--sjg-primary-soft); --sjg-btn-ink: var(--sjg-primary); border-color: transparent; }
.sjg-btn--danger { --sjg-btn-bg: var(--sjg-danger); --sjg-btn-ink: #fff; border-color: transparent; }
.sjg-btn--block { width: 100%; }
.sjg-btn--sm { padding: 0.42em 0.85em; font-size: 0.84rem; }
.sjg-btn--lg { padding: 0.8em 1.5em; font-size: 1rem; }
.sjg-btn[disabled], .sjg-btn.is-loading { opacity: 0.65; pointer-events: none; }

.sjg-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	padding: 0;
	color: var(--sjg-ink-2);
	background: var(--sjg-surface-2);
	border: var(--sjg-border-width) solid var(--sjg-line);
	border-radius: var(--sjg-radius-pill);
	cursor: pointer;
	transition: background var(--sjg-dur) var(--sjg-ease), color var(--sjg-dur) var(--sjg-ease), transform var(--sjg-dur) var(--sjg-ease);
}
.sjg-iconbtn:hover { background: var(--sjg-primary-soft); color: var(--sjg-primary); transform: translateY(-1px); }
.sjg-iconbtn--sm { width: 34px; height: 34px; }

.sjg-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.32em 0.78em;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--sjg-ink-2);
	background: var(--sjg-surface-2);
	border: var(--sjg-border-width) solid var(--sjg-line);
	border-radius: var(--sjg-radius-pill);
	transition: all var(--sjg-dur) var(--sjg-ease);
	white-space: nowrap;
}
.sjg-chip:hover { color: var(--sjg-primary); border-color: var(--sjg-primary); background: var(--sjg-primary-soft); }
.sjg-chip.is-active { background: var(--sjg-primary); color: #fff; border-color: transparent; }
.sjg-chip__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--sjg-accent); }

.sjg-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.26em 0.62em;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	border-radius: var(--sjg-radius-xs);
	background: var(--sjg-primary-soft);
	color: var(--sjg-primary);
	white-space: nowrap;
}
.sjg-badge--live { background: var(--sjg-danger); color: #fff; }
.sjg-badge--ai { background: var(--sjg-accent-soft); color: var(--sjg-accent); }
.sjg-badge--soft { background: var(--sjg-surface-3); color: var(--sjg-muted); }

.sjg-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.75rem;
	font-size: 0.82rem;
	color: var(--sjg-muted);
}
.sjg-meta__item { display: inline-flex; align-items: center; gap: 0.32em; }
.sjg-meta__sep { width: 3px; height: 3px; border-radius: 50%; background: var(--sjg-faint); }

input[type="text"], input[type="email"], input[type="url"], input[type="search"],
input[type="number"], input[type="tel"], input[type="password"], select, textarea {
	width: 100%;
	padding: 0.7em 0.95em;
	font: inherit;
	font-size: 0.95rem;
	color: var(--sjg-ink);
	background: var(--sjg-surface-solid);
	border: var(--sjg-border-width) solid var(--sjg-line-strong);
	border-radius: var(--sjg-radius-sm);
	transition: border-color var(--sjg-dur) var(--sjg-ease), box-shadow var(--sjg-dur) var(--sjg-ease);
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--sjg-primary); box-shadow: var(--sjg-ring); }
label { display: inline-block; margin-bottom: 0.35rem; font-size: 0.88rem; font-weight: 600; color: var(--sjg-ink-2); }
input[type="submit"] { cursor: pointer; }

/* ==========================================================================
   6. HEADER SYSTEM
   ========================================================================== */

.sjg-topbar {
	position: relative;
	z-index: calc(var(--sjg-z-header) - 1);
	background: color-mix(in srgb, var(--sjg-surface-solid) 70%, transparent);
	border-bottom: var(--sjg-border-width) solid var(--sjg-line);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	font-size: 0.79rem;
	color: var(--sjg-muted);
}
@supports not (background: color-mix(in srgb, red 50%, blue)) {
	.sjg-topbar { background: var(--sjg-surface-2); }
}
.sjg-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--sjg-topbar-h);
	padding-inline: calc(20px * var(--sjg-space));
	max-width: var(--sjg-container);
	margin-inline: auto;
}
.sjg-topbar__side { display: flex; align-items: center; gap: 0.9rem; }
.sjg-topbar__link { color: var(--sjg-muted); }
.sjg-topbar__link:hover { color: var(--sjg-primary); }
.sjg-topbar__date { font-weight: 600; color: var(--sjg-ink-2); }
.sjg-topbar__pulse { display: inline-flex; align-items: center; gap: 0.4em; color: var(--sjg-danger); font-weight: 700; }
.sjg-topbar__pulse::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--sjg-danger);
	box-shadow: 0 0 0 0 rgba(217, 48, 37, 0.55);
	animation: sjg-pulse 2.4s var(--sjg-ease) infinite;
}

.sjg-header {
	position: sticky;
	top: 0;
	z-index: var(--sjg-z-header);
	background: color-mix(in srgb, var(--sjg-surface-solid) 62%, transparent);
	border-bottom: var(--sjg-border-width) solid transparent;
	-webkit-backdrop-filter: blur(22px) saturate(170%);
	backdrop-filter: blur(22px) saturate(170%);
	transition: box-shadow var(--sjg-dur) var(--sjg-ease), border-color var(--sjg-dur) var(--sjg-ease), background var(--sjg-dur) var(--sjg-ease);
}
@supports not (background: color-mix(in srgb, red 50%, blue)) {
	.sjg-header { background: var(--sjg-surface); }
}
.sjg-header.is-stuck {
	border-bottom-color: var(--sjg-line);
	box-shadow: 0 12px 30px -24px rgba(12, 22, 34, 0.6);
}
.sjg-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(0.75rem, 2vw, 1.6rem);
	min-height: var(--sjg-header-h);
	max-width: var(--sjg-container);
	margin-inline: auto;
	padding-inline: calc(20px * var(--sjg-space));
}

.sjg-brand { display: inline-flex; align-items: center; gap: 0.65rem; flex: 0 0 auto; color: var(--sjg-ink); }
.sjg-brand:hover { color: var(--sjg-ink); }
.sjg-brand__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	border-radius: 14px;
	color: #fff;
	background: linear-gradient(150deg, var(--sjg-primary), var(--sjg-primary-ink));
	box-shadow: 0 10px 22px -12px var(--sjg-primary), inset 0 1px 0 rgba(255, 255, 255, 0.35);
	flex: 0 0 auto;
}
.sjg-brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.sjg-brand__en { font-weight: 800; font-size: 1.06rem; letter-spacing: 0.02em; }
.sjg-brand__ar { font-size: 0.68rem; color: var(--sjg-muted); font-weight: 600; letter-spacing: 0.01em; }
.sjg-brand img { max-height: calc(var(--sjg-header-h) - 22px); width: auto; }
.custom-logo-link { display: inline-flex; }

.sjg-header__actions { display: flex; align-items: center; gap: 0.45rem; margin-inline-start: auto; }

/* Primary navigation */
.sjg-nav {
	position: relative;
	border-top: var(--sjg-border-width) solid var(--sjg-line);
	background: color-mix(in srgb, var(--sjg-surface-solid) 45%, transparent);
}
.sjg-nav__scroll {
	max-width: var(--sjg-container);
	margin-inline: auto;
	padding-inline: calc(20px * var(--sjg-space));
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.sjg-nav__scroll::-webkit-scrollbar { display: none; }
.sjg-nav__list {
	display: flex;
	align-items: center;
	gap: 0.15rem;
	margin: 0;
	padding: 0;
	list-style: none;
	min-height: 46px;
	white-space: nowrap;
}
.sjg-nav__item { margin: 0; position: relative; }
.sjg-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.7rem 0.78rem;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--sjg-ink-2);
	border-radius: var(--sjg-radius-xs);
	position: relative;
	transition: color var(--sjg-dur) var(--sjg-ease), background var(--sjg-dur) var(--sjg-ease);
}
.sjg-nav__link::after {
	content: "";
	position: absolute;
	inset-inline: 0.78rem;
	bottom: 6px;
	height: 2px;
	border-radius: 2px;
	background: var(--sjg-primary);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--sjg-dur) var(--sjg-ease-out);
}
.sjg-nav__link:hover,
.sjg-nav__link:focus-visible { color: var(--sjg-primary); }
.sjg-nav__link:hover::after,
.sjg-nav__link:focus-visible::after,
.current-menu-item > .sjg-nav__link::after,
.current-menu-ancestor > .sjg-nav__link::after { transform: scaleX(1); }
.current-menu-item > .sjg-nav__link { color: var(--sjg-primary); }
.sjg-nav__link .sjg-badge { font-size: 0.62rem; padding: 0.15em 0.4em; }

.sjg-nav__toggle { display: none; }

/* Submenu */
.sjg-nav li > ul {
	position: absolute;
	inset-inline-start: 0;
	top: 100%;
	z-index: 40;
	min-width: 220px;
	margin: 0;
	padding: 0.4rem;
	list-style: none;
	border-radius: var(--sjg-radius-sm);
	border: var(--sjg-border-width) solid var(--sjg-line);
	background: var(--sjg-surface-solid);
	box-shadow: var(--sjg-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--sjg-dur) var(--sjg-ease), transform var(--sjg-dur) var(--sjg-ease), visibility var(--sjg-dur);
}
.sjg-nav li:hover > ul,
.sjg-nav li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }
.sjg-nav li > ul a {
	display: block;
	padding: 0.55rem 0.7rem;
	font-size: 0.88rem;
	color: var(--sjg-ink-2);
	border-radius: var(--sjg-radius-xs);
}
.sjg-nav li > ul a:hover { background: var(--sjg-primary-soft); color: var(--sjg-primary); }

/* Breaking ticker */
.sjg-ticker {
	display: flex;
	align-items: stretch;
	gap: 0;
	border-bottom: var(--sjg-border-width) solid var(--sjg-line);
	background: var(--sjg-surface-2);
	overflow: hidden;
}
.sjg-ticker__label {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	flex: 0 0 auto;
	padding: 0 1rem;
	min-height: 40px;
	font-size: 0.78rem;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(140deg, var(--sjg-danger), color-mix(in srgb, var(--sjg-danger) 72%, #000));
}
.sjg-ticker__viewport { position: relative; flex: 1 1 auto; overflow: hidden; min-width: 0; }
.sjg-ticker__track {
	display: flex;
	align-items: center;
	gap: 2.2rem;
	min-height: 40px;
	width: max-content;
	animation: sjg-ticker 46s linear infinite;
}
.sjg-ticker:hover .sjg-ticker__track,
.sjg-ticker:focus-within .sjg-ticker__track { animation-play-state: paused; }
.sjg-ticker__item {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-size: 0.84rem;
	font-weight: 600;
	color: var(--sjg-ink-2);
	white-space: nowrap;
}
.sjg-ticker__item::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--sjg-danger); }
.sjg-ticker__item:hover { color: var(--sjg-primary); }

/* Mobile bottom bar */
.sjg-tabbar {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: var(--sjg-z-header);
	display: none;
	grid-template-columns: repeat(5, 1fr);
	align-items: center;
	padding: 0.35rem 0.4rem calc(0.35rem + env(safe-area-inset-bottom, 0px));
	background: color-mix(in srgb, var(--sjg-surface-solid) 82%, transparent);
	-webkit-backdrop-filter: blur(20px) saturate(160%);
	backdrop-filter: blur(20px) saturate(160%);
	border-top: var(--sjg-border-width) solid var(--sjg-line);
}
.sjg-tabbar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
	padding: 0.35rem 0.2rem;
	font-size: 0.63rem;
	font-weight: 600;
	color: var(--sjg-muted);
	border-radius: var(--sjg-radius-xs);
	background: none;
	border: 0;
	cursor: pointer;
	font-family: inherit;
}
.sjg-tabbar__item:hover, .sjg-tabbar__item.is-active { color: var(--sjg-primary); }

/* Drawer + search overlay */
.sjg-drawer { position: fixed; inset: 0; z-index: var(--sjg-z-drawer); pointer-events: none; }
.sjg-drawer__scrim {
	position: absolute; inset: 0;
	background: rgba(6, 12, 22, 0.42);
	opacity: 0;
	transition: opacity var(--sjg-dur) var(--sjg-ease);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}
.sjg-drawer__panel {
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	width: min(360px, 86vw);
	padding: 1.1rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--sjg-surface-solid);
	border-inline-start: var(--sjg-border-width) solid var(--sjg-line);
	box-shadow: var(--sjg-shadow-lg);
	transform: translateX(105%);
	transition: transform 0.42s var(--sjg-ease-out);
}
html[dir="rtl"] .sjg-drawer__panel { transform: translateX(105%); }
.sjg-drawer.is-open { pointer-events: auto; }
.sjg-drawer.is-open .sjg-drawer__scrim { opacity: 1; }
.sjg-drawer.is-open .sjg-drawer__panel { transform: translateX(0); }
.sjg-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.9rem; }
.sjg-drawer__nav { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.15rem; }
.sjg-drawer__nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.72rem 0.7rem;
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--sjg-ink-2);
	border-radius: var(--sjg-radius-sm);
}
.sjg-drawer__nav a:hover { background: var(--sjg-primary-soft); color: var(--sjg-primary); }
.sjg-drawer__sub { list-style: none; margin: 0.15rem 0 0; padding-inline-start: 0.9rem; }
.sjg-drawer__sub a { font-size: 0.86rem; font-weight: 500; color: var(--sjg-muted); padding-block: 0.5rem; }
.sjg-drawer__foot { border-top: var(--sjg-border-width) solid var(--sjg-line); padding-top: 0.9rem; display: grid; gap: 0.6rem; }
body.sjg-locked { overflow: hidden; }

.sjg-search {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: var(--sjg-z-overlay);
	display: grid;
	justify-items: center;
	padding: clamp(12px, 6vh, 80px) 1rem 1rem;
	pointer-events: none;
	opacity: 0;
	transition: opacity var(--sjg-dur) var(--sjg-ease);
}
.sjg-search::before {
	content: "";
	position: fixed;
	inset: 0;
	background: rgba(6, 12, 22, 0.5);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity var(--sjg-dur) var(--sjg-ease);
}
.sjg-search.is-open { pointer-events: auto; opacity: 1; }
.sjg-search.is-open::before { opacity: 1; }
.sjg-search__box {
	position: relative;
	width: min(720px, 100%);
	padding: 1rem;
	border-radius: calc(var(--sjg-radius) + 4px);
	background: var(--sjg-surface-solid);
	border: var(--sjg-border-width) solid var(--sjg-line);
	box-shadow: var(--sjg-shadow-lg);
	transform: translateY(-14px) scale(0.985);
	transition: transform 0.4s var(--sjg-ease-out);
}
.sjg-search.is-open .sjg-search__box { transform: translateY(0) scale(1); }
.sjg-search__form { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.35rem 0.25rem 0.8rem; border: var(--sjg-border-width) solid var(--sjg-line-strong); border-radius: var(--sjg-radius-pill); background: var(--sjg-surface-2); }
.sjg-search__form input[type="search"] { border: 0; background: transparent; box-shadow: none; font-size: 1.02rem; padding-block: 0.5rem; }
.sjg-search__form input[type="search"]:focus { box-shadow: none; }
.sjg-search__hint { margin: 0.6rem 0.2rem 0; font-size: 0.78rem; color: var(--sjg-faint); }
.sjg-search__results { margin-top: 0.75rem; max-height: min(58vh, 480px); overflow-y: auto; overscroll-behavior: contain; }
.sjg-sresult {
	display: flex;
	gap: 0.7rem;
	align-items: center;
	padding: 0.55rem;
	border-radius: var(--sjg-radius-sm);
	color: var(--sjg-ink);
}
.sjg-sresult:hover, .sjg-sresult.is-focus { background: var(--sjg-primary-soft); color: var(--sjg-ink); }
.sjg-sresult__thumb { width: 56px; height: 44px; border-radius: var(--sjg-radius-xs); object-fit: cover; flex: 0 0 auto; background: var(--sjg-surface-3); }
.sjg-sresult__title { font-size: 0.9rem; font-weight: 600; line-height: 1.45; margin: 0; }
.sjg-sresult__meta { font-size: 0.74rem; color: var(--sjg-muted); }

/* ==========================================================================
   7. CARDS
   ========================================================================== */

.sjg-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: transform 0.36s var(--sjg-ease), box-shadow 0.36s var(--sjg-ease), border-color 0.36s var(--sjg-ease);
}
.sjg-card:hover,
.sjg-card:focus-within {
	transform: translateY(-3px);
	border-color: var(--sjg-line-strong);
	box-shadow: var(--sjg-neu), var(--sjg-shadow);
}
.sjg-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--sjg-surface-3);
	aspect-ratio: 16 / 9;
}
.sjg-card--hero .sjg-card__media { aspect-ratio: 16 / 10; }
.sjg-card--tall .sjg-card__media { aspect-ratio: 4 / 5; }
.sjg-card__media img,
.sjg-card__media .sjg-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--sjg-ease-out), filter 0.4s var(--sjg-ease);
}
.sjg-card:hover .sjg-card__media img { transform: scale(1.045); }
.sjg-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(6, 12, 22, 0) 42%, rgba(6, 12, 22, 0.62));
	opacity: 0.9;
	pointer-events: none;
}
.sjg-card--plain .sjg-card__media::after { display: none; }
.sjg-card__media--empty {
	display: grid;
	place-items: center;
	color: var(--sjg-faint);
	background-image: radial-gradient(circle at 30% 20%, var(--sjg-primary-soft), transparent 60%), linear-gradient(140deg, var(--sjg-surface-3), var(--sjg-surface-2));
}
.sjg-card__cat {
	position: absolute;
	inset-block-start: 0.7rem;
	inset-inline-start: 0.7rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 0.28em 0.66em;
	font-size: 0.71rem;
	font-weight: 700;
	color: #fff;
	background: color-mix(in srgb, var(--sjg-primary) 88%, #000);
	border-radius: var(--sjg-radius-xs);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	box-shadow: 0 6px 16px -10px rgba(0, 0, 0, 0.8);
}
.sjg-card__cat:hover { color: #fff; }
.sjg-card__flag {
	position: absolute;
	inset-block-start: 0.7rem;
	inset-inline-end: 0.7rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 0.24em 0.56em;
	font-size: 0.68rem;
	font-weight: 700;
	color: #fff;
	background: rgba(6, 12, 22, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--sjg-radius-xs);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.sjg-card__flag--live { background: var(--sjg-danger); border-color: transparent; }
.sjg-card__flag--read { background: var(--sjg-accent); border-color: transparent; }
.sjg-card__body { display: flex; flex-direction: column; gap: 0.5rem; padding: calc(0.9rem * var(--sjg-space)); flex: 1 1 auto; }
.sjg-card__title { margin: 0; font-size: 1.02rem; font-weight: 700; line-height: 1.45; letter-spacing: -0.005em; }
.sjg-card__title a { color: var(--sjg-ink); display: block; }
.sjg-card__title a:hover { color: var(--sjg-primary); }
.sjg-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sjg-card { position: relative; }
.sjg-card__excerpt { margin: 0; font-size: 0.87rem; line-height: 1.7; color: var(--sjg-muted); }
.sjg-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding-top: 0.2rem; }
.sjg-card__source { font-size: 0.74rem; color: var(--sjg-faint); display: inline-flex; align-items: center; gap: 0.3em; }
.sjg-card--hero .sjg-card__title { font-size: clamp(1.3rem, 0.9rem + 1.4vw, 2rem); line-height: 1.32; }
.sjg-card--hero .sjg-card__body { padding: calc(1.1rem * var(--sjg-space)); gap: 0.6rem; }
.sjg-card--hero .sjg-card__excerpt { font-size: 0.94rem; }
.sjg-card--horiz { flex-direction: row; align-items: stretch; }
.sjg-card--horiz .sjg-card__media { flex: 0 0 40%; aspect-ratio: auto; min-height: 110px; }
.sjg-card--horiz .sjg-card__media::after { display: none; }
.sjg-card--horiz .sjg-card__body { padding: calc(0.6rem * var(--sjg-space)) calc(0.85rem * var(--sjg-space)); gap: 0.3rem; }
.sjg-card--horiz .sjg-card__title { font-size: 0.95rem; }
.sjg-card--compact .sjg-card__title { font-size: 0.92rem; }
.sjg-card--compact .sjg-card__body { padding: calc(0.7rem * var(--sjg-space)); gap: 0.35rem; }
.sjg-card--min { flex-direction: row; align-items: flex-start; gap: 0.7rem; padding: 0.6rem 0; background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: var(--sjg-border-width) solid var(--sjg-line); border-radius: 0; }
.sjg-card--min:last-child { border-bottom: 0; }
.sjg-card--min:hover { transform: none; box-shadow: none; }
.sjg-card--min .sjg-card__num { flex: 0 0 auto; font-size: 1.1rem; font-weight: 800; color: var(--sjg-faint); font-variant-numeric: tabular-nums; width: 1.4rem; }
.sjg-card--min .sjg-card__title { font-size: 0.9rem; }
.sjg-card--min .sjg-card__title a::after { display: none; }
.sjg-card__num--hot { color: var(--sjg-primary); }

.sjg-hero-grid { display: grid; grid-template-columns: 1.62fr 1fr; gap: calc(16px * var(--sjg-space)); }
.sjg-hero-grid__side { display: grid; gap: calc(16px * var(--sjg-space)); grid-template-rows: 1fr 1fr; }
.sjg-grid { display: grid; gap: calc(16px * var(--sjg-space)); }
.sjg-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sjg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sjg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sjg-grid--list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Read marker */
.sjg-card.is-read .sjg-card__title a { color: var(--sjg-muted); }
.sjg-card.is-read .sjg-card__media img { filter: saturate(0.65); }

/* ==========================================================================
   8. SECTIONS
   ========================================================================== */

.sjg-sec { margin-block-end: calc(34px * var(--sjg-space)); }
.sjg-sec__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: calc(14px * var(--sjg-space)); }
.sjg-sec__titles { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.sjg-sec__title {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font-size: 1.16rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}
.sjg-sec__title::before {
	content: "";
	width: 4px;
	height: 1.15em;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--sjg-primary), var(--sjg-accent));
	flex: 0 0 auto;
}
.sjg-sec__sub { font-size: 0.8rem; color: var(--sjg-muted); }
.sjg-sec__more {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	font-size: 0.84rem;
	font-weight: 700;
	color: var(--sjg-primary);
	padding: 0.35em 0.7em;
	border-radius: var(--sjg-radius-pill);
	background: var(--sjg-primary-soft);
	white-space: nowrap;
}
.sjg-sec__more:hover { background: var(--sjg-primary); color: #fff; }
.sjg-sec__more svg { transition: transform var(--sjg-dur) var(--sjg-ease); }
.sjg-sec__more:hover svg { transform: translateX(-3px); }

.sjg-panel { padding: calc(1rem * var(--sjg-space)); }
.sjg-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.7rem; padding-bottom: 0.6rem; border-bottom: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-panel__title { margin: 0; font-size: 0.95rem; font-weight: 800; display: flex; align-items: center; gap: 0.45rem; }
.sjg-panel__title svg { color: var(--sjg-primary); }

.sjg-index { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-block-end: 1.1rem; padding: 0.85rem 1rem; }
.sjg-index h1 { margin: 0; font-size: clamp(1.4rem, 1rem + 1.2vw, 2rem); }
.sjg-index__count { font-size: 0.82rem; color: var(--sjg-muted); }

/* ==========================================================================
   9. SINGLE ARTICLE
   ========================================================================== */

.sjg-progress {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	height: 3px;
	z-index: calc(var(--sjg-z-header) + 5);
	background: transparent;
	pointer-events: none;
}
.sjg-progress__bar {
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, var(--sjg-primary), var(--sjg-accent));
	box-shadow: 0 0 12px -2px var(--sjg-primary);
	transition: width 0.1s linear;
}
.sjg-progress__bar.is-static { width: 0 !important; }

.sjg-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.79rem;
	color: var(--sjg-muted);
	margin-block-end: 0.9rem;
}
.sjg-crumbs a { color: var(--sjg-muted); }
.sjg-crumbs a:hover { color: var(--sjg-primary); }
.sjg-crumbs__sep { color: var(--sjg-faint); opacity: 0.7; }
.sjg-crumbs [aria-current="page"] { color: var(--sjg-ink-2); font-weight: 600; }

.sjg-article { max-width: var(--sjg-content); }
.sjg-arthead { margin-block-end: calc(18px * var(--sjg-space)); }
.sjg-arthead__cat { margin-bottom: 0.7rem; display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.sjg-arthead__title { margin: 0 0 0.7rem; font-size: clamp(1.65rem, 1.1rem + 2.1vw, 2.75rem); line-height: 1.26; letter-spacing: -0.015em; }
.sjg-arthead__deck { margin: 0 0 1rem; font-size: clamp(1rem, 0.95rem + 0.4vw, 1.18rem); line-height: 1.7; color: var(--sjg-muted); }
.sjg-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; padding-block: 0.85rem; border-block: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-byline__avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-byline__who { display: flex; flex-direction: column; line-height: 1.3; }
.sjg-byline__name { font-weight: 700; font-size: 0.9rem; }
.sjg-byline__role { font-size: 0.75rem; color: var(--sjg-muted); }
.sjg-byline__tools { margin-inline-start: auto; display: flex; align-items: center; gap: 0.4rem; }

.sjg-figure { margin: 0 0 calc(20px * var(--sjg-space)); border-radius: var(--sjg-radius); overflow: hidden; border: var(--sjg-border-width) solid var(--sjg-line); background: var(--sjg-surface-3); }
.sjg-figure img { width: 100%; height: auto; }
.sjg-figure figcaption { padding: 0.7rem 0.95rem; font-size: 0.79rem; color: var(--sjg-muted); border-top: var(--sjg-border-width) solid var(--sjg-line); display: flex; justify-content: space-between; gap: 0.6rem; flex-wrap: wrap; }

.sjg-prose { font-size: clamp(1.02rem, 0.98rem + 0.3vw, 1.12rem); line-height: 1.92; color: var(--sjg-ink-2); overflow-wrap: break-word; }
.sjg-prose > * + * { margin-top: 1.1em; }
.sjg-prose h2 { margin-top: 1.9em; font-size: clamp(1.32rem, 1.1rem + 0.8vw, 1.66rem); scroll-margin-top: calc(var(--sjg-header-h) + 26px); }
.sjg-prose h3 { margin-top: 1.6em; font-size: 1.2rem; scroll-margin-top: calc(var(--sjg-header-h) + 26px); }
.sjg-prose h2, .sjg-prose h3 { color: var(--sjg-ink); position: relative; padding-inline-start: 0.85rem; }
.sjg-prose h2::before, .sjg-prose h3::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.28em;
	width: 3px;
	height: 0.9em;
	border-radius: 3px;
	background: var(--sjg-primary);
}
.sjg-prose a { text-decoration: underline; text-decoration-color: var(--sjg-primary-soft); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sjg-prose a:hover { text-decoration-color: var(--sjg-primary); }
.sjg-prose img, .sjg-prose iframe, .sjg-prose video { border-radius: var(--sjg-radius-sm); }
.sjg-prose figcaption { font-size: 0.8rem; color: var(--sjg-muted); text-align: center; margin-top: 0.5rem; }
.sjg-prose blockquote {
	position: relative;
	font-size: 1.1em;
	font-weight: 500;
	color: var(--sjg-ink);
	padding: 1.2rem 1.5rem 1.2rem 2.6rem;
	border: var(--sjg-border-width) solid var(--sjg-line);
	border-inline-start: 3px solid var(--sjg-primary);
	border-radius: var(--sjg-radius-sm);
	background: linear-gradient(140deg, var(--sjg-primary-soft), transparent 70%), var(--sjg-surface-2);
}
.sjg-prose blockquote::before {
	content: "”";
	position: absolute;
	inset-inline-start: 0.7rem;
	inset-block-start: 0.2rem;
	font-size: 2.4rem;
	line-height: 1;
	color: var(--sjg-primary);
	opacity: 0.5;
	font-family: Georgia, serif;
}
.sjg-prose ul, .sjg-prose ol { padding-inline-start: 1.4rem; }
.sjg-prose li::marker { color: var(--sjg-primary); }
.sjg-prose .sjg-keypoints { list-style: none; padding: 0; }

.sjg-inline-cta {
	display: grid;
	gap: 0.5rem;
	margin: 1.8rem 0;
	padding: 1.15rem 1.25rem;
	border-radius: var(--sjg-radius);
	border: var(--sjg-border-width) solid var(--sjg-line);
	background: linear-gradient(140deg, var(--sjg-primary-soft), transparent 65%), var(--sjg-surface-2);
}
.sjg-inline-cta h3 { margin: 0; font-size: 1.02rem; }
.sjg-inline-cta p { margin: 0; font-size: 0.87rem; color: var(--sjg-muted); }

/* AI summary + key points */
.sjg-ai {
	position: relative;
	margin: 0 0 1.4rem;
	padding: 1.05rem 1.2rem;
	border-radius: var(--sjg-radius);
	border: var(--sjg-border-width) solid color-mix(in srgb, var(--sjg-accent) 26%, var(--sjg-line));
	background: linear-gradient(150deg, var(--sjg-accent-soft), transparent 62%), var(--sjg-surface-2);
	overflow: hidden;
}
.sjg-ai__head { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.sjg-ai__title { margin: 0; font-size: 0.88rem; font-weight: 800; letter-spacing: 0.01em; color: var(--sjg-accent); display: flex; align-items: center; gap: 0.4rem; }
.sjg-ai__body { font-size: 0.94rem; line-height: 1.8; color: var(--sjg-ink-2); }
.sjg-ai__body p:last-child { margin-bottom: 0; }
.sjg-ai__foot { margin-top: 0.6rem; font-size: 0.72rem; color: var(--sjg-faint); display: flex; align-items: center; gap: 0.4rem; }

.sjg-keypoints { margin: 0 0 1.4rem; padding: 1rem 1.15rem; border-radius: var(--sjg-radius); background: var(--sjg-surface-2); border: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-keypoints__title { margin: 0 0 0.6rem; font-size: 0.88rem; font-weight: 800; display: flex; align-items: center; gap: 0.4rem; }
.sjg-keypoints ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.45rem; }
.sjg-keypoints li { position: relative; padding-inline-start: 1.4rem; font-size: 0.92rem; line-height: 1.7; color: var(--sjg-ink-2); }
.sjg-keypoints li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.55em;
	width: 0.62em; height: 0.62em;
	border-radius: 50%;
	background: var(--sjg-accent);
	box-shadow: 0 0 0 3px var(--sjg-accent-soft);
}

/* TOC */
.sjg-toc { margin: 0 0 1.4rem; padding: 1rem 1.15rem; border-radius: var(--sjg-radius); border: var(--sjg-border-width) solid var(--sjg-line); background: var(--sjg-surface-2); }
.sjg-toc__head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; cursor: pointer; }
.sjg-toc__head h2 { margin: 0; font-size: 0.9rem; font-weight: 800; display: flex; align-items: center; gap: 0.4rem; }
.sjg-toc__toggle { background: none; border: 0; color: var(--sjg-muted); cursor: pointer; padding: 0.2rem; display: inline-flex; transition: transform var(--sjg-dur) var(--sjg-ease); }
.sjg-toc[data-collapsed="true"] .sjg-toc__toggle { transform: rotate(180deg); }
.sjg-toc__list { margin: 0.7rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.1rem; counter-reset: sjgtoc; }
.sjg-toc[data-collapsed="true"] .sjg-toc__list { display: none; }
.sjg-toc__list li { margin: 0; counter-increment: sjgtoc; }
.sjg-toc__list a {
	display: flex;
	gap: 0.55rem;
	padding: 0.42rem 0.45rem;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--sjg-ink-2);
	border-radius: var(--sjg-radius-xs);
	border-inline-start: 2px solid transparent;
}
.sjg-toc__list a::before { content: counter(sjgtoc) "."; color: var(--sjg-faint); font-variant-numeric: tabular-nums; font-size: 0.82em; }
.sjg-toc__list a:hover { background: var(--sjg-primary-soft); color: var(--sjg-primary); }
.sjg-toc__list a.is-active { color: var(--sjg-primary); background: var(--sjg-primary-soft); border-inline-start-color: var(--sjg-primary); font-weight: 700; }
.sjg-toc__list li.is-sub a { padding-inline-start: 1.4rem; font-size: 0.83rem; }

/* Share */
.sjg-share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; margin-block: 1.6rem; padding: 0.8rem 0.9rem; border-radius: var(--sjg-radius); border: var(--sjg-border-width) solid var(--sjg-line); background: var(--sjg-surface-2); }
.sjg-share__label { font-size: 0.82rem; font-weight: 700; color: var(--sjg-muted); margin-inline-end: 0.2rem; }
.sjg-share__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	width: 36px; height: 36px;
	justify-content: center;
	border-radius: 50%;
	color: var(--sjg-ink-2);
	background: var(--sjg-surface-solid);
	border: var(--sjg-border-width) solid var(--sjg-line);
	transition: all var(--sjg-dur) var(--sjg-ease);
	cursor: pointer;
	padding: 0;
}
.sjg-share__btn:hover { transform: translateY(-2px); color: #fff; background: var(--sjg-primary); border-color: transparent; }
.sjg-share__btn[data-share="whatsapp"]:hover { background: #25d366; }
.sjg-share__btn[data-share="x"]:hover { background: #0f1419; }
.sjg-share__btn[data-share="facebook"]:hover { background: #1877f2; }
.sjg-share__btn[data-share="telegram"]:hover { background: #229ed9; }
.sjg-share__btn[data-share="linkedin"]:hover { background: #0a66c2; }
.sjg-share__btn[data-share="copy"]:hover { background: var(--sjg-accent); }

.sjg-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-block: 1.2rem; }
.sjg-tags__label { font-size: 0.8rem; font-weight: 700; color: var(--sjg-muted); margin-inline-end: 0.3rem; }

.sjg-sources { margin-block: 1.6rem; padding: 1rem 1.15rem; border-radius: var(--sjg-radius); border: var(--sjg-border-width) dashed var(--sjg-line-strong); background: var(--sjg-surface-2); }
.sjg-sources h2 { font-size: 0.88rem; margin: 0 0 0.5rem; }
.sjg-sources ol { margin: 0; padding-inline-start: 1.2rem; font-size: 0.85rem; color: var(--sjg-muted); }
.sjg-sources a { word-break: break-word; }

.sjg-authorbox { display: grid; grid-template-columns: auto 1fr; gap: 0.9rem; align-items: start; margin-block: 1.8rem; padding: 1.1rem; border-radius: var(--sjg-radius); border: var(--sjg-border-width) solid var(--sjg-line); background: var(--sjg-surface-2); }
.sjg-authorbox__avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--sjg-surface-solid); box-shadow: var(--sjg-shadow-sm); }
.sjg-authorbox__name { margin: 0 0 0.2rem; font-size: 1rem; }
.sjg-authorbox__bio { margin: 0 0 0.5rem; font-size: 0.87rem; color: var(--sjg-muted); line-height: 1.7; }
.sjg-authorbox__links { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.sjg-prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: calc(14px * var(--sjg-space)); margin-block: 1.8rem; }
.sjg-prevnext__item {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.95rem 1.05rem;
	border-radius: var(--sjg-radius);
	border: var(--sjg-border-width) solid var(--sjg-line);
	background: var(--sjg-surface-2);
	color: var(--sjg-ink);
	transition: all var(--sjg-dur) var(--sjg-ease);
	min-height: 92px;
	justify-content: center;
}
.sjg-prevnext__item:hover { border-color: var(--sjg-primary); background: var(--sjg-primary-soft); transform: translateY(-2px); color: var(--sjg-ink); }
.sjg-prevnext__kicker { font-size: 0.74rem; font-weight: 700; color: var(--sjg-primary); display: inline-flex; align-items: center; gap: 0.35em; }
.sjg-prevnext__title { font-size: 0.93rem; font-weight: 700; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sjg-prevnext__item--next { text-align: end; align-items: flex-end; }

/* Endless article */
.sjg-endless { margin-block-start: 2.2rem; padding-block-start: 1.2rem; border-top: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-endless__hint { display: flex; align-items: center; justify-content: center; gap: 0.5rem; font-size: 0.84rem; color: var(--sjg-muted); margin-bottom: 1rem; }
.sjg-endless__slot { display: grid; gap: calc(26px * var(--sjg-space)); }
.sjg-endless__article { animation: sjg-rise 0.5s var(--sjg-ease-out) both; scroll-margin-top: calc(var(--sjg-header-h) + 20px); }
.sjg-endless__article .sjg-arthead__title { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); }
.sjg-endless__loader { display: grid; place-items: center; gap: 0.6rem; padding: 1.6rem 0; }

/* ==========================================================================
   10. COMMENTS
   ========================================================================== */

.sjg-comments { margin-block-start: calc(30px * var(--sjg-space)); }
.sjg-comments__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.sjg-comments .comment-body { padding: 1rem 1.1rem; border-radius: var(--sjg-radius); border: var(--sjg-border-width) solid var(--sjg-line); background: var(--sjg-surface-2); }
.sjg-comments .children { list-style: none; margin: 0.8rem 0 0; padding-inline-start: 1.1rem; display: grid; gap: 0.8rem; border-inline-start: 2px solid var(--sjg-line); }
.sjg-comments .comment-meta { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.4rem; font-size: 0.82rem; color: var(--sjg-muted); }
.sjg-comments .comment-author img { border-radius: 50%; margin-inline-end: 0.4rem; }
.sjg-comments .comment-author .fn { font-weight: 700; color: var(--sjg-ink); font-size: 0.9rem; }
.sjg-comments .comment-content p:last-child { margin-bottom: 0; }
.sjg-comments .reply a { font-size: 0.8rem; font-weight: 700; color: var(--sjg-primary); }
.sjg-comment-form { display: grid; gap: 0.8rem; margin-block-start: 1.2rem; }
.sjg-comment-form p { margin: 0; }
.sjg-comment-form label { display: block; }
.sjg-comment-form .comment-form-cookies-consent { display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; }
.sjg-comment-form .comment-form-cookies-consent input { width: auto; }
.sjg-comment-form .submit { margin: 0; }

/* ==========================================================================
   11. WIDGETS / RAIL
   ========================================================================== */

.sjg-widget { padding: calc(1rem * var(--sjg-space)); }
.sjg-widget__title { margin: 0 0 0.7rem; font-size: 0.92rem; font-weight: 800; display: flex; align-items: center; gap: 0.45rem; padding-bottom: 0.55rem; border-bottom: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-widget__title svg { color: var(--sjg-primary); flex: 0 0 auto; }
.sjg-widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.sjg-widget ul li { margin: 0; }
.sjg-widget ul li a { color: var(--sjg-ink-2); font-size: 0.9rem; }
.sjg-widget ul li a:hover { color: var(--sjg-primary); }
.sjg-widget .sjg-list { display: grid; gap: 0.1rem; }
.sjg-widget--sticky { position: sticky; top: calc(var(--sjg-header-h) + 18px); }

.sjg-wnum { display: flex; align-items: center; gap: 0.55rem; padding: 0.45rem 0; border-bottom: var(--sjg-border-width) solid var(--sjg-line); }
.sjg-wnum:last-child { border-bottom: 0; }
.sjg-wnum__n { font-size: 1rem; font-weight: 800; color: var(--sjg-primary); font-variant-numeric: tabular-nums; width: 1.4rem; flex: 0 0 auto; text-align: center; }
.sjg-wnum__body { min-width: 0; }
.sjg-wnum__title { font-size: 0.88rem; font-weight: 600; line-height: 1.55; color: var(--sjg-ink); display: block; }
.sjg-wnum__title:hover { color: var(--sjg-primary); }
.sjg-wnum__meta { font-size: 0.72rem; color: var(--sjg-faint); }

.sjg-catlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.sjg-catlist a { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0.6rem; border-radius: var(--sjg-radius-xs); color: var(--sjg-ink-2); font-size: 0.88rem; font-weight: 600; }
.sjg-catlist a:hover { background: var(--sjg-primary-soft); color: var(--sjg-primary); }
.sjg-catlist__count { font-size: 0.74rem; color: var(--sjg-faint); background: var(--sjg-surface-3); padding: 0.05em 0.5em; border-radius: 999px; font-variant-numeric: tabular-nums; }

.sjg-newsletter-promo { display: grid; gap: 0.55rem; }
.sjg-newsletter-promo h3 { margin: 0; font-size: 1.02rem; }
.sjg-newsletter-promo p { margin: 0; font-size: 0.85rem; color: var(--sjg-muted); }
.sjg-newsletter-form { display: flex; gap: 0.45rem; flex-wrap: wrap; }
.sjg-newsletter-form input[type="email"] { flex: 1 1 180px; }
.sjg-newsletter-form .sjg-btn { flex: 0 0 auto; }

.sjg-history { display: grid; gap: 0.45rem; }
.sjg-history__item { display: flex; gap: 0.6rem; align-items: center; padding: 0.4rem; border-radius: var(--sjg-radius-xs); }
.sjg-history__item:hover { background: var(--sjg-primary-soft); }
.sjg-history__thumb { width: 52px; height: 40px; border-radius: 8px; object-fit: cover; background: var(--sjg-surface-3); flex: 0 0 auto; }
.sjg-history__t { font-size: 0.84rem; font-weight: 600; color: var(--sjg-ink); line-height: 1.5; }
.sjg-history__empty { font-size: 0.83rem; color: var(--sjg-faint); }

/* ==========================================================================
   12. FOOTER
   ========================================================================== */

.sjg-footer { margin-block-start: calc(30px * var(--sjg-space)); border-top: var(--sjg-border-width) solid var(--sjg-line); background: linear-gradient(180deg, transparent, var(--sjg-surface-2)); }
.sjg-footer__top { padding-block: calc(34px * var(--sjg-space)) calc(24px * var(--sjg-space)); display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: calc(26px * var(--sjg-space)); }
.sjg-footer__brand { display: grid; gap: 0.7rem; align-content: start; }
.sjg-footer__about { font-size: 0.87rem; color: var(--sjg-muted); line-height: 1.8; margin: 0; max-width: 34ch; }
.sjg-footer__col h2 { font-size: 0.87rem; font-weight: 800; margin: 0 0 0.7rem; color: var(--sjg-ink); }
.sjg-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.sjg-footer__col a { font-size: 0.86rem; color: var(--sjg-muted); }
.sjg-footer__col a:hover { color: var(--sjg-primary); }
.sjg-social { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.sjg-social a { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--sjg-surface-2); border: var(--sjg-border-width) solid var(--sjg-line); color: var(--sjg-ink-2); }
.sjg-social a:hover { background: var(--sjg-primary); color: #fff; border-color: transparent; transform: translateY(-2px); }
.sjg-footer__bottom { border-top: var(--sjg-border-width) solid var(--sjg-line); padding-block: 0.9rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem; font-size: 0.79rem; color: var(--sjg-muted); }
.sjg-footer__bottom a { color: var(--sjg-muted); }
.sjg-footer__bottom a:hover { color: var(--sjg-primary); }

/* ==========================================================================
   13. PAGINATION, LOAD MORE, STATES
   ========================================================================== */

.sjg-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.4rem; margin-block: calc(26px * var(--sjg-space)); }
.sjg-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 0.7rem;
	font-size: 0.88rem; font-weight: 700; font-variant-numeric: tabular-nums;
	color: var(--sjg-ink-2);
	background: var(--sjg-surface-2);
	border: var(--sjg-border-width) solid var(--sjg-line);
	border-radius: var(--sjg-radius-sm);
	transition: all var(--sjg-dur) var(--sjg-ease);
}
.sjg-pagination .page-numbers:hover { border-color: var(--sjg-primary); color: var(--sjg-primary); transform: translateY(-1px); }
.sjg-pagination .page-numbers.current { background: var(--sjg-primary); color: #fff; border-color: transparent; }
.sjg-pagination .page-numbers.dots { background: transparent; border-color: transparent; }

.sjg-loadmore { display: grid; justify-items: center; gap: 0.6rem; margin-block: calc(24px * var(--sjg-space)); }
.sjg-loadmore__status { font-size: 0.8rem; color: var(--sjg-faint); }
.sjg-loadmore .sjg-btn { min-width: 190px; }
.sjg-loadmore .sjg-btn__spinner { width: 15px; height: 15px; border-radius: 50%; border: 2px solid currentColor; border-top-color: transparent; animation: sjg-spin 0.8s linear infinite; }
.sjg-loadmore.is-done { display: none; }

.sjg-empty { display: grid; gap: 0.6rem; justify-items: center; text-align: center; padding: 2.4rem 1rem; }
.sjg-empty__icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--sjg-primary-soft); color: var(--sjg-primary); }
.sjg-empty h2 { margin: 0; font-size: 1.15rem; }
.sjg-empty p { margin: 0; color: var(--sjg-muted); font-size: 0.9rem; max-width: 42ch; }

.sjg-skel { position: relative; overflow: hidden; background: var(--sjg-surface-3); border-radius: var(--sjg-radius-sm); }
.sjg-skel::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	transform: translateX(-100%);
	animation: sjg-shimmer 1.5s infinite;
}
html[data-sjg-theme="dark"] .sjg-skel::after { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.07), transparent); }
.sjg-skel--card { height: 260px; border-radius: var(--sjg-radius); }
.sjg-skel--line { height: 12px; margin-block: 0.5rem; }

.sjg-toast {
	position: fixed;
	inset-block-end: 1.5rem;
	inset-inline-start: 50%;
	transform: translate(-50%, 20px);
	z-index: var(--sjg-z-toast);
	max-width: min(92vw, 380px);
	padding: 0.8rem 1.1rem;
	font-size: 0.87rem;
	font-weight: 600;
	color: var(--sjg-ink);
	background: var(--sjg-surface-solid);
	border: var(--sjg-border-width) solid var(--sjg-line);
	border-radius: var(--sjg-radius-pill);
	box-shadow: var(--sjg-shadow-lg);
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--sjg-dur) var(--sjg-ease), transform var(--sjg-dur) var(--sjg-ease-out);
}
.sjg-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

.sjg-totop {
	position: fixed;
	inset-block-end: calc(1.2rem + env(safe-area-inset-bottom, 0px));
	inset-inline-start: 1.2rem;
	z-index: calc(var(--sjg-z-header) - 2);
	width: 42px; height: 42px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--sjg-surface-solid);
	border: var(--sjg-border-width) solid var(--sjg-line);
	color: var(--sjg-ink-2);
	box-shadow: var(--sjg-shadow);
	opacity: 0; visibility: hidden;
	transform: translateY(10px);
	transition: all var(--sjg-dur) var(--sjg-ease);
	cursor: pointer;
	padding: 0;
}
.sjg-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.sjg-totop:hover { color: var(--sjg-primary); }

/* ==========================================================================
   14. CATEGORY PERSONALITIES
   ========================================================================== */

.sjg-cathero { position: relative; display: grid; gap: 0.7rem; padding: calc(1.4rem * var(--sjg-space)); border-radius: var(--sjg-radius); overflow: hidden; border: var(--sjg-border-width) solid var(--sjg-line); background: linear-gradient(140deg, var(--sjg-primary-soft), transparent 60%), var(--sjg-surface-2); margin-block-end: calc(20px * var(--sjg-space)); }
.sjg-cathero__kicker { font-size: 0.76rem; font-weight: 800; letter-spacing: 0.08em; color: var(--sjg-primary); text-transform: uppercase; }
.sjg-cathero h1 { margin: 0; }
.sjg-cathero__desc { margin: 0; color: var(--sjg-muted); font-size: 0.94rem; max-width: 66ch; }
.sjg-cathero__stats { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.sjg-cathero--opinion { background: linear-gradient(150deg, rgba(249, 171, 0, 0.16), transparent 62%), var(--sjg-surface-2); }
.sjg-cathero--opinion .sjg-cathero__kicker { color: var(--sjg-highlight); }
.sjg-cathero--video { background: linear-gradient(150deg, rgba(217, 48, 37, 0.16), transparent 62%), var(--sjg-surface-2); }
.sjg-cathero--video .sjg-cathero__kicker { color: var(--sjg-danger); }

.sjg-opinion-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: calc(16px * var(--sjg-space)); }
.sjg-opinion {
	display: grid;
	gap: 0.7rem;
	padding: 1.15rem;
	border-radius: var(--sjg-radius);
	border: var(--sjg-border-width) solid var(--sjg-line);
	background: linear-gradient(165deg, rgba(249, 171, 0, 0.09), transparent 55%), var(--sjg-surface-2);
}
.sjg-opinion__quote { font-family: Georgia, "Times New Roman", serif; font-size: 2rem; line-height: 1; color: var(--sjg-highlight); }
.sjg-opinion__headline { margin: 0; font-size: 1.06rem; line-height: 1.5; font-weight: 700; }
.sjg-opinion__headline a { color: var(--sjg-ink); }
.sjg-opinion__author { display: flex; align-items: center; gap: 0.55rem; margin-top: auto; }
.sjg-opinion__author img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.sjg-opinion__name { font-size: 0.85rem; font-weight: 700; }
.sjg-opinion__role { font-size: 0.74rem; color: var(--sjg-muted); }

.sjg-video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: calc(16px * var(--sjg-space)); }
.sjg-video-card .sjg-card__media::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	margin: auto;
	width: 46px; height: 46px;
	border-radius: 50%;
	background: rgba(6, 12, 22, 0.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9 6.5v11l9-5.5-9-5.5z'/%3E%3C/svg%3E") center/22px no-repeat;
	border: 1px solid rgba(255, 255, 255, 0.35);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	transition: transform var(--sjg-dur) var(--sjg-ease), background-color var(--sjg-dur) var(--sjg-ease);
	pointer-events: none;
}
.sjg-video-card:hover .sjg-card__media::before { transform: scale(1.1); background-color: var(--sjg-danger); }

.sjg-magazine { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(16px * var(--sjg-space)); }
.sjg-magazine__lead { grid-column: span 2; }

/* ==========================================================================
   15. UTILITIES + ANIMATION
   ========================================================================== */

.sjg-relative { position: relative; }
.sjg-flex { display: flex; align-items: center; gap: 0.5rem; }
.sjg-between { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.sjg-mt { margin-block-start: 1rem; }
.sjg-mb { margin-block-end: 1rem; }
.sjg-hide { display: none !important; }
.sjg-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sjg-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

@keyframes sjg-ticker { from { transform: translateX(0); } to { transform: translateX(50%); } }
@keyframes sjg-pulse { 0% { box-shadow: 0 0 0 0 rgba(217, 48, 37, 0.5); } 70% { box-shadow: 0 0 0 8px rgba(217, 48, 37, 0); } 100% { box-shadow: 0 0 0 0 rgba(217, 48, 37, 0); } }
@keyframes sjg-spin { to { transform: rotate(360deg); } }
@keyframes sjg-shimmer { 100% { transform: translateX(100%); } }
@keyframes sjg-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

.sjg-reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.6s var(--sjg-ease-out), transform 0.6s var(--sjg-ease-out); }
.sjg-reveal.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   16. RESPONSIVE
   ========================================================================== */

@media (max-width: 1180px) {
	:root { --sjg-rail: 300px; }
	.sjg-footer__top { grid-template-columns: 1fr 1fr; }
	.sjg-hero-grid { grid-template-columns: 1.35fr 1fr; }
}

@media (max-width: 1024px) {
	.sjg-layout, .sjg-layout--left { grid-template-columns: minmax(0, 1fr); }
	.sjg-rail { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sjg-magazine { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sjg-magazine__lead { grid-column: span 2; }
	.sjg-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	:root { --sjg-header-h: 60px; --sjg-fs-base: 16px; }
	.sjg-topbar { display: none; }
	.sjg-hero-grid { grid-template-columns: minmax(0, 1fr); }
	.sjg-hero-grid__side { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
	.sjg-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sjg-nav { display: none; }
	.sjg-nav__toggle { display: inline-flex; }
	.sjg-brand__ar { display: none; }
	.sjg-header__actions .sjg-hide-sm { display: none; }
	.sjg-prevnext { grid-template-columns: minmax(0, 1fr); }
	.sjg-rail { grid-template-columns: minmax(0, 1fr); }
	.sjg-footer__top { grid-template-columns: 1fr 1fr; gap: 1.4rem; }
	.sjg-tabbar { display: grid; }
	body { padding-block-end: 66px; }
	.sjg-totop { inset-block-end: calc(74px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 620px) {
	.sjg-wrap { padding-inline: 14px; }
	.sjg-header__inner { padding-inline: 14px; gap: 0.5rem; }
	.sjg-brand__mark { width: 36px; height: 36px; border-radius: 12px; }
	.sjg-brand__en { font-size: 0.95rem; }
	.sjg-grid--2, .sjg-grid--3, .sjg-grid--4, .sjg-grid--list { grid-template-columns: minmax(0, 1fr); }
	.sjg-hero-grid__side { grid-template-columns: minmax(0, 1fr); }
	.sjg-card--horiz .sjg-card__media { flex: 0 0 34%; }
	.sjg-arthead__title { font-size: clamp(1.4rem, 1.2rem + 2vw, 2rem); }
	.sjg-footer__top { grid-template-columns: minmax(0, 1fr); }
	.sjg-sec__title { font-size: 1.06rem; }
	.sjg-authorbox { grid-template-columns: minmax(0, 1fr); }
	.sjg-magazine { grid-template-columns: minmax(0, 1fr); }
	.sjg-magazine__lead { grid-column: auto; }
	.sjg-ticker__label { padding-inline: 0.7rem; font-size: 0.72rem; }
	.sjg-ticker__track { animation-duration: 34s; }
	.sjg-prose { font-size: 1rem; line-height: 1.88; }
}

/* Touch + motion preferences */
@media (hover: none) {
	.sjg-card:hover { transform: none; }
	.sjg-nav li:hover > ul { opacity: 0; visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.sjg-ticker__track { animation: none; transform: none; }
	.sjg-reveal { opacity: 1; transform: none; }
}

@media print {
	.sjg-header, .sjg-topbar, .sjg-nav, .sjg-footer, .sjg-rail, .sjg-share, .sjg-tabbar,
	.sjg-toc, .sjg-endless, .sjg-newsletter-promo, .sjg-totop, .sjg-progress, .sjg-drawer, .sjg-search { display: none !important; }
	body { background: #fff; color: #000; }
	.sjg-prose { font-size: 11pt; }
	a { color: #000; text-decoration: underline; }
}

/* WordPress core alignment + accessibility helpers */
.alignwide { margin-inline: calc(-1 * clamp(0px, 4vw, 60px)); max-width: none; }
.alignfull { margin-inline: calc(50% - 50vw); max-width: 100vw; }
.aligncenter { margin-inline: auto; }
.alignleft { float: left; margin-inline-end: 1rem; }
.alignright { float: right; margin-inline-start: 1rem; }
.wp-caption-text, .gallery-caption { font-size: 0.8rem; color: var(--sjg-muted); }
.sticky .sjg-card__flag--sticky { display: inline-flex; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.screen-reader-text:focus { position: static !important; width: auto; height: auto; clip: auto; padding: 0.6rem 1rem; background: var(--sjg-surface-solid); border-radius: var(--sjg-radius-sm); z-index: 9999; }
.bypostauthor > .comment-body { border-color: var(--sjg-primary); }

/* ==========================================================================
   17. COMPONENT POLISH (shared support rules)
   ========================================================================== */

.sjg-header--static { position: relative; }
.sjg-nav__scroll--wrap { overflow-x: visible; }
.sjg-nav__scroll--wrap .sjg-nav__list { flex-wrap: wrap; white-space: normal; }
.sjg-article { margin-inline: auto; }
.sjg-content-col { min-width: 0; }
.sjg-card__num { font-weight: 800; color: var(--sjg-faint); font-variant-numeric: tabular-nums; }
.sjg-hero-grid__main { min-width: 0; }
.sjg-catcard { display: flex; flex-direction: column; }
.sjg-catcard .sjg-card--min:last-child { border-bottom: 0; }
.sjg-widgets > .sjg-widget + .sjg-widget { margin-block-start: 0; }
.sjg-block .sjg-grid { margin-block-start: 0; }

.sjg-iconbtn.is-active,
.sjg-iconbtn[aria-pressed="true"] {
	color: var(--sjg-primary);
	background: var(--sjg-primary-soft);
	border-color: transparent;
}

.sjg-toc__head h2 { color: var(--sjg-ink); }

.sjg-endless__article .sjg-prose { margin-block-start: 1rem; }

.sjg-loadmore.is-done { display: none; }
.sjg-loadmore__status:empty { display: none; }

.entry-content > *:first-child { margin-top: 0; }

.sjg-newsletter-form { align-items: stretch; }
.sjg-newsletter-form input[type="email"] { min-width: 0; }

.wp-block-quote,
.wp-block-pullquote { border-inline-start: 3px solid var(--sjg-primary); padding-inline-start: 1rem; }
.wp-block-image figcaption { font-size: .8rem; color: var(--sjg-muted); }
.wp-block-embed { margin-inline: 0; }
iframe { max-width: 100%; border: 0; }

@media (max-width: 860px) {
	.sjg-nav__scroll--wrap .sjg-nav__list { flex-wrap: nowrap; white-space: nowrap; }
	.sjg-article { max-width: none; }
}

@media (max-width: 620px) {
	.sjg-share { justify-content: flex-start; }
	.sjg-byline { gap: .5rem .7rem; }
	.sjg-byline__tools { margin-inline-start: 0; }
	.sjg-ai, .sjg-keypoints, .sjg-toc { padding: .85rem .9rem; }
	.sjg-cathero { padding: 1.05rem; }
}

/* ==========================================================================
   12. RESPONSIVE DENSITY PASS
   Cards, grids and the header were tuned for a spacious desktop canvas; on a
   real news feed that read as oversized and, with long Arabic headlines plus a
   long brand name, it also overflowed horizontally below 900px. This layer
   sets one density system and one ordered set of breakpoints for the whole
   card language. It is intentionally last so it always wins.
   ========================================================================== */

/* 12.1 Header: a long site name must truncate, never push the chrome off-screen. */
body { overflow-x: clip; }

.sjg-header__inner { min-width: 0; }

.sjg-brand {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
}

.sjg-brand__text { min-width: 0; overflow: hidden; }

.sjg-brand__en {
	display: block;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sjg-brand__ar {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sjg-header__actions { flex: 0 0 auto; }

.sjg-ico {
	flex: 0 0 auto;
	vertical-align: -0.15em;
}

/* 12.2 Card rhythm: smaller media, tighter type, two-line excerpts. */
.sjg-card__media {
	aspect-ratio: 3 / 2;
	max-height: 300px;
}

.sjg-card__body {
	padding: 0.72rem 0.8rem;
	gap: 0.32rem;
}

.sjg-card__title {
	font-size: 0.97rem;
	line-height: 1.45;
}

.sjg-card__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.82rem;
	line-height: 1.62;
}

.sjg-card__foot { padding-top: 0.1rem; }

.sjg-meta {
	font-size: 0.74rem;
	gap: 0.2rem 0.55rem;
}

.sjg-card--hero .sjg-card__media {
	aspect-ratio: 16 / 9;
	max-height: min(44vh, 380px);
}

.sjg-card--hero .sjg-card__body {
	padding: 0.85rem 0.95rem;
	gap: 0.4rem;
}

.sjg-card--hero .sjg-card__title {
	font-size: clamp(1.15rem, 0.9rem + 0.9vw, 1.5rem);
	line-height: 1.38;
}

.sjg-card--hero .sjg-card__excerpt { font-size: 0.87rem; }

/* The old 4/5 "tall" ratio made a single card 660px high and stretched its
   whole grid row with it. Uniform 3/2 media keeps rows even. */
.sjg-card--tall .sjg-card__media,
.sjg-card--featured .sjg-card__media {
	aspect-ratio: 3 / 2;
	max-height: 230px;
}

.sjg-card--video .sjg-card__media {
	aspect-ratio: 16 / 9;
	max-height: 320px;
}

/* 12.3 Hero: one lead story plus a compact side rail of row cards. */
.sjg-hero-grid {
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
	gap: 14px;
	align-items: stretch;
}

.sjg-hero-grid__side { height: 100%; }

.sjg-hero-grid__side {
	display: grid;
	gap: 12px;
	grid-template-rows: repeat(2, minmax(0, 1fr));
}

.sjg-hero-grid__side .sjg-card {
	flex-direction: row;
	align-items: stretch;
}

.sjg-hero-grid__side .sjg-card__media {
	flex: 0 0 40%;
	aspect-ratio: auto;
	max-height: none;
	height: 100%;
}

.sjg-hero-grid__side .sjg-card__media::after { display: none; }

.sjg-hero-grid__side .sjg-card__body {
	padding: 0.55rem 0.7rem;
	gap: 0.22rem;
	justify-content: center;
}

.sjg-hero-grid__side .sjg-card__title { font-size: 0.9rem; line-height: 1.42; }

.sjg-hero-grid__side .sjg-card__excerpt { display: none; }

/* 12.4 Grids and the density scale. */
.sjg-grid { gap: 14px; }

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

.sjg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.sjg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

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

/* Latest-news rows: text led, fixed small thumbnail, no excerpt. */
.sjg-grid--rows { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.sjg-grid--rows .sjg-card--horiz .sjg-card__media {
	flex: 0 0 124px;
	aspect-ratio: 1 / 1;
	max-height: none;
}

.sjg-grid--rows .sjg-card--horiz .sjg-card__media::after { display: none; }

.sjg-grid--rows .sjg-card--horiz .sjg-card__body {
	padding: 0.55rem 0.7rem;
	gap: 0.25rem;
	justify-content: center;
}

.sjg-grid--rows .sjg-card--horiz .sjg-card__excerpt { display: none; }

.sjg-grid--rows .sjg-card--horiz .sjg-card__title { font-size: 0.93rem; }

/* 12.5 Section rhythm. */
.sjg-sec { margin-block-end: 28px; }

.sjg-sec__head { margin-bottom: 12px; }

.sjg-layout { padding-block: 22px 40px; }

/* 12.6 Breakpoints, ordered widest to narrowest. */
@media (max-width: 1200px) {
	.sjg-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sjg-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
}

@media (max-width: 1023px) {
	.sjg-layout,
	.sjg-layout--left { grid-template-columns: minmax(0, 1fr); }

	.sjg-grid--3,
	.sjg-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.sjg-hero-grid { grid-template-columns: minmax(0, 1fr); }

	.sjg-hero-grid__side {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
	}
}

@media (max-width: 760px) {
	.sjg-wrap { padding-inline: 16px; }

	.sjg-grid--2,
	.sjg-grid--rows,
	.sjg-grid--list { grid-template-columns: minmax(0, 1fr); }

	.sjg-hero-grid__side { grid-template-columns: minmax(0, 1fr); }

	.sjg-card__media { max-height: 240px; }

	.sjg-card--featured .sjg-card__media { max-height: 220px; }

	.sjg-sec { margin-block-end: 24px; }

	.sjg-layout { padding-block: 16px 32px; }

	.sjg-brand__en { font-size: 1rem; }
}

@media (max-width: 560px) {
	.sjg-wrap { padding-inline: 12px; }

	.sjg-grid--3,
	.sjg-grid--4 { grid-template-columns: minmax(0, 1fr); }

	.sjg-card__media {
		aspect-ratio: 16 / 10;
		max-height: 200px;
	}

	.sjg-card--hero .sjg-card__media { max-height: 210px; }

	.sjg-card__body { padding: 0.6rem 0.65rem; }

	.sjg-card__title { font-size: 0.95rem; }

	.sjg-card--hero .sjg-card__title { font-size: 1.12rem; }

	.sjg-grid--rows .sjg-card--horiz .sjg-card__media { flex-basis: 104px; }

	.sjg-sec__head { margin-bottom: 10px; gap: 0.6rem; }

	.sjg-sec__title { font-size: 1.02rem; }

	.sjg-sec__more { font-size: 0.78rem; padding: 0.3em 0.6em; }
}

/* 12.7 Phone list mode.
   On a narrow screen a full-width image plus a headline wastes a whole screen
   per story. Every grid card except video becomes a compact news row: small
   square thumbnail, headline, one meta line. */
@media (max-width: 560px) {
	.sjg-grid > .sjg-card--compact,
	.sjg-grid > .sjg-card--featured,
	.sjg-grid > .sjg-card--ai {
		flex-direction: row;
		align-items: stretch;
	}

	.sjg-grid > .sjg-card--compact .sjg-card__media,
	.sjg-grid > .sjg-card--featured .sjg-card__media,
	.sjg-grid > .sjg-card--ai .sjg-card__media {
		flex: 0 0 108px;
		aspect-ratio: 1 / 1;
		max-height: none;
		height: 100%;
	}

	.sjg-grid > .sjg-card--compact .sjg-card__media::after,
	.sjg-grid > .sjg-card--featured .sjg-card__media::after,
	.sjg-grid > .sjg-card--ai .sjg-card__media::after { display: none; }

	.sjg-grid > .sjg-card--compact .sjg-card__body,
	.sjg-grid > .sjg-card--featured .sjg-card__body,
	.sjg-grid > .sjg-card--ai .sjg-card__body {
		padding: 0.5rem 0.6rem;
		gap: 0.2rem;
		justify-content: center;
	}

	.sjg-grid > .sjg-card--compact .sjg-card__excerpt,
	.sjg-grid > .sjg-card--featured .sjg-card__excerpt,
	.sjg-grid > .sjg-card--ai .sjg-card__excerpt { display: none; }

	.sjg-grid > .sjg-card--compact .sjg-card__title,
	.sjg-grid > .sjg-card--featured .sjg-card__title,
	.sjg-grid > .sjg-card--ai .sjg-card__title { font-size: 0.9rem; line-height: 1.4; }

	.sjg-grid > .sjg-card .sjg-card__cat { display: none; }
}

/* ==========================================================================
   13. COMPACT WHITE SYSTEM
   A calmer, denser surface language inspired by Google News: white cards on a
   near-white page, one accent, tight labels, everything on the same grid.
   ========================================================================== */

:root {
	--sjg-bg: #f5f7fa;
	--sjg-bg-grad-a: #f7f9fc;
	--sjg-bg-grad-b: #eef2f8;
	--sjg-surface: #ffffff;
	--sjg-surface-2: #ffffff;
	--sjg-surface-3: #f1f4f9;
	--sjg-ink: #10151c;
	--sjg-ink-2: #2b3440;
	--sjg-muted: #5f6b7a;
	--sjg-faint: #8b95a3;
	--sjg-line: #e5e9f0;
	--sjg-line-strong: #d5dbe6;
	--sjg-radius: 14px;
	--sjg-radius-sm: 10px;
	--sjg-card-gap: 14px;
	--sjg-shadow-card: 0 1px 2px rgba(16, 21, 28, 0.06);
	--sjg-shadow-card-hover: 0 6px 18px -10px rgba(16, 21, 28, 0.28), 0 1px 2px rgba(16, 21, 28, 0.06);
}

html[data-sjg-theme="dark"] {
	--sjg-bg: #0b0e13;
	--sjg-bg-grad-a: #0c1017;
	--sjg-bg-grad-b: #090c11;
	--sjg-surface: #141922;
	--sjg-surface-2: #171d27;
	--sjg-surface-3: #1b222d;
	--sjg-ink: #edf1f7;
	--sjg-ink-2: #c9d3e0;
	--sjg-muted: #93a0b2;
	--sjg-faint: #6b7889;
	--sjg-line: rgba(255, 255, 255, 0.08);
	--sjg-line-strong: rgba(255, 255, 255, 0.16);
	--sjg-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.5);
	--sjg-shadow-card-hover: 0 10px 26px -16px rgba(0, 0, 0, 0.9);
}

body { background: var(--sjg-bg); }

/* 13.1 Cards: white, bordered, evenly weighted */
.sjg-card {
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius);
	box-shadow: var(--sjg-shadow-card);
	transition: box-shadow var(--sjg-dur) var(--sjg-ease), border-color var(--sjg-dur) var(--sjg-ease), transform var(--sjg-dur) var(--sjg-ease);
}

.sjg-card:hover,
.sjg-card:focus-within {
	border-color: var(--sjg-line-strong);
	box-shadow: var(--sjg-shadow-card-hover);
	transform: translateY(-2px);
}

.sjg-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.3rem;
	padding: 0.7rem 0.8rem 0.75rem;
	min-width: 0;
}

.sjg-card__title {
	font-size: 0.97rem;
	line-height: 1.5;
	font-weight: 700;
	letter-spacing: 0;
	margin: 0;
}

.sjg-card__title a { color: var(--sjg-ink); }

.sjg-card__foot {
	margin-block-start: auto;
	padding-block-start: 0.15rem;
}

.sjg-card__cat {
	background: rgba(16, 21, 28, 0.62);
	backdrop-filter: blur(6px);
	font-size: 0.68rem;
	letter-spacing: 0;
	padding: 0.18rem 0.5rem;
}

.sjg-card__excerpt {
	color: var(--sjg-muted);
	font-size: 0.83rem;
	line-height: 1.65;
	margin: 0;
}

.sjg-meta { font-size: 0.73rem; color: var(--sjg-faint); gap: 0.2rem 0.5rem; }
.sjg-meta__sep { width: 2px; height: 2px; }

/* 13.2 Save button on cards */
.sjg-save {
	position: absolute;
	inset-block-start: 8px;
	inset-inline-end: 8px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.86);
	color: var(--sjg-ink-2);
	box-shadow: 0 1px 3px rgba(16, 21, 28, 0.18);
	cursor: pointer;
	opacity: 0;
	transform: translateY(-2px);
	transition: opacity 0.2s var(--sjg-ease), transform 0.2s var(--sjg-ease), background 0.2s, color 0.2s;
}

.sjg-card { position: relative; }
.sjg-card:hover .sjg-save,
.sjg-card:focus-within .sjg-save,
.sjg-save:focus-visible,
.sjg-save.is-active { opacity: 1; transform: none; }

@media (hover: none) {
	.sjg-save { opacity: 1; transform: none; }
}

.sjg-save:hover { background: #fff; color: var(--sjg-primary); }
.sjg-save.is-active { background: var(--sjg-primary); color: #fff; border-color: var(--sjg-primary); }
.sjg-save.is-active svg { fill: currentColor; }

html[data-sjg-theme="dark"] .sjg-save { background: rgba(20, 25, 34, 0.85); border-color: rgba(255, 255, 255, 0.16); color: var(--sjg-ink); }

/* 13.3 Grid rhythm */
.sjg-grid { gap: var(--sjg-card-gap); }
.sjg-sec { margin-block-end: 30px; }
.sjg-sec__head { margin-block-end: 12px; gap: 10px; }
.sjg-sec__title { font-size: 1.02rem; letter-spacing: 0; }
.sjg-sec__sub { font-size: 0.76rem; }

/* 13.4 Feed toolbar with algorithmic ordering */
.sjg-feedbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 12px;
	padding: 8px 10px;
	margin-block-end: 14px;
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius-sm);
}

.sjg-feedbar__label {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.76rem;
	font-weight: 700;
	color: var(--sjg-muted);
}

.sjg-feedbar__chips {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	scrollbar-width: none;
	margin-inline: -2px;
	padding-inline: 2px;
}

.sjg-feedbar__chips::-webkit-scrollbar { display: none; }

.sjg-feedbar .sjg-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	white-space: nowrap;
	padding: 0.34rem 0.7rem;
	border: 1px solid var(--sjg-line);
	border-radius: 999px;
	background: var(--sjg-surface-3);
	color: var(--sjg-ink-2);
	font-size: 0.78rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.18s, border-color 0.18s, color 0.18s;
}

.sjg-feedbar .sjg-chip:hover { border-color: var(--sjg-primary); color: var(--sjg-primary); }
.sjg-feedbar .sjg-chip.is-active { background: var(--sjg-primary); border-color: var(--sjg-primary); color: #fff; }

.sjg-feedbar__status {
	margin-inline-start: auto;
	font-size: 0.72rem;
	color: var(--sjg-faint);
	min-height: 1em;
}

.sjg-feedmore { display: flex; justify-content: center; margin-block-start: 14px; }

/* 13.5 Algorithm transparency row */
.sjg-why {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin-block-end: 12px;
	padding: 7px 10px;
	border-radius: var(--sjg-radius-sm);
	background: linear-gradient(90deg, var(--sjg-primary-soft), transparent 70%);
	font-size: 0.76rem;
	color: var(--sjg-muted);
}

.sjg-why__text { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.sjg-why__text strong { color: var(--sjg-ink); font-weight: 700; }

.sjg-why__refresh {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-inline-start: auto;
	padding: 0.24rem 0.6rem;
	border: 1px solid var(--sjg-line);
	border-radius: 999px;
	background: var(--sjg-surface);
	color: var(--sjg-primary);
	font-size: 0.73rem;
	font-weight: 700;
	cursor: pointer;
}

.sjg-why__refresh:hover { border-color: var(--sjg-primary); }
.sjg-why__refresh.is-busy svg { animation: sjg-spin 0.9s linear infinite; }

@keyframes sjg-spin { to { transform: rotate(360deg); } }

/* 13.6 Share */
.sjg-share {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	padding: 10px;
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius-sm);
	background: var(--sjg-surface);
}

.sjg-share__label { font-size: 0.78rem; font-weight: 700; color: var(--sjg-muted); }
.sjg-share__row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }

.sjg-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--sjg-line);
	border-radius: 10px;
	background: var(--sjg-surface-3);
	color: var(--sjg-ink-2);
	cursor: pointer;
	transition: transform 0.15s var(--sjg-ease), background 0.15s, color 0.15s, border-color 0.15s;
}

.sjg-share__btn:hover { transform: translateY(-1px); color: var(--sjg-primary); border-color: var(--sjg-primary); background: var(--sjg-surface); }

.sjg-share__btn[data-share="whatsapp"]:hover { color: #128c7e; border-color: #128c7e; }
.sjg-share__btn[data-share="telegram"]:hover { color: #229ed9; border-color: #229ed9; }
.sjg-share__btn[data-share="facebook"]:hover { color: #1877f2; border-color: #1877f2; }
.sjg-share__btn[data-share="reddit"]:hover { color: #ff4500; border-color: #ff4500; }
.sjg-share__btn[data-share="pinterest"]:hover { color: #e60023; border-color: #e60023; }
.sjg-share__btn[data-share="linkedin"]:hover { color: #0a66c2; border-color: #0a66c2; }

.sjg-share__btn--more { background: var(--sjg-primary-soft); color: var(--sjg-primary); border-color: transparent; }
.sjg-share.is-open .sjg-share__btn--more svg { transform: rotate(45deg); }
.sjg-share__btn--more svg { transition: transform 0.2s var(--sjg-ease); }

.sjg-share__extra { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; padding-block-start: 2px; }
.sjg-share__extra[hidden] { display: none; }

/* 13.7 Widgets */
.sjg-widget {
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius);
	box-shadow: var(--sjg-shadow-card);
	padding: 12px 13px;
	margin: 0;
}

.sjg-widget + .sjg-widget { margin-block-start: 14px; }

.sjg-widget__title {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 10px;
	padding-block-end: 8px;
	border-block-end: 1px solid var(--sjg-line);
	font-size: 0.92rem;
	font-weight: 800;
	color: var(--sjg-ink);
}

.sjg-widget ul { margin: 0; padding: 0; list-style: none; }
.sjg-widget li + li { border-block-start: 1px solid var(--sjg-line); }
.sjg-widget li a { display: block; padding: 7px 0; font-size: 0.86rem; color: var(--sjg-ink-2); }
.sjg-widget li a:hover { color: var(--sjg-primary); }
.sjg-widget p { margin: 0 0 8px; font-size: 0.86rem; color: var(--sjg-muted); }
.sjg-widget .sjg-card { box-shadow: none; border: 0; border-radius: 0; }
.sjg-widget .sjg-card:hover { transform: none; }
.sjg-widget__more { display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; font-weight: 700; color: var(--sjg-primary); margin-block-start: 6px; }

/* 13.8 Saved page + shared sky surfaces */
.sjg-pagehero {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px;
	margin-block: 20px 18px;
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius);
	box-shadow: var(--sjg-shadow-card);
}

.sjg-pagehero__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: 0 0 auto;
	border-radius: 12px;
	background: var(--sjg-primary-soft);
	color: var(--sjg-primary);
}

.sjg-pagehero__title { margin: 0 0 4px; font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem); line-height: 1.3; }
.sjg-pagehero__desc { margin: 0; color: var(--sjg-muted); font-size: 0.9rem; }
.sjg-pagehero__meta { display: inline-flex; align-items: center; gap: 4px; margin: 6px 0 0; font-size: 0.74rem; color: var(--sjg-faint); }

.sjg-savedbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	padding: 10px 12px;
	margin-block-end: 14px;
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius-sm);
}

.sjg-savedbar__count { display: inline-flex; align-items: baseline; gap: 6px; margin: 0; font-size: 0.82rem; color: var(--sjg-muted); }
.sjg-savedbar__num { font-size: 1.1rem; font-weight: 800; color: var(--sjg-ink); }

.sjg-savedempty {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	padding: 34px 20px;
	border: 1px dashed var(--sjg-line-strong);
	border-radius: var(--sjg-radius);
	background: var(--sjg-surface);
}

.sjg-savedempty[hidden] { display: none; }
.sjg-savedempty__icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--sjg-primary-soft); color: var(--sjg-primary); }
.sjg-savedempty__title { margin: 0; font-size: 1.05rem; }
.sjg-savedempty__text { margin: 0; max-width: 46ch; color: var(--sjg-muted); font-size: 0.88rem; }

.sjg-skeleton {
	grid-column: 1 / -1;
	height: 120px;
	border-radius: var(--sjg-radius);
	background: linear-gradient(90deg, var(--sjg-surface-3) 25%, var(--sjg-surface) 37%, var(--sjg-surface-3) 63%);
	background-size: 400% 100%;
	animation: sjg-shimmer 1.3s ease infinite;
}

@keyframes sjg-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

.sjg-pagefoot { display: flex; flex-wrap: wrap; gap: 8px; margin-block-start: 16px; }
.sjg-note { font-size: 0.8rem; color: var(--sjg-faint); }

/* 13.9 Information pages */
.sjg-infopage {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px;
	gap: 18px;
	align-items: start;
	padding-block-end: 24px;
}

.sjg-infopage__body {
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius);
	padding: 20px;
	max-width: none;
}

.sjg-infopage__body h2 {
	margin: 1.35em 0 0.5em;
	font-size: 1.02rem;
	font-weight: 800;
	color: var(--sjg-ink);
	letter-spacing: 0;
}

.sjg-infopage__body h2:first-child { margin-block-start: 0; }
.sjg-infopage__body p,
.sjg-infopage__body li { font-size: 0.93rem; line-height: 1.85; color: var(--sjg-ink-2); }
.sjg-infopage__body ul { padding-inline-start: 1.1em; margin: 0 0 1em; }
.sjg-infopage__body li { margin-block-end: 0.35em; }
.sjg-infopage__body a { color: var(--sjg-primary); text-decoration: underline; text-underline-offset: 3px; }

.sjg-infopage__side {
	position: sticky;
	top: calc(var(--sjg-header-h) + 14px);
	background: var(--sjg-surface);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius);
	padding: 14px;
}

.sjg-infopage__side-title { margin: 0 0 8px; font-size: 0.86rem; font-weight: 800; color: var(--sjg-muted); }
.sjg-infopage__nav { margin: 0 0 12px; padding: 0; list-style: none; }
.sjg-infopage__nav li a { display: block; padding: 6px 8px; border-radius: 8px; font-size: 0.85rem; color: var(--sjg-ink-2); }
.sjg-infopage__nav li a:hover { background: var(--sjg-surface-3); color: var(--sjg-primary); }
.sjg-infopage__nav li.is-current a { background: var(--sjg-primary-soft); color: var(--sjg-primary); font-weight: 700; }
.sjg-infopage__contact { border-block-start: 1px solid var(--sjg-line); padding-block-start: 10px; }
.sjg-infopage__contact p { margin: 0 0 8px; font-size: 0.8rem; color: var(--sjg-muted); }

/* 13.10 Category identity */
.sjg-cat { --sjg-cat-accent: var(--sjg-primary); --sjg-cat-soft: var(--sjg-surface-3); }

.sjg-cat .sjg-cathero {
	background: linear-gradient(135deg, var(--sjg-cat-soft), var(--sjg-surface) 62%);
	border: 1px solid var(--sjg-line);
	border-inline-start: 4px solid var(--sjg-cat-accent);
	border-radius: var(--sjg-radius);
	padding: 16px 18px;
	margin-block: 18px 16px;
}

.sjg-cat .sjg-cathero h1 { font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2rem); letter-spacing: 0; margin: 4px 0 6px; color: var(--sjg-ink); }
.sjg-cat .sjg-cathero__desc { color: var(--sjg-muted); font-size: 0.9rem; max-width: 70ch; margin: 0 0 10px; }
.sjg-cat .sjg-cathero__kicker { display: inline-flex; align-items: center; gap: 6px; color: var(--sjg-cat-accent); font-size: 0.76rem; font-weight: 800; letter-spacing: 0; }
.sjg-cat .sjg-cathero__dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: 0.55; }
.sjg-cat .sjg-cathero__stats { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sjg-cat .sjg-cathero .sjg-badge { background: var(--sjg-cat-soft); color: var(--sjg-cat-accent); border: 1px solid rgba(0, 0, 0, 0.04); font-weight: 700; }
.sjg-cat .sjg-cathero .sjg-badge:hover { background: var(--sjg-cat-accent); color: #fff; }

.sjg-cat .sjg-cathero--split { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.sjg-cat .sjg-cathero--split .sjg-cathero__stats { justify-content: flex-end; }
.sjg-cat .sjg-cathero--compact { padding: 12px 14px; }

.sjg-cat__siblings { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-block-start: 12px; padding-block-start: 10px; border-block-start: 1px solid var(--sjg-line); }
.sjg-cat__siblings-label { font-size: 0.74rem; color: var(--sjg-faint); font-weight: 700; }
.sjg-cat__siblings .sjg-chip { display: inline-flex; align-items: center; gap: 4px; padding: 0.22rem 0.55rem; font-size: 0.76rem; }
.sjg-chip__count { font-size: 0.68rem; color: var(--sjg-faint); font-variant-numeric: tabular-nums; }

/* 13.11 Summary toggle */
.sjg-ai { padding: 12px 14px; border: 1px solid var(--sjg-line); border-block-start: 3px solid var(--sjg-primary); border-radius: var(--sjg-radius); background: var(--sjg-surface); }

.sjg-ai__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.sjg-ai__title { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 0.92rem; font-weight: 800; letter-spacing: 0; }

.sjg-ai__toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 0.3rem 0.7rem;
	border: 1px solid var(--sjg-primary);
	border-radius: 999px;
	background: var(--sjg-primary);
	color: #fff;
	font-size: 0.76rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.18s, color 0.18s;
}

.sjg-ai__toggle:hover { background: var(--sjg-primary-ink); }
.sjg-ai__toggle-close { display: none; }
.sjg-ai.is-open .sjg-ai__toggle-open { display: none; }
.sjg-ai.is-open .sjg-ai__toggle-close { display: inline; }
.sjg-ai__toggle svg { transition: transform 0.2s var(--sjg-ease); }
.sjg-ai.is-open .sjg-ai__toggle svg { transform: rotate(180deg); }
.sjg-ai.is-open .sjg-ai__toggle { background: var(--sjg-surface); color: var(--sjg-primary); }

.sjg-ai__body { padding-block-start: 10px; }
.sjg-ai__body[hidden] { display: none; }
.sjg-ai__body p { margin: 0 0 8px; font-size: 0.92rem; line-height: 1.8; color: var(--sjg-ink-2); }
.sjg-ai__foot { display: inline-flex; align-items: center; gap: 4px; font-size: 0.72rem; color: var(--sjg-faint); margin: 0; }

/* 13.12 Saved counters */
.sjg-header-saved { position: relative; }

.sjg-header-saved__count {
	position: absolute;
	inset-block-start: 2px;
	inset-inline-end: 2px;
	min-width: 15px;
	height: 15px;
	padding: 0 3px;
	border-radius: 999px;
	background: var(--sjg-primary);
	color: #fff;
	font-size: 0.6rem;
	font-weight: 800;
	line-height: 15px;
	text-align: center;
}

.sjg-tabbar__item { position: relative; }
.sjg-tabbar__badge { position: absolute; inset-block-start: 4px; inset-inline-end: 50%; transform: translateX(60%); min-width: 14px; height: 14px; border-radius: 999px; background: var(--sjg-primary); color: #fff; font-size: 0.58rem; font-weight: 800; line-height: 14px; text-align: center; }
.sjg-tabbar__badge[hidden] { display: none; }

/* 13.13 Footer legal row */
.sjg-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	padding-block: 12px;
	border-block-start: 1px solid var(--sjg-line);
	font-size: 0.78rem;
}

.sjg-footer__legal a { color: var(--sjg-muted); }
.sjg-footer__legal a:hover { color: var(--sjg-primary); }

/* 13.14 Buttons + focus */
.sjg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0.55rem 1rem; border-radius: 999px; border: 1px solid transparent; background: var(--sjg-primary); color: #fff; font-size: 0.85rem; font-weight: 700; cursor: pointer; transition: background 0.18s, border-color 0.18s, color 0.18s; }
.sjg-btn:hover { background: var(--sjg-primary-ink); color: #fff; }
.sjg-btn--ghost { background: var(--sjg-surface); border-color: var(--sjg-line-strong); color: var(--sjg-ink-2); }
.sjg-btn--ghost:hover { background: var(--sjg-surface-3); color: var(--sjg-primary); border-color: var(--sjg-primary); }
.sjg-btn--sm { padding: 0.4rem 0.8rem; font-size: 0.79rem; }
.sjg-btn[hidden] { display: none; }

a:focus-visible,
button:focus-visible,
.sjg-chip:focus-visible { outline: 2px solid var(--sjg-primary); outline-offset: 2px; }

/* 13.15 Responsive */
@media (max-width: 1023px) {
	.sjg-infopage { grid-template-columns: minmax(0, 1fr); }
	.sjg-infopage__side { position: static; order: 2; }
	.sjg-cat .sjg-cathero--split { grid-template-columns: minmax(0, 1fr); }
	.sjg-cat .sjg-cathero--split .sjg-cathero__stats { justify-content: flex-start; }
}

@media (max-width: 760px) {
	.sjg-feedbar { padding: 6px 8px; gap: 6px; }
	.sjg-feedbar__status { display: none; }
	.sjg-pagehero { padding: 13px; }
	.sjg-infopage__body { padding: 15px; border-radius: var(--sjg-radius-sm); }
	.sjg-savedbar { padding: 8px 10px; }
}

@media (max-width: 560px) {
	.sjg-card__title { font-size: 0.92rem; }
	.sjg-card__body { padding: 0.55rem 0.6rem; }
	.sjg-save { width: 30px; height: 30px; inset-block-start: 6px; inset-inline-end: 6px; }
	.sjg-share { padding: 8px; }
	.sjg-share__btn { width: 36px; height: 36px; }
	.sjg-share__label { display: none; }
	.sjg-section .sjg-sec__title,
	.sjg-sec__title { font-size: 0.98rem; }
	.sjg-cat .sjg-cathero { padding: 13px 14px; }
	.sjg-why { font-size: 0.72rem; }
	.sjg-why__refresh { margin-inline-start: 0; }
	.sjg-infopage__body p,
	.sjg-infopage__body li { font-size: 0.9rem; }
}

@media print {
	.sjg-share, .sjg-save, .sjg-tabbar, .sjg-totop, .sjg-header-saved { display: none !important; }
}

/* Category sibling row ---------------------------------------------------- */
.sjg-cat__siblings { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block-start: 14px; }
.sjg-cat__siblings-label { font-size: 0.78rem; font-weight: 700; color: var(--sjg-muted); }
.sjg-chip__count { font-size: 0.68rem; font-weight: 700; color: var(--sjg-muted); background: var(--sjg-surface-3); border-radius: 999px; padding: 1px 7px; }
.sjg-cat__siblings .sjg-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; }
@media (max-width: 560px) {
	.sjg-cat__siblings { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.sjg-cat__siblings::-webkit-scrollbar { display: none; }
}

/* ==========================================================================
   14. V1.3 SURFACE: heroes, editorial card types, reading tools, ads
   ========================================================================== */

/* 14.1 Hard stop on horizontal movement.
   Every media box, table and long word is contained, and any accidental
   overflow is clipped at the document level so a phone can never pan. */
html,
body {
	max-width: 100%;
	overflow-x: clip;
}

body {
	overscroll-behavior-x: none;
}

.sjg-wrap,
.sjg-layout,
.sjg-content-col,
.sjg-grid,
.sjg-sec {
	min-width: 0;
}

.sjg-grid > * {
	min-width: 0;
}

img,
svg,
video,
iframe,
embed,
object,
table,
pre {
	max-width: 100%;
}

p,
li,
h1,
h2,
h3,
h4,
.sjg-card__title,
.sjg-card__excerpt {
	overflow-wrap: anywhere;
	word-break: normal;
}

pre,
table {
	overflow-x: auto;
}

.sjg-share__row,
.sjg-feedbar__chips,
.sjg-cat__siblings,
.sjg-savedtabs {
	max-width: 100%;
	flex-wrap: wrap;
}

/* 14.2 Image ratio comes from the admin setting. */
.sjg-card__media {
	aspect-ratio: var(--sjg-ratio, 3 / 2);
}

/* 14.3 Hero: banner */
.sjg-hero-banner .sjg-card--banner .sjg-card__media {
	aspect-ratio: 21 / 9;
	max-height: min(58vh, 520px);
}

.sjg-hero-banner .sjg-card__title {
	font-size: clamp(1.35rem, 1rem + 1.7vw, 2.1rem);
	line-height: 1.25;
}

/* 14.4 Hero: magazine */
.sjg-hero-mag {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: 14px;
	align-items: start;
}

.sjg-hero-mag__list {
	display: grid;
	gap: 0;
	background: var(--sjg-surface-solid);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius-sm);
	padding: 6px 12px;
}

.sjg-hero-mag__list .sjg-card--min {
	border-bottom: 1px solid var(--sjg-line);
	padding-block: 9px;
}

.sjg-hero-mag__list .sjg-card--min:last-child {
	border-bottom: 0;
}

/* 14.5 Hero: equal trio */
.sjg-hero-trio {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.sjg-hero-trio .sjg-card__media {
	aspect-ratio: 4 / 3;
}

.sjg-hero-trio .sjg-card__title {
	font-size: clamp(1rem, 0.9rem + 0.5vw, 1.2rem);
}

/* 14.6 Hero: bulletin list */
.sjg-bulletin {
	background: var(--sjg-surface-solid);
	border: 1px solid var(--sjg-line);
	border-radius: var(--sjg-radius-sm);
	padding: 4px 14px;
}

/* 14.7 Overlay card (text over image) */
.sjg-card--overlay {
	position: relative;
	overflow: hidden;
	border-radius: var(--sjg-radius-sm);
	border: 1px solid var(--sjg-line);
	background: #0b1220;
}

.sjg-card--overlay .sjg-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	max-height: none;
}

.sjg-card--overlay .sjg-card__media::after {
	background: linear-gradient(180deg, rgba(6, 12, 22, 0.05) 0%, rgba(6, 12, 22, 0.35) 45%, rgba(6, 12, 22, 0.9) 100%);
	opacity: 1;
}

.sjg-card--overlay .sjg-card__body {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	padding: 14px 16px 16px;
	color: #fff;
	display: flex;
	flex-direction: column;
	gap: 5px;
	z-index: 2;
	pointer-events: none;
}

.sjg-card--overlay .sjg-card__body a,
.sjg-card--overlay .sjg-card__body .sjg-card__title {
	pointer-events: auto;
}

.sjg-card--overlay .sjg-card__title {
	color: #fff;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

.sjg-card--overlay .sjg-card__title a {
	color: inherit;
}

.sjg-card--overlay .sjg-card__excerpt {
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.85rem;
}

.sjg-card--overlay .sjg-meta,
.sjg-card--overlay .sjg-meta__item {
	color: rgba(255, 255, 255, 0.78);
}

.sjg-card--overlay .sjg-card__cat {
	position: static;
	align-self: flex-start;
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
	backdrop-filter: blur(6px);
}

.sjg-card--overlay .sjg-save {
	color: #fff;
	background: rgba(10, 16, 26, 0.4);
	border-color: rgba(255, 255, 255, 0.24);
	z-index: 3;
}

.sjg-card--trio .sjg-card__media {
	aspect-ratio: 4 / 3;
}

/* 14.8 Tile card (text forward) */
.sjg-card--tile {
	background: var(--sjg-surface-solid);
	border: 1px solid var(--sjg-line);
	border-inline-start: 3px solid var(--sjg-primary);
	border-radius: var(--sjg-radius-sm);
	padding: 13px 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	position: relative;
}

.sjg-card--tile .sjg-card__title {
	font-size: 0.98rem;
	line-height: 1.45;
}

.sjg-card--tile:hover {
	border-inline-start-color: var(--sjg-primary-ink);
	box-shadow: var(--sjg-shadow-sm);
}

/* 14.9 Bulletin row */
.sjg-card--bulletin {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 10px;
	padding-block: 9px;
	border-bottom: 1px solid var(--sjg-line);
}

.sjg-card--bulletin:last-child {
	border-bottom: 0;
}

.sjg-card--bulletin .sjg-card__time {
	font-size: 0.72rem;
	font-variant-numeric: tabular-nums;
	color: var(--sjg-muted);
	font-weight: 700;
}

.sjg-card--bulletin .sjg-card__title {
	margin: 0;
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.45;
}

.sjg-card--bulletin .sjg-card__cat {
	font-size: 0.68rem;
	color: var(--sjg-muted);
}

/* 14.10 Reading tools */
.sjg-readtools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	margin-block: 14px 6px;
	background: var(--sjg-surface-solid);
	border: 1px solid var(--sjg-line);
	border-radius: 12px;
}

.sjg-readtools__label {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.76rem;
	font-weight: 700;
	color: var(--sjg-muted);
}

.sjg-readtools__group {
	display: inline-flex;
	border: 1px solid var(--sjg-line);
	border-radius: 9px;
	overflow: hidden;
}

.sjg-readtools__btn {
	min-height: 34px;
	padding: 0 11px;
	border: 0;
	background: transparent;
	color: var(--sjg-ink-2);
	font-size: 0.82rem;
	font-weight: 700;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: background 0.2s var(--sjg-ease);
}

.sjg-readtools__group .sjg-readtools__btn + .sjg-readtools__btn {
	border-inline-start: 1px solid var(--sjg-line);
}

.sjg-readtools__btn:hover,
.sjg-readtools__btn.is-active {
	background: var(--sjg-primary-soft);
	color: var(--sjg-primary-ink);
}

.sjg-readtools__listen {
	border: 1px solid var(--sjg-line);
	border-radius: 9px;
	min-height: 34px;
}

html[data-sjg-fs="-1"] .sjg-prose { font-size: 0.94em; }
html[data-sjg-fs="1"] .sjg-prose { font-size: 1.09em; }

/* 14.11 Keep reading */
.sjg-readnext {
	margin-block-start: 26px;
}

/* 14.12 Ads */
.sjg-ad {
	display: block;
	margin-block: 16px;
	text-align: center;
}

.sjg-ad__label {
	display: block;
	font-size: 0.62rem;
	letter-spacing: 0.08em;
	color: var(--sjg-faint);
	margin-block-end: 4px;
	text-transform: uppercase;
}

.sjg-ad__box {
	min-height: 60px;
	display: grid;
	place-items: center;
	background: var(--sjg-surface-3);
	border: 1px dashed var(--sjg-line-strong);
	border-radius: 10px;
	overflow: hidden;
}

.sjg-ad--inline {
	clear: both;
}

.sjg-ad-slot--header .sjg-ad {
	margin-block: 12px 0;
}

/* 14.13 Consent */
.sjg-consent {
	position: fixed;
	inset-block-end: 16px;
	inset-inline: 16px;
	z-index: 1200;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	max-width: 720px;
	margin-inline: auto;
	padding: 12px 16px;
	background: var(--sjg-surface-solid);
	border: 1px solid var(--sjg-line-strong);
	border-radius: 14px;
	box-shadow: var(--sjg-shadow-lg);
}

.sjg-consent[hidden] {
	display: none;
}

.sjg-consent__text {
	margin: 0;
	flex: 1 1 320px;
	font-size: 0.82rem;
	line-height: 1.6;
	color: var(--sjg-ink-2);
}

.sjg-consent__actions {
	display: flex;
	gap: 8px;
	margin-inline-start: auto;
}

/* 14.14 Saved page tabs */
.sjg-savedtabs {
	display: flex;
	gap: 6px;
	margin-block-end: 10px;
}

.sjg-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid var(--sjg-line);
	background: var(--sjg-surface-solid);
	color: var(--sjg-ink-2);
	font-size: 0.82rem;
	font-weight: 700;
	cursor: pointer;
}

.sjg-tab.is-active {
	background: var(--sjg-primary);
	border-color: var(--sjg-primary);
	color: #fff;
}

/* 14.15 Responsive */
@media (max-width: 1023px) {
	.sjg-hero-mag {
		grid-template-columns: minmax(0, 1fr);
	}

	.sjg-hero-trio {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.sjg-hero-banner .sjg-card--banner .sjg-card__media {
		aspect-ratio: 16 / 10;
		max-height: 300px;
	}

	.sjg-hero-trio {
		grid-template-columns: minmax(0, 1fr);
	}

	.sjg-hero-trio .sjg-card__media {
		aspect-ratio: 16 / 9;
	}

	.sjg-readtools {
		position: sticky;
		inset-block-start: calc(var(--sjg-header-h) + 4px);
		z-index: 40;
	}

	.sjg-consent {
		inset-block-end: 62px;
		inset-inline: 10px;
		padding: 10px 12px;
	}
}

@media (max-width: 560px) {
	.sjg-card--bulletin {
		grid-template-columns: 44px minmax(0, 1fr);
	}

	.sjg-card--bulletin .sjg-card__cat {
		display: none;
	}

	.sjg-card--overlay .sjg-card__body {
		padding: 10px 12px 12px;
	}

	.sjg-card--overlay .sjg-card__excerpt {
		display: none;
	}

	.sjg-hero-banner .sjg-card__title {
		font-size: 1.15rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sjg-card--tile,
	.sjg-readtools__btn {
		transition: none;
	}
}

/* ==========================================================================
   15. LINK PAGES (site map, FAQ, policies)
   ========================================================================== */
.sjg-linkgrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 8px;
}

.sjg-linkgrid__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 9px 12px;
	background: var(--sjg-surface-solid);
	border: 1px solid var(--sjg-line);
	border-radius: 10px;
	color: var(--sjg-ink-2);
	font-size: 0.86rem;
	font-weight: 600;
	transition: border-color 0.2s var(--sjg-ease), background 0.2s var(--sjg-ease);
}

.sjg-linkgrid__item:hover {
	border-color: var(--sjg-primary);
	background: var(--sjg-primary-soft);
	color: var(--sjg-primary-ink);
}

.sjg-linkgrid__count {
	font-size: 0.72rem;
	color: var(--sjg-muted);
	background: var(--sjg-surface-3);
	border-radius: 999px;
	padding: 1px 7px;
	font-variant-numeric: tabular-nums;
}

.sjg-tagcloud {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.sjg-indexcols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.sjg-linklist {
	list-style: none;
	margin: 0;
	padding: 0;
	columns: 2;
	column-gap: 18px;
	font-size: 0.86rem;
}

.sjg-linklist li {
	padding-block: 5px;
	break-inside: avoid;
}

.sjg-linklist a {
	color: var(--sjg-ink-2);
}

.sjg-linklist a:hover {
	color: var(--sjg-primary);
}

.sjg-prose--tight {
	margin-block-end: 18px;
}

.sjg-archive-index .sjg-sec {
	margin-block-end: 26px;
}

@media (max-width: 760px) {
	.sjg-indexcols {
		grid-template-columns: minmax(0, 1fr);
	}

	.sjg-linklist {
		columns: 1;
	}
}

/* ==========================================================================
   16. PACKED HOMEPAGE
   Many small, aligned units instead of oversized cards.
   ========================================================================== */

/* 16.1 Rhythm ------------------------------------------------------------- */
.sjg-content-col > .sjg-sec + .sjg-sec { margin-block-start: 0; }
.sjg-sec { margin-block-end: 20px; }
.sjg-sec__head { margin-block-end: 9px; padding-block-end: 7px; }
.sjg-sec__title { font-size: 1.02rem; }
.sjg-sec__sub { font-size: 0.7rem; }
.sjg-grid { gap: 10px; }
.sjg-hero-grid { gap: 10px; }
.sjg-layout { padding-block: 16px 40px; }

/* 16.2 Hero: compact lead, no poster-sized image --------------------------- */
.sjg-card--hero .sjg-card__media { aspect-ratio: 16 / 9; max-height: 288px; }
.sjg-card--hero .sjg-card__body { padding: 0.6rem 0.7rem; gap: 0.25rem; }
.sjg-card--hero .sjg-card__title { font-size: clamp(1rem, 0.85rem + 0.55vw, 1.22rem); line-height: 1.35; }
.sjg-card--hero .sjg-card__excerpt { display: none; }
.sjg-hero-grid__side { gap: 8px; }
.sjg-hero-grid__side .sjg-card__media { flex: 0 0 96px; }
.sjg-hero-grid__side .sjg-card__body { padding: 0.4rem 0.55rem; }
.sjg-hero-grid__side .sjg-card__title { font-size: 0.83rem; line-height: 1.32; }

/* 16.3 Every image is a wide crop, never a square ------------------------- */
.sjg-card--compact .sjg-card__media,
.sjg-card--featured .sjg-card__media,
.sjg-card--ai .sjg-card__media { aspect-ratio: 16 / 9; }
.sjg-card--featured .sjg-card__media { max-height: 148px; }
.sjg-card--compact .sjg-card__media { max-height: 172px; }
.sjg-card--category .sjg-card__media,
.sjg-catcard .sjg-card--tall .sjg-card__media { aspect-ratio: 16 / 9; max-height: 128px; }

/* 16.4 Row card = the workhorse list unit -------------------------------- */
.sjg-card--horiz { display: flex; flex-direction: row; align-items: stretch; min-height: 0; }
.sjg-card--horiz .sjg-card__media,
.sjg-grid--rows .sjg-card--horiz .sjg-card__media {
	flex: 0 0 88px;
	aspect-ratio: 4 / 3;
	max-height: none;
	height: auto;
}
.sjg-card--horiz .sjg-card__media::after { display: none; }
.sjg-card--horiz .sjg-card__body { padding: 0.45rem 0.55rem; gap: 0.2rem; justify-content: center; }
.sjg-card--horiz .sjg-card__title { font-size: 0.86rem; line-height: 1.38; }
.sjg-card--horiz .sjg-card__excerpt,
.sjg-card--horiz .sjg-card__cat { display: none; }
.sjg-card--horiz .sjg-meta { font-size: 0.66rem; gap: 0.2rem 0.45rem; }
.sjg-card--horiz .sjg-card__foot { padding-block-start: 0.15rem; }
.sjg-card--horiz .sjg-thumb { aspect-ratio: 4 / 3; }

/* 16.5 Latest feed: three packed columns --------------------------------- */
.sjg-grid--packed { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sjg-grid--packed > .sjg-card { border-radius: 10px; }
.sjg-feedbar { margin-block-end: 8px; gap: 6px; }
.sjg-feedbar .sjg-chip { padding: 0.28rem 0.62rem; font-size: 0.74rem; }
.sjg-feedmore { margin-block-start: 10px; }

/* 16.6 Featured grid: four across, small crops --------------------------- */
.sjg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sjg-grid--4 > .sjg-card .sjg-card__body { padding: 0.45rem 0.55rem; }
.sjg-grid--4 > .sjg-card .sjg-card__title { font-size: 0.84rem; line-height: 1.36; }
.sjg-grid--4 > .sjg-card .sjg-card__excerpt,
.sjg-grid--4 > .sjg-card .sjg-card__cat { display: none; }
.sjg-grid--4 > .sjg-card .sjg-meta { font-size: 0.66rem; }

/* 16.7 Panels (trending, most read, categories) -------------------------- */
.sjg-panel { padding: 10px 12px; border-radius: 12px; }
.sjg-panel__head { margin-block-end: 6px; padding-block-end: 6px; }
.sjg-panel__title { font-size: 0.9rem; }
.sjg-catcard { padding: 10px 12px; }
.sjg-catcard .sjg-card--min { padding-block: 6px; }
.sjg-catlist a { padding: 0.35rem 0.5rem; font-size: 0.8rem; }
.sjg-grid--2 > .sjg-card--min .sjg-card__title { font-size: 0.85rem; }

/* 16.8 Aligned text blocks ---------------------------------------------- */
.sjg-card__body { display: flex; flex-direction: column; gap: 4px; }
.sjg-card__foot { margin-block-start: auto; }
.sjg-card__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* 16.9 Responsive ------------------------------------------------------- */
@media (max-width: 1180px) {
	.sjg-grid--packed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sjg-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.sjg-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sjg-card--compact .sjg-card__media { max-height: 150px; }
}

@media (max-width: 620px) {
	.sjg-sec { margin-block-end: 16px; }
	.sjg-grid, .sjg-hero-grid { gap: 8px; }
	.sjg-grid--packed,
	.sjg-grid--4,
	.sjg-grid--3,
	.sjg-grid--2,
	.sjg-grid--rows { grid-template-columns: minmax(0, 1fr); }
	.sjg-card--hero .sjg-card__media { max-height: 200px; }
	.sjg-card--horiz .sjg-card__media,
	.sjg-grid > .sjg-card--compact .sjg-card__media,
	.sjg-grid > .sjg-card--featured .sjg-card__media,
	.sjg-grid > .sjg-card--ai .sjg-card__media { flex: 0 0 92px; aspect-ratio: 1 / 1; max-height: none; height: 100%; }
	.sjg-card--horiz .sjg-card__title,
	.sjg-grid > .sjg-card--compact .sjg-card__title,
	.sjg-grid > .sjg-card--featured .sjg-card__title { font-size: 0.88rem; }
	.sjg-hero-grid { grid-template-columns: minmax(0, 1fr); }
	.sjg-hero-grid__side { grid-template-columns: minmax(0, 1fr); }
	.sjg-hero-grid__side .sjg-card__media { flex: 0 0 92px; }
}
