/*
Theme Name: NeonaFM Store
Theme URI: https://n-fm.ru/
Author: NeonaFM
Author URI: https://n-fm.ru/
Description: Лёгкая тёмная тема для магазина цифровых товаров NeonaFM. Поддерживает Neona Commerce, редактируемую главную страницу и портфолио Telegram/MAX-ботов.
Version: 1.1.1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neonafm-store
Tags: e-commerce, custom-logo, custom-menu, featured-images, dark
*/

@font-face {
	font-family: "Alice";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/alice/alice-cyrillic-400-normal.woff2") format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: "Alice";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/alice/alice-latin-400-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("assets/fonts/manrope/manrope-cyrillic-wght-normal.woff2") format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("assets/fonts/manrope/manrope-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--nf-bg: #08090d;
	--nf-bg-soft: #0d0f15;
	--nf-surface: #12141c;
	--nf-surface-strong: #171a24;
	--nf-surface-glass: rgba(18, 20, 28, 0.72);
	--nf-border: rgba(255, 255, 255, 0.1);
	--nf-border-strong: rgba(150, 122, 220, 0.35);
	--nf-text: #f7f3ff;
	--nf-muted: #aaa7b6;
	--nf-blue: #4688da;
	--nf-pink: #c94b94;
	--nf-lilac: #967adc;
	--nf-green: #59d69b;
	--nf-gradient: linear-gradient(100deg, var(--nf-blue), var(--nf-pink));
	--nf-gradient-reverse: linear-gradient(100deg, var(--nf-pink), var(--nf-blue));
	--nf-heading: "Alice", Georgia, serif;
	--nf-body: "Manrope", "Segoe UI", Arial, sans-serif;
	--nf-container: 1180px;
	--nf-radius-sm: 14px;
	--nf-radius: 22px;
	--nf-radius-lg: 32px;
	--nf-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
	--nf-header-height: 82px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--nf-header-height) + 24px);
}

body {
	margin: 0;
	background:
		radial-gradient(circle at 15% 0%, rgba(70, 136, 218, 0.08), transparent 34rem),
		var(--nf-bg);
	color: var(--nf-text);
	font-family: var(--nf-body);
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.menu-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea,
select {
	font: inherit;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.55em;
	color: var(--nf-text);
	font-family: var(--nf-heading);
	font-weight: 400;
	line-height: 1.1;
	text-wrap: balance;
}

h1 {
	font-size: clamp(2rem, 4.2vw, 4.1rem);
	letter-spacing: -0.035em;
}

h2 {
	font-size: clamp(1.85rem, 3.4vw, 3.35rem);
	letter-spacing: -0.025em;
}

h3 {
	font-size: clamp(1.2rem, 1.8vw, 1.65rem);
}

p {
	margin: 0 0 1.35em;
}

::selection {
	background: rgba(150, 122, 220, 0.45);
	color: #fff;
}

:focus-visible {
	outline: 3px solid rgba(150, 122, 220, 0.78);
	outline-offset: 4px;
}

.screen-reader-text,
.nf-skip-link:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.nf-skip-link {
	position: fixed;
	z-index: 99999;
	top: 10px;
	left: 10px;
	padding: 12px 18px;
	border-radius: 10px;
	background: #fff;
	color: #111;
}

.nf-container {
	width: min(calc(100% - 40px), var(--nf-container));
	margin-inline: auto;
}

.nf-main {
	min-height: 55vh;
	overflow: clip;
}

.nf-section {
	position: relative;
	padding: clamp(76px, 10vw, 140px) 0;
}

.nf-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.75fr);
	align-items: end;
	gap: 48px;
	margin-bottom: 48px;
}

.nf-section-heading--compact {
	grid-template-columns: 1fr;
}

.nf-section-heading h2,
.nf-faq h2 {
	margin-bottom: 0;
}

.nf-section-heading > p {
	max-width: 600px;
	margin: 0 0 0.4em;
	color: var(--nf-muted);
	font-size: 1.08rem;
}

.nf-section-kicker,
.nf-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	color: var(--nf-lilac);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.nf-section-kicker::before,
.nf-eyebrow::before {
	content: "";
	width: 24px;
	height: 1px;
	background: var(--nf-gradient);
	box-shadow: 0 0 12px rgba(150, 122, 220, 0.7);
}

.nf-large-text {
	color: #d8d3e2;
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	line-height: 1.85;
}

/* Header */
.nf-site-header {
	position: sticky;
	z-index: 1000;
	top: 0;
	height: var(--nf-header-height);
	border-bottom: 1px solid transparent;
	background: rgba(8, 9, 13, 0.76);
	backdrop-filter: blur(18px);
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.admin-bar .nf-site-header {
	top: 32px;
}

.nf-site-header.is-scrolled {
	border-color: var(--nf-border);
	background: rgba(8, 9, 13, 0.93);
	box-shadow: 0 12px 34px rgba(0, 0, 0, 0.25);
}

.nf-site-header__inner {
	display: flex;
	align-items: center;
	height: 100%;
	gap: 24px;
}

.nf-brand {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	width: 184px;
}

.nf-brand__image,
.custom-logo {
	width: auto;
	max-width: 100%;
	height: 48px;
	object-fit: contain;
	object-position: left center;
}

.nf-navigation {
	margin-left: auto;
}

.nf-menu,
.nf-navigation .menu {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2vw, 29px);
	padding: 0;
	margin: 0;
	list-style: none;
}

.nf-menu a,
.nf-navigation .menu a {
	position: relative;
	display: block;
	padding: 10px 0;
	color: #d8d4df;
	font-size: 0.88rem;
	font-weight: 700;
	transition: color 160ms ease;
}

.nf-menu a::after,
.nf-navigation .menu a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 4px;
	left: 0;
	height: 1px;
	background: var(--nf-gradient);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}

.nf-menu a:hover,
.nf-navigation .menu a:hover,
.nf-navigation .current-menu-item > a {
	color: #fff;
}

.nf-menu a:hover::after,
.nf-navigation .menu a:hover::after,
.nf-navigation .current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.nf-header-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 8px;
}

.nf-header-action {
	position: relative;
	display: grid;
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	place-items: center;
	border: 1px solid var(--nf-border);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.035);
	color: #fff;
	transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.nf-header-action:hover {
	border-color: rgba(150, 122, 220, 0.5);
	background: rgba(150, 122, 220, 0.1);
	color: #fff;
	transform: translateY(-2px);
}

.nf-header-action.is-current {
	border-color: transparent;
	background: var(--nf-gradient);
	box-shadow: 0 10px 25px rgba(106, 79, 188, 0.25);
}

.nf-cart-count {
	position: absolute;
	top: -4px;
	right: -5px;
	display: grid;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	place-items: center;
	border: 2px solid var(--nf-bg);
	border-radius: 20px;
	background: var(--nf-gradient);
	color: #fff;
	font-size: 0.67rem;
	font-weight: 800;
	line-height: 1;
}

.nf-menu-toggle {
	display: none;
	width: 46px;
	height: 46px;
	padding: 11px;
	border: 1px solid var(--nf-border);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
}

.nf-menu-toggle > span:not(.screen-reader-text) {
	display: block;
	width: 100%;
	height: 2px;
	margin: 5px 0;
	border-radius: 2px;
	background: currentColor;
	transition: transform 180ms ease, opacity 180ms ease;
}

.nf-menu-toggle[aria-expanded="true"] > span:nth-of-type(1) {
	transform: translateY(7px) rotate(45deg);
}

.nf-menu-toggle[aria-expanded="true"] > span:nth-of-type(2) {
	opacity: 0;
}

.nf-menu-toggle[aria-expanded="true"] > span:nth-of-type(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.nf-menu-backdrop {
	display: none;
}

/* Buttons */
.nf-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wp-block-button__link,
.wc-block-components-button {
	position: relative;
	z-index: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 13px 25px;
	overflow: hidden;
	border: 0;
	border-radius: 999px;
	background: var(--nf-gradient);
	box-shadow: 0 10px 28px rgba(103, 93, 200, 0.22);
	color: #fff;
	font-family: var(--nf-body);
	font-size: 0.88rem;
	font-weight: 800;
	line-height: 1.25;
	text-align: center;
	cursor: pointer;
	transition: transform 170ms ease, box-shadow 170ms ease, opacity 170ms ease;
	isolation: isolate;
}

.nf-button::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: inherit;
	background: var(--nf-gradient-reverse);
	opacity: 0;
	transition: opacity 180ms ease;
}

.nf-button > span {
	position: relative;
	z-index: 1;
}

.nf-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wp-block-button__link:hover,
.wc-block-components-button:hover {
	background: var(--nf-gradient-reverse);
	box-shadow: 0 15px 34px rgba(143, 87, 191, 0.31);
	color: #fff;
	transform: translateY(-2px);
}

.nf-button:hover::before {
	opacity: 1;
}

.nf-button--secondary {
	background: var(--nf-gradient-reverse);
}

.nf-button--secondary::before {
	background: var(--nf-gradient);
}

.nf-button--ghost {
	border: 1px solid rgba(150, 122, 220, 0.38);
	background: rgba(150, 122, 220, 0.06);
	box-shadow: none;
}

.nf-button--ghost::before {
	background: rgba(150, 122, 220, 0.15);
}

.nf-button--ghost:hover {
	border-color: rgba(150, 122, 220, 0.75);
	background: rgba(150, 122, 220, 0.15);
	box-shadow: 0 14px 32px rgba(83, 52, 153, 0.16);
}

.nf-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 32px;
}

.nf-text-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-weight: 800;
}

.nf-text-link span {
	color: var(--nf-lilac);
	font-size: 1.4em;
	transition: transform 160ms ease;
}

.nf-text-link:hover span {
	transform: translateX(5px);
}

/* Hero */
.nf-hero {
	position: relative;
	display: grid;
	min-height: calc(100vh - var(--nf-header-height));
	padding: clamp(70px, 8vw, 118px) 0;
	overflow: hidden;
	place-items: center;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	background:
		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: 64px 64px;
}

.nf-hero::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 180px;
	background: linear-gradient(transparent, var(--nf-bg));
	pointer-events: none;
}

.nf-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(430px, 0.95fr);
	align-items: center;
	gap: clamp(42px, 7vw, 92px);
}

.nf-hero__content {
	position: relative;
	z-index: 2;
}

.nf-hero h1 {
	max-width: 740px;
	background: linear-gradient(125deg, #fff 20%, #ded5f1 58%, #b2cfee 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: clamp(2rem, 3.4vw, 3.4rem);
}

.nf-hero__lead {
	max-width: 690px;
	color: #bbb7c6;
	font-size: clamp(1.03rem, 1.8vw, 1.28rem);
	line-height: 1.78;
}

.nf-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 34px;
}

.nf-hero__meta span {
	padding: 6px 11px;
	border: 1px solid var(--nf-border);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.025);
	color: #8e8b99;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.nf-hero__glow {
	position: absolute;
	width: 500px;
	height: 500px;
	border-radius: 50%;
	filter: blur(120px);
	opacity: 0.18;
	pointer-events: none;
}

.nf-hero__glow--one {
	top: 4%;
	right: -120px;
	background: var(--nf-pink);
}

.nf-hero__glow--two {
	bottom: -160px;
	left: -220px;
	background: var(--nf-blue);
}

.nf-hero-visual {
	position: relative;
	width: min(100%, 540px);
	aspect-ratio: 1 / 1;
	margin-inline: auto;
	border: 1px solid rgba(150, 122, 220, 0.2);
	border-radius: 42px;
	background:
		radial-gradient(circle at 54% 44%, rgba(150, 122, 220, 0.16), transparent 35%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), var(--nf-shadow);
	transform: perspective(900px);
	transform-style: preserve-3d;
	transition: transform 420ms ease, box-shadow 420ms ease;
	will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
	.nf-hero-visual:hover {
		animation: nf-hero-visual-tilt 3s ease-in-out infinite;
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 34px 90px rgba(72, 43, 142, 0.28);
	}
}

@keyframes nf-hero-visual-tilt {
	0%,
	100% {
		transform: perspective(900px) rotateY(0deg) rotateX(0deg) translateY(0);
	}

	32% {
		transform: perspective(900px) rotateY(-5deg) rotateX(1.5deg) translateY(-4px);
	}

	68% {
		transform: perspective(900px) rotateY(5deg) rotateX(-1.5deg) translateY(-4px);
	}
}

.nf-hero-visual::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	background: linear-gradient(130deg, rgba(70, 136, 218, 0.4), transparent 35%, transparent 65%, rgba(201, 75, 148, 0.35));
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	padding: 1px;
	mask-composite: exclude;
	pointer-events: none;
}

.nf-hero-visual__grid {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background:
		linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
	background-size: 42px 42px;
	mask-image: linear-gradient(to bottom, #000, transparent 82%);
}

.nf-hero-visual__orb {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	width: 168px;
	height: 168px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 50%;
	background:
		radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.3), transparent 18%),
		conic-gradient(from 200deg, var(--nf-blue), #5631c4, var(--nf-pink), var(--nf-blue));
	box-shadow:
		0 0 0 18px rgba(150, 122, 220, 0.035),
		0 0 0 38px rgba(150, 122, 220, 0.018),
		0 34px 70px rgba(92, 52, 180, 0.36);
	color: #fff;
	font-family: var(--nf-heading);
	font-size: 3.5rem;
	transform: translate(-50%, -50%);
}

.nf-hero-visual__orb::after {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: inherit;
}

.nf-floating-card {
	position: absolute;
	z-index: 2;
	padding: 18px;
	border: 1px solid rgba(255, 255, 255, 0.11);
	border-radius: 18px;
	background: rgba(14, 16, 23, 0.88);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.3);
	backdrop-filter: blur(14px);
}

.nf-floating-card strong,
.nf-floating-card small {
	display: block;
}

.nf-floating-card strong {
	color: #fff;
	font-size: 0.94rem;
}

.nf-floating-card small {
	margin-top: 3px;
	color: #898694;
	font-size: 0.7rem;
}

.nf-floating-card__tag {
	display: inline-block;
	margin-bottom: 12px;
	color: var(--nf-lilac);
	font-size: 0.58rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.nf-floating-card__line {
	display: block;
	width: 100%;
	height: 4px;
	margin-top: 14px;
	border-radius: 4px;
	background: var(--nf-gradient);
}

.nf-floating-card__icon {
	display: grid;
	width: 33px;
	height: 33px;
	margin-bottom: 10px;
	place-items: center;
	border: 1px solid rgba(150, 122, 220, 0.36);
	border-radius: 10px;
	background: rgba(150, 122, 220, 0.1);
	color: #c7b7ee;
	font-weight: 800;
}

.nf-floating-card--product {
	top: 9%;
	left: -5%;
	width: 205px;
}

.nf-floating-card--bot {
	top: 15%;
	right: -6%;
	width: 145px;
}

.nf-floating-card--plugin {
	right: 5%;
	bottom: 9%;
	width: 170px;
}

.nf-hero-visual__status {
	position: absolute;
	bottom: 13%;
	left: 7%;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #918e9b;
	font-size: 0.66rem;
	font-weight: 700;
}

.nf-hero-visual__status span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--nf-green);
	box-shadow: 0 0 12px var(--nf-green);
}

/* Product section and cards */
.nf-products-section {
	background: var(--nf-bg);
}

.nf-home-product-categories {
	margin-top: -12px;
}

.nf-product-categories__link[type="button"] {
	font-family: inherit;
	cursor: pointer;
}

.nf-products-section[data-active-category="all"] .nf-home-hidden-default,
.nf-product-carousel li.product[hidden] {
	display: none !important;
}

.nf-product-filter-empty {
	margin: 8px 0 24px;
}

.nf-product-carousel {
	position: relative;
}

.nf-product-carousel__controls {
	display: flex;
	justify-content: flex-end;
	gap: 9px;
	margin: -18px 0 18px;
}

.nf-carousel-button {
	display: grid;
	width: 46px;
	height: 46px;
	padding: 0;
	place-items: center;
	border: 1px solid rgba(150, 122, 220, 0.38);
	border-radius: 50%;
	background: rgba(150, 122, 220, 0.07);
	color: #fff;
	cursor: pointer;
	transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease, opacity 160ms ease;
}

.nf-carousel-button:hover:not(:disabled) {
	border-color: transparent;
	background: var(--nf-gradient);
	box-shadow: 0 10px 25px rgba(106, 79, 188, 0.25);
	transform: translateY(-2px);
}

.nf-carousel-button:disabled {
	cursor: default;
	opacity: 0.3;
}

.nf-product-carousel.is-static .nf-product-carousel__controls {
	visibility: hidden;
}

.nf-product-carousel__viewport {
	padding: 8px 4px 24px;
	margin-inline: -4px;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	scrollbar-color: rgba(150, 122, 220, 0.45) rgba(255, 255, 255, 0.045);
	scrollbar-width: thin;
}

.nf-product-carousel__viewport::-webkit-scrollbar {
	height: 7px;
}

.nf-product-carousel__viewport::-webkit-scrollbar-track {
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.045);
}

.nf-product-carousel__viewport::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: var(--nf-gradient);
}

.woocommerce .nf-product-carousel ul.products,
.woocommerce-page .nf-product-carousel ul.products {
	display: flex;
	width: max-content;
	max-width: none;
	gap: 22px;
}

.woocommerce .nf-product-carousel ul.products li.product,
.woocommerce-page .nf-product-carousel ul.products li.product {
	flex: 0 0 clamp(255px, 27vw, 330px);
	width: clamp(255px, 27vw, 330px);
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	display: flex;
	float: none;
	flex-direction: column;
	width: auto;
	padding: 14px 14px 20px;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018));
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.2);
	transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.woocommerce .nf-commerce ul.products li.product,
.woocommerce-page .nf-commerce ul.products li.product {
	width: 100% !important;
	max-width: none;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	border-color: rgba(150, 122, 220, 0.4);
	box-shadow: 0 26px 62px rgba(0, 0, 0, 0.32);
	transform: translateY(-6px);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0 0 20px;
	border-radius: 15px;
	background: #171923;
	object-fit: cover;
}

.woocommerce span.onsale {
	z-index: 3;
	top: 26px;
	right: 26px;
	left: auto;
	min-width: 0;
	min-height: 0;
	padding: 7px 11px;
	border-radius: 999px;
	background: var(--nf-gradient);
	box-shadow: 0 8px 24px rgba(136, 77, 183, 0.35);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 5px;
	margin: 0 0 8px;
	color: #fff;
	font-family: var(--nf-heading);
	font-size: 1.08rem;
	line-height: 1.32;
}

.woocommerce ul.products li.product .price {
	align-self: flex-start;
	padding: 0 5px;
	margin: auto 0 15px;
	color: #c6aef4;
	font-size: 0.94rem;
	font-weight: 800;
}

.woocommerce ul.products li.product .price del {
	color: #777481;
	font-size: 0.82em;
	opacity: 1;
}

.woocommerce ul.products li.product .price ins {
	color: #e073b2;
	text-decoration: none;
}

.woocommerce ul.products li.product .button {
	width: calc(100% - 10px);
	margin: 0 5px;
}

.nf-free-price {
	color: #e477b7;
	font-weight: 850;
}

.woocommerce ul.products li.product .nf-free-download-form {
	width: 100%;
	margin: 0;
}

.woocommerce ul.products li.product .nf-free-download-form .button {
	display: block;
	border: 0;
	cursor: pointer;
	text-align: center;
}

.nf-section-action {
	margin-top: 34px;
	text-align: right;
}

.nf-empty-state {
	padding: 28px;
	border: 1px dashed rgba(150, 122, 220, 0.34);
	border-radius: var(--nf-radius);
	background: rgba(150, 122, 220, 0.045);
	color: var(--nf-muted);
	text-align: center;
}

/* Development */
.nf-development {
	border-block: 1px solid rgba(255, 255, 255, 0.055);
	background:
		radial-gradient(circle at 100% 40%, rgba(201, 75, 148, 0.09), transparent 36rem),
		var(--nf-bg-soft);
}

.nf-development__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.7fr);
	align-items: center;
	gap: clamp(54px, 8vw, 110px);
}

.nf-feature-list {
	display: grid;
	gap: 0;
	padding: 0;
	margin: 42px 0 0;
	list-style: none;
}

.nf-feature-list li {
	display: grid;
	grid-template-columns: 48px 1fr;
	align-items: center;
	gap: 18px;
	padding: 20px 0;
	border-top: 1px solid var(--nf-border);
	color: #d3cfdb;
}

.nf-feature-list li:last-child {
	border-bottom: 1px solid var(--nf-border);
}

.nf-feature-list span {
	color: var(--nf-lilac);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.nf-contact-panel {
	position: relative;
	padding: clamp(30px, 5vw, 50px);
	overflow: hidden;
	border: 1px solid var(--nf-border-strong);
	border-radius: var(--nf-radius-lg);
	background:
		linear-gradient(145deg, rgba(150, 122, 220, 0.12), rgba(20, 21, 30, 0.7) 58%),
		var(--nf-surface);
	box-shadow: var(--nf-shadow);
}

.nf-contact-panel::after {
	content: "";
	position: absolute;
	top: -100px;
	right: -100px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: var(--nf-pink);
	filter: blur(100px);
	opacity: 0.17;
}

.nf-contact-panel__icon {
	display: grid;
	width: 48px;
	height: 48px;
	margin-bottom: 28px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 15px;
	background: var(--nf-gradient);
	box-shadow: 0 14px 30px rgba(83, 69, 180, 0.28);
	color: #fff;
	font-size: 1.35rem;
}

.nf-contact-panel h3 {
	font-size: 1.8rem;
}

.nf-contact-panel p {
	color: var(--nf-muted);
}

.nf-contact-panel__buttons {
	display: grid;
	gap: 10px;
	margin-top: 27px;
}

.nf-contact-panel__buttons .nf-button {
	width: 100%;
}

/* Bots */
.nf-bots-section {
	background:
		linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
		var(--nf-bg);
	background-size: 100% 72px;
}

.nf-bot-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
}

.nf-bot-card {
	display: grid;
	grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.3fr);
	min-height: 330px;
	overflow: hidden;
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: var(--nf-surface);
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.2);
	transition: border-color 180ms ease, transform 180ms ease;
}

.nf-bot-card:hover {
	border-color: rgba(150, 122, 220, 0.42);
	transform: translateY(-4px);
}

.nf-bot-card__media {
	position: relative;
	min-height: 280px;
	overflow: hidden;
	background:
		radial-gradient(circle at 30% 30%, rgba(70, 136, 218, 0.35), transparent 44%),
		radial-gradient(circle at 80% 75%, rgba(201, 75, 148, 0.35), transparent 46%),
		#151722;
}

.nf-bot-card__media > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nf-bot-card__placeholder {
	display: grid;
	width: 100%;
	height: 100%;
	min-height: inherit;
	place-items: center;
	color: rgba(255, 255, 255, 0.72);
}

.nf-bot-card__placeholder::before {
	content: "";
	position: absolute;
	width: 150px;
	height: 150px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	box-shadow: 0 0 0 28px rgba(255, 255, 255, 0.025);
}

.nf-bot-card__status {
	position: absolute;
	top: 16px;
	left: 16px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 10px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	background: rgba(8, 9, 13, 0.7);
	color: #d7d4dd;
	font-size: 0.65rem;
	font-weight: 800;
	backdrop-filter: blur(10px);
}

.nf-bot-card__status i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--nf-green);
	box-shadow: 0 0 10px var(--nf-green);
}

.nf-bot-card__body {
	display: flex;
	flex-direction: column;
	padding: 30px;
}

.nf-bot-card__platforms {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 18px;
}

.nf-bot-card__platforms span {
	padding: 4px 8px;
	border: 1px solid rgba(150, 122, 220, 0.25);
	border-radius: 999px;
	background: rgba(150, 122, 220, 0.07);
	color: #bba9e5;
	font-size: 0.63rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.nf-bot-card h3 {
	margin-bottom: 12px;
	font-size: 1.7rem;
}

.nf-bot-card p {
	color: var(--nf-muted);
	font-size: 0.92rem;
	line-height: 1.72;
}

.nf-bot-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: auto;
}

.nf-bot-card__actions .nf-button {
	min-height: 43px;
	padding: 10px 15px;
	font-size: 0.75rem;
}

/* About and steps */
.nf-about {
	border-block: 1px solid rgba(255, 255, 255, 0.055);
	background:
		radial-gradient(circle at 0% 50%, rgba(70, 136, 218, 0.08), transparent 36rem),
		var(--nf-bg-soft);
}

.nf-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
	align-items: center;
	gap: clamp(55px, 8vw, 118px);
}

.nf-timeline {
	position: relative;
	display: grid;
}

.nf-timeline::before {
	content: "";
	position: absolute;
	top: 32px;
	bottom: 32px;
	left: 88px;
	width: 1px;
	background: linear-gradient(var(--nf-blue), var(--nf-lilac), var(--nf-pink));
}

.nf-timeline__item {
	position: relative;
	display: grid;
	grid-template-columns: 110px 1fr;
	align-items: center;
	min-height: 108px;
	padding: 18px 24px;
	border-top: 1px solid var(--nf-border);
}

.nf-timeline__item:last-child {
	border-bottom: 1px solid var(--nf-border);
}

.nf-timeline__year {
	position: relative;
	z-index: 2;
	color: #fff;
	font-family: var(--nf-heading);
	font-size: 1.7rem;
}

.nf-timeline__year::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 16px;
	width: 9px;
	height: 9px;
	border: 3px solid var(--nf-bg-soft);
	border-radius: 50%;
	background: var(--nf-lilac);
	box-shadow: 0 0 13px rgba(150, 122, 220, 0.8);
	transform: translateY(-50%);
}

.nf-timeline__item p {
	margin: 0;
	color: #c6c2cd;
}

.nf-step-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.nf-step-card {
	position: relative;
	min-height: 270px;
	padding: 30px;
	overflow: hidden;
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012));
}

.nf-step-card::after {
	content: "";
	position: absolute;
	right: -50px;
	bottom: -70px;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	background: var(--nf-lilac);
	filter: blur(72px);
	opacity: 0.12;
}

.nf-step-card__number {
	display: inline-flex;
	margin-bottom: 55px;
	color: var(--nf-lilac);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.nf-step-card h3 {
	font-size: 1.5rem;
}

.nf-step-card p {
	margin: 0;
	color: var(--nf-muted);
	font-size: 0.92rem;
}

/* FAQ */
.nf-faq {
	border-top: 1px solid rgba(255, 255, 255, 0.055);
	background: var(--nf-bg-soft);
}

.nf-faq__grid {
	display: grid;
	grid-template-columns: minmax(260px, 0.55fr) minmax(0, 1fr);
	gap: clamp(55px, 8vw, 115px);
}

.nf-accordion {
	border-top: 1px solid var(--nf-border);
}

.nf-accordion__item {
	border-bottom: 1px solid var(--nf-border);
}

.nf-accordion__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 25px 0;
	color: #e8e3ed;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.nf-accordion__item summary::-webkit-details-marker {
	display: none;
}

.nf-accordion__item summary i {
	position: relative;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(150, 122, 220, 0.32);
	border-radius: 50%;
}

.nf-accordion__item summary i::before,
.nf-accordion__item summary i::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 1px;
	background: var(--nf-lilac);
	transform: translate(-50%, -50%);
	transition: transform 160ms ease;
}

.nf-accordion__item summary i::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.nf-accordion__item[open] summary i::after {
	transform: translate(-50%, -50%) rotate(0);
}

.nf-accordion__content {
	max-width: 680px;
	padding: 0 48px 24px 0;
	color: var(--nf-muted);
}

.nf-accordion__content p {
	margin: 0;
}

/* Final CTA */
.nf-final-cta {
	background: var(--nf-bg);
}

.nf-final-cta__panel {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 40px;
	padding: clamp(36px, 6vw, 68px);
	overflow: hidden;
	border: 1px solid rgba(150, 122, 220, 0.3);
	border-radius: var(--nf-radius-lg);
	background:
		radial-gradient(circle at 82% 0%, rgba(201, 75, 148, 0.2), transparent 26rem),
		radial-gradient(circle at 0% 100%, rgba(70, 136, 218, 0.16), transparent 26rem),
		var(--nf-surface);
	box-shadow: var(--nf-shadow);
}

.nf-final-cta__panel h2 {
	max-width: 780px;
	font-size: clamp(1.9rem, 3.4vw, 3.3rem);
}

.nf-final-cta__panel p {
	max-width: 650px;
	margin-bottom: 0;
	color: var(--nf-muted);
	font-size: 1.05rem;
}

.nf-final-cta__buttons {
	display: grid;
	min-width: 210px;
	gap: 10px;
}

/* Content pages */
.nf-content-page {
	padding: clamp(75px, 9vw, 130px) 0;
}

.nf-prose {
	max-width: 900px;
}

.nf-page-header {
	margin-bottom: 42px;
}

.nf-page-header h1 {
	font-size: clamp(2.1rem, 4.2vw, 4rem);
}

.entry-content {
	color: #d0ccd6;
}

.entry-content a {
	color: #b79fe9;
	text-decoration: underline;
	text-decoration-color: rgba(183, 159, 233, 0.4);
	text-underline-offset: 3px;
}

.entry-content h2,
.entry-content h3 {
	margin-top: 1.4em;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
}

.entry-content th,
.entry-content td {
	padding: 12px;
	border: 1px solid var(--nf-border);
}

.nf-empty-page,
.nf-error-page {
	padding-block: 80px;
	text-align: center;
}

.nf-error-page__code {
	display: block;
	background: var(--nf-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-family: var(--nf-heading);
	font-size: clamp(7rem, 20vw, 15rem);
	line-height: 0.8;
}

.nf-error-page h1 {
	margin-top: 36px;
	font-size: clamp(2rem, 3.5vw, 3.3rem);
}

.nf-error-page p {
	color: var(--nf-muted);
}

/* Footer */
.nf-site-footer {
	padding: 72px 0 28px;
	border-top: 1px solid var(--nf-border);
	background: #06070a;
}

.nf-site-footer__grid {
	display: grid;
	grid-template-columns: 1.35fr repeat(3, 0.75fr);
	gap: 50px;
}

.nf-site-footer .nf-brand {
	width: 180px;
	margin-bottom: 22px;
}

.nf-site-footer__brand > p {
	max-width: 320px;
	color: #7f7c88;
	font-size: 0.88rem;
}

.nf-site-footer__column h2 {
	margin-bottom: 20px;
	color: #aaa5b3;
	font-family: var(--nf-body);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.nf-site-footer__column p {
	margin: 0 0 6px;
	color: #8c8995;
	font-size: 0.83rem;
}

.nf-footer-menu,
.nf-footer-links {
	display: grid;
	gap: 9px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.nf-footer-menu a,
.nf-footer-links a {
	color: #aaa6b1;
	font-size: 0.85rem;
	transition: color 160ms ease;
}

.nf-footer-menu a:hover,
.nf-footer-links a:hover {
	color: #fff;
}

.nf-site-footer__payment {
	margin-top: 18px !important;
	color: #b3a7d2 !important;
}

.nf-site-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding-top: 26px;
	margin-top: 58px;
	border-top: 1px solid rgba(255, 255, 255, 0.07);
	color: #696671;
	font-size: 0.74rem;
}

.nf-site-footer__bottom p {
	margin: 0;
}

/* WooCommerce pages */
.nf-commerce {
	min-height: 70vh;
	padding: clamp(56px, 7vw, 100px) 0;
}

.nf-commerce__container > .woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb {
	margin-bottom: 30px;
	color: #777480;
	font-size: 0.76rem;
}

.woocommerce .woocommerce-breadcrumb a {
	color: #aaa6b4;
}

.woocommerce-products-header__title.page-title,
.nf-single-product-header .product_title,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
	margin-bottom: 38px;
	font-size: clamp(2rem, 3.5vw, 3.4rem);
}

.nf-single-product-header .product_title {
	margin-bottom: 24px;
}

.single-product .nf-product-categories {
	margin-top: -4px;
	margin-bottom: 38px;
}

/* Product category navigation */
.nf-product-categories {
	position: relative;
	margin: -8px 0 34px;
}

.nf-product-categories__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 4px;
	margin: 0;
	list-style: none;
}

.nf-product-categories__item {
	margin: 0;
}

.nf-product-categories__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid rgba(150, 122, 220, 0.28);
	border-radius: 999px;
	background: rgba(18, 20, 28, 0.82);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
	color: #dcd6e8;
	font-size: 0.82rem;
	font-weight: 750;
	line-height: 1.2;
	transition: color 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.nf-product-categories__link:hover {
	border-color: rgba(201, 75, 148, 0.62);
	box-shadow: 0 12px 34px rgba(125, 78, 181, 0.24);
	color: #fff;
	transform: translateY(-2px);
}

.nf-product-categories__link.is-active {
	border-color: transparent;
	background: var(--nf-gradient);
	box-shadow: 0 12px 34px rgba(125, 78, 181, 0.3);
	color: #fff;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 28px;
	color: var(--nf-muted);
	font-size: 0.82rem;
}

.woocommerce .woocommerce-ordering select,
.woocommerce select {
	min-height: 46px;
	padding: 9px 38px 9px 14px;
	border: 1px solid var(--nf-border);
	border-radius: 12px;
	background: var(--nf-surface);
	color: var(--nf-text);
}

.woocommerce nav.woocommerce-pagination {
	margin-top: 42px;
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	gap: 8px;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid;
	width: 42px;
	height: 42px;
	padding: 0;
	place-items: center;
	border: 1px solid var(--nf-border);
	border-radius: 50%;
	background: var(--nf-surface);
	color: #fff;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: transparent;
	background: var(--nf-gradient);
}

/* Single product */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(340px, 0.75fr);
	gap: clamp(40px, 7vw, 90px);
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	overflow: hidden;
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: var(--nf-surface);
}

.woocommerce div.product div.images img {
	width: 100%;
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-top: 10px;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
	overflow: hidden;
	border: 1px solid var(--nf-border);
	border-radius: 12px;
}

.woocommerce div.product .summary {
	align-self: start;
	padding: clamp(24px, 4vw, 44px);
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015));
	box-shadow: var(--nf-shadow);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 8px 14px;
	margin-bottom: 24px;
	border: 1px solid rgba(150, 122, 220, 0.3);
	border-radius: 999px;
	background: rgba(150, 122, 220, 0.09);
	color: #c9b2f7;
	font-size: clamp(1.2rem, 2vw, 1.55rem);
	font-weight: 800;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color: #777481;
	font-size: 0.7em;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	color: #e477b7;
	text-decoration: none;
}

.woocommerce-product-details__short-description {
	color: #b7b3be;
}

.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 28px;
	margin-bottom: 24px;
}

.woocommerce div.product form.cart .quantity {
	display: none;
}

.woocommerce .quantity .qty {
	width: 74px;
	min-height: 50px;
	border: 1px solid var(--nf-border);
	border-radius: 999px;
	background: #0b0d12;
	color: #fff;
}

.woocommerce div.product form.cart .button {
	float: none;
	flex: 1;
}

.woocommerce div.product .nf-free-download-form--single {
	margin: 28px 0 24px;
}

.woocommerce div.product .nf-free-download-form--single .button {
	width: 100%;
	min-height: 52px;
	border: 0;
	cursor: pointer;
}

.woocommerce div.product .product_meta {
	display: grid;
	gap: 6px;
	padding-top: 20px;
	border-top: 1px solid var(--nf-border);
	color: #777480;
	font-size: 0.77rem;
}

.woocommerce div.product .product_meta a {
	color: #bba7e4;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: 32px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 8px;
	padding: 0;
	margin-bottom: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	padding: 0;
	margin: 0;
	border: 1px solid var(--nf-border);
	border-radius: 999px;
	background: var(--nf-surface);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-color: rgba(150, 122, 220, 0.55);
	background: rgba(150, 122, 220, 0.1);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 10px 18px;
	color: #c7c2ce;
	font-size: 0.8rem;
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding: clamp(25px, 4vw, 44px);
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: var(--nf-surface);
	color: #bbb7c2;
}

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	margin-bottom: 30px;
	font-size: clamp(1.8rem, 3vw, 2.8rem);
}

/* Notices */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
	padding: 18px 22px 18px 52px;
	margin: 0 0 26px;
	border: 1px solid var(--nf-border-strong);
	border-top: 1px solid var(--nf-border-strong);
	border-radius: 14px;
	background: rgba(150, 122, 220, 0.08);
	color: #e6e1eb;
}

.woocommerce-message::before,
.woocommerce-info::before {
	top: 18px;
	color: var(--nf-lilac);
}

.woocommerce-error {
	border-color: rgba(201, 75, 148, 0.4);
	background: rgba(201, 75, 148, 0.08);
}

.woocommerce-error::before {
	top: 18px;
	color: var(--nf-pink);
}

.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
	color: #fff;
	font-weight: 800;
}

/* Forms */
.woocommerce form .form-row label,
.wc-block-components-text-input label,
.wc-block-components-form .wc-block-components-text-input label {
	color: #aaa6b2;
	font-size: 0.78rem;
	font-weight: 700;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce textarea,
.select2-container--default .select2-selection--single,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	min-height: 50px;
	padding: 12px 14px;
	border: 1px solid var(--nf-border);
	border-radius: 12px;
	background: #0b0d12;
	color: #fff;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.woocommerce form .form-row textarea,
.woocommerce textarea {
	min-height: 120px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce input:focus,
.woocommerce textarea:focus,
.wc-block-components-text-input input:focus {
	border-color: rgba(150, 122, 220, 0.7);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(150, 122, 220, 0.12);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: #fff;
	line-height: 48px;
}

.select2-dropdown {
	border-color: var(--nf-border);
	background: var(--nf-surface);
	color: #fff;
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
	background: rgba(150, 122, 220, 0.16);
}

/* Cart */
.woocommerce-cart-form,
.cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-checkout #customer_details,
.woocommerce-order {
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: var(--nf-surface);
}

.woocommerce table.shop_table {
	margin: 0;
	border: 0;
	border-collapse: collapse;
	color: #d7d3dc;
}

.woocommerce table.shop_table th {
	color: #8d8996;
	font-size: 0.7rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
	padding: 17px 12px;
	border-top: 1px solid var(--nf-border);
}

.woocommerce table.shop_table thead th {
	border-top: 0;
}

.woocommerce table.shop_table img {
	width: 70px;
	border-radius: 10px;
}

.woocommerce a.remove {
	display: grid;
	width: 28px;
	height: 28px;
	place-items: center;
	border: 1px solid rgba(201, 75, 148, 0.3);
	border-radius: 50%;
	color: #d986b7 !important;
	font-size: 1.3rem;
	font-weight: 400;
}

.woocommerce a.remove:hover {
	background: var(--nf-pink);
	color: #fff !important;
}

.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	gap: 8px;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 210px;
	min-height: 48px;
	margin: 0;
}

.woocommerce .cart-collaterals,
.woocommerce-page .cart-collaterals {
	display: flex;
	justify-content: flex-end;
	margin-top: 26px;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	float: none;
	width: min(100%, 520px);
}

.cart_totals h2 {
	font-size: 2rem;
}

.woocommerce-cart .wc-proceed-to-checkout {
	padding-bottom: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	margin: 15px 0 0;
	font-size: 0.95rem;
}

/* Checkout */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.75fr);
	gap: 28px;
}

.woocommerce-checkout form.checkout > *,
.woocommerce-checkout #order_review {
	min-width: 0;
}

.woocommerce-checkout #customer_details {
	grid-row: span 2;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: 100%;
}

.woocommerce-checkout #customer_details .col-2 {
	margin-top: 30px;
}

.woocommerce-checkout .woocommerce-additional-fields {
	display: none;
}

.woocommerce-checkout h3 {
	font-size: 1.85rem;
}

.woocommerce-checkout #order_review_heading {
	align-self: end;
	margin: 0;
	padding: 0 5px;
}

.woocommerce-checkout-payment {
	border-radius: 16px !important;
	background: #0b0d12 !important;
}

.woocommerce-checkout-payment ul.payment_methods {
	border-color: var(--nf-border) !important;
}

.woocommerce-checkout-payment div.payment_box {
	background: var(--nf-surface-strong) !important;
	color: #b8b4bf !important;
}

.woocommerce-checkout-payment div.payment_box::before {
	border-bottom-color: var(--nf-surface-strong) !important;
}

.woocommerce-checkout #payment #place_order {
	float: none;
	width: 100%;
	margin-top: 12px;
}

.nf-checkout-note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 16px 0 0;
	color: #85818e;
	font-size: 0.73rem;
	line-height: 1.5;
}

/* Thank you and account */
.woocommerce-order-received .woocommerce-order {
	max-width: 900px;
	margin-inline: auto;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
	color: #b5efcf;
	font-size: 1rem;
	font-weight: 800;
}

.woocommerce ul.order_details {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	padding: 0;
	margin: 28px 0;
}

.woocommerce ul.order_details li {
	float: none;
	padding: 16px;
	margin: 0;
	border: 1px solid var(--nf-border);
	border-radius: 12px;
	color: #888591;
}

.woocommerce ul.order_details li strong {
	margin-top: 5px;
	color: #fff;
	font-size: 0.86rem;
}

.nf-thankyou-card {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 24px;
	margin: 28px 0;
	border: 1px solid rgba(89, 214, 155, 0.28);
	border-radius: 18px;
	background: rgba(89, 214, 155, 0.06);
}

.nf-thankyou-card__icon {
	display: grid;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 50%;
	background: rgba(89, 214, 155, 0.13);
	color: var(--nf-green);
	font-size: 1.3rem;
	font-weight: 800;
}

.nf-thankyou-card h2 {
	margin-bottom: 7px;
	font-size: 1.8rem;
}

.nf-thankyou-card p {
	margin: 0;
	color: #aaa6b1;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	float: left;
	width: 25%;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: right;
	width: 72%;
	padding: 28px;
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: var(--nf-surface);
}

.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 7px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 11px 14px;
	border: 1px solid var(--nf-border);
	border-radius: 10px;
	color: #aaa6b1;
}

.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a:hover {
	border-color: rgba(150, 122, 220, 0.4);
	background: rgba(150, 122, 220, 0.08);
	color: #fff;
}

/* WooCommerce Blocks */
.wc-block-components-sidebar-layout,
.wc-block-cart,
.wc-block-checkout,
.wc-block-components-main,
.wc-block-components-sidebar {
	color: var(--nf-text);
}

.wc-block-components-sidebar {
	padding: 24px !important;
	border: 1px solid var(--nf-border);
	border-radius: var(--nf-radius);
	background: var(--nf-surface);
}

.wc-block-components-product-name {
	color: #fff !important;
	font-family: var(--nf-heading);
}

.wc-block-components-totals-wrapper,
.wc-block-components-order-summary-item {
	border-color: var(--nf-border) !important;
}

.wc-block-components-radio-control-accordion-option,
.wc-block-components-checkbox label,
.wc-block-checkout__terms {
	color: #b7b3bf;
}

.wc-block-components-order-summary .wc-block-components-order-summary-item__image > img {
	border-radius: 10px;
}

/* Responsive */
@media (max-width: 1080px) {
	.nf-menu,
	.nf-navigation .menu {
		gap: 16px;
	}

	.nf-menu a,
	.nf-navigation .menu a {
		font-size: 0.78rem;
	}

	.nf-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
	}

	.nf-bot-card {
		grid-template-columns: 1fr;
	}

	.nf-bot-card__media {
		min-height: 210px;
	}

	.nf-site-footer__grid {
		grid-template-columns: 1.2fr repeat(3, 0.8fr);
		gap: 30px;
	}
}

@media (max-width: 900px) {
	:root {
		--nf-header-height: 72px;
	}

	.admin-bar .nf-site-header {
		top: 46px;
	}

	.nf-site-header__inner {
		gap: 10px;
	}

	.nf-brand {
		width: 156px;
	}

	.nf-brand__image,
	.custom-logo {
		height: 42px;
	}

	.nf-menu-toggle {
		display: block;
		margin-left: auto;
	}

	.nf-header-actions {
		gap: 6px;
	}

	.nf-header-action {
		flex-basis: 44px;
		width: 44px;
		height: 44px;
	}

	.nf-navigation {
		position: fixed;
		z-index: 1002;
		top: var(--nf-header-height);
		right: 16px;
		left: 16px;
		display: none;
		max-height: calc(100vh - var(--nf-header-height) - 24px);
		padding: 18px;
		overflow: auto;
		border: 1px solid var(--nf-border);
		border-radius: 20px;
		background: rgba(13, 15, 21, 0.98);
		box-shadow: var(--nf-shadow);
	}

	.admin-bar .nf-navigation {
		top: calc(var(--nf-header-height) + 46px);
	}

	.nf-navigation.is-open {
		display: block;
	}

	.nf-menu,
	.nf-navigation .menu {
		display: grid;
		gap: 2px;
	}

	.nf-menu a,
	.nf-navigation .menu a {
		padding: 13px 12px;
		border-radius: 10px;
		font-size: 0.96rem;
	}

	.nf-menu a:hover,
	.nf-navigation .menu a:hover {
		background: rgba(150, 122, 220, 0.09);
	}

	.nf-menu a::after,
	.nf-navigation .menu a::after {
		display: none;
	}

	.nf-menu-backdrop {
		position: fixed;
		z-index: 999;
		inset: 0;
		display: none;
		background: rgba(0, 0, 0, 0.48);
		backdrop-filter: blur(4px);
	}

	.nf-menu-backdrop.is-open {
		display: block;
	}

	.nf-hero {
		min-height: auto;
		padding-top: 82px;
	}

	.nf-hero__inner,
	.nf-development__grid,
	.nf-about__grid {
		grid-template-columns: 1fr;
	}

	.nf-hero__content {
		max-width: 760px;
	}

	.nf-hero-visual {
		width: min(86vw, 560px);
		margin-top: 20px;
	}

	.nf-section-heading,
	.nf-faq__grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.nf-bot-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.nf-about__grid {
		gap: 44px;
	}

	.nf-step-grid {
		grid-template-columns: 1fr;
	}

	.nf-step-card {
		min-height: 0;
	}

	.nf-step-card__number {
		margin-bottom: 35px;
	}

	.nf-final-cta__panel {
		grid-template-columns: 1fr;
	}

	.nf-final-cta__buttons {
		grid-template-columns: repeat(3, 1fr);
	}

	.nf-site-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce div.product {
		grid-template-columns: 1fr;
	}

	.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
	}

	.woocommerce-checkout #customer_details {
		grid-row: auto;
	}

	.woocommerce ul.order_details {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.nf-container {
		width: min(calc(100% - 28px), var(--nf-container));
	}

	h1 {
		font-size: clamp(2rem, 9vw, 2.8rem);
	}

	h2 {
		font-size: clamp(1.8rem, 8vw, 2.5rem);
	}

	h3 {
		font-size: clamp(1.2rem, 6vw, 1.55rem);
	}

	.nf-section {
		padding: 74px 0;
	}

	.nf-site-header .nf-brand {
		width: 112px;
	}

	.nf-site-header .nf-brand__image,
	.nf-site-header .custom-logo {
		height: 38px;
	}

	.nf-menu-toggle {
		width: 42px;
		height: 42px;
		padding: 10px;
	}

	.nf-site-header__inner {
		gap: 7px;
	}

	.nf-header-actions {
		gap: 5px;
	}

	.nf-header-action {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
	}

	.nf-header-action svg {
		width: 20px;
		height: 20px;
	}

	.nf-hero {
		padding-top: 64px;
	}

	.nf-hero__lead {
		font-size: 1rem;
	}

	.nf-button-row {
		display: grid;
	}

	.nf-button-row .nf-button {
		width: 100%;
	}

	.nf-hero-visual {
		width: 100%;
		border-radius: 28px;
		transform: none;
	}

	.nf-hero-visual__orb {
		width: 120px;
		height: 120px;
		font-size: 2.7rem;
	}

	.nf-floating-card {
		padding: 13px;
	}

	.nf-floating-card--product {
		top: 7%;
		left: 3%;
		width: 165px;
	}

	.nf-floating-card--bot {
		top: 10%;
		right: 3%;
		width: 118px;
	}

	.nf-floating-card--plugin {
		right: 4%;
		bottom: 8%;
		width: 145px;
	}

	.nf-hero-visual__status {
		bottom: 10%;
		left: 5%;
	}

	.nf-section-heading {
		margin-bottom: 30px;
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.nf-bot-grid {
		grid-template-columns: 1fr;
	}

	.nf-product-categories {
		margin-right: -20px;
		margin-left: -20px;
		overflow: hidden;
	}

	.nf-product-categories__list {
		flex-wrap: nowrap;
		padding: 4px 20px 12px;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
	}

	.nf-product-categories__list::-webkit-scrollbar {
		display: none;
	}

	.nf-product-categories__item {
		flex: 0 0 auto;
	}

	.nf-product-categories__link {
		min-height: 42px;
		padding: 9px 16px;
		white-space: nowrap;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 1.08rem;
	}

	.woocommerce .nf-product-carousel ul.products,
	.woocommerce-page .nf-product-carousel ul.products {
		grid-template-columns: none;
	}

	.woocommerce .nf-product-carousel ul.products li.product,
	.woocommerce-page .nf-product-carousel ul.products li.product {
		flex-basis: min(82vw, 310px);
		width: min(82vw, 310px);
	}

	.nf-product-carousel__controls {
		margin-top: -8px;
	}

	.nf-bot-card {
		grid-template-columns: 132px minmax(0, 1fr);
		min-height: 260px;
	}

	.nf-bot-card__media {
		min-height: 260px;
	}

	.nf-bot-card__body {
		padding: 22px 18px;
	}

	.nf-bot-card h3 {
		font-size: 1.55rem;
	}

	.nf-bot-card__actions {
		display: grid;
	}

	.nf-bot-card__actions .nf-button {
		width: 100%;
	}

	.nf-timeline::before {
		left: 75px;
	}

	.nf-timeline__item {
		grid-template-columns: 98px 1fr;
		padding-inline: 10px;
	}

	.nf-final-cta__buttons {
		grid-template-columns: 1fr;
	}

	.nf-site-footer__grid {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.nf-site-footer__bottom {
		display: grid;
		margin-top: 42px;
	}

	.woocommerce div.product .summary {
		padding: 22px;
	}

	.woocommerce div.product form.cart {
		align-items: stretch;
		flex-direction: column;
	}

	.woocommerce .quantity .qty {
		width: 100%;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs {
		flex-wrap: wrap;
	}

	.woocommerce-cart-form {
		padding: 12px;
		overflow-x: auto;
	}

	.woocommerce-cart table.shop_table {
		min-width: 580px;
	}

	.woocommerce-checkout form.checkout,
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review,
	.woocommerce-checkout .woocommerce-checkout-review-order,
	.woocommerce-checkout #payment,
	.woocommerce-checkout #payment ul.payment_methods,
	.woocommerce-checkout #payment div.payment_box,
	.woocommerce-checkout #payment .form-row {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.woocommerce-checkout .woocommerce-checkout-review-order {
		padding: 14px;
	}

	.woocommerce-checkout table.shop_table {
		width: 100%;
		min-width: 0;
		table-layout: fixed;
	}

	.woocommerce-checkout table.shop_table td,
	.woocommerce-checkout table.shop_table th,
	.woocommerce-checkout #payment,
	.woocommerce-checkout #payment div.payment_box,
	.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
	.woocommerce-checkout .nf-checkout-note {
		overflow-wrap: anywhere;
		word-break: normal;
		white-space: normal;
	}

	.woocommerce-checkout #payment ul.payment_methods {
		padding: 14px;
	}

	.woocommerce-checkout #payment div.payment_box {
		padding: 16px;
	}

	.woocommerce-checkout #payment li,
	.woocommerce-checkout #payment div,
	.woocommerce-checkout #payment p,
	.woocommerce-checkout #payment label {
		min-width: 0;
		max-width: 100%;
		overflow-wrap: anywhere;
		white-space: normal;
	}

	.woocommerce-checkout #payment .form-row {
		padding: 16px 14px;
	}

	.woocommerce-checkout #payment #place_order {
		height: auto;
		min-height: 52px;
		white-space: normal;
	}

	.woocommerce-cart table.cart td.actions .coupon {
		display: grid;
	}

	.woocommerce-cart table.cart td.actions .coupon .input-text {
		width: 100%;
	}

	.woocommerce ul.order_details {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content {
		float: none;
		width: 100%;
	}

	.woocommerce-account .woocommerce-MyAccount-content {
		margin-top: 20px;
	}
}

@media (max-width: 420px) {
	.nf-site-header .nf-brand {
		width: 118px;
	}

	.nf-bot-card {
		grid-template-columns: 1fr;
	}

	.nf-bot-card__media {
		min-height: 190px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
