/*
Theme Name:   Ludexa
Theme URI:    https://gamesyncwp.com/ludexa-theme/
Author:       GameSync WP
Author URI:   https://gamesyncwp.com
Description:  A wiki-style reference theme for the GameSync WP Importer plugin -- a fixed light "encyclopedia" look, a two-column article layout with an auto-generated Contents box and a quick-facts infobox, and a scale-aware "All Articles" A-Z index. A third, distinct-looking premium option alongside PixelWire and Presswire, included with the same GameSync WP Pro license.
Version:      1.0.2
Requires at least: 5.8
Requires PHP: 7.4
License:      GPL v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  ludexa
Tags:         blog, entertainment, custom-menu, featured-images, footer-widgets, full-width-template, threaded-comments

This is a from-scratch original theme. Any resemblance to other reference/
wiki-style sites is a matter of shared genre convention (a quick-facts
sidebar, a contents box, plain alphabetical listings) rather than copied
code or assets.

Ludexa WordPress Theme, Copyright 2026 GameSync WP.
Ludexa is distributed under the terms of the GNU GPL v2 or later.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/gpl-2.0.html.

Ludexa loads the Source Serif 4 and Public Sans fonts from Google Fonts at
runtime (see functions.php) -- the same approach the premium PixelWire and
Presswire themes already use, since (unlike the free GameSync Lite theme)
none of the three is bound by wp.org's self-hosting requirement. Source
Serif 4 is reserved for the wordmark and H1s only; every other heading and
all body text use Public Sans, which is deliberately the opposite emphasis
from Presswire's own serif-forward headlines -- a wiki reads as reference
material, not as a magazine.
*/

/* ==========================================================================
   Design tokens -- fixed light "encyclopedia" scheme (no dark mode)
   ========================================================================== */
:root {
	--ldx-paper: #ffffff;
	--ldx-bg: #f6f6f4;
	--ldx-bg-strong: #eef0f2;
	--ldx-ink: #1b1b1b;
	--ldx-ink-soft: #54595d;
	--ldx-ink-faint: #8a8d91;
	--ldx-rule: #dadde1;
	--ldx-rule-strong: #a2a9b1;
	--ldx-accent: #2b5b84;
	--ldx-accent-dark: #1f4463;
	--ldx-accent-soft: #e6eef4;
	--ldx-good: #2f6d4f;
	--ldx-good-soft: #e1efe7;
	--ldx-mid: #8a6a1c;
	--ldx-mid-soft: #f5edda;
	--ldx-low: #93382c;
	--ldx-low-soft: #f3e0dc;

	--ldx-font-display: 'Source Serif 4', Georgia, serif;
	--ldx-font-body: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

	--ldx-radius: 3px;
	--ldx-container: 1180px;
	--ldx-infobox-width: 300px;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--ldx-bg);
	color: var(--ldx-ink);
	font-family: var(--ldx-font-body);
	font-size: 16px;
	line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ldx-accent); text-decoration: none; }
a:hover { color: var(--ldx-accent-dark); text-decoration: underline; }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ldx-font-body);
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 0.5em;
	color: var(--ldx-ink);
}
p { margin: 0 0 1.2em; }
ul, ol { padding-left: 1.3em; }
button, input, textarea, select { font-family: inherit; font-size: inherit; }
table { border-collapse: collapse; width: 100%; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.ldx-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--ldx-ink);
	color: #fff;
	padding: 10px 18px;
	z-index: 10000;
	border-radius: 0 0 var(--ldx-radius) 0;
}
.ldx-skip-link:focus { left: 0; }

.ldx-site { background: var(--ldx-paper); }

.ldx-container {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 0 24px;
}

/* ==========================================================================
   Topbar
   ========================================================================== */
.ldx-topbar {
	background: var(--ldx-bg-strong);
	border-bottom: 1px solid var(--ldx-rule);
	color: var(--ldx-ink-soft);
	font-size: 13px;
}
.ldx-topbar__inner {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 7px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.ldx-topbar__count { letter-spacing: 0.01em; }
.ldx-topbar__count-link { color: inherit; text-decoration: none; }
.ldx-topbar__count-link:hover { color: var(--ldx-accent); text-decoration: underline; }
.ldx-topbar-menu { list-style: none; display: flex; gap: 18px; margin: 0; padding: 0; }
.ldx-topbar-menu a { color: var(--ldx-ink-soft); }
.ldx-topbar-menu a:hover { color: var(--ldx-accent); }

/* ==========================================================================
   Masthead / header
   ========================================================================== */
.ldx-header {
	background: var(--ldx-paper);
	border-bottom: 1px solid var(--ldx-rule-strong);
}
.ldx-header__inner {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 20px 24px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 18px;
}
.ldx-branding { display: flex; flex-direction: column; margin-right: auto; }
.ldx-brand-link { display: inline-flex; flex-direction: column; }
.ldx-logo-text {
	font-family: var(--ldx-font-display);
	font-size: 30px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ldx-ink);
}
.ldx-logo-text:hover { color: var(--ldx-ink); text-decoration: none; }
.custom-logo-link img { max-height: 50px; width: auto; }
.ldx-tagline {
	font-size: 13px;
	color: var(--ldx-ink-soft);
	margin-top: 2px;
}

.ldx-header__search { flex: 1 1 320px; max-width: 420px; }

.ldx-icon-btn {
	background: none;
	border: 1px solid var(--ldx-rule-strong);
	border-radius: 50%;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ldx-ink);
	cursor: pointer;
}
.ldx-icon-btn:hover { border-color: var(--ldx-accent); color: var(--ldx-accent); }
.ldx-mobile-toggle { display: none; }

.ldx-nav-menu-wrap {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	border-top: 1px solid var(--ldx-rule);
}
.ldx-nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2px 26px;
	font-weight: 600;
	font-size: 14px;
}
.ldx-nav-menu a { display: inline-block; padding: 12px 0; color: var(--ldx-ink); }
.ldx-nav-menu a:hover, .ldx-nav-menu .current-menu-item > a { color: var(--ldx-accent); text-decoration: none; }
.ldx-nav-menu ul { list-style: none; padding-left: 1em; }
.ldx-nav-menu__random {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--ldx-ink-soft);
	white-space: nowrap;
}
.ldx-nav-menu__random:hover { color: var(--ldx-accent); text-decoration: none; }

/* ==========================================================================
   Search form
   ========================================================================== */
.ldx-search-form {
	display: flex;
	align-items: center;
	gap: 0;
	background: var(--ldx-bg);
	border: 1px solid var(--ldx-rule-strong);
	border-radius: 999px;
	padding: 2px 6px 2px 14px;
}
.ldx-search-form__icon { color: var(--ldx-ink-faint); flex-shrink: 0; }
.ldx-search-form__input {
	flex: 1 1 auto;
	padding: 8px 10px;
	border: none;
	background: transparent;
	min-width: 0;
}
.ldx-search-form__input:focus { outline: none; }
.ldx-search-form__button {
	background: var(--ldx-accent);
	color: #fff;
	border: none;
	padding: 8px 18px;
	border-radius: 999px;
	cursor: pointer;
	font-weight: 600;
	font-size: 13px;
}
.ldx-search-form__button:hover { background: var(--ldx-accent-dark); }

/* ==========================================================================
   Section headers
   ========================================================================== */
.ldx-section { margin-bottom: 48px; }
.ldx-section-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	border-bottom: 2px solid var(--ldx-ink);
	padding-bottom: 8px;
	margin-bottom: 22px;
	gap: 12px;
}
.ldx-section-header__title { font-size: 21px; margin: 0; }
.ldx-section-header__link { font-size: 13px; font-weight: 600; white-space: nowrap; }
.ldx-eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--ldx-ink-soft);
	margin-bottom: 8px;
}
.ldx-featured-tag {
	display: inline-flex;
	align-items: center;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--ldx-accent-dark);
	background: var(--ldx-accent-soft);
	padding: 3px 9px;
	border-radius: 999px;
	margin: 0 0 8px 8px;
}

/* ==========================================================================
   Featured Article panel (front page)
   ========================================================================== */
.ldx-featured {
	padding: 36px 0 40px;
	border-bottom: 1px solid var(--ldx-rule);
	margin-bottom: 40px;
}
.ldx-featured__eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--ldx-ink-soft);
	margin-bottom: 14px;
}
.ldx-featured__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 36px;
	align-items: center;
}
.ldx-featured__title { font-family: var(--ldx-font-display); font-size: 38px; margin: 0 0 14px; }
.ldx-featured__title a { color: var(--ldx-ink); }
.ldx-featured__title a:hover { color: var(--ldx-accent); text-decoration: none; }
.ldx-featured__dek { font-size: 17px; color: var(--ldx-ink-soft); margin-bottom: 18px; }
.ldx-featured__media { border-radius: var(--ldx-radius); overflow: hidden; background: var(--ldx-bg-strong); aspect-ratio: 16 / 9; }
.ldx-featured__media img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   Category tiles (front page "Browse by Category")
   ========================================================================== */
.ldx-category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 12px;
}
.ldx-category-tile {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px;
	background: var(--ldx-bg);
	border: 1px solid var(--ldx-rule);
	border-radius: var(--ldx-radius);
	color: var(--ldx-ink);
}
.ldx-category-tile:hover { border-color: var(--ldx-accent); background: var(--ldx-accent-soft); text-decoration: none; }
.ldx-category-tile__name { font-weight: 700; font-size: 15px; }
.ldx-category-tile__count { font-size: 12px; color: var(--ldx-ink-soft); }
.ldx-category-tile:hover .ldx-category-tile__count { color: var(--ldx-accent-dark); }

/* ==========================================================================
   Page layout grids
   ========================================================================== */
.ldx-page-columns {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 36px 24px 64px;
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 44px;
	align-items: start;
}
.ldx-page-columns--full { grid-template-columns: 1fr; }
.ldx-main { min-width: 0; }

/* Article layout: infobox occupies the same right-hand column the plain
   sidebar uses elsewhere, but is placed explicitly by grid-column rather
   than relying on source order, so it can stay first in the markup (for a
   sensible reading/tab order and for the single-column mobile layout,
   where it should appear above the article) while still rendering on the
   right at desktop widths. */
.ldx-article-layout {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 36px 24px 64px;
	display: grid;
	grid-template-columns: 1fr var(--ldx-infobox-width);
	gap: 44px;
	align-items: start;
}
.ldx-article-layout .ldx-infobox { grid-column: 2; grid-row: 1; }
.ldx-article-layout .ldx-main { grid-column: 1; grid-row: 1; }

/* ==========================================================================
   Infobox
   ========================================================================== */
.ldx-infobox {
	background: var(--ldx-bg);
	border: 1px solid var(--ldx-rule-strong);
	border-radius: var(--ldx-radius);
	overflow: hidden;
}
.ldx-infobox__title {
	font-family: var(--ldx-font-body);
	font-size: 16px;
	font-weight: 700;
	text-align: center;
	background: var(--ldx-bg-strong);
	border-bottom: 1px solid var(--ldx-rule-strong);
	margin: 0;
	padding: 12px 14px;
}
.ldx-infobox__image { background: var(--ldx-rule); }
.ldx-infobox__image img { width: 100%; }
.ldx-infobox__table { font-size: 13.5px; }
.ldx-infobox__table tr { border-bottom: 1px solid var(--ldx-rule); }
.ldx-infobox__table tr:last-child { border-bottom: none; }
.ldx-infobox__table th,
.ldx-infobox__table td {
	text-align: left;
	vertical-align: top;
	padding: 8px 14px;
}
.ldx-infobox__table th {
	width: 38%;
	color: var(--ldx-ink-soft);
	font-weight: 600;
	white-space: nowrap;
}
.ldx-infobox__table td { color: var(--ldx-ink); }
.ldx-infobox__score-row td { display: flex; align-items: center; gap: 7px; }
.ldx-infobox__score-plugin { display: inline-block; }

/* ==========================================================================
   Score dot (infobox + index rows)
   ========================================================================== */
.ldx-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--ldx-mid);
	flex-shrink: 0;
}
.ldx-dot--good { background: var(--ldx-good); }
.ldx-dot--mid { background: var(--ldx-mid); }
.ldx-dot--low { background: var(--ldx-low); }

/* ==========================================================================
   Table of contents box
   ========================================================================== */
.ldx-toc {
	display: inline-block;
	background: var(--ldx-bg);
	border: 1px solid var(--ldx-rule-strong);
	border-radius: var(--ldx-radius);
	padding: 16px 22px;
	margin: 0 0 28px;
	max-width: 100%;
}
.ldx-toc__title {
	font-weight: 700;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0 0 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--ldx-rule);
}
.ldx-toc__list, .ldx-toc__sublist {
	list-style: decimal;
	margin: 0;
	padding-left: 1.4em;
	font-size: 14px;
}
.ldx-toc__list { padding-left: 1.2em; }
.ldx-toc__list > li { margin-bottom: 4px; }
.ldx-toc__sublist { list-style: lower-alpha; margin-top: 4px; }
.ldx-toc a { color: var(--ldx-ink); }
.ldx-toc a:hover { color: var(--ldx-accent); text-decoration: none; }

/* ==========================================================================
   Single article / post
   ========================================================================== */
.ldx-single__header { max-width: 760px; margin: 0 auto 20px; }
.ldx-single__title { font-family: var(--ldx-font-display); font-size: 40px; font-weight: 600; }
.ldx-entry-meta { color: var(--ldx-ink-soft); font-size: 13.5px; }
.ldx-entry-meta span:not(:last-child)::after { content: '\2014'; margin: 0 8px; color: var(--ldx-rule-strong); }
.ldx-byline { font-weight: 600; color: var(--ldx-ink); }

.ldx-single__media { margin-bottom: 24px; border-radius: var(--ldx-radius); overflow: hidden; }
.ldx-single__media img { width: 100%; }

.ldx-lead {
	font-size: 17px;
	color: var(--ldx-ink-soft);
	max-width: 760px;
	margin: 0 0 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ldx-rule);
}

.ldx-single__content {
	max-width: 100%;
	font-size: 16px;
	line-height: 1.75;
}
.ldx-single__content h2 { font-size: 23px; margin-top: 1.4em; scroll-margin-top: 20px; }
.ldx-single__content h3 { font-size: 19px; margin-top: 1.2em; scroll-margin-top: 20px; }
.ldx-single__content blockquote {
	border-left: 3px solid var(--ldx-accent);
	margin: 1.6em 0;
	padding: 4px 0 4px 22px;
	font-size: 16px;
	font-style: italic;
	color: var(--ldx-ink-soft);
}
.ldx-heading-anchor { }

.ldx-inline-score { font-size: 15px; }

.ldx-categories-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 8px 0 22px; font-size: 13.5px; }
.ldx-categories-bar__label { color: var(--ldx-ink-soft); font-weight: 600; }
.ldx-categories-bar__link {
	padding: 3px 11px;
	border: 1px solid var(--ldx-rule-strong);
	border-radius: 999px;
	color: var(--ldx-ink-soft);
}
.ldx-categories-bar__link:hover { border-color: var(--ldx-accent); color: var(--ldx-accent); text-decoration: none; }

.ldx-last-edited { color: var(--ldx-ink-faint); font-size: 13px; font-style: italic; margin: 8px 0 28px; }

.ldx-gallery { max-width: 100%; margin: 32px 0; }
.ldx-gallery__strip {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	padding-bottom: 6px;
	scroll-snap-type: x proximity;
}
.ldx-gallery__item {
	position: relative;
	flex: 0 0 auto;
	width: 300px;
	border-radius: var(--ldx-radius);
	overflow: hidden;
	scroll-snap-align: start;
	background: var(--ldx-rule);
	cursor: zoom-in;
}
.ldx-gallery__item img { width: 100%; display: block; transition: transform .3s ease; }
.ldx-gallery__item:hover img { transform: scale(1.05); }
.ldx-gallery__zoom {
	position: absolute;
	top: 50%; left: 50%;
	width: 34px; height: 34px;
	margin: -17px 0 0 -17px;
	border-radius: 50%;
	background: rgba(27, 27, 27, .62);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	opacity: 0;
	transition: opacity .2s ease;
	pointer-events: none;
}
.ldx-gallery__item:hover .ldx-gallery__zoom { opacity: 1; }

/* Screenshot lightbox -- created by assets/js/main.js and appended to
   <body> once any [data-ldx-lightbox] link exists on the page. */
.ldx-lightbox { position: fixed; inset: 0; background: rgba(20, 20, 20, .92); z-index: 100; display: none; align-items: center; justify-content: center; padding: 30px; }
.ldx-lightbox.is-open { display: flex; }
.ldx-lightbox__inner { position: relative; max-width: 1100px; max-height: 100%; }
.ldx-lightbox__img { display: block; max-width: 100%; max-height: 80vh; margin: 0 auto; border-radius: var(--ldx-radius); box-shadow: 0 10px 40px rgba(0, 0, 0, .5); }
.ldx-lightbox__close { position: absolute; top: -40px; right: 0; background: none; border: none; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.ldx-lightbox__counter { position: absolute; bottom: -30px; left: 0; right: 0; text-align: center; color: #fff; font-size: 13px; opacity: .75; }
.ldx-lightbox__nav {
	position: fixed; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border-radius: 50%;
	background: rgba(255, 255, 255, .15); color: #fff; border: none;
	font-size: 24px; z-index: 101; cursor: pointer;
}
.ldx-lightbox__nav:hover { background: rgba(255, 255, 255, .3); }
.ldx-lightbox__nav--prev { left: 20px; }
.ldx-lightbox__nav--next { right: 20px; }

.ldx-author-box {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: var(--ldx-bg);
	border: 1px solid var(--ldx-rule);
	border-radius: var(--ldx-radius);
	padding: 18px;
	margin: 28px 0;
}
.ldx-author-box img { border-radius: 50%; }
.ldx-author-box__name { margin: 0 0 4px; font-size: 15px; }
.ldx-author-box__bio { margin: 0; color: var(--ldx-ink-soft); font-size: 13.5px; }

.ldx-page-links { clear: both; margin: 22px 0; font-size: 13.5px; }
.ldx-page-links a { border: 1px solid var(--ldx-rule-strong); padding: 4px 10px; border-radius: var(--ldx-radius); margin: 0 4px; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.ldx-btn, .ldx-btn-outline {
	display: inline-block;
	font-weight: 700;
	font-size: 14px;
	padding: 10px 22px;
	border-radius: var(--ldx-radius);
	cursor: pointer;
}
.ldx-btn { background: var(--ldx-accent); color: #fff; border: 1px solid var(--ldx-accent); }
.ldx-btn:hover { background: var(--ldx-accent-dark); border-color: var(--ldx-accent-dark); color: #fff; text-decoration: none; }
.ldx-btn-outline { background: transparent; color: var(--ldx-ink); border: 1px solid var(--ldx-rule-strong); }
.ldx-btn-outline:hover { border-color: var(--ldx-accent); color: var(--ldx-accent); text-decoration: none; }

/* ==========================================================================
   Index list (games / posts listing rows)
   ========================================================================== */
.ldx-index-list { display: flex; flex-direction: column; }
.ldx-index-item {
	display: grid;
	grid-template-columns: 120px 1fr auto;
	gap: 18px;
	align-items: center;
	padding: 18px 0;
	border-bottom: 1px solid var(--ldx-rule);
}
.ldx-index-item:first-child { padding-top: 0; }
.ldx-index-item__media {
	border-radius: var(--ldx-radius);
	overflow: hidden;
	background: var(--ldx-rule);
	aspect-ratio: 4 / 3;
}
.ldx-index-item__media img { width: 100%; height: 100%; object-fit: cover; }
.ldx-index-item__body { min-width: 0; }
.ldx-index-item__title { font-size: 18px; margin: 0 0 5px; }
.ldx-index-item__title a { color: var(--ldx-ink); }
.ldx-index-item__title a:hover { color: var(--ldx-accent); text-decoration: none; }
.ldx-index-item__dek { color: var(--ldx-ink-soft); font-size: 14px; margin: 0 0 7px; }
.ldx-index-item__facts { font-size: 12.5px; color: var(--ldx-ink-faint); display: flex; flex-wrap: wrap; gap: 4px 12px; }
.ldx-index-item__score { justify-self: end; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ldx-ink-soft); white-space: nowrap; }

.ldx-placeholder-img {
	width: 100%; height: 100%;
	background: linear-gradient(135deg, var(--ldx-rule) 0%, var(--ldx-rule-strong) 100%);
}

/* ==========================================================================
   All Articles: A-Z index
   ========================================================================== */
.ldx-az-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 14px 16px;
	margin-bottom: 28px;
	background: var(--ldx-bg);
	border: 1px solid var(--ldx-rule);
	border-radius: var(--ldx-radius);
	position: sticky;
	top: 0;
	z-index: 5;
}
.ldx-az-jump a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	padding: 0 4px;
	color: var(--ldx-ink-soft);
	font-size: 13px;
	font-weight: 700;
	border-radius: var(--ldx-radius);
}
.ldx-az-jump a:hover { background: var(--ldx-accent-soft); color: var(--ldx-accent-dark); text-decoration: none; }

.ldx-az-group { margin-bottom: 34px; scroll-margin-top: 60px; }
.ldx-az-group__letter {
	font-family: var(--ldx-font-display);
	font-size: 26px;
	border-bottom: 2px solid var(--ldx-ink);
	padding-bottom: 6px;
	margin-bottom: 10px;
}
.ldx-az-list { list-style: none; margin: 0; padding: 0; column-width: 300px; column-gap: 32px; }
.ldx-az-list li { padding: 6px 0; border-bottom: 1px dotted var(--ldx-rule); break-inside: avoid; font-size: 14.5px; }
.ldx-az-list__meta { color: var(--ldx-ink-faint); font-size: 12.5px; }

/* ==========================================================================
   Sidebar
   ========================================================================== */
.ldx-sidebar { display: flex; flex-direction: column; gap: 30px; }
.ldx-widget__title {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-bottom: 2px solid var(--ldx-ink);
	padding-bottom: 8px;
	margin-bottom: 12px;
}
.ldx-widget-list { display: flex; flex-direction: column; }
.ldx-widget-list a {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	color: var(--ldx-ink);
	padding: 7px 0;
	border-bottom: 1px dashed var(--ldx-rule);
	font-size: 13.5px;
}
.ldx-widget-list a:hover { color: var(--ldx-accent); text-decoration: none; }
.ldx-widget-list .count { color: var(--ldx-ink-faint); }
.ldx-widget ul { list-style: none; margin: 0; padding: 0; }
.ldx-widget li { padding: 6px 0; border-bottom: 1px dashed var(--ldx-rule); font-size: 13.5px; }
.ldx-widget li:last-child { border-bottom: none; }

/* ==========================================================================
   Pagination
   ========================================================================== */
.ldx-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 20px; }
.ldx-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--ldx-rule-strong);
	border-radius: var(--ldx-radius);
	color: var(--ldx-ink);
	font-size: 13.5px;
}
.ldx-pagination .page-numbers:hover { border-color: var(--ldx-accent); color: var(--ldx-accent); text-decoration: none; }
.ldx-pagination .page-numbers.current { background: var(--ldx-ink); border-color: var(--ldx-ink); color: #fff; }
.ldx-pagination .page-numbers.dots { border: none; }

/* ==========================================================================
   Comments
   ========================================================================== */
.ldx-comments { margin: 40px 0 0; }
.comments-title { font-size: 22px; }
.comment-list { list-style: none; margin: 0 0 24px; padding: 0; }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-list > li { border-top: 1px solid var(--ldx-rule); padding: 18px 0; }
.comment-body { display: flex; gap: 14px; }
.comment-body .avatar { border-radius: 50%; }
.comment-meta { font-size: 13px; color: var(--ldx-ink-faint); margin-bottom: 4px; }
.comment-content p { margin: 0 0 0.8em; }
.no-comments { color: var(--ldx-ink-soft); }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--ldx-rule-strong);
	border-radius: var(--ldx-radius);
	margin-bottom: 14px;
	background: var(--ldx-paper);
}
.comment-form textarea { min-height: 130px; }

/* ==========================================================================
   404
   ========================================================================== */
.ldx-404 { text-align: center; padding: 70px 0; }
.ldx-404__code { font-family: var(--ldx-font-display); font-size: 90px; margin-bottom: 0; color: var(--ldx-rule-strong); }
.ldx-404__text { font-size: 17px; color: var(--ldx-ink-soft); margin: 0 auto 26px; max-width: 480px; }
.ldx-404 .ldx-search-form { max-width: 420px; margin: 0 auto 20px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.ldx-footer { background: var(--ldx-ink); color: #c7cdd3; margin-top: 40px; }
.ldx-footer__columns {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 40px 24px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}
.ldx-footer__col .ldx-logo-text { color: #fff; }
.ldx-footer__about { color: #a7aeb5; font-size: 14px; }
.ldx-footer-widget__title {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #fff;
	margin-bottom: 12px;
}
.ldx-footer-menu { list-style: none; margin: 0; padding: 0; }
.ldx-footer-menu li { margin-bottom: 6px; }
.ldx-footer-menu a { color: #c7cdd3; }
.ldx-footer-menu a:hover { color: #fff; }
.ldx-footer__bottom { border-top: 1px solid #33363b; }
.ldx-footer__bottom-inner {
	max-width: var(--ldx-container);
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 12.5px;
	color: #8b929a;
}
.ldx-footer__bottom-inner p { margin: 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 960px) {
	.ldx-page-columns,
	.ldx-article-layout { grid-template-columns: 1fr; }
	.ldx-article-layout .ldx-infobox,
	.ldx-article-layout .ldx-main { grid-column: 1; }
	.ldx-article-layout .ldx-infobox { max-width: 420px; }
	.ldx-featured__grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
	.ldx-header__inner { gap: 12px; }
	.ldx-header__search { flex-basis: 100%; order: 3; max-width: none; }
	.ldx-nav-menu-wrap {
		display: none;
		flex-basis: 100%;
		order: 3;
		flex-wrap: wrap;
	}
	.ldx-nav-menu-wrap.is-open { display: flex; }
	.ldx-nav-menu { flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 0; }
	.ldx-nav-menu__random { padding: 10px 0; }
	.ldx-mobile-toggle { display: flex; }
	.ldx-single__title { font-size: 28px; }
	.ldx-featured__title { font-size: 28px; }
	.ldx-index-item { grid-template-columns: 84px 1fr; }
	.ldx-index-item__score { grid-column: 1 / -1; justify-self: start; margin-top: 6px; }
	.ldx-footer__columns { grid-template-columns: 1fr; }
	.ldx-infobox__table th { width: 44%; }
	.ldx-az-list { column-width: auto; }
}
