/*
 * NerPlay Gaming — Blocksy child-theme skin
 *
 * All rules are scoped by .nerplay-gaming or the stable public Blocksy
 * selectors. The parent theme remains responsible for layout and markup.
 */

:root {
	--ng-primary: #57e6ff;
	--ng-primary-rgb: 87, 230, 255;
	--ng-secondary: #9b7bff;
	--ng-secondary-rgb: 155, 123, 255;
	--ng-accent: #ffc857;
	--ng-accent-rgb: 255, 200, 87;
	--ng-background: #070a13;
	--ng-background-deep: #04060d;
	--ng-surface: rgba(14, 20, 36, 0.82);
	--ng-surface-strong: #111a2e;
	--ng-card: rgba(16, 25, 44, 0.9);
	--ng-border: rgba(143, 207, 255, 0.18);
	--ng-border-strong: rgba(87, 230, 255, 0.42);
	--ng-text: #eef7ff;
	--ng-muted: #92a7bc;
	--ng-success: #58e6ab;
	--ng-danger: #ff6684;
	--ng-warning: #ffc857;
	--ng-info: #72a7ff;
	--ng-glow-primary: 0 0 2.5rem rgba(var(--ng-primary-rgb), 0.22);
	--ng-glow-secondary: 0 0 2.5rem rgba(var(--ng-secondary-rgb), 0.2);
	--ng-shadow: 0 1.25rem 3.5rem rgba(0, 0, 0, 0.35);
	--ng-radius-sm: 0.35rem;
	--ng-radius-md: 0.7rem;
	--ng-radius-lg: 1.1rem;
	--ng-radius-pill: 999px;
	--ng-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

body.nerplay-gaming {
	background:
		radial-gradient(circle at 12% 0%, rgba(var(--ng-secondary-rgb), 0.1), transparent 32rem),
		radial-gradient(circle at 88% 14%, rgba(var(--ng-primary-rgb), 0.08), transparent 30rem),
		var(--ng-background);
	color: var(--ng-text);
}

.nerplay-gaming #main-container {
	position: relative;
	z-index: 0;
}

.nerplay-gaming #main-container::before {
	position: fixed;
	z-index: -1;
	inset: 0;
	background-image: linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
	background-size: 4rem 4rem;
	content: "";
	mask-image: linear-gradient(to bottom, black, transparent 80%);
	pointer-events: none;
}

.nerplay-gaming :where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--ng-primary);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px rgba(var(--ng-primary-rgb), 0.16);
}

.nerplay-gaming :where(a, button) {
	transition: color 180ms var(--ng-ease), background-color 180ms var(--ng-ease),
		border-color 180ms var(--ng-ease), box-shadow 180ms var(--ng-ease),
		transform 180ms var(--ng-ease);
}

.nerplay-gaming :where(.ct-container, .ct-container-fluid, .ct-container-auto) {
	position: relative;
}

/* Header and announcement surfaces. */
.nerplay-gaming #header,
.nerplay-gaming .ct-header {
	position: relative;
	z-index: 20;
}

.nerplay-gaming .ct-header [data-row] {
	border-color: var(--ng-border);
	background: rgba(7, 10, 19, 0.72);
	backdrop-filter: blur(18px) saturate(135%);
}

.nerplay-gaming .ct-header [data-row="middle"] {
	border-top: 1px solid rgba(var(--ng-primary-rgb), 0.08);
	border-bottom: 1px solid var(--ng-border);
	box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.14);
}

.nerplay-gaming .ct-header [data-row="top"],
.nerplay-gaming .ct-header [data-row="bottom"] {
	background: rgba(4, 6, 13, 0.76);
}

.nerplay-gaming .ct-header .ct-container,
.nerplay-gaming .ct-header .ct-container-fluid {
	min-height: inherit;
}

.nerplay-gaming .ct-header .ct-header-trigger,
.nerplay-gaming .ct-header .ct-toggle {
	border-radius: var(--ng-radius-sm);
	color: var(--ng-muted);
}

.nerplay-gaming .ct-header .ct-header-trigger:hover,
.nerplay-gaming .ct-header .ct-toggle:hover {
	color: var(--ng-primary);
	background: rgba(var(--ng-primary-rgb), 0.1);
	box-shadow: var(--ng-glow-primary);
}

.nerplay-gaming .ct-header .ct-menu-link {
	position: relative;
	color: var(--ng-muted);
	font-weight: 600;
	letter-spacing: 0.035em;
}

.nerplay-gaming .ct-header .ct-menu-link::after {
	position: absolute;
	right: 0.75rem;
	bottom: 0.4rem;
	left: 0.75rem;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--ng-primary), transparent);
	content: "";
	opacity: 0;
	transform: scaleX(0.35);
	transition: opacity 180ms var(--ng-ease), transform 180ms var(--ng-ease);
}

.nerplay-gaming .ct-header .ct-menu-link:hover,
.nerplay-gaming .ct-header .current-menu-item > .ct-menu-link {
	color: var(--ng-text);
}

.nerplay-gaming .ct-header .ct-menu-link:hover::after,
.nerplay-gaming .ct-header .current-menu-item > .ct-menu-link::after {
	opacity: 1;
	transform: scaleX(1);
}

.nerplay-gaming .ct-header .sub-menu,
.nerplay-gaming .ct-header .ct-panel {
	border: 1px solid var(--ng-border-strong);
	border-radius: var(--ng-radius-md);
	background: rgba(9, 14, 27, 0.96);
	box-shadow: var(--ng-shadow), var(--ng-glow-secondary);
	backdrop-filter: blur(22px) saturate(145%);
}

.nerplay-gaming .ct-header .sub-menu .ct-menu-link {
	border-radius: var(--ng-radius-sm);
}

.nerplay-gaming .ct-header .sub-menu .ct-menu-link:hover {
	background: rgba(var(--ng-primary-rgb), 0.1);
}

.nerplay-gaming .ct-header .ct-header-text,
.nerplay-gaming .ct-header .ct-header-trigger,
.nerplay-gaming .ct-header .ct-icon-container {
	color: var(--ng-muted);
}

.nerplay-gaming .ct-header .ct-header-text:hover,
.nerplay-gaming .ct-header .ct-icon-container:hover {
	color: var(--ng-primary);
}

/* Blocksy mobile menu/off-canvas compatibility. */
@media (max-width: 999px) {
.nerplay-gaming #header .ct-header-trigger[data-toggle-panel="#offcanvas"],
.nerplay-gaming .ct-header .ct-header-trigger[data-toggle-panel="#offcanvas"] {
display: inline-flex !important;
visibility: visible !important;
align-items: center;
justify-content: center;
min-width: 2.75rem;
min-height: 2.75rem;
padding: 0.65rem;
border: 1px solid var(--ng-border-strong);
border-radius: var(--ng-radius-sm);
background: rgba(var(--ng-primary-rgb), 0.08);
color: var(--ng-primary);
opacity: 1 !important;
pointer-events: auto;
position: relative;
z-index: 2;
}

.nerplay-gaming #header .ct-header-trigger[data-toggle-panel="#offcanvas"]:hover,
.nerplay-gaming .ct-header .ct-header-trigger[data-toggle-panel="#offcanvas"]:hover {
background: rgba(var(--ng-primary-rgb), 0.2);
box-shadow: var(--ng-glow-primary);
color: #fff;
}

.nerplay-gaming #header .ct-header-trigger[data-toggle-panel="#offcanvas"] .ct-icon,
.nerplay-gaming .ct-header .ct-header-trigger[data-toggle-panel="#offcanvas"] .ct-icon {
display: block;
fill: currentColor;
flex: 0 0 auto;
}

.nerplay-gaming #offcanvas {
z-index: 99999;
}

.nerplay-gaming #offcanvas .ct-panel-inner {
min-height: 100%;
overflow: hidden;
background:
linear-gradient(180deg, rgba(var(--ng-secondary-rgb), 0.12), transparent 15rem),
rgba(7, 10, 19, 0.98);
}

.nerplay-gaming #offcanvas .ct-panel-content[data-device="mobile"] {
display: block !important;
width: 100%;
max-height: 100%;
overflow-y: auto;
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}

.nerplay-gaming #offcanvas .ct-panel-content[data-device="desktop"] {
display: none !important;
}

.nerplay-gaming #offcanvas .ct-panel-content-inner {
display: flex;
flex-direction: column;
gap: 1rem;
min-height: 100%;
padding: clamp(1.25rem, 5vw, 2rem);
}

.nerplay-gaming #offcanvas .ct-panel-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 1rem clamp(1.25rem, 5vw, 2rem);
border-bottom: 1px solid var(--ng-border);
background: rgba(4, 6, 13, 0.42);
}

.nerplay-gaming #offcanvas .ct-panel-heading {
color: var(--ng-text);
font-size: 0.8rem;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
}

.nerplay-gaming #offcanvas .ct-toggle-close {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.5rem;
height: 2.5rem;
padding: 0;
border: 1px solid var(--ng-border);
border-radius: var(--ng-radius-sm);
background: rgba(255, 255, 255, 0.04);
color: var(--ng-muted);
}

.nerplay-gaming #offcanvas .ct-toggle-close:hover {
border-color: var(--ng-danger);
background: rgba(255, 102, 132, 0.12);
color: var(--ng-danger);
}

.nerplay-gaming #offcanvas .mobile-menu {
width: 100%;
}

.nerplay-gaming #offcanvas .mobile-menu > ul,
.nerplay-gaming #offcanvas .mobile-menu .menu {
display: flex;
flex-direction: column;
width: 100%;
margin: 0;
padding: 0;
list-style: none;
}

.nerplay-gaming #offcanvas .mobile-menu li {
width: 100%;
margin: 0;
}

.nerplay-gaming #offcanvas .mobile-menu .ct-menu-link,
.nerplay-gaming #offcanvas .mobile-menu .ct-sub-menu-parent {
display: flex;
align-items: center;
width: 100%;
min-height: 3.25rem;
padding: 0.75rem 0;
border-bottom: 1px solid rgba(143, 207, 255, 0.12);
color: var(--ng-muted);
font-weight: 700;
letter-spacing: 0.04em;
}

.nerplay-gaming #offcanvas .mobile-menu .ct-menu-link:hover,
.nerplay-gaming #offcanvas .mobile-menu .current-menu-item > .ct-menu-link,
.nerplay-gaming #offcanvas .mobile-menu .current-menu-ancestor > .ct-sub-menu-parent {
border-color: rgba(var(--ng-primary-rgb), 0.36);
color: var(--ng-primary);
}

.nerplay-gaming #offcanvas .mobile-menu .sub-menu {
width: 100%;
margin: 0;
padding: 0 0 0 1rem;
list-style: none;
}

.nerplay-gaming #offcanvas .mobile-menu [class*="children"]:not(.dropdown-active) > ul {
display: none;
}

.nerplay-gaming #offcanvas .mobile-menu [class*="children"].dropdown-active > ul {
display: block;
}
}

/* Buttons and form controls. */
.nerplay-gaming :where(.ct-button, .wp-element-button, .button, button[type="submit"], input[type="submit"]) {
	border: 1px solid rgba(var(--ng-primary-rgb), 0.48);
	border-radius: var(--ng-radius-sm);
	background: linear-gradient(135deg, rgba(var(--ng-primary-rgb), 0.18), rgba(var(--ng-secondary-rgb), 0.2));
	color: var(--ng-text);
	box-shadow: 0 0.35rem 1.2rem rgba(var(--ng-primary-rgb), 0.1);
	font-weight: 700;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.nerplay-gaming :where(.ct-button, .wp-element-button, .button, button[type="submit"], input[type="submit"]):hover {
	border-color: var(--ng-primary);
	background: linear-gradient(135deg, rgba(var(--ng-primary-rgb), 0.3), rgba(var(--ng-secondary-rgb), 0.34));
	color: #fff;
	box-shadow: var(--ng-glow-primary);
	transform: translateY(-2px);
}

.nerplay-gaming :where(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
	border: 1px solid var(--ng-border);
	border-radius: var(--ng-radius-sm);
	background: rgba(4, 7, 16, 0.72);
	color: var(--ng-text);
}

.nerplay-gaming :where(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
	border-color: var(--ng-primary);
	background: rgba(8, 14, 27, 0.9);
	box-shadow: var(--ng-glow-primary);
}

.nerplay-gaming ::placeholder {
	color: rgba(146, 167, 188, 0.7);
}

/* Content, blog, archives, sidebar, and widgets. */
.nerplay-gaming :where(.entry-card, .ct-related-posts, .ct-no-results, .widget, .ct-sidebar, .hero-section) {
	border-color: var(--ng-border);
}

.nerplay-gaming :where(.entry-card, .ct-related-posts, .widget) {
	border-radius: var(--ng-radius-md);
	background: linear-gradient(145deg, rgba(15, 23, 41, 0.86), rgba(8, 12, 23, 0.86));
	box-shadow: 0 0.8rem 2.5rem rgba(0, 0, 0, 0.16);
}

.nerplay-gaming :where(.entry-card, .widget) a:hover,
.nerplay-gaming :where(.entry-title, .page-title) a:hover {
	color: var(--ng-primary);
}

.nerplay-gaming .entry-card {
	overflow: clip;
	transition: border-color 180ms var(--ng-ease), box-shadow 180ms var(--ng-ease),
		transform 180ms var(--ng-ease);
}

.nerplay-gaming .entry-card:hover {
	border-color: var(--ng-border-strong);
	box-shadow: var(--ng-shadow), var(--ng-glow-secondary);
	transform: translateY(-4px);
}

.nerplay-gaming .widget-title {
	color: var(--ng-text);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.nerplay-gaming .widget-title::before {
	display: inline-block;
	width: 1.5rem;
	height: 2px;
	margin-right: 0.55rem;
	background: var(--ng-primary);
	box-shadow: 0 0 0.8rem var(--ng-primary);
	content: "";
	vertical-align: middle;
}

.nerplay-gaming .ct-breadcrumbs,
.nerplay-gaming .ct-breadcrumbs a {
	color: var(--ng-muted);
}

.nerplay-gaming .ct-breadcrumbs a:hover {
	color: var(--ng-primary);
}

.nerplay-gaming .ct-pagination a,
.nerplay-gaming .ct-pagination .page-numbers {
	border-color: var(--ng-border);
	border-radius: var(--ng-radius-sm);
	background: var(--ng-surface);
}

.nerplay-gaming .ct-pagination .page-numbers.current,
.nerplay-gaming .ct-pagination a:hover {
	border-color: var(--ng-primary);
	background: rgba(var(--ng-primary-rgb), 0.16);
	color: var(--ng-text);
}

/* Commerce surfaces; templates remain Blocksy's. */
.nerplay-gaming .woocommerce :where(.product, .ct-product, .product-entry, .woocommerce-product-gallery),
.nerplay-gaming .woocommerce-page :where(.cart_totals, .woocommerce-checkout-review-order, .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) {
	border-color: var(--ng-border);
}

.nerplay-gaming .woocommerce :where(.product, .ct-product, .product-entry) {
	border-radius: var(--ng-radius-md);
	background: linear-gradient(145deg, rgba(17, 27, 47, 0.9), rgba(8, 12, 23, 0.9));
	box-shadow: 0 0.8rem 2.3rem rgba(0, 0, 0, 0.18);
	transition: border-color 180ms var(--ng-ease), box-shadow 180ms var(--ng-ease),
		transform 180ms var(--ng-ease);
}

.nerplay-gaming .woocommerce :where(.product, .ct-product, .product-entry):hover {
	border-color: var(--ng-border-strong);
	box-shadow: var(--ng-shadow), var(--ng-glow-primary);
	transform: translateY(-4px);
}

.nerplay-gaming .woocommerce :where(.onsale, .badge, .ct-product-badge) {
	border: 1px solid rgba(var(--ng-accent-rgb), 0.7);
	border-radius: var(--ng-radius-pill);
	background: rgba(var(--ng-accent-rgb), 0.16);
	color: var(--ng-accent);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.nerplay-gaming .woocommerce :where(.price, .amount) {
	color: var(--ng-primary);
	font-weight: 700;
}

.nerplay-gaming .woocommerce :where(.star-rating, .woocommerce-product-rating) {
	color: var(--ng-accent);
}

.nerplay-gaming .woocommerce :where(.woocommerce-message, .woocommerce-info, .woocommerce-notice) {
	border-top-color: var(--ng-primary);
	border-radius: var(--ng-radius-sm);
	background: rgba(var(--ng-primary-rgb), 0.08);
	color: var(--ng-text);
}

.nerplay-gaming .woocommerce :where(.woocommerce-error) {
	border-top-color: var(--ng-danger);
	border-radius: var(--ng-radius-sm);
	background: rgba(255, 102, 132, 0.08);
}

.nerplay-gaming .woocommerce :where(.quantity .qty, .select2-container .select2-selection, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea) {
	border-color: var(--ng-border);
	background: rgba(4, 7, 16, 0.7);
	color: var(--ng-text);
}

.nerplay-gaming .ct-cart-content,
.nerplay-gaming .ct-cart-dropdown {
	border-color: var(--ng-border-strong);
	border-radius: var(--ng-radius-md);
	background: rgba(8, 13, 25, 0.96);
	box-shadow: var(--ng-shadow), var(--ng-glow-secondary);
	backdrop-filter: blur(20px);
}

.nerplay-gaming .woocommerce-tabs,
.nerplay-gaming .woocommerce-MyAccount-content,
.nerplay-gaming .woocommerce-MyAccount-navigation,
.nerplay-gaming .cart_totals,
.nerplay-gaming .cross-sells,
.nerplay-gaming .up-sells {
	border-radius: var(--ng-radius-md);
	background: rgba(12, 19, 34, 0.64);
}

/* Footer and utility surfaces. */
.nerplay-gaming #footer,
.nerplay-gaming .ct-footer {
	position: relative;
	border-top: 1px solid var(--ng-border);
	background:
		linear-gradient(180deg, rgba(var(--ng-secondary-rgb), 0.08), transparent 12rem),
		var(--ng-background-deep);
}

.nerplay-gaming .ct-footer [data-row] {
	border-color: rgba(var(--ng-primary-rgb), 0.1);
}

.nerplay-gaming .ct-footer .ct-footer-copyright,
.nerplay-gaming .ct-footer .ct-footer-socials,
.nerplay-gaming .ct-footer .ct-widget {
	color: var(--ng-muted);
}

.nerplay-gaming .ct-footer a:hover {
	color: var(--ng-primary);
}

.nerplay-gaming .ct-back-to-top {
	border: 1px solid var(--ng-border-strong);
	border-radius: var(--ng-radius-sm);
	background: rgba(8, 14, 27, 0.9);
	color: var(--ng-primary);
	box-shadow: var(--ng-glow-primary);
}

.nerplay-gaming-skip-link {
	position: fixed;
	z-index: 9999;
	top: 0.75rem;
	left: 0.75rem;
	padding: 0.7rem 1rem;
	border: 1px solid var(--ng-primary);
	border-radius: var(--ng-radius-sm);
	background: var(--ng-background-deep);
	color: var(--ng-text);
	transform: translateY(-160%);
	transition: transform 180ms var(--ng-ease);
}

.nerplay-gaming-skip-link:focus {
	transform: translateY(0);
}

@media (max-width: 999px) {
	.nerplay-gaming .ct-header .ct-menu-link::after {
		display: none;
	}

	.nerplay-gaming :where(.entry-card, .widget, .woocommerce .product) {
		box-shadow: 0 0.6rem 1.6rem rgba(0, 0, 0, 0.2);
	}
}

@media (max-width: 689px) {
	.nerplay-gaming {
		--ng-radius-md: 0.55rem;
		--ng-radius-lg: 0.8rem;
	}

	.nerplay-gaming #main-container::before {
		background-size: 2.5rem 2.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nerplay-gaming *,
	.nerplay-gaming *::before,
	.nerplay-gaming *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}