/* ============================================
   DEUS — Olympian Template
   A design inspired by the heavens: deep sky,
   golden light, marble, and clouds.
   ============================================ */

/* --- Reset & Base --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* --- Scrollbar — match template gold tones --- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--sky-deep, #111); }
::-webkit-scrollbar-thumb { background: rgba(201,149,46,0.25); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: rgba(201,149,46,0.4); }
::-webkit-scrollbar-thumb:active { background: var(--gold, #c9952e); }
html { scrollbar-color: rgba(201,149,46,0.25) #111; }
::selection { background: rgba(201,149,46,0.3); color: #fff; }

:root {
	/* Dark palette — warm dark grey, NOT pure black (reduces eye strain) */
	--sky-deep:    #111111;
	--sky-mid:     #161616;
	--sky-surface: #1a1a1a;
	--sky-card:    #1c1c1c;
	--sky-card-hi: #222222;
	--sky-border:  rgba(201,149,46,0.1);
	--sky-border-hi: rgba(201,149,46,0.18);

	/* Gold palette — rich, warm, luminous */
	--gold:        #c9952e;
	--gold-light:  #e8c55a;
	--gold-warm:   #d4a43a;
	--gold-pale:   #f0dfa0;
	--gold-dim:    rgba(201,149,46,0.12);
	--gold-glow:   rgba(201,149,46,0.06);
	--gold-shimmer: rgba(232,197,90,0.03);

	/* Text — off-white for readability (NOT pure white, reduces glare) */
	--text:        #e8e6e1;
	--text-soft:   #ccc9c2;
	--text-muted:  #8a8780;

	/* Accent — muted warm bronze */
	--accent:      #b08d57;
	--accent-dim:  rgba(176,141,87,0.1);

	/* Typography */
	--font-display: 'Cormorant Garamond', 'Georgia', serif;
	--font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--font-mono:    'JetBrains Mono', monospace;

	/* Layout */
	--container: 1100px;
	--radius: 8px;
	--radius-lg: 14px;

	/* Shadows — warmer, golden-tinged */
	--shadow-sm: 0 1px 3px rgba(0,0,0,0.5), 0 1px 2px rgba(0,0,0,0.4);
	--shadow-md: 0 4px 16px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.35);
	--shadow-lg: 0 8px 32px rgba(0,0,0,0.55), 0 4px 12px rgba(0,0,0,0.35);
	--shadow-gold: 0 4px 20px rgba(201,149,46,0.15), 0 2px 8px rgba(201,149,46,0.08);
	--shadow-gold-lg: 0 8px 40px rgba(201,149,46,0.2), 0 4px 16px rgba(201,149,46,0.12);
}

html {
	font-size: 16px;
	scroll-behavior: smooth;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.deus-site {
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	color: var(--text);
	background: var(--sky-deep);
	background-image:
		radial-gradient(ellipse 100% 60% at 50% -5%, rgba(201,149,46,0.05) 0%, transparent 45%),
		radial-gradient(ellipse 70% 50% at 0% 50%, rgba(201,149,46,0.015) 0%, transparent 50%),
		radial-gradient(ellipse 70% 50% at 100% 70%, rgba(201,149,46,0.015) 0%, transparent 50%);
	min-height: 100vh;
	overflow-x: hidden;
	letter-spacing: .01em;
}

a { color: var(--gold); text-decoration: none; transition: color .2s, text-shadow .2s; }
a:hover { color: var(--gold-light); text-shadow: 0 0 16px rgba(201,149,46,0.2); }

img { max-width: 100%; height: auto; }

::selection { background: rgba(212,168,83,0.3); color: #fff; }

/* --- Atmosphere (clouds) --- */
.deus-atmosphere {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	overflow: hidden;
}

.deus-cloud {
	position: absolute;
	border-radius: 50%;
	filter: blur(100px);
	opacity: 0;
	will-change: transform, opacity;
}

.deus-cloud-1 {
	width: 800px; height: 400px;
	background: radial-gradient(ellipse, rgba(201,149,46,0.06) 0%, rgba(201,149,46,0.015) 40%, transparent 70%);
	top: -5%; left: -15%;
	animation: cloudDrift1 35s ease-in-out infinite;
}

.deus-cloud-2 {
	width: 600px; height: 350px;
	background: radial-gradient(ellipse, rgba(176,141,87,0.04) 0%, rgba(176,141,87,0.01) 40%, transparent 70%);
	top: 35%; right: -20%;
	animation: cloudDrift2 42s ease-in-out infinite;
	animation-delay: 6s;
}

.deus-cloud-3 {
	width: 900px; height: 450px;
	background: radial-gradient(ellipse, rgba(201,149,46,0.035) 0%, rgba(232,197,90,0.008) 40%, transparent 70%);
	bottom: 5%; left: 10%;
	animation: cloudDrift3 50s ease-in-out infinite;
	animation-delay: 12s;
}

@keyframes cloudDrift1 {
	0%   { opacity: 0; transform: translateX(-60px) translateY(10px) scale(0.85); }
	15%  { opacity: 1; }
	50%  { transform: translateX(20px) translateY(-15px) scale(1.05); }
	85%  { opacity: 1; }
	100% { opacity: 0; transform: translateX(60px) translateY(10px) scale(0.9); }
}

@keyframes cloudDrift2 {
	0%   { opacity: 0; transform: translateX(50px) translateY(-10px) scale(0.9); }
	20%  { opacity: 1; }
	50%  { transform: translateX(-30px) translateY(10px) scale(1.1); }
	80%  { opacity: 1; }
	100% { opacity: 0; transform: translateX(-60px) translateY(-10px) scale(0.85); }
}

@keyframes cloudDrift3 {
	0%   { opacity: 0; transform: translateX(-30px) translateY(20px) scale(0.95); }
	25%  { opacity: 1; }
	50%  { transform: translateX(40px) translateY(-5px) scale(1.08); }
	75%  { opacity: 1; }
	100% { opacity: 0; transform: translateX(50px) translateY(15px) scale(0.92); }
}

/* --- Container --- */
.deus-container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 1.5rem;
	position: relative;
	z-index: 1;
}

/* --- Header --- */
.deus-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(17,17,17,0.88);
	backdrop-filter: blur(30px) saturate(1.3);
	-webkit-backdrop-filter: blur(30px) saturate(1.3);
	border-bottom: 1px solid rgba(201,149,46,0.08);
	transition: background .4s, box-shadow .4s, border-color .4s;
}

.deus-header.is-scrolled {
	background: rgba(17,17,17,0.96);
	box-shadow: 0 4px 30px rgba(0,0,0,0.4);
	border-bottom-color: rgba(201,149,46,0.12);
}

.deus-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 3.8rem;
}

.deus-logo {
	display: flex;
	align-items: center;
	gap: .55rem;
	color: var(--gold) !important;
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	transition: all .3s;
}

.deus-logo:hover {
	text-shadow: 0 0 20px rgba(212,168,83,0.3);
}

.deus-logo-icon {
	font-size: 1.15rem;
	opacity: .6;
	transition: opacity .3s, transform .3s;
	animation: iconPulse 4s ease-in-out infinite;
}

.deus-logo:hover .deus-logo-icon {
	opacity: .9;
	transform: scale(1.1);
}

@keyframes iconPulse {
	0%, 100% { opacity: .6; }
	50%      { opacity: .85; }
}

.deus-logo-text {
	background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 50%, var(--gold) 100%);
	background-size: 200% auto;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Nav */
.deus-nav ul {
	list-style: none;
	display: flex;
	gap: .15rem;
	margin: 0;
	padding: 0;
}

.deus-nav ul li a,
.deus-nav ul li > button {
	display: block;
	padding: .45rem .9rem;
	font-size: .8rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--text-soft);
	border-radius: 6px;
	transition: all .25s;
	text-decoration: none;
	position: relative;
	background: none;
	border: none;
	cursor: pointer;
	font-family: inherit;
}

.deus-nav ul li a::after,
.deus-nav ul li > button::after {
	content: '';
	position: absolute;
	bottom: 2px;
	left: 50%;
	width: 0;
	height: 1px;
	background: var(--gold);
	transition: all .25s;
	transform: translateX(-50%);
}

/* Difficulty color dots in nav — grey default, colored on hover */
.deus-nav .item-161 a::before,
.deus-nav .item-162 a::before,
.deus-nav .item-163 a::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	margin-right: .4rem;
	vertical-align: middle;
	position: relative;
	top: -1px;
	background: var(--text-muted);
	box-shadow: none;
	transition: all .25s;
}

.deus-nav .item-161 a:hover::before,
.deus-nav .item-161.active a::before,
.deus-nav .item-161.current a::before { background: #4ade80; box-shadow: 0 0 6px rgba(34,197,94,.4); }

.deus-nav .item-162 a:hover::before,
.deus-nav .item-162.active a::before,
.deus-nav .item-162.current a::before { background: #facc15; box-shadow: 0 0 6px rgba(234,179,8,.4); }

.deus-nav .item-163 a:hover::before,
.deus-nav .item-163.active a::before,
.deus-nav .item-163.current a::before { background: #f87171; box-shadow: 0 0 6px rgba(239,68,68,.4); }

.deus-nav ul li a:hover,
.deus-nav ul li.current a,
.deus-nav ul li.active a,
.deus-nav ul li > button:hover,
.deus-nav ul li.current > button,
.deus-nav ul li.active > button {
	color: var(--gold);
	background: var(--gold-dim);
}

.deus-nav ul li a:hover::after,
.deus-nav ul li.current a::after,
.deus-nav ul li.active a::after,
.deus-nav ul li > button:hover::after,
.deus-nav ul li.current > button::after,
.deus-nav ul li.active > button::after {
	width: 60%;
}

/* Nav dropdown (heading parent) */
.deus-nav li.deeper {
	position: relative;
}

.deus-nav li.deeper > .mod-menu__heading,
.deus-nav li.deeper > button > .mod-menu__heading {
	display: block;
	font-size: .8rem;
	font-weight: 500;
	color: inherit;
	cursor: pointer;
	transition: all .25s;
}

.deus-nav li.deeper:hover > .mod-menu__heading,
.deus-nav li.deeper:hover > button > .mod-menu__heading {
	color: var(--gold);
}

.deus-nav .mod-menu__sub {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 100px;
	background: var(--sky-mid, #111827);
	border: 1px solid var(--sky-border-hi);
	border-radius: 6px;
	padding: .35rem 0;
	padding-top: calc(.35rem + 6px);
	margin-top: -6px;
	z-index: 200;
	flex-direction: column;
	gap: 0;
	box-shadow: 0 8px 24px rgba(0,0,0,.4);
}

.deus-nav li.deeper:hover > .mod-menu__sub {
	display: flex;
}

.deus-nav .mod-menu__sub li a {
	padding: .35rem .9rem;
	border-radius: 0;
	font-size: .78rem;
	white-space: nowrap;
}

.deus-nav .mod-menu__sub li a:hover {
	background: var(--gold-dim);
}

/* Mobile nav toggle */
.deus-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: .5rem;
}

.deus-nav-toggle span {
	width: 22px;
	height: 2px;
	background: var(--text-soft);
	border-radius: 2px;
	transition: all .3s cubic-bezier(.4,0,.2,1);
	transform-origin: center;
}

.deus-nav-toggle.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
	background: var(--gold);
}

.deus-nav-toggle.is-active span:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}

.deus-nav-toggle.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
	background: var(--gold);
}

/* --- Hero --- */
.deus-hero {
	text-align: center;
	min-height: auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 5rem 0 3rem;
	position: relative;
	overflow: hidden;
	background: url('../images/hero-2.jpg') center 30% / cover no-repeat;
	background-attachment: fixed;
}

.deus-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 60% at 50% 40%, rgba(201,149,46,0.06) 0%, transparent 60%),
		linear-gradient(
			180deg,
			rgba(17,17,17,0.6) 0%,
			rgba(17,17,17,0.4) 30%,
			rgba(17,17,17,0.45) 60%,
			rgba(17,17,17,0.88) 100%
		);
	pointer-events: none;
	z-index: 0;
}

.deus-hero::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0; right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent 0%, rgba(201,149,46,0.4) 30%, rgba(201,149,46,0.5) 50%, rgba(201,149,46,0.4) 70%, transparent 100%);
	z-index: 1;
	box-shadow: 0 0 20px rgba(201,149,46,0.15), 0 0 60px rgba(201,149,46,0.05);
}

.deus-hero > * {
	position: relative;
	z-index: 1;
}

.deus-hero-glow {
	position: absolute;
	top: 30%; left: 50%;
	transform: translate(-50%, -50%);
	width: 500px; height: 500px;
	background: radial-gradient(circle, rgba(201,149,46,0.06) 0%, rgba(201,149,46,0.02) 40%, transparent 65%);
	pointer-events: none;
	animation: heroGlow 8s ease-in-out infinite alternate;
}

@keyframes heroGlow {
	0%   { opacity: .4; transform: translate(-50%, -50%) scale(1); }
	100% { opacity: 1; transform: translate(-50%, -50%) scale(1.3); }
}

.deus-hero-kicker {
	font-family: var(--font-body);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--gold-light);
	opacity: .8;
	margin-bottom: 1.4rem;
	position: relative;
	text-shadow: 0 0 30px rgba(201,149,46,0.3);
}

.deus-hero-title {
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 5.5vw, 3.8rem);
	font-weight: 700;
	line-height: 1.12;
	color: #fff;
	margin-bottom: 1.3rem;
	position: relative;
	text-shadow: 0 2px 20px rgba(0,0,0,0.5), 0 0 40px rgba(201,149,46,0.08);
}

.deus-hero-title em {
	font-style: italic;
	background: linear-gradient(135deg, var(--gold-warm) 0%, var(--gold-light) 50%, var(--gold-pale) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	filter: drop-shadow(0 0 20px rgba(201,149,46,0.25));
}

.deus-hero-sub {
	font-size: 1.05rem;
	color: rgba(240,236,228,0.75);
	max-width: 540px;
	margin: 0 auto 2.2rem;
	line-height: 1.65;
	position: relative;
	text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}

/* Buttons */
.deus-btn {
	display: inline-block;
	padding: .9rem 2.4rem;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: .03em;
	border-radius: var(--radius);
	transition: all .3s cubic-bezier(.4,0,.2,1);
	text-decoration: none;
	position: relative;
	overflow: hidden;
}

.deus-btn-primary {
	background: linear-gradient(135deg, var(--gold-warm) 0%, var(--gold) 50%, #a67c1a 100%);
	background-size: 200% auto;
	color: var(--sky-deep) !important;
	box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255,255,255,0.15);
	font-weight: 700;
	letter-spacing: .03em;
}

.deus-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-gold-lg), inset 0 1px 0 rgba(255,255,255,0.2);
	background-position: right center;
	color: var(--sky-deep) !important;
}

.deus-btn-primary:active {
	transform: translateY(0);
}

.deus-btn-ghost {
	border: 1px solid rgba(201,149,46,0.3);
	color: var(--gold-light) !important;
	background: rgba(201,149,46,0.04);
}

.deus-btn-ghost:hover {
	background: rgba(201,149,46,0.12);
	border-color: rgba(201,149,46,0.5);
	transform: translateY(-1px);
	box-shadow: 0 4px 20px rgba(201,149,46,0.12), 0 0 0 1px rgba(201,149,46,0.05);
}

.deus-hero-cta {
	display: flex;
	gap: 1.2rem;
	justify-content: center;
	flex-wrap: wrap;
	position: relative;
}

/* Hero stats bar */
.deus-hero-stats {
	display: flex;
	justify-content: center;
	gap: 3rem;
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(201,149,46,0.15);
	position: relative;
}

/* Scroll indicator (hidden — hero no longer full-viewport) */
.deus-hero-scroll {
	display: none;
}

.deus-stat {
	text-align: center;
}

.deus-stat-num {
	display: block;
	font-family: var(--font-display);
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--gold-light);
	line-height: 1.1;
	text-shadow: 0 0 25px rgba(201,149,46,0.3);
}

.deus-stat-label {
	display: block;
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-top: .3rem;
}

/* --- Page Hero (full-width banners like frontpage) --- */
.deus-page-hero {
	position: relative;
	overflow: hidden;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	margin-top: -2.5rem;
	margin-bottom: 2rem;
}

.deus-page-hero img {
	width: 100%;
	height: 50vh;
	min-height: 400px;
	object-fit: cover;
	object-position: center 40%;
	display: block;
	opacity: 0.65;
}

.deus-page-hero::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0; right: 0;
	height: 60%;
	background: linear-gradient(to top, var(--sky-deep, #111) 0%, transparent 100%);
	pointer-events: none;
}

@media (max-width: 640px) {
	.deus-page-hero img {
		height: 260px;
	}
}

/* --- Main content --- */
.deus-main {
	padding: 2.5rem 0 4rem;
	min-height: 60vh;
	position: relative;
}

body.deus-front .deus-main {
	padding-top: 1.5rem;
}

/* Full-width article body when directory grid is present */
.com-content-article__body:has(.deus-directory) {
	max-width: none;
}

body.deus-front .deus-content .deus-directory {
	text-align: left;
}

body.deus-front .deus-content > p {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

.deus-content-grid {
	display: grid;
	grid-template-columns: 1fr 200px;
	gap: 2.5rem;
}

/* --- Article cards (category blog view) --- */
.deus-content .blog .items-row,
.deus-content .com-content-category-blog__items .items-row {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}

.deus-content .item,
.deus-content .blog-item {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 1.8rem;
	transition: all .35s cubic-bezier(.4,0,.2,1);
	position: relative;
}

.deus-content .item::before,
.deus-content .blog-item::before {
	content: '';
	position: absolute;
	inset: -1px;
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, rgba(201,149,46,0.1) 0%, transparent 50%);
	opacity: 0;
	transition: opacity .35s;
	pointer-events: none;
	z-index: -1;
}

.deus-content .item:hover,
.deus-content .blog-item:hover {
	border-color: rgba(201,149,46,0.18);
	box-shadow: 0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(201,149,46,0.05);
	transform: translateY(-3px);
}

.deus-content .item:hover::before,
.deus-content .blog-item:hover::before {
	opacity: 1;
}

/* --- Featured articles on front page --- */
.deus-front .blog-featured .items-leading {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.deus-front .blog-featured .items-row {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}

.deus-front .blog-featured .item,
.deus-front .blog-featured .blog-item {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 2rem 2.2rem;
	transition: all .35s cubic-bezier(.4,0,.2,1);
	position: relative;
}

.deus-front .blog-featured .item::before,
.deus-front .blog-featured .blog-item::before {
	content: '';
	position: absolute;
	inset: -1px;
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, rgba(201,149,46,0.08) 0%, transparent 50%);
	opacity: 0;
	transition: opacity .35s;
	pointer-events: none;
	z-index: -1;
}

.deus-front .blog-featured .item:hover,
.deus-front .blog-featured .blog-item:hover {
	border-color: rgba(201,149,46,0.18);
	box-shadow: 0 8px 32px rgba(0,0,0,0.4);
	transform: translateY(-2px);
}

.deus-front .blog-featured .item:hover::before,
.deus-front .blog-featured .blog-item:hover::before {
	opacity: 1;
}

/* Tags inline list — pill style */
.tags.list-inline,
ul.tags.list-inline {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

.tags.list-inline .list-inline-item {
	margin: 0;
}

.tags.list-inline .btn.btn-sm.btn-info {
	display: inline-block;
	padding: .2rem .6rem;
	font-size: .72rem;
	font-weight: 500;
	color: var(--gold);
	background: rgba(201,149,46,0.08);
	border: 1px solid rgba(201,149,46,0.12);
	border-radius: 20px;
	text-decoration: none;
	transition: all .2s;
	line-height: 1.4;
}

.tags.list-inline .btn.btn-sm.btn-info:hover {
	background: rgba(201,149,46,0.16);
	border-color: rgba(201,149,46,0.3);
	color: var(--gold-light);
	transform: none;
}

/* Article sections within featured content */
.deus-front .item-content section {
	margin-bottom: 1rem;
	padding-bottom: .5rem;
}

.deus-front .item-content section + section {
	border-top: 1px solid rgba(201,149,46,0.06);
	padding-top: 1.5rem;
}

/* Article h1 in featured */
.deus-front .item-content h1 {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 700;
	color: var(--text);
	margin-bottom: .6rem;
	line-height: 1.2;
}

/* Article h2 sections */
.deus-front .item-content h2 {
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--gold-light);
	margin: 1.5rem 0 .8rem;
	letter-spacing: .01em;
}

/* Intro paragraph right under h1 */
.deus-front .item-content header + section > p:first-child,
.deus-front .item-content header p {
	font-size: 1.05rem;
	color: var(--text-soft);
	line-height: 1.7;
	margin-bottom: 1.5rem;
}

/* em tags for difficulty/income in list items */
.deus-front .item-content li em {
	display: block;
	font-size: .8rem;
	color: var(--text-muted);
	font-style: normal;
	margin-top: .15rem;
}

/* --- Article headings --- */
.deus-content h1,
.deus-content h2 {
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.22;
	color: var(--text);
}

.deus-content h1 {
	font-size: 2.2rem;
	margin-bottom: 1rem;
	letter-spacing: -.01em;
}

.deus-content h2 {
	font-size: 1.5rem;
	margin: 2.8rem 0 1rem;
	color: var(--gold-light);
	letter-spacing: .01em;
}

.deus-content h3 {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 1.8rem 0 .5rem;
	color: var(--text);
	font-family: var(--font-body);
}

.deus-content h2::after {
	content: '';
	display: block;
	width: 60px;
	height: 2px;
	background: linear-gradient(90deg, var(--gold), rgba(201,149,46,0.2), transparent);
	margin-top: .5rem;
	border-radius: 2px;
}

/* Article title links */
.deus-content .page-header h2 a,
.deus-content h2.item-title a,
.deus-content h1.item-title a {
	color: var(--text);
	text-decoration: none;
}

.deus-content .page-header h2 a:hover,
.deus-content h2.item-title a:hover,
.deus-content h1.item-title a:hover {
	color: var(--gold);
}

.deus-content .page-header h2 a::after,
.deus-content h2.item-title a::after {
	display: none;
}

.deus-content h2.item-title::after {
	display: none;
}

/* --- Article body typography --- */
.com-content-article__body,
.deus-content .com-content-article__body {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	font-size: 1rem;
}

/* Full-width article body when directory grid is present */
.com-content-article__body:has(.deus-directory) {
	max-width: none;
}

/* Center intro text above directory while grid stays full-width */
.com-content-article__body:has(.deus-directory) > h2,
.com-content-article__body:has(.deus-directory) > p {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.com-content-article__body:has(.deus-directory) > h2::after {
	margin-left: auto;
	margin-right: auto;
}

.deus-content p {
	margin-bottom: 1.3rem;
	color: var(--text-soft);
	line-height: 1.85;
	letter-spacing: .012em;
	font-weight: 400;
}

.deus-content strong {
	color: var(--text);
	font-weight: 600;
}

.deus-content em {
	color: var(--text);
	font-style: italic;
}

.deus-content a {
	color: var(--gold);
	text-decoration-line: underline;
	text-decoration-color: rgba(201,149,46,0.2);
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition: all .2s;
}

.deus-content a:hover {
	color: var(--gold-light);
	text-decoration-color: rgba(232,197,90,0.45);
}

.deus-content ul, .deus-content ol {
	margin: 0 0 1.5rem 1.5rem;
	color: var(--text-soft);
}

.deus-content li {
	margin-bottom: .65rem;
	line-height: 1.8;
	letter-spacing: .01em;
}

.deus-content li strong {
	color: var(--gold-light);
	font-weight: 600;
}

.deus-content blockquote {
	border-left: 3px solid var(--gold);
	padding: 1.2rem 1.5rem;
	margin: 2rem 0;
	background: linear-gradient(135deg, var(--gold-glow) 0%, transparent 100%);
	border-radius: 0 var(--radius) var(--radius) 0;
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-style: italic;
	color: var(--text);
	position: relative;
}

.deus-content pre, .deus-content code {
	font-family: var(--font-mono);
	font-size: .82rem;
}

.deus-content pre {
	background: rgba(0,0,0,0.45);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: 1.1rem 1.3rem;
	overflow-x: auto;
	margin: 1.4rem 0;
	line-height: 1.65;
}

.deus-content code {
	background: rgba(212,168,83,0.1);
	padding: .15em .4em;
	border-radius: 4px;
	color: var(--gold-light);
}

.deus-content pre code {
	background: none;
	padding: 0;
	color: var(--text-soft);
}

/* --- Article page specific --- */
.com-content-article.item-page {
	padding-bottom: 2rem;
}

.com-content-article .page-header h2 {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 700;
	color: var(--text);
	margin-bottom: .5rem;
	line-height: 1.2;
}

/* Article navigation (prev/next) */
.com-content-article .pagination {
	display: flex;
	gap: .8rem;
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--sky-border);
}

.com-content-article .pagination .previous,
.com-content-article .pagination .next {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .5rem 1rem;
	font-size: .8rem;
	font-weight: 500;
	color: var(--text-soft) !important;
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	transition: all .25s;
	text-decoration: none;
}

.com-content-article .pagination .previous:hover,
.com-content-article .pagination .next:hover {
	color: var(--gold) !important;
	border-color: rgba(212,168,83,0.2);
	background: var(--gold-glow);
}

/* Category table/list view */
.com-content-category__table {
	width: 100%;
	border-collapse: collapse;
}

.com-content-category__table th {
	text-align: left;
	padding: .65rem .85rem;
	background: var(--sky-card);
	border-bottom: 2px solid rgba(212,168,83,0.15);
	color: var(--gold);
	font-weight: 600;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.com-content-category__table td {
	padding: .6rem .85rem;
	border-bottom: 1px solid var(--sky-border);
	color: var(--text-soft);
	font-size: .88rem;
}

.com-content-category__table .list-title a {
	color: var(--text);
	font-weight: 500;
	text-decoration: none;
	transition: color .2s;
}

.com-content-category__table .list-title a:hover {
	color: var(--gold);
}

.com-content-category__table tr:hover td {
	background: rgba(212,168,83,0.03);
}

.com-content-category__table .cat-list-row0,
.com-content-category__table .cat-list-row1 {
	transition: background .15s;
}

.com-content-category__table .cat-list-row1 {
	background: rgba(255,255,255,0.012);
}

/* Category children list */
.com-content-category__children {
	margin-bottom: 2rem;
}

.com-content-category__children .cat-children {
	list-style: none;
	padding: 0;
}

.com-content-category__children .cat-children li {
	padding: .5rem 0;
	border-bottom: 1px solid var(--sky-border);
}

.com-content-category__children .cat-children li a {
	color: var(--text);
	font-weight: 500;
	font-size: .9rem;
}

.com-content-category__children .cat-children li a:hover {
	color: var(--gold);
}

/* Joomla form-select in category view */
.com-content-category .form-select {
	background: var(--sky-surface);
	border: 1px solid var(--sky-border);
	color: var(--text);
	padding: .4rem .7rem;
	font-size: .8rem;
	border-radius: var(--radius);
	max-width: 200px;
}

/* Page header separator */
.deus-content .page-header.item-title {
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--sky-border);
}

/* Content category articles section spacing */
.com-content-category__articles {
	margin-top: 1rem;
}

/* --- Tables --- */
.deus-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: .88rem;
}

.deus-content th {
	text-align: left;
	padding: .7rem .8rem;
	background: var(--sky-card);
	border-bottom: 2px solid var(--gold-dim);
	color: var(--gold);
	font-weight: 600;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.deus-content td {
	padding: .6rem .8rem;
	border-bottom: 1px solid var(--sky-border);
	color: var(--text-soft);
}

.deus-content tr:hover td {
	background: rgba(212,168,83,0.03);
}

/* --- Article metadata --- */
.deus-content .article-info,
.deus-content .com-content-article__info {
	display: none;
}

/* --- Readmore link --- */
.deus-content .readmore a,
.deus-content a.readmore {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	margin-top: 1rem;
	font-size: .8rem;
	font-weight: 600;
	color: var(--gold);
	letter-spacing: .02em;
	text-decoration: none;
	border: 1px solid rgba(212,168,83,0.15);
	padding: .4rem .9rem;
	border-radius: 6px;
	transition: all .25s;
}

.deus-content .readmore a:hover {
	color: var(--gold-light);
	background: var(--gold-dim);
	border-color: rgba(212,168,83,0.3);
	text-decoration: none;
}

.deus-content .readmore a::after {
	content: '\2192';
	font-size: .85rem;
	transition: transform .25s;
}

.deus-content .readmore a:hover::after {
	transform: translateX(3px);
}

/* --- Sidebar --- */
.deus-sidebar .moduletable {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 1.3rem;
	margin-bottom: 1.2rem;
	transition: border-color .3s;
}

.deus-sidebar .moduletable:hover {
	border-color: rgba(201,149,46,0.12);
}

.deus-sidebar .moduletable h3 {
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
	color: var(--gold);
	margin-bottom: .8rem;
	padding-bottom: .5rem;
	border-bottom: 1px solid rgba(212,168,83,0.08);
}

.deus-sidebar .moduletable ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.deus-sidebar .moduletable ul li a {
	display: block;
	padding: .4rem .5rem .4rem .6rem;
	font-size: .82rem;
	color: var(--text-soft);
	border-bottom: 1px solid rgba(255,255,255,0.025);
	border-left: 2px solid transparent;
	transition: all .25s;
	border-radius: 0 4px 4px 0;
}

.deus-sidebar .moduletable ul li a:hover {
	color: var(--gold);
	border-left-color: rgba(212,168,83,0.4);
	background: rgba(212,168,83,0.04);
	padding-left: .8rem;
}

/* --- Partner section --- */
/* --- Partner section --- */
.deus-partner {
	position: relative;
	z-index: 1;
	padding: 4rem 0;
	background:
		radial-gradient(ellipse 60% 50% at 50% 0%, rgba(201,149,46,0.04) 0%, transparent 70%),
		linear-gradient(180deg, var(--sky-deep) 0%, #0a0a0a 100%);
}

.deus-partner::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(80%, 400px);
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(201,149,46,0.4), transparent);
}

.deus-partner-inner {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
	padding: 2.5rem 2.5rem 2rem;
	background: linear-gradient(145deg, rgba(28,28,28,0.8) 0%, rgba(22,22,22,0.9) 100%);
	border: 1px solid rgba(201,149,46,0.12);
	border-radius: var(--radius-lg);
	position: relative;
	overflow: hidden;
}

.deus-partner-inner::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--gold), transparent);
	opacity: .5;
}

.deus-partner-brand {
	margin-bottom: 1.2rem;
}

.deus-partner-label {
	display: block;
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: .6rem;
}

.deus-partner-wordmark {
	display: inline-block;
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 700;
	color: var(--gold) !important;
	letter-spacing: .06em;
	text-decoration: none;
	background: linear-gradient(135deg, var(--gold-warm) 0%, var(--gold-light) 50%, var(--gold) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	transition: filter .3s;
}

.deus-partner-wordmark:hover {
	filter: brightness(1.2);
}

.deus-partner-tagline {
	display: block;
	font-size: .78rem;
	color: var(--gold-light);
	opacity: .6;
	margin-top: .3rem;
	font-weight: 500;
}

.deus-partner-desc {
	font-size: .82rem;
	color: var(--text-soft);
	line-height: 1.65;
	margin-bottom: 1.5rem;
	opacity: .85;
}

.deus-partner-cta {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-size: .82rem;
	font-weight: 600;
	color: var(--sky-deep) !important;
	background: linear-gradient(135deg, var(--gold-warm), var(--gold));
	border: none;
	border-radius: 100px;
	padding: .6rem 1.6rem;
	transition: all .3s;
	text-decoration: none;
	box-shadow: 0 2px 12px rgba(201,149,46,0.2);
}

.deus-partner-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 20px rgba(201,149,46,0.3);
	filter: brightness(1.1);
}

/* --- Footer --- */
.deus-footer {
	position: relative;
	z-index: 1;
	padding: 3.5rem 0 2rem;
	background: #0a0a0a;
}

.deus-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent 5%, rgba(201,149,46,0.15) 30%, rgba(201,149,46,0.25) 50%, rgba(201,149,46,0.15) 70%, transparent 95%);
}

.deus-footer-inner {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.deus-footer-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.deus-footer-brand {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}

.deus-footer-brand .deus-logo-icon {
	font-size: 1rem;
	color: var(--gold);
	opacity: .5;
}

.deus-footer-brand-text {
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 700;
	background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.deus-footer-tagline {
	font-size: .75rem;
	color: var(--text-muted);
	margin-left: .5rem;
	padding-left: .8rem;
	border-left: 1px solid rgba(201,149,46,0.15);
}

.deus-footer-nav {
	display: flex;
	gap: .4rem;
	flex-wrap: wrap;
}

.deus-footer-nav a {
	font-size: .78rem;
	color: var(--text-muted);
	padding: .3rem .7rem;
	border-radius: 100px;
	transition: all .2s;
	text-decoration: none;
}

.deus-footer-nav a:hover {
	color: var(--gold-light);
	background: rgba(201,149,46,0.08);
}

.deus-footer-bottom {
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255,255,255,0.04);
	text-align: center;
}

.deus-footer-copy {
	font-size: .65rem;
	color: var(--text-muted);
	letter-spacing: .03em;
	opacity: .7;
}

/* --- Pagination (consolidated) --- */
.deus-content .pagination,
.deus-content nav[aria-label] ul.pagination,
ul.pagination {
	display: flex;
	gap: .3rem;
	list-style: none !important;
	padding: 0 !important;
	margin: 1rem 0 !important;
	justify-content: center;
}

.pagination li,
.pagination .page-item {
	list-style: none !important;
	margin: 0;
	padding: 0;
}

.deus-content .pagination li a,
.deus-content .pagination li span.page-link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2rem;
	height: 2.2rem;
	padding: .3rem .7rem;
	font-size: .82rem;
	border-radius: var(--radius);
	color: var(--text-soft);
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	transition: all .2s;
	text-decoration: none;
}

.deus-content .pagination li a:hover {
	border-color: var(--gold);
	color: var(--gold);
	background: var(--gold-glow);
}

.deus-content .pagination li.active a,
.deus-content .pagination .page-item.active .page-link {
	background: linear-gradient(135deg, var(--gold) 0%, #c49a40 100%);
	color: var(--sky-deep);
	border-color: var(--gold);
	font-weight: 600;
	box-shadow: 0 2px 8px rgba(212,168,83,0.2);
}

.deus-content .pagination li.disabled {
	display: none;
}

/* Joomla icon font replacements — no icon font loaded */
.icon-angle-left::before { content: '‹'; font-size: 1.2em; }
.icon-angle-right::before { content: '›'; font-size: 1.2em; }
.icon-angle-double-left::before { content: '«'; font-size: 1em; }
.icon-angle-double-right::before { content: '»'; font-size: 1em; }
.icon-chevron-left::before { content: '‹'; font-size: 1.2em; }
.icon-chevron-right::before { content: '›'; font-size: 1.2em; }

/* --- Search --- */
.deus-header .mod-finder input {
	background: var(--sky-surface);
	border: 1px solid var(--sky-border);
	color: var(--text);
	padding: .35rem .8rem;
	font-size: .8rem;
	border-radius: 6px;
	width: 160px;
	transition: all .3s;
}

.deus-header .mod-finder input:focus {
	outline: none;
	border-color: var(--gold);
	width: 220px;
	box-shadow: 0 0 0 3px var(--gold-dim);
}

.deus-header .mod-finder input::placeholder {
	color: var(--text-muted);
}

/* --- Login link --- */
.deus-header .sp-sign-in,
.deus-header a[href*="login"] {
	font-size: .8rem;
	color: var(--text-muted);
}

/* --- Forms --- */
.deus-content input[type="text"],
.deus-content input[type="email"],
.deus-content textarea,
.deus-content select {
	background: var(--sky-surface);
	border: 1px solid var(--sky-border);
	color: var(--text);
	padding: .5rem .8rem;
	border-radius: 6px;
	font-family: var(--font-body);
	font-size: .88rem;
	width: 100%;
	transition: border-color .2s;
}

.deus-content input:focus,
.deus-content textarea:focus,
.deus-content select:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px var(--gold-dim);
}

.deus-content .btn,
.deus-content button[type="submit"] {
	background: var(--gold);
	color: var(--sky-deep);
	border: none;
	padding: .5rem 1.2rem;
	font-weight: 600;
	font-size: .85rem;
	border-radius: 6px;
	cursor: pointer;
	transition: all .2s;
}

.deus-content .btn:hover,
.deus-content button[type="submit"]:hover {
	background: var(--gold-light);
}

/* --- Joomla system messages --- */
.alert {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: .8rem 1.2rem;
	margin-bottom: 1rem;
	color: var(--text);
	font-size: .85rem;
}

.alert-success { border-left: 3px solid #4ade80; }
.alert-warning { border-left: 3px solid var(--gold); }
.alert-danger  { border-left: 3px solid #ef4444; }
.alert-info    { border-left: 3px solid var(--accent); }

/* --- Breadcrumbs wrap --- */
.deus-breadcrumbs-wrap {
	border-bottom: 1px solid var(--sky-border);
	background: rgba(0,0,0,0.1);
	padding: .2rem 0;
}

.deus-breadcrumbs-wrap .breadcrumb {
	font-size: .75rem;
	margin: 0;
	padding: .5rem 0;
}

/* --- Divider ornament --- */
.deus-ornament {
	text-align: center;
	margin: 2rem 0;
	font-size: .8rem;
	color: var(--gold-dim);
	letter-spacing: .5em;
}

/* --- Collapsed nav (hamburger mode) --- */
/* Triggered by JS when nav wraps, or by media query as fallback */
.deus-header.deus-nav-collapsed .deus-nav { display: none; }
.deus-header.deus-nav-collapsed .deus-nav.is-open { display: block; }
.deus-header.deus-nav-collapsed .deus-nav-toggle { display: flex; }

.deus-header.deus-nav-collapsed .deus-nav.is-open {
	position: absolute;
	top: 100%;
	left: 0; right: 0;
	background: rgba(5,6,10,0.97);
	backdrop-filter: blur(30px);
	border-bottom: 1px solid rgba(201,149,46,0.1);
	padding: 1rem;
	max-height: 80vh;
	overflow-y: auto;
	z-index: 500;
}

.deus-header.deus-nav-collapsed .deus-nav.is-open ul {
	flex-direction: column;
	gap: 0;
}

.deus-header.deus-nav-collapsed .deus-nav.is-open ul li a,
.deus-header.deus-nav-collapsed .deus-nav.is-open ul li > button {
	padding: .7rem 1rem;
	border-bottom: 1px solid var(--sky-border);
}

.deus-header.deus-nav-collapsed .deus-nav .mod-menu__sub {
	position: static;
	display: flex;
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
	margin: 0;
}

.deus-header.deus-nav-collapsed .deus-nav .mod-menu__sub li a {
	padding-left: 2rem;
	border-radius: 0;
}

/* Fallback media query for very small screens */
@media (max-width: 768px) {
	.deus-header { /* JS adds .deus-nav-collapsed but this ensures it on small screens */ }


	.deus-content-grid {
		grid-template-columns: 1fr;
	}

	.deus-hero {
		padding: 4rem 0 2rem;
		background-attachment: scroll;
	}

	.deus-hero-title {
		font-size: 1.8rem;
	}

}

@media (max-width: 480px) {
	.deus-hero-cta {
		flex-direction: column;
		align-items: center;
	}

	.deus-btn {
		width: 100%;
		text-align: center;
	}
}

/* --- Category list view --- */
.deus-content .com-content-category .category-list,
.deus-content .com-content-category table {
	width: 100%;
}

.deus-content .com-content-category .page-header h2::after {
	display: block;
}

/* --- Print --- */
@media print {
	.deus-atmosphere,
	.deus-header,
	.deus-footer,
	.deus-nav-toggle { display: none; }

	body.deus-site {
		background: #fff;
		color: #111;
	}

	.deus-content h2 { color: #111; }
	.deus-content h2::after { background: #999; }
}


/* ============================================
   SECTION 1: FORMS
   Complete Joomla form styling
   ============================================ */

.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="time"],
textarea,
select {
	background: var(--sky-surface);
	border: 1px solid var(--sky-border);
	color: var(--text);
	padding: .55rem .85rem;
	border-radius: var(--radius);
	font-family: var(--font-body);
	font-size: .88rem;
	line-height: 1.5;
	width: 100%;
	transition: border-color .2s, box-shadow .2s;
	appearance: none;
	-webkit-appearance: none;
}

.form-control:focus,
.form-select:focus,
input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px var(--gold-dim);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
	color: var(--text-muted);
}

.form-control:disabled,
.form-control[readonly],
input:disabled,
textarea:disabled,
select:disabled {
	opacity: .5;
	cursor: not-allowed;
	background: rgba(26,32,53,0.6);
}

.form-select {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23d4a853' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right .75rem center;
	background-size: 16px 12px;
	padding-right: 2.25rem;
}

textarea {
	min-height: 6rem;
	resize: vertical;
}

label,
.form-label,
.control-label {
	display: block;
	font-size: .82rem;
	font-weight: 500;
	color: var(--text-soft);
	margin-bottom: .35rem;
}

.form-group,
.control-group {
	margin-bottom: 1.2rem;
}

.controls {
	position: relative;
}

.form-text,
.help-block {
	font-size: .75rem;
	color: var(--text-muted);
	margin-top: .3rem;
}

/* Checkbox & radio */
.form-check {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .25rem 0;
	min-height: 1.5rem;
}

.form-check-input {
	width: 1.1rem;
	height: 1.1rem;
	flex-shrink: 0;
	background: var(--sky-surface);
	border: 1px solid rgba(255,255,255,0.15);
	border-radius: 3px;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: all .2s;
}

.form-check-input[type="radio"] {
	border-radius: 50%;
}

.form-check-input:checked {
	background: var(--gold);
	border-color: var(--gold);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230a0e1a' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
	background-size: .7rem;
	background-repeat: no-repeat;
	background-position: center;
}

.form-check-input[type="radio"]:checked {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' cx='8' cy='8' fill='%230a0e1a'/%3e%3c/svg%3e");
	background-size: .5rem;
}

.form-check-input:focus {
	box-shadow: 0 0 0 3px var(--gold-dim);
	border-color: var(--gold);
}

.form-check-label {
	font-size: .85rem;
	color: var(--text-soft);
	cursor: pointer;
	margin-bottom: 0;
}

/* Floating labels */
.form-floating {
	position: relative;
}

.form-floating > .form-control,
.form-floating > .form-select {
	height: 3.5rem;
	padding: 1.625rem .85rem .625rem;
}

.form-floating > label {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 1rem .85rem;
	pointer-events: none;
	transform-origin: 0 0;
	transition: opacity .1s ease-in-out, transform .1s ease-in-out;
	color: var(--text-muted);
	margin-bottom: 0;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
	opacity: .65;
	transform: scale(.85) translateY(-.5rem) translateX(.15rem);
}

fieldset {
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: 1.2rem;
	margin-bottom: 1.5rem;
}

legend {
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 600;
	color: var(--gold);
	padding: 0 .5rem;
	float: none;
	width: auto;
}

/* Input group */
.input-group {
	display: flex;
	align-items: stretch;
	width: 100%;
}

.input-group > .form-control,
.input-group > .form-select {
	flex: 1 1 auto;
	width: 1%;
	min-width: 0;
	border-radius: 0;
}

.input-group > .form-control:first-child,
.input-group > :first-child:not(.dropdown-toggle):not(.dropdown-menu) {
	border-top-left-radius: var(--radius);
	border-bottom-left-radius: var(--radius);
}

.input-group > .form-control:last-child,
.input-group > :last-child:not(.dropdown-toggle):not(.dropdown-menu) {
	border-top-right-radius: var(--radius);
	border-bottom-right-radius: var(--radius);
}

.input-group-text {
	display: flex;
	align-items: center;
	padding: .55rem .85rem;
	font-size: .85rem;
	color: var(--text-soft);
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	white-space: nowrap;
}

.btn-group {
	display: inline-flex;
	vertical-align: middle;
}

.btn-group > .btn {
	border-radius: 0;
}

.btn-group > .btn:first-child {
	border-top-left-radius: var(--radius);
	border-bottom-left-radius: var(--radius);
}

.btn-group > .btn:last-child {
	border-top-right-radius: var(--radius);
	border-bottom-right-radius: var(--radius);
}

/* Validation states */
.is-invalid,
.invalid {
	border-color: #ef4444 !important;
}

.is-invalid:focus,
.invalid:focus {
	box-shadow: 0 0 0 3px rgba(239,68,68,0.15) !important;
}

.invalid-feedback {
	font-size: .78rem;
	color: #ef4444;
	margin-top: .25rem;
}

.is-valid,
.valid {
	border-color: #4ade80 !important;
}


/* ============================================
   SECTION 2: BUTTONS
   Full Joomla button system
   ============================================ */

.btn {
	display: inline-block;
	padding: .5rem 1.2rem;
	font-family: var(--font-body);
	font-size: .85rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	border: 1px solid transparent;
	border-radius: var(--radius);
	transition: all .25s;
	color: var(--sky-deep);
	background: var(--gold);
}

.btn:hover {
	background: var(--gold-light);
	color: var(--sky-deep);
	transform: translateY(-1px);
}

.btn:active {
	transform: translateY(0);
}

.btn:disabled,
.btn.disabled {
	opacity: .5;
	pointer-events: none;
}

.btn-primary {
	background: linear-gradient(135deg, var(--gold) 0%, #c49a40 100%);
	color: var(--sky-deep);
	border-color: transparent;
	box-shadow: 0 2px 8px rgba(212,168,83,0.2);
}

.btn-primary:hover {
	background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 100%);
	box-shadow: 0 4px 16px rgba(212,168,83,0.3);
}

.btn-secondary {
	background: var(--sky-card);
	color: var(--text-soft);
	border: 1px solid var(--sky-border);
}

.btn-secondary:hover {
	background: var(--sky-surface);
	color: var(--text);
	border-color: rgba(255,255,255,0.12);
}

.btn-success {
	background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%);
	color: var(--sky-deep);
}

.btn-success:hover {
	background: linear-gradient(135deg, #6ee7a0 0%, #4ade80 100%);
}

.btn-danger {
	background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
	color: #fff;
}

.btn-danger:hover {
	background: linear-gradient(135deg, #f87171 0%, #ef4444 100%);
}

.btn-warning {
	background: linear-gradient(135deg, var(--gold) 0%, #b8922e 100%);
	color: var(--sky-deep);
}

.btn-warning:hover {
	background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 100%);
}

.btn-info {
	background: rgba(201,149,46,0.1);
	color: var(--gold);
	border: 1px solid rgba(201,149,46,0.15);
}

.btn-info:hover {
	background: rgba(201,149,46,0.18);
	color: var(--gold-light);
	border-color: rgba(201,149,46,0.3);
}

.btn-outline-primary {
	background: transparent;
	color: var(--gold);
	border: 1px solid var(--gold);
}

.btn-outline-primary:hover {
	background: var(--gold);
	color: var(--sky-deep);
}

.btn-link {
	background: none;
	color: var(--gold);
	border: none;
	padding: 0;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.btn-link:hover {
	color: var(--gold-light);
	background: none;
	transform: none;
}

.btn-sm {
	padding: .3rem .75rem;
	font-size: .78rem;
}

.btn-lg {
	padding: .7rem 1.8rem;
	font-size: 1rem;
}

.btn-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}


/* ============================================
   SECTION 3: LOGIN FORM
   ============================================ */

#com-users-login,
.com-users-login,
.com-users-registration,
.com-users-reset,
.com-users-remind,
.com-users-profile {
	max-width: 480px;
	margin: 0 auto;
}

.com-users-login__form,
.com-users-registration__form,
.com-users-reset__form,
.com-users-remind__form {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 2rem;
}

.com-users-login__form .control-group,
.com-users-registration__form .control-group {
	margin-bottom: 1.2rem;
}

.com-users-login__options {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--sky-border);
}

.com-users-login__options ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .4rem;
}

.com-users-login__options ul li a {
	font-size: .82rem;
	color: var(--text-soft);
}

.com-users-login__options ul li a:hover {
	color: var(--gold);
}

.com-users-login__remember {
	margin: 1rem 0;
}

.com-users-login__remember .form-check {
	display: flex;
	align-items: center;
	gap: .5rem;
}

/* Password toggle */
.input-password-toggle {
	position: relative;
}

.input-password-toggle .form-control {
	padding-right: 2.8rem;
}

.input-password-toggle .input-password-toggle-btn,
.input-password-toggle button {
	position: absolute;
	right: .5rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: var(--text-muted);
	cursor: pointer;
	padding: .25rem;
	font-size: .85rem;
	transition: color .2s;
}

.input-password-toggle button:hover {
	color: var(--gold);
}

/* Login module in sidebar / header */
.mod-login {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 1.2rem;
}

.mod-login .control-group {
	margin-bottom: .8rem;
}

.mod-login .btn {
	width: 100%;
	margin-top: .5rem;
}

.mod-login .mod-login__options {
	margin-top: .8rem;
	font-size: .78rem;
}

.mod-login .mod-login__options ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.mod-login .mod-login__options a {
	color: var(--text-soft);
	font-size: .78rem;
}

.mod-login .mod-login__options a:hover {
	color: var(--gold);
}


/* ============================================
   SECTION 4: PAGINATION
   ============================================ */

.pagination {
	display: flex;
	gap: .3rem;
	list-style: none;
	padding: 0;
	margin: 2rem 0;
	justify-content: center;
	flex-wrap: wrap;
}

.page-item > .page-link,
.pagination li > a,
.pagination li > span.page-link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2rem;
	height: 2.2rem;
	padding: .3rem .7rem;
	font-size: .82rem;
	border-radius: var(--radius);
	color: var(--text-soft);
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	transition: all .2s;
	text-decoration: none;
}

/* Reset inner icon spans — don't style them as buttons */
.pagination .page-link > span[class^="icon-"] {
	display: inline;
	min-width: 0;
	height: auto;
	padding: 0;
	border: none;
	background: none;
	font-size: inherit;
	color: inherit;
}

.page-item > .page-link:hover,
.pagination li > a:hover {
	border-color: var(--gold);
	color: var(--gold);
	background: var(--gold-glow);
}

.page-item.active > .page-link,
.pagination li.active > span.page-link {
	background: linear-gradient(135deg, var(--gold) 0%, #c49a40 100%);
	color: var(--sky-deep);
	border-color: var(--gold);
	font-weight: 600;
	box-shadow: 0 2px 8px rgba(212,168,83,0.2);
}

.page-item.disabled,
.pagination li.disabled {
	display: none;
}

nav .counter,
.com-content-category__counter {
	text-align: center;
	font-size: .78rem;
	color: var(--text-muted);
	margin-top: .5rem;
}


/* ============================================
   SECTION 5: ALERTS & MESSAGES
   ============================================ */

#system-message-container {
	position: relative;
	z-index: 50;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 1.5rem;
}

.alert {
	position: relative;
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: 1rem 1.4rem;
	margin-bottom: 1rem;
	color: var(--text);
	font-size: .88rem;
	line-height: 1.5;
}

.alert-success {
	border-left: 3px solid #4ade80;
	background: rgba(74,222,128,0.05);
}

.alert-danger {
	border-left: 3px solid #ef4444;
	background: rgba(239,68,68,0.05);
}

.alert-warning {
	border-left: 3px solid var(--gold);
	background: var(--gold-glow);
}

.alert-info {
	border-left: 3px solid var(--accent);
	background: var(--accent-dim);
}

.alert-heading {
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: .4rem;
	color: var(--text);
}

.alert .btn-close,
.alert .close {
	position: absolute;
	top: .8rem;
	right: .8rem;
	background: none;
	border: none;
	color: var(--text-muted);
	cursor: pointer;
	font-size: 1.1rem;
	line-height: 1;
	padding: .2rem;
	opacity: .6;
	transition: opacity .2s;
}

.alert .btn-close:hover,
.alert .close:hover {
	opacity: 1;
	color: var(--text);
}

joomla-alert {
	display: block;
	margin-bottom: 1rem;
}

joomla-alert [role="alert"] {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: 1rem 1.4rem;
	color: var(--text);
	font-size: .88rem;
}

joomla-alert[type="success"] [role="alert"] {
	border-left: 3px solid #4ade80;
	background: rgba(74,222,128,0.05);
}

joomla-alert[type="danger"] [role="alert"],
joomla-alert[type="error"] [role="alert"] {
	border-left: 3px solid #ef4444;
	background: rgba(239,68,68,0.05);
}

joomla-alert[type="warning"] [role="alert"] {
	border-left: 3px solid var(--gold);
	background: var(--gold-glow);
}

joomla-alert[type="info"] [role="alert"] {
	border-left: 3px solid var(--accent);
	background: var(--accent-dim);
}


/* ============================================
   SECTION 6: TABLES
   Full responsive table with mobile card layout
   ============================================ */

table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: .88rem;
}

thead {
	background: var(--sky-card);
}

th {
	text-align: left;
	padding: .7rem .85rem;
	border-bottom: 2px solid rgba(212,168,83,0.2);
	color: var(--gold);
	font-weight: 600;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}

td {
	padding: .65rem .85rem;
	border-bottom: 1px solid var(--sky-border);
	color: var(--text-soft);
	vertical-align: top;
}

tbody tr {
	transition: background .15s;
}

tbody tr:hover {
	background: rgba(212,168,83,0.03);
}

tbody tr:nth-child(even) {
	background: rgba(255,255,255,0.015);
}

tbody tr:nth-child(even):hover {
	background: rgba(212,168,83,0.03);
}

table caption {
	font-size: .82rem;
	color: var(--text-muted);
	padding: .5rem 0;
	caption-side: bottom;
}

/* Responsive table: mobile card layout at 640px */
@media (max-width: 640px) {
	.deus-content table,
	.com-content-category table {
		border: none;
	}

	.deus-content table thead,
	.com-content-category table thead {
		display: none;
	}

	.deus-content table tbody tr,
	.com-content-category table tbody tr {
		display: block;
		background: var(--sky-card);
		border: 1px solid var(--sky-border);
		border-radius: var(--radius);
		padding: .8rem;
		margin-bottom: .8rem;
	}

	.deus-content table tbody tr:nth-child(even),
	.com-content-category table tbody tr:nth-child(even) {
		background: var(--sky-card);
	}

	.deus-content table td,
	.com-content-category table td {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		padding: .4rem 0;
		border-bottom: 1px solid rgba(255,255,255,0.03);
		text-align: right;
	}

	.deus-content table td:last-child,
	.com-content-category table td:last-child {
		border-bottom: none;
	}

	.deus-content table td::before,
	.com-content-category table td::before {
		content: attr(data-label);
		font-weight: 600;
		font-size: .75rem;
		color: var(--gold);
		text-transform: uppercase;
		letter-spacing: .04em;
		text-align: left;
		flex-shrink: 0;
		margin-right: 1rem;
	}
}


/* ============================================
   SECTION 7: MODULES
   ============================================ */

.moduletable {
	margin-bottom: 1.5rem;
}

.moduletable h3 {
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--gold);
	margin-bottom: .8rem;
	padding-bottom: .5rem;
	border-bottom: 1px solid var(--sky-border);
}

.moduletable ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.moduletable ul li a {
	display: block;
	padding: .4rem 0;
	font-size: .85rem;
	color: var(--text-soft);
	border-bottom: 1px solid rgba(255,255,255,0.03);
	transition: all .2s;
}

.moduletable ul li a:hover {
	color: var(--gold);
	padding-left: .3rem;
}

.moduletable ul li:last-child a {
	border-bottom: none;
}

/* Search module */
.mod-search,
.mod-finder {
	position: relative;
}

.mod-search .form-control,
.mod-finder .form-control {
	background: var(--sky-surface);
	border: 1px solid var(--sky-border);
	color: var(--text);
	padding: .5rem .85rem;
	padding-right: 2.5rem;
	font-size: .85rem;
	border-radius: var(--radius);
	width: 100%;
}

.mod-search .btn,
.mod-finder .btn {
	position: absolute;
	right: .3rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: var(--text-muted);
	padding: .3rem;
	cursor: pointer;
}

.mod-search .btn:hover,
.mod-finder .btn:hover {
	color: var(--gold);
	background: none;
	transform: translateY(-50%);
}

/* Language switcher */
.mod-languages ul {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
}

.mod-languages ul li a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .3rem .6rem;
	font-size: .78rem;
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	color: var(--text-soft);
	border-bottom: none;
}

.mod-languages ul li a:hover {
	border-color: var(--gold);
	color: var(--gold);
	padding-left: .6rem;
}

.mod-languages ul li.lang-active a {
	background: var(--gold-dim);
	border-color: rgba(212,168,83,0.3);
	color: var(--gold);
}

/* Breadcrumbs module */
.mod-breadcrumbs {
	margin-bottom: 1.5rem;
}

.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .3rem;
	list-style: none;
	padding: .6rem 0;
	margin: 0;
	font-size: .78rem;
}

.breadcrumb-item {
	color: var(--text-muted);
}

.breadcrumb-item a {
	color: var(--text-soft);
}

.breadcrumb-item a:hover {
	color: var(--gold);
}

.breadcrumb-item + .breadcrumb-item::before {
	content: '/';
	padding: 0 .3rem;
	color: var(--text-muted);
	opacity: .5;
}

.breadcrumb-item.active,
.breadcrumb-item:last-child {
	color: var(--gold);
}

/* Articles category module */
.mod-articles-category ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.mod-articles-category ul li {
	border-bottom: 1px solid rgba(255,255,255,0.03);
}

.mod-articles-category ul li:last-child {
	border-bottom: none;
}

.mod-articles-category ul li a {
	display: block;
	padding: .45rem 0;
	font-size: .85rem;
	color: var(--text-soft);
}

.mod-articles-category ul li a:hover {
	color: var(--gold);
}

/* Related items, most read, latest */
.mod-related-items ul,
.mostread ul,
.latestlist ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.mod-related-items ul li a,
.mostread ul li a,
.latestlist ul li a {
	display: block;
	padding: .4rem 0;
	font-size: .85rem;
	color: var(--text-soft);
	border-bottom: 1px solid rgba(255,255,255,0.03);
	transition: all .2s;
}

.mod-related-items ul li a:hover,
.mostread ul li a:hover,
.latestlist ul li a:hover {
	color: var(--gold);
	padding-left: .3rem;
}

.mod-related-items ul li:last-child a,
.mostread ul li:last-child a,
.latestlist ul li:last-child a {
	border-bottom: none;
}


/* ============================================
   SECTION 8: TAGS
   ============================================ */

.tags,
.tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin: 1rem 0;
}

.tags .tag-list a,
.tag-list a,
.tags a {
	display: inline-block;
	padding: .25rem .65rem;
	font-size: .75rem;
	font-weight: 500;
	color: var(--gold);
	background: var(--gold-dim);
	border: 1px solid rgba(212,168,83,0.15);
	border-radius: 20px;
	transition: all .2s;
	text-decoration: none;
}

.tags a:hover,
.tag-list a:hover {
	background: rgba(212,168,83,0.2);
	border-color: rgba(212,168,83,0.35);
	color: var(--gold-light);
}

.tag-body,
.tag-category,
.com-tags-tag {
	margin-top: 1.5rem;
}

.tag-category .page-header,
.com-tags-tag .page-header {
	margin-bottom: 1.5rem;
}

.tag-category .category-list,
.com-tags-tag__category {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* List group items (tag view, category view) */
.list-group {
	list-style: none;
	padding: 0;
	margin: 0;
}

.list-group-item {
	padding: 1rem 1.2rem;
	border-bottom: 1px solid var(--sky-border);
	transition: background .2s;
}

.list-group-item:last-child {
	border-bottom: none;
}

.list-group-item:hover {
	background: rgba(201,149,46,0.04);
}

.list-group-item h3 {
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 600;
	margin: 0;
}

.list-group-item h3 a {
	color: var(--text);
	text-decoration: none;
}

.list-group-item h3 a:hover {
	color: var(--gold);
}

.list-group-item .text-muted,
.list-group-item small {
	font-size: .82rem;
	color: var(--text-muted);
	margin-top: .2rem;
	display: block;
}

/* Com-tags items container */
.com-tags__items {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

/* Tags page — all tags list */
.com-tags .tag-list,
.com-tags-popular {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.com-tags .tag-list a,
.com-tags-popular a {
	display: inline-block;
	padding: .3rem .8rem;
	font-size: .8rem;
	font-weight: 500;
	color: var(--gold);
	background: rgba(201,149,46,0.08);
	border: 1px solid rgba(201,149,46,0.12);
	border-radius: 20px;
	transition: all .2s;
}

.com-tags .tag-list a:hover,
.com-tags-popular a:hover {
	background: rgba(201,149,46,0.16);
	border-color: rgba(201,149,46,0.3);
	color: var(--gold-light);
}


/* ============================================
   SECTION 9: CATEGORY VIEWS
   ============================================ */

.com-content-category,
.com-content-categories {
	margin-bottom: 2rem;
}

.page-header {
	margin-bottom: 1.5rem;
	padding-bottom: .8rem;
	border-bottom: 1px solid var(--sky-border);
}

.page-header h1,
.page-header h2 {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--text);
}

.category-list,
.cat-children {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cat-children li {
	margin-bottom: .3rem;
}

.cat-children li h3 {
	font-size: .95rem;
	margin: 0;
}

.cat-children li h3 a,
.cat-children .com-content-category-blog__child h3 a {
	display: block;
	color: var(--text);
	font-weight: 500;
	padding: .5rem .85rem;
	border-radius: var(--radius);
	border-left: 2px solid transparent;
	transition: all .2s;
	text-decoration: none;
}

.cat-children li h3 a:hover,
.cat-children .com-content-category-blog__child h3 a:hover {
	color: var(--gold);
	background: rgba(201,149,46,0.04);
	border-left-color: rgba(201,149,46,0.4);
	text-shadow: none;
}

.cat-children .category-desc {
	font-size: .82rem;
	color: var(--text-muted);
	margin-top: .2rem;
}

/* Subcategory children container on category blog pages */
.com-content-category-blog__children.cat-children {
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

.com-content-category-blog__children .com-content-category-blog__child {
	margin-bottom: .15rem;
}

.com-content-category-blog__children .com-content-category-blog__child h3.page-header {
	margin: 0;
	padding: 0;
	border: none;
	font-size: .95rem;
}

/* Category blog pagination wrapper */
.com-content-category-blog__pagination {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--sky-border);
}

/* Category blog layout */
.com-content-category-blog__items .items-row {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}

.com-content-category-blog__items .item {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 1.5rem;
	transition: all .3s;
}

.com-content-category-blog__items .item:hover {
	border-color: rgba(212,168,83,0.2);
	box-shadow: 0 4px 24px rgba(0,0,0,0.3);
	transform: translateY(-2px);
}

/* Category list table */
.com-content-category__table {
	width: 100%;
}

.com-content-categories__items {
	list-style: none;
	padding: 0;
}

.com-content-categories__items li {
	padding: .8rem 0;
	border-bottom: 1px solid var(--sky-border);
}

.com-content-categories__items li:last-child {
	border-bottom: none;
}

.com-content-categories__items h3 {
	font-size: 1rem;
	margin: 0 0 .2rem;
}

.com-content-categories__items h3 a {
	color: var(--text);
}

.com-content-categories__items h3 a:hover {
	color: var(--gold);
}

.com-content-categories__items .category-desc {
	font-size: .82rem;
	color: var(--text-muted);
}


/* ============================================
   SECTION 10: SEARCH (Smart Search / Finder)
   ============================================ */

.com-finder {
	max-width: 700px;
}

#search-form,
.com-finder__search {
	margin-bottom: 2rem;
}

#search-form .input-group {
	display: flex;
}

#search-form .form-control {
	flex: 1;
	font-size: .95rem;
	padding: .7rem 1rem;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

#search-form .btn {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
	padding: .7rem 1.2rem;
}

.com-finder__results {
	margin-top: 1.5rem;
}

.com-finder__results .result-title {
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 600;
	margin-bottom: .2rem;
}

.com-finder__results .result-title a {
	color: var(--text);
}

.com-finder__results .result-title a:hover {
	color: var(--gold);
}

.com-finder__results .result-text {
	font-size: .85rem;
	color: var(--text-soft);
	margin-bottom: .4rem;
	line-height: 1.6;
}

.com-finder__results .result-url {
	font-size: .75rem;
	color: var(--text-muted);
}

.com-finder__results li,
.com-finder__results .search-results li {
	list-style: none;
	padding: 1.2rem 0;
	border-bottom: 1px solid var(--sky-border);
}

.com-finder__results li:last-child {
	border-bottom: none;
}

/* Search highlight */
.highlight, mark, .js-highlight .highlight {
	background: rgba(201,149,46,0.2) !important;
	color: var(--gold-light) !important;
	padding: .05em .2em;
	border-radius: 2px;
}


/* ============================================
   SECTION 11: CONTACT FORM
   ============================================ */

.com-contact {
	max-width: 600px;
}

.com-contact .contact-form {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 2rem;
	margin-top: 1.5rem;
}

.com-contact .contact-form .control-group {
	margin-bottom: 1.2rem;
}

.com-contact .contact-form .control-label label {
	font-size: .82rem;
	font-weight: 500;
	color: var(--text-soft);
}

.com-contact .contact-form .btn {
	margin-top: .5rem;
}

.com-contact .contact-info {
	margin-bottom: 2rem;
}

.com-contact .contact-address,
.com-contact .contact-miscinfo,
.com-contact .contact-links {
	margin-bottom: 1rem;
	font-size: .88rem;
	color: var(--text-soft);
}

.com-contact .contact-address span {
	display: block;
	padding: .15rem 0;
}

.com-contact dl {
	font-size: .88rem;
}

.com-contact dt {
	color: var(--gold);
	font-weight: 600;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	margin-bottom: .2rem;
}

.com-contact dd {
	color: var(--text-soft);
	margin: 0 0 .8rem;
}


/* ============================================
   SECTION 12: CONTENT PLUGINS
   ============================================ */

.readmore {
	margin-top: 1rem;
}

.readmore a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .82rem;
	font-weight: 600;
	color: var(--gold);
	transition: all .2s;
}

.readmore a:hover {
	color: var(--gold-light);
	gap: .5rem;
}

.readmore a::after {
	content: '\2192';
	font-size: .9rem;
	transition: transform .2s;
}

.readmore a:hover::after {
	transform: translateX(3px);
}

.article-info {
	display: flex;
	flex-wrap: wrap;
	gap: .2rem .8rem;
	font-size: .75rem;
	color: var(--text-muted);
	margin-bottom: 1rem;
	padding-bottom: .8rem;
	border-bottom: 1px solid var(--sky-border);
}

.article-info dt {
	display: none;
}

.article-info dd {
	display: inline;
	margin: 0;
}

.article-info dd::before {
	content: '';
}

.article-info-term {
	font-weight: 600;
	color: var(--text-soft);
}

dl.article-info {
	margin: 0;
}

dl.article-info dd {
	display: inline;
	margin: 0 .5rem 0 0;
	font-size: .75rem;
	color: var(--text-muted);
}

.content-links {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--sky-border);
}

.content-links ul {
	list-style: none;
	padding: 0;
}

.content-links ul li {
	margin-bottom: .3rem;
}

.content-links ul li a {
	font-size: .85rem;
	color: var(--gold);
}

/* Vote / print / email icons */
.icons {
	display: flex;
	gap: .8rem;
	margin: .5rem 0;
}

.icons a,
.icons span {
	color: var(--text-muted);
	font-size: .78rem;
	transition: color .2s;
}

.icons a:hover {
	color: var(--gold);
}


/* ============================================
   SECTION 13: ACCESSIBILITY
   ============================================ */

/* Gold focus outline for all interactive elements */
:focus-visible {
	outline: 2px solid var(--gold);
	outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--gold);
	outline-offset: 2px;
}

/* Skip to content link */
.skiplink,
.skip-link,
a.skip-main {
	position: absolute;
	top: -100%;
	left: 1rem;
	background: var(--gold);
	color: var(--sky-deep);
	padding: .6rem 1.2rem;
	font-size: .85rem;
	font-weight: 600;
	border-radius: 0 0 var(--radius) var(--radius);
	z-index: 9999;
	text-decoration: none;
	transition: top .2s;
}

.skiplink:focus,
.skip-link:focus,
a.skip-main:focus {
	top: 0;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}


/* ============================================
   SECTION 14: UTILITY CLASSES
   ============================================ */

.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }

.text-muted  { color: var(--text-muted); }

.clearfix::after {
	content: '';
	display: table;
	clear: both;
}

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

.d-none    { display: none; }
.d-block   { display: block; }
.d-flex    { display: flex; }
.d-inline  { display: inline; }
.d-inline-block { display: inline-block; }
.d-grid    { display: grid; }

.flex-wrap { flex-wrap: wrap; }
.flex-column { flex-direction: column; }

.justify-content-between { justify-content: space-between; }
.justify-content-center  { justify-content: center; }
.justify-content-end     { justify-content: flex-end; }

.align-items-center { align-items: center; }
.align-items-start  { align-items: flex-start; }
.align-items-end    { align-items: flex-end; }

.gap-0 { gap: 0; }
.gap-1 { gap: .25rem; }
.gap-2 { gap: .5rem; }
.gap-3 { gap: 1rem; }
.gap-4 { gap: 1.5rem; }
.gap-5 { gap: 3rem; }

.mt-0 { margin-top: 0; }
.mt-1 { margin-top: .25rem; }
.mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: 1rem; }
.mt-4 { margin-top: 1.5rem; }
.mt-5 { margin-top: 3rem; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: .25rem; }
.mb-2 { margin-bottom: .5rem; }
.mb-3 { margin-bottom: 1rem; }
.mb-4 { margin-bottom: 1.5rem; }
.mb-5 { margin-bottom: 3rem; }

.ms-0 { margin-left: 0; }
.ms-1 { margin-left: .25rem; }
.ms-2 { margin-left: .5rem; }
.ms-3 { margin-left: 1rem; }
.ms-auto { margin-left: auto; }

.me-0 { margin-right: 0; }
.me-1 { margin-right: .25rem; }
.me-2 { margin-right: .5rem; }
.me-3 { margin-right: 1rem; }
.me-auto { margin-right: auto; }

.p-0 { padding: 0; }
.p-1 { padding: .25rem; }
.p-2 { padding: .5rem; }
.p-3 { padding: 1rem; }
.p-4 { padding: 1.5rem; }
.p-5 { padding: 3rem; }

.pt-0 { padding-top: 0; }
.pt-3 { padding-top: 1rem; }
.pt-4 { padding-top: 1.5rem; }

.pb-0 { padding-bottom: 0; }
.pb-3 { padding-bottom: 1rem; }
.pb-4 { padding-bottom: 1.5rem; }

.px-0 { padding-left: 0; padding-right: 0; }
.px-3 { padding-left: 1rem; padding-right: 1rem; }

.py-0 { padding-top: 0; padding-bottom: 0; }
.py-3 { padding-top: 1rem; padding-bottom: 1rem; }

.w-100 { width: 100%; }
.h-100 { height: 100%; }

.overflow-hidden { overflow: hidden; }
.position-relative { position: relative; }


/* ============================================
   SECTION 15: CODE BLOCKS
   ============================================ */

pre {
	background: rgba(0,0,0,0.45);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: 1.1rem 1.3rem;
	overflow-x: auto;
	margin: 1.2rem 0;
	font-family: var(--font-mono);
	font-size: .82rem;
	line-height: 1.65;
	color: var(--text-soft);
	tab-size: 4;
}

code {
	font-family: var(--font-mono);
	font-size: .84rem;
	background: rgba(212,168,83,0.1);
	color: var(--gold-light);
	padding: .15em .4em;
	border-radius: 4px;
}

pre code {
	background: none;
	color: inherit;
	padding: 0;
	font-size: inherit;
	border-radius: 0;
}

kbd {
	font-family: var(--font-mono);
	font-size: .8rem;
	background: var(--sky-card);
	color: var(--text);
	padding: .15em .45em;
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: 4px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.3), inset 0 -1px 0 rgba(0,0,0,0.2);
}

samp {
	font-family: var(--font-mono);
	font-size: .84rem;
	color: var(--accent);
}


/* ============================================
   SECTION 16: IMAGES
   ============================================ */

.item-image {
	margin-bottom: 1.2rem;
	border-radius: var(--radius);
	overflow: hidden;
}

.item-image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--radius);
	transition: transform .4s;
}

.item-image:hover img {
	transform: scale(1.02);
}

.item-image.pull-left,
.pull-left {
	float: left;
	margin: 0 1.5rem 1rem 0;
	max-width: 40%;
}

.item-image.pull-right,
.pull-right {
	float: right;
	margin: 0 0 1rem 1.5rem;
	max-width: 40%;
}

figure {
	margin: 1.5rem 0;
	position: relative;
}

figure img {
	width: 100%;
	border-radius: var(--radius);
	display: block;
}

figcaption {
	font-size: .78rem;
	color: var(--text-muted);
	margin-top: .5rem;
	font-style: italic;
	text-align: center;
}

/* Responsive images */
img.img-fluid,
img[style*="max-width"] {
	max-width: 100%;
	height: auto;
}

@media (max-width: 640px) {
	.item-image.pull-left,
	.item-image.pull-right,
	.pull-left,
	.pull-right {
		float: none;
		max-width: 100%;
		margin: 0 0 1rem 0;
	}
}


/* ============================================
   SECTION 17: BLOCKQUOTES
   ============================================ */

blockquote {
	border-left: 3px solid var(--gold);
	padding: 1.2rem 1.5rem;
	margin: 1.5rem 0;
	background: linear-gradient(135deg, var(--gold-glow) 0%, transparent 100%);
	border-radius: 0 var(--radius) var(--radius) 0;
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-style: italic;
	line-height: 1.6;
	color: var(--text);
	position: relative;
}

blockquote::before {
	content: '\201C';
	position: absolute;
	top: -.15rem;
	left: .6rem;
	font-size: 3rem;
	color: var(--gold);
	opacity: .15;
	font-family: var(--font-display);
	line-height: 1;
}

blockquote p {
	margin-bottom: .5rem;
	color: var(--text);
}

blockquote p:last-child {
	margin-bottom: 0;
}

blockquote cite,
blockquote footer {
	display: block;
	font-size: .78rem;
	font-style: normal;
	color: var(--text-muted);
	margin-top: .5rem;
}

blockquote cite::before {
	content: '\2014\00a0';
}


/* ============================================
   SECTION 18: LISTS IN CONTENT
   ============================================ */

.deus-content ul:not(.pagination):not(.tags) {
	list-style: none;
	padding-left: 1.4rem;
	margin-bottom: 1.2rem;
}

.deus-content ul:not(.pagination):not(.tags) > li {
	position: relative;
	padding-left: .2rem;
	margin-bottom: .35rem;
	color: var(--text-soft);
}

.deus-content ul:not(.pagination):not(.tags) > li::before {
	content: '';
	position: absolute;
	left: -1rem;
	top: .6em;
	width: 5px;
	height: 5px;
	background: var(--gold);
	border-radius: 50%;
	opacity: .5;
	box-shadow: 0 0 6px rgba(201,149,46,0.3);
}

.deus-content ol:not(.com-content-blog__links) {
	padding-left: 1.4rem;
	margin-bottom: 1.2rem;
	counter-reset: ol-counter;
	list-style: none;
}

.deus-content ol:not(.com-content-blog__links) > li {
	position: relative;
	padding-left: .5rem;
	margin-bottom: .35rem;
	color: var(--text-soft);
	counter-increment: ol-counter;
}

.deus-content ol:not(.com-content-blog__links) > li::before {
	content: counter(ol-counter) '.';
	position: absolute;
	left: -1.2rem;
	font-size: .82rem;
	font-weight: 600;
	color: var(--gold);
	opacity: .7;
}

/* "More articles" links list on category blog pages */
ol.com-content-blog__links {
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

ol.com-content-blog__links > li {
	margin-bottom: .15rem;
}

ol.com-content-blog__links > li a {
	display: block;
	padding: .5rem .85rem;
	color: var(--text);
	font-weight: 500;
	font-size: .95rem;
	border-radius: var(--radius);
	border-left: 2px solid transparent;
	text-decoration: none;
	transition: all .2s;
}

ol.com-content-blog__links > li a:hover {
	color: var(--gold);
	background: rgba(201,149,46,0.04);
	border-left-color: rgba(201,149,46,0.4);
	text-shadow: none;
}

.deus-content li > ul,
.deus-content li > ol {
	margin-top: .3rem;
	margin-bottom: .3rem;
}


/* ============================================
   SECTION 19: HORIZONTAL RULES
   ============================================ */

hr {
	border: none;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--gold), transparent);
	margin: 2rem 0;
	opacity: .3;
}


/* ============================================
   SECTION 20: LANGUAGE Q&A FOOTER NOTE
   ============================================ */

.deus-lang-note {
	background: rgba(255,255,255,0.02);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: .8rem 1.2rem;
	margin-top: 2rem;
	font-size: .75rem;
	color: var(--text-muted);
	line-height: 1.6;
}

.deus-lang-note summary {
	cursor: pointer;
	font-weight: 500;
	color: var(--text-soft);
	font-size: .78rem;
	padding: .2rem 0;
	list-style: none;
	display: flex;
	align-items: center;
	gap: .4rem;
	transition: color .2s;
}

.deus-lang-note summary::-webkit-details-marker {
	display: none;
}

.deus-lang-note summary::before {
	content: '\25B6';
	font-size: .55rem;
	transition: transform .2s;
	color: var(--gold);
	opacity: .5;
}

.deus-lang-note[open] summary::before {
	transform: rotate(90deg);
}

.deus-lang-note summary:hover {
	color: var(--gold);
}

.deus-lang-note p {
	margin: .5rem 0 0;
	color: var(--text-muted);
	font-size: .75rem;
}

.deus-lang-note a {
	color: var(--gold);
	opacity: .7;
}

.deus-lang-note a:hover {
	opacity: 1;
}

/* Footer notes container */
.deus-footer-notes {
	display: flex;
	flex-direction: column;
	gap: .8rem;
}

/* AI disclaimer */
.deus-ai-disclaimer {
	font-size: .68rem;
	color: var(--text-muted);
	opacity: .7;
	line-height: 1.55;
	padding-left: 1.2rem;
	border-left: 2px solid rgba(201,149,46,0.1);
}

/* --- Sidebar difficulty buttons --- */
.deus-sidebar-diff-btns {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	margin-bottom: 1.2rem;
}

.deus-sidebar-diff-btns a {
	display: block;
	padding: .5rem .8rem;
	border-radius: var(--radius);
	font-size: .8rem;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	transition: all .2s;
}

.deus-sidebar-diff-btns .deus-side-beginner {
	background: rgba(34,197,94,.1);
	border: 1px solid rgba(34,197,94,.25);
	color: #4ade80;
}

.deus-sidebar-diff-btns .deus-side-beginner:hover {
	background: rgba(34,197,94,.2);
	border-color: #4ade80;
}

.deus-sidebar-diff-btns .deus-side-intermediate {
	background: rgba(234,179,8,.1);
	border: 1px solid rgba(234,179,8,.25);
	color: #facc15;
}

.deus-sidebar-diff-btns .deus-side-intermediate:hover {
	background: rgba(234,179,8,.2);
	border-color: #facc15;
}

.deus-sidebar-diff-btns .deus-side-advanced {
	background: rgba(239,68,68,.1);
	border: 1px solid rgba(239,68,68,.25);
	color: #f87171;
}

.deus-sidebar-diff-btns .deus-side-advanced:hover {
	background: rgba(239,68,68,.2);
	border-color: #f87171;
}

/* --- Hide Joomla default custom field rendering (plugin handles it) --- */
ul.fields-container {
	display: none;
}

/* --- Header actions (search + hamburger) --- */
.deus-header-actions {
	display: flex;
	align-items: center;
	gap: .3rem;
}

/* --- Search icon in header --- */
.deus-search-toggle {
	background: none;
	border: none;
	cursor: pointer;
	padding: .5rem;
	color: var(--text-soft);
	transition: color .25s;
	display: flex;
	align-items: center;
}

.deus-search-toggle:hover {
	color: var(--gold);
}

.deus-search-toggle svg {
	width: 18px;
	height: 18px;
}

/* --- Sidebar search --- */
/* --- Search bar (header dropdown) --- */
.deus-search-bar {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--sky-mid);
	border-bottom: 1px solid var(--sky-border-hi);
	padding: .8rem 0;
	z-index: 100;
}

.deus-search-bar.is-open {
	display: block;
}

.deus-search-bar form {
	display: flex;
	gap: .5rem;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 1rem;
}

.deus-search-bar input[type="search"],
.deus-search-bar input[type="text"] {
	flex: 1;
	background: var(--sky-card);
	border: 1px solid var(--sky-border-hi);
	border-radius: var(--radius);
	padding: .6rem 1rem;
	color: var(--text);
	font-size: .9rem;
	font-family: var(--font-body);
}

.deus-search-bar input:focus {
	outline: none;
	border-color: rgba(201,149,46,0.35);
}

.deus-search-bar button[type="submit"] {
	background: var(--gold-dim);
	border: 1px solid var(--sky-border-hi);
	border-radius: var(--radius);
	color: var(--gold);
	padding: .6rem 1.2rem;
	cursor: pointer;
	font-size: .85rem;
	font-weight: 500;
	transition: background .25s;
}

.deus-search-bar button[type="submit"]:hover {
	background: rgba(201,149,46,0.2);
}

/* --- Sidebar search --- */
.deus-sidebar-search {
	margin-bottom: 1.2rem;
}

.deus-sidebar-search .mod-finder__search,
.deus-sidebar-search .search-query,
.deus-sidebar-search input[type="search"],
.deus-sidebar-search input[type="text"] {
	width: 100%;
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius);
	padding: .55rem .8rem;
	color: var(--text);
	font-size: .82rem;
	font-family: var(--font-body);
	transition: border-color .25s;
}

.deus-sidebar-search input:focus {
	outline: none;
	border-color: rgba(201,149,46,0.3);
}

.deus-sidebar-search .finder__buttons,
.deus-sidebar-search .search-button,
.deus-sidebar-search label {
	display: none;
}

/* ── Smart Search results page ────────────────────────── */
.deus-finder {
	max-width: 720px;
	margin: 0 auto;
}

.deus-search-form {
	margin-bottom: 2rem;
	max-width: 540px;
	margin-left: auto;
	margin-right: auto;
}

.deus-search-row {
	display: flex;
	gap: .5rem;
}

.deus-search-input {
	flex: 1;
	background: var(--sky-card);
	border: 1px solid var(--sky-border-hi);
	border-radius: var(--radius);
	padding: .7rem 1rem;
	color: var(--text);
	font-size: 1rem;
	font-family: var(--font-body);
}

.deus-search-input:focus {
	outline: none;
	border-color: rgba(201,149,46,0.4);
}

.deus-search-submit {
	background: var(--gold-dim);
	border: 1px solid var(--gold);
	border-radius: var(--radius);
	color: var(--gold-light);
	padding: .7rem 1.5rem;
	cursor: pointer;
	font-size: .9rem;
	font-weight: 600;
	font-family: var(--font-body);
	transition: background .25s;
}

.deus-search-submit:hover {
	background: rgba(201,149,46,0.25);
}

.deus-search-count {
	color: var(--text-muted);
	font-size: .82rem;
	margin-bottom: 1rem;
}

.deus-search-results-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.deus-search-result {
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg, 8px);
	padding: 1rem 1.2rem;
	transition: border-color .2s, background .2s;
}

.deus-search-result:hover {
	border-color: var(--sky-border-hi);
	background: var(--sky-card-hi);
}

.deus-search-result-title {
	display: block;
	color: var(--gold-light, #e8c55a);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	margin-bottom: .3rem;
}

.deus-search-result-title:hover {
	color: var(--gold);
}

.deus-search-result-desc {
	color: var(--text-muted);
	font-size: .85rem;
	line-height: 1.5;
	margin: 0;
}

.deus-search-empty {
	text-align: center;
	color: var(--text-muted);
	padding: 2rem 0;
	font-size: .95rem;
}

.deus-search-pagination {
	margin-top: 1.5rem;
	text-align: center;
}

/* Hide Joomla's default finder styles that leak through */
.com-finder .com-finder__search,
.com-finder .com-finder__advanced {
	display: none;
}

/* ── Scroll to top button ─────────────────────────────── */
.deus-to-top {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--sky-card);
	border: 1px solid var(--sky-border-hi);
	color: var(--gold-light, #e8c55a);
	font-size: 1.2rem;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s, background .2s;
	z-index: 300;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(0,0,0,.3);
}

.deus-to-top.is-visible {
	opacity: 1;
	visibility: visible;
}

.deus-to-top:hover {
	background: var(--gold-dim);
	border-color: var(--gold);
}

/* --- Article pagination (Forrige/Neste) --- */
.pagenavigation {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--sky-border);
}

/* --- 108 Methods Grid --- */
.deus-108-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: .75rem;
	margin-bottom: 1.5rem;
}

.deus-108-item {
	display: flex;
	flex-direction: column;
	background: var(--sky-card);
	border: 1px solid var(--sky-border);
	border-radius: var(--radius-lg);
	padding: 1rem 1.2rem;
	text-decoration: none;
	color: var(--text);
	transition: all .25s ease;
	cursor: pointer;
}

.deus-108-item:hover {
	border-color: var(--sky-border-hi);
	background: var(--sky-card-hi);
	transform: translateY(-2px);
	box-shadow: 0 4px 20px rgba(0,0,0,.3);
	text-shadow: none;
}

.deus-108-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: .5rem;
}

.deus-108-level {
	font-size: .68rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: .15rem .5rem;
	border-radius: 4px;
}

.deus-108-beginner .deus-108-level {
	background: rgba(34,197,94,.15);
	color: #4ade80;
}

.deus-108-intermediate .deus-108-level {
	background: rgba(234,179,8,.15);
	color: #facc15;
}

.deus-108-advanced .deus-108-level {
	background: rgba(239,68,68,.15);
	color: #f87171;
}

.deus-108-income {
	font-size: .78rem;
	font-weight: 500;
	color: var(--gold-light);
}

.deus-108-title {
	font-size: .92rem;
	font-weight: 600;
	margin: 0 0 .35rem;
	line-height: 1.3;
	color: var(--text);
	font-family: var(--font-body);
}

.deus-108-item:hover .deus-108-title {
	color: var(--gold-light);
}

.deus-108-desc {
	font-size: .8rem;
	color: var(--text-muted);
	line-height: 1.45;
	margin: 0;
}

/* Remove h2::after gold line inside 108 article */
.com-content-article__body:has(.deus-108-grid) h2::after {
	display: none;
}

@media (max-width: 640px) {
	.deus-108-grid {
		grid-template-columns: 1fr;
	}
}

/* --- Ad Slots (TAID Ads) --- */
.taid-ad-slot {
	margin: 2.5rem auto;
	padding: 1.2rem;
	max-width: 720px;
	background: linear-gradient(135deg, rgba(201,149,46,0.03) 0%, transparent 60%);
	border: 1px solid rgba(201,149,46,0.08);
	border-radius: var(--radius-lg);
	text-align: center;
	position: relative;
	overflow: hidden;
}

.taid-ad-slot::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(201,149,46,0.15), transparent);
}

.taid-ad-slot img {
	max-width: 100%;
	height: auto;
	border-radius: var(--radius);
	display: block;
	margin: 0 auto;
}

.taid-ad-slot a {
	text-decoration: none;
	display: block;
}

.taid-ad-slot .taid-ad-label {
	display: block;
	font-size: .65rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: .6rem;
	opacity: .6;
}

/* Top slot — full width, above article content */
.taid-ad-top {
	margin-top: 0;
	margin-bottom: 2.5rem;
}

/* Mid slot — between sections, slightly inset feel */
.taid-ad-mid {
	margin: 3rem auto;
	border-left: 2px solid rgba(201,149,46,0.12);
	border-right: 2px solid rgba(201,149,46,0.12);
}

/* Bottom slot — after article, before related */
.taid-ad-bottom {
	margin-top: 3rem;
	margin-bottom: 1rem;
	border-top: 1px solid rgba(201,149,46,0.06);
	padding-top: 1.5rem;
}

/* Category listing slot — between article cards */
.taid-ad-category {
	grid-column: 1 / -1;
	margin: .5rem 0;
}

/* Demo ad banners — clickable block linking to /annonsering */
.taid-ad-slot a.taid-ad-demo {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	padding: 1.5rem 1rem;
	text-decoration: none;
	color: var(--text-soft);
	border: 1px dashed rgba(201,149,46,0.15);
	border-radius: 8px;
	background: linear-gradient(135deg, rgba(201,149,46,0.04), transparent 60%);
	transition: all .3s;
}

.taid-ad-slot a.taid-ad-demo:hover {
	border-color: rgba(201,149,46,0.3);
	background: linear-gradient(135deg, rgba(201,149,46,0.08), transparent 60%);
	text-decoration: none;
}

.taid-ad-slot .taid-ad-headline {
	display: block;
	font-size: .85rem;
	font-weight: 600;
	color: var(--gold-light, #e8c55a);
	text-align: center;
}

.taid-ad-slot .taid-ad-sub {
	display: block;
	font-size: .75rem;
	color: var(--text-muted);
	text-align: center;
	max-width: 420px;
}

.taid-ad-slot .taid-ad-cta {
	display: block;
	font-size: .72rem;
	font-weight: 600;
	color: var(--gold);
	letter-spacing: .02em;
	margin-top: .25rem;
	transition: color .2s;
}

.taid-ad-slot a.taid-ad-demo:hover .taid-ad-cta {
	color: var(--gold-light, #e8c55a);
}

/* Responsive */
@media (max-width: 640px) {
	.taid-ad-slot {
		padding: .8rem;
		margin: 1.5rem auto;
	}
	.taid-ad-mid {
		border-left-width: 1px;
		border-right-width: 1px;
	}
}
