/*
Theme Name: NeonVault
Theme URI: https://example.com/neonvault
Author: Riley Mojica Jr.
Author URI: https://example.com
Description: A self-contained 18+ creator membership theme for WordPress. Ships its own tier system, member roles, locked-post paywall, age verification gate, creator profiles, media galleries, members-only comments and a supporter inbox. Takes payments through WooCommerce (with WooCommerce Subscriptions support) — no membership plugin required.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neonvault
Tags: membership, subscription, creator, dark, custom-colors, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* =============================================================
   1. Design tokens
   ============================================================= */
:root {
	--nv-bg:            #0b0b10;
	--nv-bg-2:          #12121a;
	--nv-surface:       #17171f;
	--nv-surface-2:     #1e1e29;
	--nv-line:          #2a2a38;
	--nv-line-soft:     #22222e;

	--nv-text:          #f2f2f7;
	--nv-text-muted:    #a0a0b4;
	--nv-text-faint:    #6c6c82;

	--nv-accent:        #ff2d9b;
	--nv-accent-2:      #8b5cf6;
	--nv-accent-3:      #22d3ee;
	--nv-accent-soft:   rgba(255, 45, 155, .14);
	--nv-violet-soft:   rgba(139, 92, 246, .14);

	--nv-ok:            #34d399;
	--nv-warn:          #fbbf24;
	--nv-danger:        #f87171;

	--nv-radius:        14px;
	--nv-radius-lg:     22px;
	--nv-radius-sm:     9px;

	--nv-shadow:        0 10px 30px rgba(0, 0, 0, .45);
	--nv-glow:          0 0 0 1px rgba(255, 45, 155, .35), 0 8px 30px rgba(255, 45, 155, .18);

	--nv-font:          "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--nv-font-display:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

	--nv-wrap:          1180px;
	--nv-wrap-narrow:   760px;
	--nv-header-h:      68px;
}

/* =============================================================
   2. Reset / base
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--nv-bg);
	background-image:
		radial-gradient(900px 500px at 12% -8%, rgba(139, 92, 246, .16), transparent 60%),
		radial-gradient(800px 480px at 92% 4%, rgba(255, 45, 155, .13), transparent 62%);
	background-attachment: fixed;
	color: var(--nv-text);
	font-family: var(--nv-font);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

body.nv-locked-scroll { overflow: hidden; }

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--nv-accent); text-decoration: none; transition: color .18s ease, opacity .18s ease; }
a:hover { color: #ff6ab8; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--nv-font-display);
	line-height: 1.2;
	margin: 0 0 .6em;
	font-weight: 700;
	letter-spacing: -.02em;
}
h1 { font-size: clamp(1.9rem, 4vw, 2.9rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h3 { font-size: 1.3rem; }

p { margin: 0 0 1.1em; }

hr { border: 0; border-top: 1px solid var(--nv-line); margin: 2.4rem 0; }

blockquote {
	margin: 1.6rem 0;
	padding: .2rem 0 .2rem 1.2rem;
	border-left: 3px solid var(--nv-accent);
	color: var(--nv-text-muted);
	font-style: italic;
}

code, pre, kbd {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9em;
}
code { background: var(--nv-surface-2); padding: .15em .4em; border-radius: 5px; }
pre {
	background: var(--nv-surface-2);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius-sm);
	padding: 1rem 1.1rem;
	overflow-x: auto;
}

table { width: 100%; border-collapse: collapse; margin: 0 0 1.4rem; }
th, td { padding: .7rem .8rem; border-bottom: 1px solid var(--nv-line); text-align: left; }
th { color: var(--nv-text-muted); font-weight: 600; font-size: .88rem; text-transform: uppercase; letter-spacing: .04em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
	position: fixed; top: 12px; left: 12px; z-index: 999999;
	width: auto; height: auto; clip: auto;
	background: var(--nv-accent); color: #fff;
	padding: .6rem 1rem; border-radius: 8px;
}

:focus-visible { outline: 2px solid var(--nv-accent-3); outline-offset: 3px; }

/* =============================================================
   3. Layout helpers
   ============================================================= */
.nv-wrap { width: 100%; max-width: var(--nv-wrap); margin: 0 auto; padding: 0 20px; }
.nv-wrap--narrow { max-width: var(--nv-wrap-narrow); }

.nv-site-main { padding: 2.4rem 0 4rem; min-height: 55vh; }

.nv-grid { display: grid; gap: 22px; }
.nv-grid--2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.nv-grid--3 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.nv-grid--4 { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }

.nv-layout-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 34px; align-items: start; }
@media (max-width: 900px) { .nv-layout-sidebar { grid-template-columns: 1fr; } }

.nv-section-head {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 1rem; margin-bottom: 1.2rem; flex-wrap: wrap;
}
.nv-section-head h2 { margin: 0; }
.nv-eyebrow {
	display: inline-block;
	font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--nv-accent); margin-bottom: .5rem;
}

/* =============================================================
   4. Buttons / pills
   ============================================================= */
.nv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	font: inherit; font-weight: 650; line-height: 1;
	padding: .8rem 1.35rem;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform .16s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
	text-align: center;
}
.nv-btn:hover { transform: translateY(-1px); }
.nv-btn:active { transform: translateY(0); }

.nv-btn--primary {
	background: linear-gradient(135deg, var(--nv-accent) 0%, var(--nv-accent-2) 100%);
	color: #fff;
	box-shadow: 0 6px 22px rgba(255, 45, 155, .28);
}
.nv-btn--primary:hover { color: #fff; box-shadow: 0 10px 30px rgba(255, 45, 155, .38); }

.nv-btn--ghost {
	background: transparent; color: var(--nv-text); border-color: var(--nv-line);
}
.nv-btn--ghost:hover { border-color: var(--nv-accent); color: var(--nv-text); background: var(--nv-accent-soft); }

.nv-btn--soft { background: var(--nv-surface-2); color: var(--nv-text); border-color: var(--nv-line); }
.nv-btn--soft:hover { color: var(--nv-text); background: var(--nv-line-soft); }

.nv-btn--block { display: flex; width: 100%; }
.nv-btn--sm { padding: .5rem .95rem; font-size: .85rem; }
.nv-btn[disabled], .nv-btn.is-disabled { opacity: .55; pointer-events: none; }

.nv-pill {
	display: inline-flex; align-items: center; gap: .35rem;
	padding: .28rem .7rem;
	font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	border-radius: 999px;
	background: var(--nv-violet-soft); color: #c4b5fd;
	border: 1px solid rgba(139, 92, 246, .3);
}
.nv-pill--locked { background: var(--nv-accent-soft); color: #ff8fc6; border-color: rgba(255, 45, 155, .32); }
.nv-pill--free  { background: rgba(52, 211, 153, .12); color: #6ee7b7; border-color: rgba(52, 211, 153, .3); }
.nv-pill--18    { background: rgba(248, 113, 113, .12); color: #fca5a5; border-color: rgba(248, 113, 113, .32); }

/* =============================================================
   5. Forms
   ============================================================= */
input[type="text"], input[type="email"], input[type="password"], input[type="url"],
input[type="search"], input[type="number"], input[type="tel"], select, textarea {
	width: 100%;
	font: inherit;
	color: var(--nv-text);
	background: var(--nv-bg-2);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius-sm);
	padding: .7rem .9rem;
	transition: border-color .18s ease, box-shadow .18s ease;
}
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--nv-accent);
	box-shadow: 0 0 0 3px var(--nv-accent-soft);
}
textarea { min-height: 130px; resize: vertical; }
label { display: block; font-size: .88rem; font-weight: 600; margin-bottom: .35rem; color: var(--nv-text-muted); }
.nv-field { margin-bottom: 1.1rem; }

.nv-notice {
	border-radius: var(--nv-radius-sm);
	padding: .85rem 1rem;
	margin: 0 0 1.3rem;
	border: 1px solid var(--nv-line);
	background: var(--nv-surface);
	font-size: .93rem;
}
.nv-notice--ok    { border-color: rgba(52, 211, 153, .35); background: rgba(52, 211, 153, .08); color: #a7f3d0; }
.nv-notice--warn  { border-color: rgba(251, 191, 36, .35); background: rgba(251, 191, 36, .08); color: #fde68a; }
.nv-notice--error { border-color: rgba(248, 113, 113, .35); background: rgba(248, 113, 113, .08); color: #fecaca; }

/* =============================================================
   6. Header
   ============================================================= */
.nv-header {
	position: sticky; top: 0; z-index: 900;
	background: rgba(11, 11, 16, .78);
	backdrop-filter: saturate(160%) blur(14px);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--nv-line-soft);
}
.nv-header__inner {
	display: flex; align-items: center; gap: 1.4rem;
	min-height: var(--nv-header-h);
}
.nv-brand { display: flex; align-items: center; gap: .6rem; flex: 0 0 auto; }
.nv-brand__mark {
	width: 32px; height: 32px; border-radius: 10px;
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	box-shadow: 0 4px 16px rgba(255, 45, 155, .35);
	flex: 0 0 auto;
}
.nv-brand__name {
	font-weight: 800; font-size: 1.1rem; letter-spacing: -.02em; color: var(--nv-text);
}
.nv-brand__name:hover { color: var(--nv-text); }
.nv-brand__tag { display: block; font-size: .74rem; color: var(--nv-text-faint); font-weight: 500; letter-spacing: 0; }
.nv-brand img { max-height: 40px; width: auto; }

.nv-nav { margin-left: auto; }
.nv-nav ul { list-style: none; display: flex; align-items: center; gap: .3rem; margin: 0; padding: 0; }
.nv-nav li { position: relative; }
.nv-nav a {
	display: block; padding: .5rem .8rem; border-radius: 9px;
	color: var(--nv-text-muted); font-weight: 550; font-size: .94rem;
}
.nv-nav a:hover, .nv-nav .current-menu-item > a { color: var(--nv-text); background: var(--nv-surface-2); }

.nv-nav ul ul {
	display: none; position: absolute; top: 100%; left: 0; min-width: 200px;
	flex-direction: column; align-items: stretch; gap: 0;
	background: var(--nv-surface); border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius-sm); padding: .35rem; box-shadow: var(--nv-shadow);
}
.nv-nav li:hover > ul, .nv-nav li:focus-within > ul { display: flex; }

.nv-header__actions { display: flex; align-items: center; gap: .55rem; flex: 0 0 auto; }

.nv-avatar-btn { display: flex; align-items: center; gap: .5rem; }
.nv-avatar-btn img { border-radius: 999px; border: 1px solid var(--nv-line); }

.nv-menu-toggle {
	display: none; background: none; border: 1px solid var(--nv-line);
	border-radius: 9px; padding: .5rem .6rem; cursor: pointer; color: var(--nv-text);
}
.nv-menu-toggle span { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; }
.nv-menu-toggle span + span { margin-top: 4px; }

@media (max-width: 860px) {
	.nv-menu-toggle { display: block; margin-left: auto; }
	.nv-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		background: var(--nv-bg-2); border-bottom: 1px solid var(--nv-line);
		padding: .8rem 20px 1.1rem; margin: 0;
	}
	.nv-nav.is-open { display: block; }
	.nv-nav ul { flex-direction: column; align-items: stretch; gap: .1rem; }
	.nv-nav ul ul { position: static; display: flex; border: 0; box-shadow: none; padding-left: .8rem; background: none; }
	.nv-header__actions { order: 3; }
	.nv-header__actions .nv-btn--ghost { display: none; }
}

/* =============================================================
   7. Hero
   ============================================================= */
.nv-hero { position: relative; padding: 4.5rem 0 3.5rem; overflow: hidden; }
.nv-hero__inner { display: grid; grid-template-columns: 1.15fr .85fr; gap: 46px; align-items: center; }
@media (max-width: 900px) { .nv-hero__inner { grid-template-columns: 1fr; } }

.nv-hero h1 { margin-bottom: .5rem; }
.nv-hero h1 em {
	font-style: normal;
	background: linear-gradient(120deg, var(--nv-accent), var(--nv-accent-2) 55%, var(--nv-accent-3));
	-webkit-background-clip: text; background-clip: text; color: transparent;
}
.nv-hero__lead { font-size: 1.12rem; color: var(--nv-text-muted); max-width: 46ch; }
.nv-hero__cta { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1.6rem; }

.nv-hero__stats { display: flex; gap: 2rem; margin-top: 2.4rem; flex-wrap: wrap; }
.nv-stat__num { font-size: 1.6rem; font-weight: 800; letter-spacing: -.03em; }
.nv-stat__label { font-size: .8rem; color: var(--nv-text-faint); text-transform: uppercase; letter-spacing: .1em; }

.nv-hero__art {
	position: relative; border-radius: var(--nv-radius-lg);
	background: linear-gradient(160deg, rgba(255,45,155,.18), rgba(139,92,246,.14) 55%, rgba(34,211,238,.1));
	border: 1px solid var(--nv-line);
	aspect-ratio: 4 / 3;
	display: grid; place-items: center;
	box-shadow: var(--nv-shadow);
	overflow: hidden;
}
.nv-hero__art img { width: 100%; height: 100%; object-fit: cover; }
.nv-hero__art-placeholder { text-align: center; color: var(--nv-text-faint); padding: 2rem; }

/* =============================================================
   8. Cards / post feed
   ============================================================= */
.nv-card {
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	overflow: hidden;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
	display: flex; flex-direction: column;
}
.nv-card:hover { transform: translateY(-3px); border-color: rgba(255, 45, 155, .35); box-shadow: var(--nv-shadow); }

.nv-card__media { position: relative; aspect-ratio: 16 / 10; background: var(--nv-surface-2); overflow: hidden; }
.nv-card__media img { width: 100%; height: 100%; object-fit: cover; }
.nv-card__media--empty {
	background: linear-gradient(140deg, rgba(139,92,246,.22), rgba(255,45,155,.16));
}
.nv-card__badges { position: absolute; top: 10px; left: 10px; display: flex; gap: .4rem; flex-wrap: wrap; z-index: 2; }
.nv-card__body { padding: 1.05rem 1.15rem 1.25rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.nv-card__title { font-size: 1.08rem; margin: 0; line-height: 1.35; }
.nv-card__title a { color: var(--nv-text); }
.nv-card__title a:hover { color: var(--nv-accent); }
.nv-card__meta { font-size: .8rem; color: var(--nv-text-faint); display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.nv-card__meta img { border-radius: 999px; }
.nv-card__excerpt { color: var(--nv-text-muted); font-size: .93rem; margin: 0; }
.nv-card__foot { margin-top: auto; padding-top: .7rem; }

/* Locked media treatment */
.nv-lock-media img { filter: blur(18px) saturate(.7) brightness(.6); transform: scale(1.08); }
.nv-lock-media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(11,11,16,.15), rgba(11,11,16,.75));
}
.nv-lock-media__icon {
	position: absolute; inset: 0; display: grid; place-items: center; z-index: 3;
	color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.7);
}
.nv-lock-media__icon svg { width: 34px; height: 34px; opacity: .95; }

/* =============================================================
   9. Single post
   ============================================================= */
.nv-entry-header { margin-bottom: 1.8rem; }
.nv-entry-header .nv-card__meta { font-size: .88rem; margin-top: .6rem; }
.nv-entry__thumb { border-radius: var(--nv-radius); overflow: hidden; margin-bottom: 1.8rem; border: 1px solid var(--nv-line); }

.nv-entry-content { font-size: 1.03rem; }
.nv-entry-content > * + * { margin-top: 1.1rem; }
.nv-entry-content h2, .nv-entry-content h3 { margin-top: 2rem; }
.nv-entry-content ul, .nv-entry-content ol { padding-left: 1.3rem; }
.nv-entry-content li + li { margin-top: .35rem; }
.nv-entry-content img { border-radius: var(--nv-radius-sm); }
.nv-entry-content .wp-caption-text, .nv-entry-content figcaption {
	font-size: .85rem; color: var(--nv-text-faint); text-align: center; margin-top: .5rem;
}
.nv-entry-footer { margin-top: 2.4rem; padding-top: 1.4rem; border-top: 1px solid var(--nv-line); }
.nv-tags a {
	display: inline-block; margin: 0 .35rem .35rem 0;
	padding: .25rem .7rem; border-radius: 999px; font-size: .8rem;
	background: var(--nv-surface-2); color: var(--nv-text-muted); border: 1px solid var(--nv-line);
}
.nv-tags a:hover { color: var(--nv-text); border-color: var(--nv-accent); }

.nv-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 2.4rem; }
@media (max-width: 600px) { .nv-post-nav { grid-template-columns: 1fr; } }
.nv-post-nav a {
	display: block; padding: 1rem 1.1rem; border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius); background: var(--nv-surface); color: var(--nv-text);
}
.nv-post-nav a:hover { border-color: var(--nv-accent); color: var(--nv-text); }
.nv-post-nav span { display: block; font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; color: var(--nv-text-faint); margin-bottom: .25rem; }
.nv-post-nav .nv-next { text-align: right; }

/* =============================================================
   10. Paywall
   ============================================================= */
.nv-paywall {
	position: relative;
	border: 1px solid rgba(255, 45, 155, .3);
	border-radius: var(--nv-radius-lg);
	background:
		radial-gradient(600px 220px at 50% 0%, rgba(255,45,155,.12), transparent 70%),
		var(--nv-surface);
	padding: 2.2rem 1.8rem;
	text-align: center;
	box-shadow: var(--nv-shadow);
	margin: 2rem 0;
}
.nv-paywall__teaser {
	position: relative; text-align: left; color: var(--nv-text-muted);
	max-height: 210px; overflow: hidden; margin-bottom: 1.6rem;
	-webkit-mask-image: linear-gradient(180deg, #000 40%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 40%, transparent 100%);
}
.nv-paywall__icon {
	width: 54px; height: 54px; margin: 0 auto 1rem;
	border-radius: 16px; display: grid; place-items: center;
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	box-shadow: 0 8px 26px rgba(255, 45, 155, .35);
	color: #fff;
}
.nv-paywall h2 { font-size: 1.5rem; margin-bottom: .4rem; }
.nv-paywall p { color: var(--nv-text-muted); max-width: 48ch; margin-inline: auto; }
.nv-paywall__actions { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; margin-top: 1.4rem; }
.nv-paywall__tiers { margin-top: 1.8rem; text-align: left; }

/* =============================================================
   11. Tiers
   ============================================================= */
.nv-tier {
	position: relative;
	display: flex; flex-direction: column;
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius-lg);
	padding: 1.7rem 1.5rem;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.nv-tier:hover { transform: translateY(-4px); border-color: rgba(139, 92, 246, .45); box-shadow: var(--nv-shadow); }
.nv-tier--featured { border-color: rgba(255, 45, 155, .5); box-shadow: var(--nv-glow); }
.nv-tier--current { border-color: rgba(52, 211, 153, .5); }

.nv-tier__flag {
	position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
	padding: .3rem .8rem; border-radius: 999px; white-space: nowrap;
}
.nv-tier__art { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--nv-radius-sm); margin-bottom: 1rem; }
.nv-tier__name { font-size: 1.2rem; margin-bottom: .2rem; }
.nv-tier__price { display: flex; align-items: baseline; gap: .3rem; margin: .5rem 0 1rem; }
.nv-tier__amount { font-size: 2.1rem; font-weight: 800; letter-spacing: -.03em; }
.nv-tier__period { color: var(--nv-text-faint); font-size: .9rem; }
.nv-tier__desc { color: var(--nv-text-muted); font-size: .93rem; margin-bottom: 1rem; }
.nv-tier__benefits { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid; gap: .55rem; }
.nv-tier__benefits li { position: relative; padding-left: 1.6rem; font-size: .93rem; color: var(--nv-text); }
.nv-tier__benefits li::before {
	content: ""; position: absolute; left: 0; top: .45em;
	width: 9px; height: 9px; border-radius: 3px;
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
}
.nv-tier__foot { margin-top: auto; }
.nv-tier__count { text-align: center; font-size: .8rem; color: var(--nv-text-faint); margin-top: .7rem; }

/* =============================================================
   12. Creator profile
   ============================================================= */
.nv-creator-hero { position: relative; margin-bottom: 2.6rem; }
.nv-creator-hero__banner {
	height: 260px; border-radius: var(--nv-radius-lg); overflow: hidden;
	background: linear-gradient(140deg, rgba(139,92,246,.35), rgba(255,45,155,.28), rgba(34,211,238,.2));
	border: 1px solid var(--nv-line);
}
@media (max-width: 700px) { .nv-creator-hero__banner { height: 160px; } }
.nv-creator-hero__banner img { width: 100%; height: 100%; object-fit: cover; }

.nv-creator-hero__body {
	display: flex; align-items: flex-end; gap: 1.4rem;
	padding: 0 1.6rem; margin-top: -58px; position: relative; z-index: 2;
	flex-wrap: wrap;
}
@media (max-width: 700px) { .nv-creator-hero__body { padding: 0 .4rem; margin-top: -44px; } }
.nv-creator-hero__avatar {
	border-radius: 999px; border: 4px solid var(--nv-bg); background: var(--nv-surface);
	box-shadow: var(--nv-shadow); flex: 0 0 auto; overflow: hidden;
}
.nv-creator-hero__avatar img { border-radius: 999px; width: 116px; height: 116px; object-fit: cover; }
.nv-creator-hero__id { flex: 1 1 240px; padding-bottom: .4rem; }
.nv-creator-hero__id h1 { margin: 0 0 .2rem; font-size: 1.8rem; }
.nv-creator-hero__handle { color: var(--nv-text-faint); font-size: .92rem; }
.nv-creator-hero__actions { display: flex; gap: .6rem; padding-bottom: .4rem; flex-wrap: wrap; }

.nv-creator-bio { color: var(--nv-text-muted); max-width: 68ch; margin: 1.4rem 0 0; }
.nv-creator-stats { display: flex; gap: 1.8rem; margin: 1.2rem 0 0; flex-wrap: wrap; }
.nv-creator-links { display: flex; gap: .6rem; margin-top: 1rem; flex-wrap: wrap; }

.nv-tabs { display: flex; gap: .3rem; border-bottom: 1px solid var(--nv-line); margin: 2rem 0 1.6rem; overflow-x: auto; }
.nv-tabs a, .nv-tabs button {
	background: none; border: 0; border-bottom: 2px solid transparent;
	padding: .7rem .95rem; font: inherit; font-weight: 600; font-size: .94rem;
	color: var(--nv-text-muted); cursor: pointer; white-space: nowrap;
}
.nv-tabs a:hover, .nv-tabs button:hover { color: var(--nv-text); }
.nv-tabs .is-active { color: var(--nv-text); border-bottom-color: var(--nv-accent); }

.nv-creator-card { text-align: center; padding: 1.4rem 1.1rem; }
.nv-creator-card__avatar { margin: 0 auto .8rem; }
.nv-creator-card__avatar img { border-radius: 999px; width: 82px; height: 82px; object-fit: cover; border: 2px solid var(--nv-line); }
.nv-creator-card__name { font-size: 1.05rem; margin-bottom: .15rem; }
.nv-creator-card__name a { color: var(--nv-text); }
.nv-creator-card__meta { font-size: .82rem; color: var(--nv-text-faint); }

/* =============================================================
   13. Galleries + lightbox
   ============================================================= */
.nv-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.nv-gallery-item {
	position: relative; aspect-ratio: 1; border-radius: var(--nv-radius-sm);
	overflow: hidden; background: var(--nv-surface-2); cursor: pointer; border: 1px solid var(--nv-line);
}
.nv-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.nv-gallery-item:hover img { transform: scale(1.05); }
.nv-gallery-item.is-locked { cursor: not-allowed; }
.nv-gallery-item.is-locked img { filter: blur(16px) brightness(.55) saturate(.6); transform: scale(1.12); }
.nv-gallery-item__lock {
	position: absolute; inset: 0; display: grid; place-items: center; color: #fff;
	background: rgba(11,11,16,.35);
}
.nv-gallery-item__lock svg { width: 26px; height: 26px; }
.nv-gallery-count { font-size: .85rem; color: var(--nv-text-faint); margin-bottom: .8rem; }

.nv-lightbox {
	position: fixed; inset: 0; z-index: 10000; display: none;
	background: rgba(6, 6, 10, .94);
	backdrop-filter: blur(6px);
	align-items: center; justify-content: center; padding: 3rem 1.2rem;
}
.nv-lightbox.is-open { display: flex; }
.nv-lightbox img { max-width: min(1100px, 94vw); max-height: 86vh; object-fit: contain; border-radius: var(--nv-radius-sm); }
.nv-lightbox__close, .nv-lightbox__nav {
	position: absolute; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
	color: #fff; border-radius: 999px; width: 44px; height: 44px; cursor: pointer;
	display: grid; place-items: center; font-size: 1.3rem; line-height: 1;
}
.nv-lightbox__close { top: 20px; right: 20px; }
.nv-lightbox__nav--prev { left: 20px; top: 50%; transform: translateY(-50%); }
.nv-lightbox__nav--next { right: 20px; top: 50%; transform: translateY(-50%); }
.nv-lightbox__caption { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: var(--nv-text-muted); font-size: .9rem; }

/* Video posts */
.nv-video-wrap { position: relative; border-radius: var(--nv-radius); overflow: hidden; border: 1px solid var(--nv-line); }
.nv-video-wrap iframe, .nv-video-wrap video { width: 100%; aspect-ratio: 16/9; display: block; border: 0; }

/* =============================================================
   14. Age gate
   ============================================================= */
.nv-agegate {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center; padding: 1.5rem;
	background: rgba(6, 6, 10, .96);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.nv-agegate__panel {
	max-width: 460px; width: 100%; text-align: center;
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius-lg);
	padding: 2.4rem 2rem;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
}
.nv-agegate__mark {
	width: 62px; height: 62px; margin: 0 auto 1.2rem; border-radius: 18px;
	display: grid; place-items: center; font-weight: 800; font-size: 1.15rem; color: #fff;
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	box-shadow: 0 10px 30px rgba(255, 45, 155, .35);
}
.nv-agegate h2 { font-size: 1.5rem; margin-bottom: .6rem; }
.nv-agegate p { color: var(--nv-text-muted); font-size: .95rem; }
.nv-agegate__actions { display: grid; gap: .6rem; margin-top: 1.6rem; }
.nv-agegate__fine { font-size: .78rem; color: var(--nv-text-faint); margin-top: 1.2rem; margin-bottom: 0; }
.nv-agegate__deny { margin-top: 1rem; color: var(--nv-danger); font-size: .9rem; display: none; }

/* =============================================================
   15. Inbox / messaging
   ============================================================= */
.nv-inbox { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 0;
	border: 1px solid var(--nv-line); border-radius: var(--nv-radius); overflow: hidden;
	background: var(--nv-surface); min-height: 540px; }
@media (max-width: 800px) { .nv-inbox { grid-template-columns: 1fr; } .nv-inbox__list { max-height: 240px; } }

.nv-inbox__list { border-right: 1px solid var(--nv-line); overflow-y: auto; background: var(--nv-bg-2); }
.nv-inbox__head { padding: .9rem 1rem; border-bottom: 1px solid var(--nv-line); font-weight: 700; font-size: .95rem; }
.nv-thread {
	display: flex; gap: .7rem; align-items: center; width: 100%;
	padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--nv-line-soft);
	background: none; color: var(--nv-text); text-align: left; cursor: pointer; font: inherit;
}
.nv-thread:hover { background: var(--nv-surface-2); }
.nv-thread.is-active { background: var(--nv-accent-soft); }
.nv-thread img { border-radius: 999px; flex: 0 0 auto; }
.nv-thread__name { font-weight: 650; font-size: .92rem; }
.nv-thread__snippet { font-size: .81rem; color: var(--nv-text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 170px; }
.nv-thread__dot { width: 8px; height: 8px; border-radius: 999px; background: var(--nv-accent); margin-left: auto; flex: 0 0 auto; }

.nv-inbox__panel { display: flex; flex-direction: column; }
.nv-inbox__panel-head { padding: .9rem 1.1rem; border-bottom: 1px solid var(--nv-line); display: flex; align-items: center; gap: .7rem; }
.nv-inbox__messages { flex: 1; overflow-y: auto; padding: 1.2rem; display: flex; flex-direction: column; gap: .8rem; max-height: 460px; }
.nv-msg { max-width: 74%; padding: .7rem .95rem; border-radius: 16px; font-size: .93rem; line-height: 1.5; }
.nv-msg--in { background: var(--nv-surface-2); border-bottom-left-radius: 5px; align-self: flex-start; }
.nv-msg--out {
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff; border-bottom-right-radius: 5px; align-self: flex-end;
}
.nv-msg__time { display: block; font-size: .7rem; opacity: .7; margin-top: .3rem; }
.nv-inbox__compose { border-top: 1px solid var(--nv-line); padding: .8rem; display: flex; gap: .6rem; align-items: flex-end; }
.nv-inbox__compose textarea { min-height: 46px; max-height: 140px; }
.nv-inbox__empty { display: grid; place-items: center; flex: 1; color: var(--nv-text-faint); padding: 2rem; text-align: center; }

/* =============================================================
   16. Comments
   ============================================================= */
.nv-comments { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--nv-line); }
.nv-comments__title { margin-bottom: 1.6rem; }
.nv-comments ol.comment-list { list-style: none; margin: 0; padding: 0; }
.nv-comments .children { list-style: none; margin: 1rem 0 0 1.6rem; padding: 0 0 0 1.2rem; border-left: 1px solid var(--nv-line); }
@media (max-width: 600px) { .nv-comments .children { margin-left: .5rem; padding-left: .8rem; } }
.nv-comments li.comment { margin-bottom: 1.4rem; }
.nv-comment-box { background: var(--nv-surface); border: 1px solid var(--nv-line); border-radius: var(--nv-radius); padding: 1.1rem 1.2rem; }
.nv-comment-head { display: flex; align-items: center; gap: .65rem; margin-bottom: .6rem; flex-wrap: wrap; }
.nv-comment-head img { border-radius: 999px; }
.nv-comment-author { font-weight: 650; font-size: .95rem; }
.nv-comment-date { font-size: .78rem; color: var(--nv-text-faint); }
.nv-comment-body { font-size: .96rem; }
.nv-comment-body p:last-child { margin-bottom: 0; }
.nv-comment-actions { margin-top: .5rem; font-size: .84rem; display: flex; gap: .8rem; }
.comment-respond { margin-top: 2rem; background: var(--nv-surface); border: 1px solid var(--nv-line); border-radius: var(--nv-radius); padding: 1.4rem; }
.comment-reply-title { font-size: 1.15rem; }
.comment-form .form-submit { margin-bottom: 0; }
.comment-form input[type="submit"] {
	font: inherit; font-weight: 650; cursor: pointer;
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff; border: 0; border-radius: 999px; padding: .8rem 1.5rem;
}
.nv-comments-locked {
	text-align: center; background: var(--nv-surface); border: 1px dashed var(--nv-line);
	border-radius: var(--nv-radius); padding: 2rem 1.4rem; color: var(--nv-text-muted);
}

/* =============================================================
   17. Sidebar / widgets / footer
   ============================================================= */
.nv-sidebar .widget {
	background: var(--nv-surface); border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius); padding: 1.2rem 1.3rem; margin-bottom: 20px;
}
.nv-sidebar .widget-title { font-size: 1rem; margin-bottom: .9rem; }
.nv-sidebar ul { list-style: none; margin: 0; padding: 0; }
.nv-sidebar li { padding: .35rem 0; border-bottom: 1px solid var(--nv-line-soft); font-size: .93rem; }
.nv-sidebar li:last-child { border-bottom: 0; }
.nv-sidebar a { color: var(--nv-text-muted); }
.nv-sidebar a:hover { color: var(--nv-accent); }

.nv-member-box { text-align: center; }
.nv-member-box img { border-radius: 999px; margin: 0 auto .7rem; }
.nv-member-box__tier { font-size: .85rem; color: var(--nv-text-muted); margin-bottom: 1rem; }

.nv-footer { border-top: 1px solid var(--nv-line); background: rgba(9, 9, 13, .7); padding: 3rem 0 2rem; margin-top: 3rem; }
.nv-footer__cols { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; margin-bottom: 2.4rem; }
@media (max-width: 800px) { .nv-footer__cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .nv-footer__cols { grid-template-columns: 1fr; } }
.nv-footer h3 { font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; color: var(--nv-text-faint); margin-bottom: .9rem; }
.nv-footer ul { list-style: none; margin: 0; padding: 0; }
.nv-footer li { margin-bottom: .45rem; }
.nv-footer a { color: var(--nv-text-muted); font-size: .93rem; }
.nv-footer a:hover { color: var(--nv-text); }
.nv-footer__blurb { color: var(--nv-text-muted); font-size: .93rem; max-width: 40ch; }
.nv-footer__bar {
	display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
	padding-top: 1.4rem; border-top: 1px solid var(--nv-line-soft);
	font-size: .84rem; color: var(--nv-text-faint);
}

/* =============================================================
   18. Pagination / misc
   ============================================================= */
.nv-pagination { margin-top: 2.6rem; display: flex; justify-content: center; }
.nv-pagination .page-numbers {
	display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 .6rem;
	margin: 0 .2rem; border-radius: 10px; border: 1px solid var(--nv-line);
	background: var(--nv-surface); color: var(--nv-text-muted); font-size: .92rem;
}
.nv-pagination .page-numbers:hover { color: var(--nv-text); border-color: var(--nv-accent); }
.nv-pagination .page-numbers.current {
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff; border-color: transparent;
}

.nv-empty { text-align: center; padding: 3.5rem 1.5rem; color: var(--nv-text-muted); }
.nv-empty h2 { color: var(--nv-text); }

.nv-account-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; margin-bottom: 2rem; }
.nv-stat-card { background: var(--nv-surface); border: 1px solid var(--nv-line); border-radius: var(--nv-radius); padding: 1.2rem 1.3rem; }
.nv-stat-card .nv-stat__num { margin-bottom: .1rem; }

.nv-404 { text-align: center; padding: 5rem 1rem; }
.nv-404__code {
	font-size: clamp(4rem, 14vw, 8rem); font-weight: 900; letter-spacing: -.05em; line-height: 1;
	background: linear-gradient(120deg, var(--nv-accent), var(--nv-accent-2), var(--nv-accent-3));
	-webkit-background-clip: text; background-clip: text; color: transparent;
}

.alignleft  { float: left; margin: .4rem 1.4rem 1rem 0; }
.alignright { float: right; margin: .4rem 0 1rem 1.4rem; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide { max-width: calc(var(--nv-wrap) - 40px); margin-inline: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.sticky .nv-card { border-color: rgba(255, 45, 155, .4); }
.wp-caption { max-width: 100%; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* =============================================================
   19. WooCommerce
   ============================================================= */
.nv-woocommerce { padding-bottom: 2rem; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-left: 3px solid var(--nv-accent);
	border-radius: var(--nv-radius-sm);
	color: var(--nv-text);
	padding: .95rem 1.1rem;
	margin: 0 0 1.6rem;
	list-style: none;
}
.woocommerce-message { border-left-color: var(--nv-ok); }
.woocommerce-error { border-left-color: var(--nv-danger); }
.woocommerce-message a, .woocommerce-info a { color: var(--nv-accent); }

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	display: inline-flex; align-items: center; justify-content: center;
	font: inherit; font-weight: 650; line-height: 1;
	padding: .8rem 1.35rem;
	border: 1px solid transparent;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff;
	box-shadow: 0 6px 22px rgba(255, 45, 155, .28);
	text-shadow: none;
	transition: transform .16s ease, box-shadow .2s ease;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 10px 30px rgba(255, 45, 155, .38);
}
.woocommerce .button.disabled, .woocommerce .button:disabled { opacity: .55; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	padding: 1rem;
	transition: transform .2s ease, border-color .2s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-3px); border-color: rgba(255, 45, 155, .35); }
.woocommerce ul.products li.product img { border-radius: var(--nv-radius-sm); margin-bottom: .8rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; color: var(--nv-text); padding: 0; }
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--nv-text); font-weight: 700; }
.woocommerce div.product p.price ins, .woocommerce ul.products li.product .price ins { color: var(--nv-accent); text-decoration: none; }
.woocommerce div.product p.price del, .woocommerce ul.products li.product .price del { color: var(--nv-text-faint); opacity: 1; }
.woocommerce span.onsale {
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2));
	color: #fff; border-radius: 999px; min-height: 0; min-width: 0;
	padding: .3rem .8rem; line-height: 1.4; font-weight: 700;
}

.woocommerce div.product .product_title { color: var(--nv-text); }
.woocommerce div.product .woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--nv-line); padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--nv-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
}
.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.active { border-bottom-color: var(--nv-accent); background: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--nv-text-muted); font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--nv-text); }

.woocommerce table.shop_table,
.woocommerce table.shop_attributes,
.woocommerce-cart table.cart,
.woocommerce .woocommerce-checkout-review-order-table {
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	color: var(--nv-text);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-color: var(--nv-line-soft); color: var(--nv-text); }
.woocommerce table.shop_table thead th { color: var(--nv-text-muted); background: var(--nv-surface-2); }
.woocommerce table.shop_table tfoot td, .woocommerce table.shop_table tfoot th { background: var(--nv-surface-2); }
.woocommerce-cart table.cart img { width: 60px; border-radius: 8px; }
.woocommerce table.shop_table td.product-remove a.remove { color: var(--nv-danger) !important; }
.woocommerce table.shop_table td.product-remove a.remove:hover { background: var(--nv-danger); color: #fff !important; }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-payment,
#add_payment_method .cart-collaterals .cart_totals {
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	padding: 1.2rem;
}
.woocommerce-checkout #payment { background: transparent; border-radius: var(--nv-radius); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--nv-line); padding: 0 0 1rem; }
.woocommerce-checkout #payment div.form-row { padding: 1rem 0 0; }
.woocommerce-checkout #payment div.payment_box {
	background: var(--nv-surface-2); color: var(--nv-text-muted); border-radius: var(--nv-radius-sm);
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--nv-surface-2); }

.woocommerce form .form-row label,
.woocommerce-page form .form-row label { color: var(--nv-text-muted); font-weight: 600; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	background: var(--nv-bg-2);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius-sm);
	color: var(--nv-text);
	padding: .7rem .9rem;
	height: auto;
	line-height: 1.5;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { color: var(--nv-text); line-height: 1.5; padding: 0; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 8px; }
.select2-dropdown { background: var(--nv-surface); border-color: var(--nv-line); color: var(--nv-text); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--nv-accent); }
.woocommerce form.checkout h3, .woocommerce-billing-fields h3 { color: var(--nv-text); }

.woocommerce-account .woocommerce-MyAccount-navigation {
	width: 24%;
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	padding: .6rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--nv-line-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block; padding: .65rem .8rem; color: var(--nv-text-muted); font-weight: 600; font-size: .93rem;
	border-radius: var(--nv-radius-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--nv-surface-2); color: var(--nv-text); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--nv-accent-soft); color: var(--nv-text);
}
.woocommerce-account .woocommerce-MyAccount-content { width: 72%; }
@media (max-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }
	.woocommerce-account .woocommerce-MyAccount-content { margin-top: 1.4rem; }
}

.woocommerce-order .woocommerce-order-overview,
.woocommerce ul.order_details {
	background: var(--nv-surface);
	border: 1px solid var(--nv-line);
	border-radius: var(--nv-radius);
	padding: 1.2rem 1.4rem;
	margin-bottom: 1.6rem;
}
.woocommerce ul.order_details li { border-color: var(--nv-line); color: var(--nv-text-faint); }
.woocommerce ul.order_details li strong { color: var(--nv-text); }

.woocommerce .woocommerce-breadcrumb { color: var(--nv-text-faint); font-size: .88rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--nv-text-muted); }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	background: var(--nv-surface); border: 1px solid var(--nv-line); border-radius: 10px;
	color: var(--nv-text-muted); margin: 0 .2rem; padding: .5rem .8rem;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-2)); color: #fff; border-color: transparent;
}

.woocommerce .quantity .qty {
	background: var(--nv-bg-2); border: 1px solid var(--nv-line); color: var(--nv-text);
	border-radius: var(--nv-radius-sm); padding: .5rem;
}
.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-coupon,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	background: var(--nv-surface); border: 1px solid var(--nv-line); border-radius: var(--nv-radius); padding: 1.4rem;
}
.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper { color: var(--nv-text-muted); font-size: .9rem; }
.woocommerce .star-rating span::before, .woocommerce p.stars a::before { color: var(--nv-accent); }
