/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://progressman.ru
 Description:  Dark gradient theme for progressman.ru — author blog by Igor Satorin
 Author:       Igor Satorin
 Author URI:   https://progressman.ru
 Template:     generatepress
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  generatepress-child
*/

/* ==========================================================================
   1. RESET & BASE
   ========================================================================== */

body {
	background: #0d0a18 !important;
	color: #eee;
	font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	font-size: 16px;
	min-height: 100vh;
}

body::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(45deg, #0d0a18 0%, #0f1230 12%, #162040 25%, #1a2848 40%, #3d2358 58%, #7a5080 78%, #c4a0b5 95%);
	z-index: -1;
}

::selection {
	background: rgba(100, 80, 180, 0.5);
	color: #fff;
}

::-moz-selection {
	background: rgba(100, 80, 180, 0.5);
	color: #fff;
}

/* Make all containers transparent */
#page,
.site-content,
#primary,
#main,
.inside-article,
.grid-container,
.site-main,
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation {
	background-color: transparent !important;
	background: transparent !important;
}

/* Remove GeneratePress default padding/margins that interfere */
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.one-container .site-content {
	border: none !important;
	box-shadow: none !important;
}

/* ==========================================================================
   CONTAINER — single centered wrapper for header + content + footer
   ========================================================================== */

.ps-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}

/* ==========================================================================
   2. SCROLLBAR
   ========================================================================== */

::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: #0d0a18;
}

::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.15);
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: rgba(255, 255, 255, 0.25);
}

* {
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.15) #0d0a18;
}

/* ==========================================================================
   3. HEADER
   ========================================================================== */

/* Hide default GP header */
#masthead,
.main-navigation,
.site-header {
	display: none !important;
}

/* Custom header */
.ps-header {
	position: relative;
	z-index: 100;
}

/* Row 1 — Main header bar */
.ps-header-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
}

.ps-site-branding {
	flex: 1;
	text-align: center;
}

.ps-site-title {
	color: #fff;
	font-weight: 500;
	letter-spacing: 1px;
	font-size: 24px;
	margin: 0;
	line-height: 1.3;
}

.ps-site-title a {
	color: #fff;
	text-decoration: none;
}

.ps-site-tagline {
	font-style: italic;
	color: rgba(255, 255, 255, 0.6);
	font-size: 13px;
	margin-top: 2px;
}

/* Mobile: burger left, title center, search right */
.ps-header-btn.ps-topics-btn-mobile {
	display: flex;
}

.ps-header-btn.ps-topics-btn-desktop {
	display: none;
}

/* Header action buttons */
.ps-header-actions {
	display: flex;
	align-items: center;
	gap: 4px;
}

.ps-header-btn {
	background: none;
	border: none;
	color: #fff;
	cursor: pointer;
	padding: 8px 10px;
	line-height: 1;
	display: flex;
	align-items: center;
	gap: 6px;
	border-radius: 5px;
	transition: background 0.2s;
}

.ps-header-btn:focus {
	outline: none;
	background: none;
}

.ps-header-btn:hover {
	background: rgba(25, 35, 90, 0.5);
	color: #fff;
}

.ps-header-btn:hover .ps-btn-label {
	color: #fff;
}

.ps-header-btn:active {
	background: rgba(25, 35, 90, 0.65);
}

.ps-header-btn svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: #fff;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ps-btn-label {
	display: none;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.8);
	font-weight: 400;
}

/* Row 2 — Navigation bar */
.ps-nav-bar {
	border-top: 0.5px solid rgba(255, 255, 255, 0.1);
	padding: 0 20px;
	text-align: center;
	height: 38px;
	display: flex;
	align-items: center;
}

.ps-nav-links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0;
	width: 100%;
}

.ps-nav-links li {
	display: flex;
	align-items: center;
}

.ps-nav-links li + li::before {
	content: '\00b7';
	color: rgba(255, 255, 255, 0.3);
	margin: 0 10px;
	font-size: 14px;
}

.ps-nav-links a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	font-size: 13px;
	transition: color 0.2s;
}

.ps-nav-links a:hover {
	color: #fff;
}

/* ==========================================================================
   4. TOPICS PANEL — Mobile (slide from left)
   ========================================================================== */

.ps-topics-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.6);
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}

.ps-topics-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.ps-topics-panel {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 260px;
	max-width: 70vw;
	background: linear-gradient(45deg, #0d0a18 0%, #0f1230 12%, #162040 25%, #1a2848 40%, #3d2358 58%, #7a5080 78%, #c4a0b5 95%);
	z-index: 1000;
	transform: translateX(-100%);
	transition: transform 0.3s ease;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

.ps-topics-panel.is-open {
	transform: translateX(0);
}

.ps-topics-panel-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 20px 14px;
	border-bottom: 0.5px solid rgba(255, 255, 255, 0.08);
}

.ps-topics-panel-title {
	font-size: 16px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

.ps-topics-close {
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.4);
	font-size: 22px;
	cursor: pointer;
	padding: 4px;
	line-height: 1;
	transition: color 0.2s;
}

.ps-topics-close:hover {
	color: rgba(255, 255, 255, 0.7);
}

.ps-topics-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ps-topics-list li {
	border-bottom: 0.5px solid rgba(255, 255, 255, 0.08);
}

.ps-topics-list a {
	display: block;
	padding: 14px 20px;
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
	font-size: 16px;
	transition: color 0.2s, background 0.2s;
}

.ps-topics-list a:hover {
	color: rgba(255, 255, 255, 0.9);
	background: rgba(255, 255, 255, 0.04);
}

/* ==========================================================================
   5. TOPICS DROPDOWN — Desktop
   ========================================================================== */

.ps-topics-dropdown {
	display: none;
	padding: 0 0 16px;
}

.ps-topics-dropdown.is-open {
	display: block;
	animation: topicsDropIn 0.2s ease forwards;
}

@keyframes topicsDropIn {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.ps-topics-dropdown-inner {
	background: rgba(0, 0, 0, 0.4);
	border-radius: 10px;
	border: 0.5px solid rgba(255, 255, 255, 0.1);
	padding: 16px 24px 12px;
}

.ps-topics-dropdown-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

.ps-topics-dropdown-title {
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}

.ps-topics-dropdown-close {
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.4);
	font-size: 20px;
	cursor: pointer;
	padding: 2px 4px;
	line-height: 1;
	transition: color 0.2s;
}

.ps-topics-dropdown-close:hover {
	color: rgba(255, 255, 255, 0.7);
}

.ps-topics-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 32px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.ps-topics-grid li {
	border-bottom: 0.5px solid rgba(255, 255, 255, 0.06);
}

.ps-topics-grid li:last-child,
.ps-topics-grid li:nth-last-child(2):nth-child(odd) {
	border-bottom: none;
}

.ps-topics-grid a,
.ps-topics-grid li a {
	display: block;
	padding: 9px 0;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-size: 16px;
	transition: color 0.2s;
}

.ps-topics-grid a:hover,
.ps-topics-grid li a:hover {
	color: #fff;
}

/* ==========================================================================
   6. SEARCH OVERLAY
   ========================================================================== */

.ps-search-overlay {
	display: none;
	padding: 12px 0 16px;
}

.ps-search-overlay.is-open {
	display: block;
	animation: topicsDropIn 0.2s ease forwards;
}

.ps-search-form {
	display: flex;
	gap: 8px;
}

.ps-search-input {
	flex: 1;
	background: rgba(0, 0, 0, 0.4);
	border: 0.5px solid rgba(255, 255, 255, 0.15);
	border-radius: 8px;
	padding: 10px 14px;
	color: #fff;
	font-size: 16px;
	outline: none;
	transition: border-color 0.2s;
}

.ps-search-input::placeholder {
	color: rgba(255, 255, 255, 0.3);
}

.ps-search-input:focus {
	border-color: rgba(255, 255, 255, 0.3);
}

.ps-search-submit {
	background: rgba(255, 255, 255, 0.1);
	border: 0.5px solid rgba(255, 255, 255, 0.15);
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.7);
	padding: 10px 16px;
	cursor: pointer;
	font-size: 14px;
	transition: background 0.2s;
}

.ps-search-submit:hover {
	background: rgba(255, 255, 255, 0.15);
}

/* ==========================================================================
   7. ARTICLE CARDS (archive/home)
   ========================================================================== */

.ps-cards-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	padding: 6px 0 22px;
}

.ps-card {
	background: rgba(0, 0, 0, 0.3);
	border-radius: 12px;
	border: 0.5px solid rgba(255, 255, 255, 0.08);
	padding: 18px 20px;
	transition: border-color 0.2s, background 0.2s;
}

.ps-card:hover {
	border-color: rgba(255, 255, 255, 0.15);
	background: rgba(0, 0, 0, 0.35);
}

.ps-card-title {
	font-size: 20px;
	font-weight: 500;
	color: #eee;
	line-height: 1.4;
	margin: 0 0 8px;
}

.ps-card-title a {
	color: #eee;
	text-decoration: none;
	transition: color 0.2s;
}

.ps-card-title a:hover {
	color: #fff;
}

.ps-card-meta {
	font-size: 13px;
	color: #aaa;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0;
}

.ps-card-meta span + span::before {
	content: '\00b7';
	margin: 0 6px;
}

.ps-card-meta a {
	color: #aaa;
	text-decoration: none;
}

.ps-card-meta a:hover {
	color: #fff;
}

.ps-card-excerpt {
	font-size: 16px;
	color: #eee;
	line-height: 1.55;
	margin: 0;
}

.ps-card-excerpt a {
	color: #b8a8f0;
	transition: color 0.2s;
}

.ps-card-excerpt a:hover {
	color: #d0c4f8;
}

/* ==========================================================================
   8. PAGINATION
   ========================================================================== */

.ps-pagination {
	padding: 8px 0 40px;
	text-align: center;
}

.ps-pagination .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.ps-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border-radius: 6px;
	color: rgba(255, 255, 255, 0.5);
	text-decoration: none;
	font-size: 14px;
	transition: background 0.2s, color 0.2s;
}

.ps-pagination .page-numbers:hover {
	background: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.8);
}

.ps-pagination .page-numbers.current {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
}

.ps-pagination .page-numbers.dots {
	background: none;
	cursor: default;
}

/* GeneratePress default pagination override */
.paging-navigation .nav-links {
	display: flex;
	justify-content: center;
	gap: 6px;
}

.paging-navigation .nav-links a,
.paging-navigation .nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border-radius: 6px;
	color: rgba(255, 255, 255, 0.5);
	text-decoration: none;
	font-size: 14px;
	transition: background 0.2s, color 0.2s;
}

.paging-navigation .nav-links a:hover {
	background: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.8);
}

.paging-navigation .nav-links .current {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
}

/* ==========================================================================
   9. SINGLE POST
   ========================================================================== */

.ps-single {
	max-width: 750px;
	margin: 0 auto;
	padding: 24px 0 40px;
	overflow: visible;
}

.ps-single-header {
	margin-bottom: 28px;
}

.ps-single-title {
	font-size: 36px;
	font-weight: 500;
	color: #fff;
	line-height: 1.3;
	margin: 0 0 12px;
}

.ps-single-meta {
	font-size: 13px;
	color: #aaa;
	display: flex;
	align-items: center;
	gap: 0;
}

.ps-single-meta span + span::before {
	content: '\00b7';
	margin: 0 6px;
}

.ps-single-meta a {
	color: rgba(255, 255, 255, 0.35);
	text-decoration: none;
}

.ps-single-meta a:hover {
	color: rgba(255, 255, 255, 0.6);
}

/* Article content */
.ps-single-content {
	color: #eee;
	font-size: 16px;
	line-height: 1.75;
}

.ps-single-content p {
	margin-bottom: 1.4em;
}

.ps-single-content a {
	color: #b8a8f0 !important;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.2s;
	background: none !important;
	background-color: transparent !important;
}

.ps-single-content a span {
	color: inherit !important;
	background: none !important;
	background-color: transparent !important;
}

.ps-single-content a:hover {
	color: #fff !important;
}

.ps-single-content h2,
.ps-single-content h3,
.ps-single-content h4 {
	color: #eee;
	font-weight: 500;
	margin-top: 2em;
	margin-bottom: 0.6em;
}

.ps-single-content h2 {
	font-size: 28px;
}

.ps-single-content h3 {
	font-size: 22px;
}

.ps-single-content blockquote {
	border-left: 3px solid rgba(255, 255, 255, 0.15);
	margin: 1.5em 0;
	padding: 0.5em 0 0.5em 1.2em;
	color: rgba(255, 255, 255, 0.6);
	font-style: italic;
}

.ps-single-content ul,
.ps-single-content ol {
	padding-left: 1.5em;
	color: #eee;
}

.ps-single-content li {
	margin-bottom: 0.4em;
}

.ps-single-content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
	display: block;
	margin-left: auto;
	margin-right: auto;
	box-shadow: 0 0 30px rgba(220, 120, 200, 0.65);
}

.ps-single-content img.alignleft,
.ps-single-content .alignleft img {
	float: left;
	display: inline;
	margin: 0.4em 20px 12px 0;
}

.ps-single-content img.alignright,
.ps-single-content .alignright img {
	float: right;
	display: inline;
	margin: 0.4em 0 12px 20px;
}

/* Tables in articles — no borders, responsive */
.ps-single-content table {
	border: none;
	border-collapse: collapse;
	width: 100%;
}

.ps-single-content table td,
.ps-single-content table th {
	border: none;
	padding: 8px 16px 8px 0;
	vertical-align: top;
}

@media (max-width: 699px) {
	.ps-single-content table.ps-collapse-mobile td,
	.ps-single-content table.ps-collapse-mobile th {
		display: block;
		width: 100%;
		padding: 8px 0;
	}
}

.ps-single-content pre,
.ps-single-content code {
	background: rgba(0, 0, 0, 0.3);
	border-radius: 6px;
	color: rgba(255, 255, 255, 0.8);
}

.ps-single-content pre {
	padding: 16px;
	overflow-x: auto;
}

.ps-single-content code {
	padding: 2px 6px;
	font-size: 0.9em;
}

/* Tags */
.ps-single-tags {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
}

.ps-single-tags a {
	font-size: 13px;
	color: #aaa;
	text-decoration: none;
	transition: color 0.2s;
}

.ps-single-tags a:hover {
	color: #fff;
}

/* Post navigation (prev/next) */
.ps-post-nav {
	display: flex;
	gap: 16px;
	margin-top: 40px;
	padding-top: 24px;
	border-top: 0.5px solid rgba(255, 255, 255, 0.08);
}

.ps-post-nav-item {
	flex: 1;
}

.ps-post-nav-label {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.3);
	margin-bottom: 4px;
}

.ps-post-nav a {
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
	font-size: 16px;
	transition: color 0.2s;
}

.ps-post-nav a:hover {
	color: #fff;
}

.ps-post-nav-item.next {
	text-align: right;
}

/* ==========================================================================
   9b. AFTER-POST WIDGET
   ========================================================================== */

.ps-after-post {
	max-width: 750px;
	margin: 0 auto;
	padding: 32px 0;
	color: #eee;
	font-size: 16px;
	line-height: 1.75;
}

.ps-after-post a {
	color: #b8a8f0;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.2s;
}

.ps-after-post a:hover {
	color: #fff;
}

.ps-after-post img {
	border-radius: 0;
	max-width: 100%;
	height: auto;
}

.ps-widget-title {
	font-size: 20px;
	font-weight: 500;
	color: #fff;
	margin-bottom: 12px;
}

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

.ps-comments {
	max-width: 750px;
	margin: 0 auto;
	padding: 0 0 40px;
}

.ps-comments-title {
	font-size: 22px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 20px;
}

.ps-comment {
	background: rgba(0, 0, 0, 0.3);
	border-radius: 10px;
	border: 0.5px solid rgba(255, 255, 255, 0.08);
	padding: 16px 18px;
	margin-bottom: 12px;
}

.ps-comment .children {
	list-style: none;
	padding-left: 16px;
	margin-top: 12px;
}

.ps-comment .children .ps-comment {
	border-left: 2px solid rgba(255, 255, 255, 0.08);
	border-radius: 0 10px 10px 0;
}

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

.comment-list > .comment:first-child {
	padding-top: 16px;
}

.comment-author {
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	display: inline;
}

.comment-author a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
}

.comment-metadata {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.3);
	margin-bottom: 5px;
	display: inline;
	margin-left: 8px;
}

.comment-metadata a {
	color: rgba(255, 255, 255, 0.3);
	text-decoration: none;
}

.comment-content {
	font-size: 16px;
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.6;
	margin-top: 0.5em;
}

.comment-content a {
	color: #b088c0;
}

.comment-content p {
	margin-bottom: 0.8em;
}

.comment-content p:last-child {
	margin-bottom: 0;
}

.reply a {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.35);
	text-decoration: none;
	transition: color 0.2s;
}

.reply a:hover {
	color: rgba(255, 255, 255, 0.6);
}

/* Comment form */
.ps-comment-form {
	background: rgba(0, 0, 0, 0.3);
	border-radius: 10px;
	border: 0.5px solid rgba(255, 255, 255, 0.08);
	padding: 20px;
	margin-top: 24px;
}

.ps-comment-form label {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.5);
	display: block;
	margin-bottom: 4px;
}

.ps-comment-form input[type="text"],
.ps-comment-form input[type="email"],
.ps-comment-form input[type="url"],
.ps-comment-form textarea {
	width: 100%;
	background: rgba(0, 0, 0, 0.3);
	border: 0.5px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	padding: 10px 12px;
	color: #fff;
	font-size: 16px;
	outline: none;
	transition: border-color 0.2s;
	box-sizing: border-box;
	margin-bottom: 12px;
}

.ps-comment-form input:focus,
.ps-comment-form textarea:focus {
	border-color: rgba(255, 255, 255, 0.3);
}

.ps-comment-form .form-submit input[type="submit"] {
	background: rgba(255, 255, 255, 0.1);
	border: 0.5px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.8);
	padding: 10px 24px;
	cursor: pointer;
	font-size: 16px;
	transition: background 0.2s;
}

.ps-comment-form .form-submit input[type="submit"]:hover {
	background: rgba(255, 255, 255, 0.15);
}

#reply-title {
	font-size: 20px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 16px;
}

/* ==========================================================================
   11. FOOTER
   ========================================================================== */

.ps-footer {
	border-top: 0.5px solid rgba(255, 255, 255, 0.08);
	padding: 19px 0 0;
	margin-top: 0;
}

.ps-footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.ps-footer-col {
	padding: 18px 20px;
	border: 0.5px solid transparent;
	border-radius: 12px;
	box-sizing: border-box;
}

.ps-footer-col-title {
	font-size: 20px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.5);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0 0 12px;
}

.ps-footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ps-footer-links li {
	margin-bottom: 6px;
}

.ps-footer-links a {
	color: #b8a8f0;
	text-decoration: none;
	font-size: 15px;
	transition: color 0.2s;
}

.ps-footer-links a:hover {
	color: #d0c4f8;
}

.ps-footer-more {
	color: rgba(255, 255, 255, 0.45);
	font-size: 15px;
	margin-top: 4px;
}

.ps-footer-more a {
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
}

.ps-footer-more a:hover {
	color: rgba(255, 255, 255, 0.8);
}

/* Recent comments in footer */
.ps-footer-comment {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.45);
	margin-bottom: 10px;
	line-height: 1.4;
}

/* General footer widget text */
.ps-footer-col .widget {
	font-size: 15px;
	color: #eee;
}

/* WordPress widget styles in footer */
.ps-footer-col .widget {
	margin-bottom: 20px;
}

.ps-footer-col .widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ps-footer-col .widget li {
	margin-bottom: 6px;
}

.ps-footer-col .widget a {
	color: #b8a8f0;
	text-decoration: none;
	font-size: 15px;
	transition: color 0.2s;
}

.ps-footer-col .widget a:hover {
	color: #d0c4f8;
}

.ps-footer-comment a {
	color: #b8a8f0;
	text-decoration: none;
}

.ps-footer-comment a:hover {
	color: #d0c4f8;
}

/* Copyright */
.ps-copyright {
	border-top: 0.5px solid rgba(255, 255, 255, 0.08);
	text-align: center;
	padding: 36px 0 48px;
	margin-top: 48px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.6);
}

.ps-copyright p {
	margin: 0;
}

.ps-copyright a {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	transition: color 0.2s;
}

.ps-copyright a:hover {
	color: #fff;
}

/* Hide default GP footer */
.site-info,
.site-footer,
footer.site-info {
	display: none !important;
}

/* ==========================================================================
   12. PAGE HEADER (archive/category title)
   ========================================================================== */

.ps-page-header {
	padding: 20px 0 4px;
}

.ps-page-header h1 {
	font-size: 28px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.8);
	margin: 0;
}

.ps-page-header p {
	font-size: 16px;
	color: rgba(255, 255, 255, 0.4);
	margin: 4px 0 0;
}

/* ==========================================================================
   13a. TABLET — 2 columns (500px–767px)
   ========================================================================== */

@media (min-width: 700px) and (max-width: 939px) {
	.ps-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ps-footer-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================================
   13a. DESKTOP HEADER (>= 700px) — switches from mobile to desktop header
   ========================================================================== */

@media (min-width: 700px) {
	/* Header row 1 */
	.ps-header-main {
		padding: 20px 20px;
	}

	/* Desktop: title left */
	.ps-site-branding {
		text-align: left;
	}

	.ps-site-title {
		font-size: 32px;
		letter-spacing: 2px;
	}

	.ps-site-tagline {
		color: rgba(255, 255, 255, 0.4);
	}

	/* Desktop: hide mobile burger, show desktop topics button */
	.ps-header-btn.ps-topics-btn-mobile {
		display: none;
	}

	.ps-header-btn.ps-topics-btn-desktop {
		display: flex;
	}

	/* Desktop: show labels on buttons — horizontal layout */
	.ps-btn-label {
		display: inline;
		font-size: 15px;
	}

	.ps-header-btn {
		flex-direction: row;
		align-items: center;
		gap: 6px;
		padding: 6px 10px;
	}

	.ps-header-btn svg {
		width: 24px;
		height: 24px;
	}

	.ps-header-actions {
		gap: 20px;
	}

	.ps-nav-bar {
		padding: 0 20px;
		text-align: left;
		height: 42px;
		display: flex;
		align-items: center;
	}

	.ps-nav-links {
		justify-content: flex-start;
	}

	.ps-topics-dropdown {
		padding: 0 0 16px;
	}

	/* Desktop: hide mobile topics panel */
	.ps-topics-panel {
		transform: translateX(-100%) !important;
	}

	.ps-topics-overlay {
		display: none;
	}
}

/* Mobile: hide desktop topics dropdown */
@media (max-width: 699px) {
	.ps-topics-dropdown.is-open {
		display: none;
	}

	.ps-single-content,
	.ps-after-post {
		font-size: 18px;
	}
}

/* ==========================================================================
   13b. DESKTOP LAYOUT (>= 900px) — 3-column grid, wider container
   ========================================================================== */

@media (min-width: 940px) {
	/* Container: widen padding on desktop */
	.ps-container {
		padding: 0 28px;
	}

	/* Cards grid — 3 columns */
	.ps-cards-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 18px;
		padding: 6px 0 11px;
	}

	.ps-card {
		padding: 20px;
	}

	/* Single post */
	.ps-single {
		padding: 32px 28px 48px;
	}

	.ps-single-title {
		font-size: 42px;
	}

	/* Footer — 3 columns, same grid as cards */
	.ps-footer {
		padding: 19px 0 0;
		margin-top: 0;
	}

	.ps-footer-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 18px;
		padding: 6px 0 0;
	}

	.ps-footer-col {
		padding: 20px;
	}

	/* Page header */
	.ps-page-header {
		padding: 24px 0 8px;
	}

	.ps-pagination {
		padding: 8px 0 48px;
	}

	.ps-comments {
		padding: 0 0 48px;
	}

	.ps-search-overlay {
		padding: 12px 0 16px;
	}
}

/* ==========================================================================
   14. UTILITY
   ========================================================================== */

/* Screen reader text */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* Disable GP layout extras we don't need */
.separate-containers .site-main > *:not(:first-child),
.separate-containers .widget:not(:first-child) {
	margin-top: 0;
}

/* No featured images on cards */
.ps-card img.attachment-post-image {
	display: none;
}

/* Override any GP inline generated CSS for backgrounds */
body .grid-container {
	max-width: 100%;
}

/* Ensure clean content wrapper */
.site-content {
	padding: 0 !important;
}

#primary {
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
}

/* Hide GP sidebars */
#right-sidebar,
#left-sidebar {
	display: none !important;
}

/* Fix for GP grid container */
.grid-container {
	padding: 0 !important;
}
