/*
Theme Name:   GameSync Presswire
Theme URI:    https://gamesyncwp.com/gamesync-presswire-theme/
Author:       GameSync WP
Author URI:   https://gamesyncwp.com
Description:  An editorial, magazine-style review theme for the GameSync Game Data Importer plugin -- warm paper tones, serif headlines and a verdict-badge review layout, built for sites that write about games rather than just catalog them. A second, distinct-looking premium option alongside GameSync PixelWire, included with the same GameSync WP Pro license.
Version:      1.8.0
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:  gamesync-presswire
Tags:         news, blog, entertainment, custom-menu, featured-images, footer-widgets, full-width-template, threaded-comments

This is a from-scratch original theme. Any resemblance to other editorial/
magazine themes is a matter of shared genre convention (serif headlines,
byline blocks, index-style listings) rather than copied code or assets.

GameSync Presswire WordPress Theme, Copyright 2026 GameSync WP.
GameSync Presswire 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.

GameSync Presswire loads the Fraunces and Source Sans 3 fonts from Google Fonts at
runtime (see functions.php) -- the same approach the premium GameSync PixelWire theme
already uses, since (unlike the free GameSync Lite theme) neither is bound
by wp.org's self-hosting requirement.
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
	--gsprw-cream: #faf6ee;
	--gsprw-paper: #ffffff;
	--gsprw-ink: #1c1a17;
	--gsprw-ink-soft: #55503f;
	--gsprw-ink-faint: #8a8371;
	--gsprw-rule: #e2d8c3;
	--gsprw-rule-strong: #cabd9c;
	--gsprw-accent: #b5541f;
	--gsprw-accent-dark: #8f4118;
	--gsprw-accent-soft: #f4e3d3;
	--gsprw-verdict-good: #2f6d4f;
	--gsprw-verdict-good-soft: #e1efe7;
	--gsprw-verdict-mid: #b5541f;
	--gsprw-verdict-mid-soft: #f4e3d3;
	--gsprw-verdict-low: #93382c;
	--gsprw-verdict-low-soft: #f3e0dc;

	--gsprw-font-display: 'Fraunces', 'Georgia', serif;
	--gsprw-font-body: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

	--gsprw-radius: 3px;
	--gsprw-container: 1180px;
}

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

.gsprw-container {
	max-width: var(--gsprw-container);
	margin: 0 auto;
	padding: 0 24px;
}
.gsprw-container-page { padding-top: 48px; padding-bottom: 64px; }

/* ==========================================================================
   Masthead / header
   ========================================================================== */
.gsprw-topbar {
	background: var(--gsprw-ink);
	color: #cfc6b3;
	font-size: 13px;
}
.gsprw-topbar__inner {
	max-width: var(--gsprw-container);
	margin: 0 auto;
	padding: 7px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.gsprw-topbar__date { letter-spacing: 0.03em; text-transform: uppercase; }
.gsprw-topbar a { color: #e7e0cf; }
.gsprw-topbar a:hover { color: #fff; }
.gsprw-topbar-menu { list-style: none; display: flex; gap: 18px; margin: 0; padding: 0; }

.gsprw-header {
	background: var(--gsprw-paper);
	border-bottom: 3px solid var(--gsprw-ink);
}
.gsprw-header__inner {
	max-width: var(--gsprw-container);
	margin: 0 auto;
	padding: 22px 24px 18px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px;
}
.gsprw-branding { display: flex; flex-direction: column; }
.gsprw-logo-text {
	font-family: var(--gsprw-font-display);
	font-size: 34px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--gsprw-ink);
}
.gsprw-logo-text:hover { color: var(--gsprw-ink); text-decoration: none; }
.custom-logo-link img { max-height: 56px; width: auto; }
.gsprw-tagline {
	font-size: 13px;
	color: var(--gsprw-ink-soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-top: 2px;
}

.gsprw-nav-menu-wrap { flex: 1 1 auto; }
.gsprw-nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 28px;
	justify-content: center;
	font-family: var(--gsprw-font-display);
	font-weight: 600;
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.gsprw-nav-menu a { color: var(--gsprw-ink); }
.gsprw-nav-menu a:hover, .gsprw-nav-menu .current-menu-item > a { color: var(--gsprw-accent); text-decoration: none; }
.gsprw-nav-menu ul { list-style: none; padding-left: 1em; }

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

.gsprw-header-search {
	display: none;
	background: var(--gsprw-cream);
	border-bottom: 1px solid var(--gsprw-rule);
}
.gsprw-header-search.is-open { display: block; }
.gsprw-header-search .gsprw-container { padding-top: 14px; padding-bottom: 14px; }

/* ==========================================================================
   Search form
   ========================================================================== */
.gsprw-search-form { display: flex; gap: 8px; }
.gsprw-search-form__input {
	flex: 1 1 auto;
	padding: 10px 14px;
	border: 1px solid var(--gsprw-rule-strong);
	border-radius: var(--gsprw-radius);
	background: var(--gsprw-paper);
}
.gsprw-search-form__button {
	background: var(--gsprw-ink);
	color: #fff;
	border: none;
	padding: 10px 18px;
	border-radius: var(--gsprw-radius);
	cursor: pointer;
	font-weight: 600;
}
.gsprw-search-form__button:hover { background: var(--gsprw-accent); }

/* ==========================================================================
   Kicker / section headers
   ========================================================================== */
.gsprw-kicker {
	display: inline-block;
	font-family: var(--gsprw-font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--gsprw-accent);
	margin-bottom: 8px;
}
.gsprw-section { margin-bottom: 56px; }
.gsprw-section-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	border-bottom: 2px solid var(--gsprw-ink);
	padding-bottom: 10px;
	margin-bottom: 24px;
	gap: 12px;
}
.gsprw-section-header__title { font-size: 22px; margin: 0; }
.gsprw-section-header__link { font-size: 14px; font-weight: 600; white-space: nowrap; }

/* ==========================================================================
   Front page lead + layout grid
   ========================================================================== */
.gsprw-lead {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 48px;
	padding: 48px 0 56px;
	border-bottom: 1px solid var(--gsprw-rule);
	margin-bottom: 40px;
}
.gsprw-lead__media { border-radius: var(--gsprw-radius); overflow: hidden; background: var(--gsprw-rule); aspect-ratio: 16 / 9; }
.gsprw-lead__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gsprw-lead__media:hover img { transform: scale(1.05); }
/* Flex column so, when the aside list below is present, it's pushed to the
   bottom of the available height instead of leaving a gap between the dek
   and the bottom of the (now shorter) lead image; with no aside, the block
   simply sits at its natural height as before. */
.gsprw-lead__body { display: flex; flex-direction: column; }
.gsprw-lead__title { font-size: 50px; line-height: 1.1; margin: 8px 0 18px; }
.gsprw-lead__title a { color: var(--gsprw-ink); }
.gsprw-lead__title a:hover { color: var(--gsprw-accent); text-decoration: none; }
.gsprw-lead__dek { font-size: 20px; line-height: 1.6; color: var(--gsprw-ink-soft); margin-bottom: 14px; }
.gsprw-lead__more { font-weight: 600; font-size: 16px; align-self: flex-start; margin-bottom: 18px; }
.gsprw-lead__aside { display: flex; flex-direction: column; gap: 18px; margin-top: auto; }

.gsprw-page-columns {
	max-width: var(--gsprw-container);
	margin: 0 auto;
	padding: 40px 24px 64px;
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 48px;
	align-items: start;
}
.gsprw-page-columns--full { grid-template-columns: 1fr; }
.gsprw-main { min-width: 0; }

/* ==========================================================================
   Index list (games / posts listing rows)
   ========================================================================== */
.gsprw-index-list { display: flex; flex-direction: column; }
.gsprw-index-item {
	display: grid;
	grid-template-columns: 132px 1fr auto;
	gap: 20px;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px solid var(--gsprw-rule);
}
.gsprw-index-item:first-child { padding-top: 0; }
.gsprw-index-item__media {
	border-radius: var(--gsprw-radius);
	overflow: hidden;
	background: var(--gsprw-rule);
	aspect-ratio: 4 / 3;
}
.gsprw-index-item__body { min-width: 0; }
.gsprw-index-item__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gsprw-index-item__media:hover img { transform: scale(1.05); }
.gsprw-index-item__title { font-size: 21px; margin: 0 0 6px; }
.gsprw-index-item__title a { color: var(--gsprw-ink); }
.gsprw-index-item__title a:hover { color: var(--gsprw-accent); text-decoration: none; }
.gsprw-index-item__badges { display: flex; flex-wrap: wrap; gap: 0.6em; margin: 0 0 6px; }
.gsprw-index-item__rating-badge, .gsprw-index-item__critic-badge { display: inline-flex; align-items: center; gap: 0.3em; font-size: 13px; font-weight: 700; color: var(--gsprw-ink-faint); }
.gsprw-index-item__dek { color: var(--gsprw-ink-soft); font-size: 15px; margin: 0 0 8px; }
.gsprw-index-item__facts { font-size: 13px; color: var(--gsprw-ink-faint); display: flex; flex-wrap: wrap; gap: 4px 14px; }
.gsprw-index-item__verdict { justify-self: end; }

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

/* ==========================================================================
   Verdict / score badge
   ========================================================================== */
.gsprw-verdict {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--gsprw-verdict-mid-soft);
	color: var(--gsprw-verdict-mid);
	font-family: var(--gsprw-font-display);
	line-height: 1;
	flex-shrink: 0;
}
.gsprw-verdict--good { background: var(--gsprw-verdict-good-soft); color: var(--gsprw-verdict-good); }
.gsprw-verdict--low { background: var(--gsprw-verdict-low-soft); color: var(--gsprw-verdict-low); }
.gsprw-verdict__score { font-size: 20px; font-weight: 700; }
.gsprw-verdict__scale { font-size: 9px; opacity: 0.75; margin-top: 1px; }
.gsprw-verdict--large { width: 92px; height: 92px; }
.gsprw-verdict--large .gsprw-verdict__score { font-size: 30px; }
.gsprw-verdict--large .gsprw-verdict__scale { font-size: 11px; }
.gsprw-verdict-block {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--gsprw-paper);
	border: 1px solid var(--gsprw-rule);
	border-radius: var(--gsprw-radius);
	padding: 18px 22px;
	margin: 18px 0 28px;
}
.gsprw-verdict-block__label { font-family: var(--gsprw-font-display); font-size: 17px; font-weight: 600; margin: 0; }
.gsprw-verdict-block__hint { color: var(--gsprw-ink-soft); font-size: 14px; margin: 2px 0 0; }
/* When the companion Review Breakdown / GameSync Game Ratings plugin renders its own
   markup inside this wrapper, only lightly frame it -- never override its
   internal layout, since that plugin owns its own presentation. */
.gsprw-verdict-block--plugin { display: block; }

/* ==========================================================================
   Editor's Pick ribbon
   ========================================================================== */
.gsprw-editors-pick {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gsprw-accent-dark);
	background: var(--gsprw-accent-soft);
	padding: 3px 9px;
	border-radius: 999px;
	margin-bottom: 8px;
}

/* ==========================================================================
   Sidebar
   ========================================================================== */
.gsprw-sidebar { display: flex; flex-direction: column; gap: 32px; }
.gsprw-widget { }
.gsprw-widget__title {
	font-family: var(--gsprw-font-display);
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-bottom: 2px solid var(--gsprw-ink);
	padding-bottom: 8px;
	margin-bottom: 14px;
}
.gsprw-widget-list { display: flex; flex-direction: column; }
.gsprw-widget-list a {
	display: flex;
	justify-content: space-between;
	color: var(--gsprw-ink);
	padding: 7px 0;
	border-bottom: 1px dashed var(--gsprw-rule);
	font-size: 14px;
}
.gsprw-widget-list a:hover { color: var(--gsprw-accent); text-decoration: none; }
.gsprw-widget-list .count { color: var(--gsprw-ink-faint); }

.gsprw-pick-list { display: flex; flex-direction: column; gap: 16px; }
.gsprw-pick-list-item { display: flex; gap: 12px; align-items: flex-start; }
.gsprw-pick-list-item__media {
	width: 64px; height: 64px; flex-shrink: 0;
	border-radius: var(--gsprw-radius);
	overflow: hidden;
	background: var(--gsprw-rule);
}
.gsprw-pick-list-item__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gsprw-pick-list-item__media:hover img { transform: scale(1.05); }
.gsprw-pick-list-item__title { font-size: 15px; margin: 0; line-height: 1.3; }
.gsprw-pick-list-item__title a { color: var(--gsprw-ink); }
.gsprw-pick-list-item__title a:hover { color: var(--gsprw-accent); text-decoration: none; }

/* ==========================================================================
   Single article / review
   ========================================================================== */
.gsprw-single__header { max-width: 760px; margin: 0 auto 24px; text-align: left; }
.gsprw-single__title { font-size: 44px; }
.gsprw-single--game .gsprw-single__title { font-size: 40px; }
.gsprw-entry-meta { color: var(--gsprw-ink-soft); font-size: 14px; }
.gsprw-entry-meta span:not(:last-child)::after { content: '\2014'; margin: 0 8px; color: var(--gsprw-rule-strong); }
.gsprw-byline { font-weight: 600; color: var(--gsprw-ink); }

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

.gsprw-single__content {
	max-width: 720px;
	font-size: 19px;
	line-height: 1.75;
}
.gsprw-single__content > p:first-of-type::first-letter {
	font-family: var(--gsprw-font-display);
	font-size: 3.6em;
	float: left;
	line-height: 0.8;
	padding: 6px 8px 0 0;
	color: var(--gsprw-accent);
}
.gsprw-single__content h2 { font-size: 27px; margin-top: 1.4em; }
.gsprw-single__content h3 { font-size: 22px; margin-top: 1.2em; }
.gsprw-single__content blockquote {
	border-left: 3px solid var(--gsprw-accent);
	margin: 1.6em 0;
	padding: 4px 0 4px 22px;
	font-family: var(--gsprw-font-display);
	font-size: 22px;
	font-style: italic;
	color: var(--gsprw-ink-soft);
}
.gsprw-single--game .gsprw-single__content { max-width: 100%; }

.gsprw-game-facts {
	background: var(--gsprw-paper);
	border: 1px solid var(--gsprw-rule);
	border-radius: var(--gsprw-radius);
	padding: 20px 24px;
	margin: 0 0 28px;
	max-width: 720px;
}
.gsprw-game-facts__row { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px dashed var(--gsprw-rule); font-size: 15px; }
.gsprw-game-facts__row:last-child { border-bottom: none; }
.gsprw-game-facts__row strong { min-width: 130px; color: var(--gsprw-ink-soft); font-weight: 600; }

.gsprw-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 24px; }
.gsprw-tag {
	font-size: 13px;
	padding: 4px 12px;
	border: 1px solid var(--gsprw-rule-strong);
	border-radius: 999px;
	color: var(--gsprw-ink-soft);
}
.gsprw-tag:hover { border-color: var(--gsprw-accent); color: var(--gsprw-accent); text-decoration: none; }

.gsprw-gallery { max-width: 100%; margin: 32px 0; }
.gsprw-gallery__strip {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	padding-bottom: 6px;
	scroll-snap-type: x proximity;
}
.gsprw-gallery__item {
	position: relative;
	flex: 0 0 auto;
	width: 320px;
	border-radius: var(--gsprw-radius);
	overflow: hidden;
	scroll-snap-align: start;
	background: var(--gsprw-rule);
	cursor: zoom-in;
}
.gsprw-gallery__item img { width: 100%; display: block; transition: transform .3s ease; }
.gsprw-gallery__item:hover img { transform: scale(1.06); }
/* Same interaction as GameSync PixelWire's screenshot gallery: a magnifier badge
   fades in over the image on hover, rather than the image alone changing. */
.gsprw-gallery__zoom {
	position: absolute;
	top: 50%; left: 50%;
	width: 36px; height: 36px;
	margin: -18px 0 0 -18px;
	border-radius: 50%;
	background: rgba(10, 10, 12, .6);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	opacity: 0;
	transition: opacity .2s ease;
	pointer-events: none;
}
.gsprw-gallery__item:hover .gsprw-gallery__zoom { opacity: 1; }

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

.gsprw-author-box {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: var(--gsprw-paper);
	border: 1px solid var(--gsprw-rule);
	border-radius: var(--gsprw-radius);
	padding: 20px;
	margin: 32px 0;
	max-width: 720px;
}
.gsprw-author-box img { border-radius: 50%; }
.gsprw-author-box__name { margin: 0 0 4px; font-size: 16px; }
.gsprw-author-box__bio { margin: 0; color: var(--gsprw-ink-soft); font-size: 14px; }

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

/* ==========================================================================
   Buttons
   ========================================================================== */
.gsprw-btn, .gsprw-btn-outline {
	display: inline-block;
	font-family: var(--gsprw-font-display);
	font-weight: 600;
	padding: 11px 24px;
	border-radius: var(--gsprw-radius);
	cursor: pointer;
}
.gsprw-btn { background: var(--gsprw-ink); color: #fff; border: 1px solid var(--gsprw-ink); }
.gsprw-btn:hover { background: var(--gsprw-accent); border-color: var(--gsprw-accent); color: #fff; text-decoration: none; }
.gsprw-btn-outline { background: transparent; color: var(--gsprw-ink); border: 1px solid var(--gsprw-ink); }
.gsprw-btn-outline:hover { border-color: var(--gsprw-accent); color: var(--gsprw-accent); text-decoration: none; }

/* ==========================================================================
   Comments
   ========================================================================== */
.gsprw-comments { max-width: 720px; margin: 40px 0 0; }
.comments-title { font-size: 24px; }
.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(--gsprw-rule); padding: 18px 0; }
.comment-body { display: flex; gap: 14px; }
.comment-body .avatar { border-radius: 50%; }
.comment-meta { font-size: 13px; color: var(--gsprw-ink-faint); margin-bottom: 4px; }
.comment-content p { margin: 0 0 0.8em; }
.no-comments { color: var(--gsprw-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(--gsprw-rule-strong);
	border-radius: var(--gsprw-radius);
	margin-bottom: 14px;
	background: var(--gsprw-paper);
}
.comment-form textarea { min-height: 130px; }

/* ==========================================================================
   404
   ========================================================================== */
.gsprw-404 { text-align: center; padding: 80px 0; }
.gsprw-404__code { font-size: 96px; margin-bottom: 0; color: var(--gsprw-rule-strong); }
.gsprw-404__text { font-size: 18px; color: var(--gsprw-ink-soft); margin-bottom: 28px; }
.gsprw-404 .gsprw-search-form { max-width: 420px; margin: 0 auto 20px; }

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

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px) {
	.gsprw-lead { grid-template-columns: 1fr; }
	.gsprw-page-columns { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
	.gsprw-nav-menu-wrap {
		display: none;
		flex-basis: 100%;
		order: 3;
	}
	.gsprw-nav-menu-wrap.is-open { display: block; }
	.gsprw-nav-menu { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px 0; }
	.gsprw-mobile-toggle { display: flex; }
	.gsprw-single__title { font-size: 30px; }
	.gsprw-lead__title { font-size: 34px; }
	.gsprw-lead__dek { font-size: 18px; }
	.gsprw-index-item { grid-template-columns: 90px 1fr; }
	.gsprw-index-item__verdict { grid-column: 1 / -1; justify-self: start; margin-top: 8px; }
	.gsprw-footer__columns { grid-template-columns: 1fr; }
	.gsprw-game-facts__row strong { min-width: 100px; }
}

/* ---- Advertising slots (Advertising settings page) ---- */
.gsprw-ad { text-align: center; }
.gsprw-ad__label { display: block; margin-bottom: 6px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gsprw-ink-faint); }
.gsprw-ad__body { display: flex; justify-content: center; max-width: 100%; }
.gsprw-ad__body img { display: block; max-width: 100%; height: auto; }
.gsprw-ad__body iframe, .gsprw-ad__body ins { max-width: 100%; }
