/*
 * Nocturne – main stylesheet
 *
 * 1. Tokens & schemes      7. Overlay menu & search
 * 2. Reset & base          8. Page header & sections
 * 3. Typography            9. Journal & single post
 * 4. Buttons & links      10. Forms & comments
 * 5. Layout utilities     11. Footer
 * 6. Header               12. Elementor, motion, a11y
 */

/* 1. Tokens & schemes ------------------------------------------------------ */
:root {
	--nc-canvas: #000000;
	--nc-surface-soft: #0d0d0d;
	--nc-surface-card: #141414;
	--nc-surface-elevated: #1f1f1f;
	--nc-hairline: #262626;
	--nc-hairline-strong: #3a3a3a;
	--nc-ink: #ffffff;
	--nc-body: #cccccc;
	--nc-body-strong: #e6e6e6;
	--nc-muted: #999999;
	--nc-muted-soft: #666666;
	--nc-link: #c3d9f3;
	--nc-on-photo: #ffffff;
	--nc-on-ink: #000000;
	--nc-warning: #d4a017;
	--nc-success: #5fa657;
	--nc-danger: #d0584f;

	--nc-font-display: "Saira Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--nc-font-text: "Cormorant Garamond", Garamond, "Times New Roman", serif;
	--nc-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", monospace;

	--nc-space-xxs: 4px;
	--nc-space-xs: 8px;
	--nc-space-sm: 12px;
	--nc-space-md: 16px;
	--nc-space-lg: 24px;
	--nc-space-xl: 40px;
	--nc-space-xxl: 64px;
	--nc-space-section: clamp(72px, 10vw, 120px);

	--nc-container: 1280px;
	--nc-gutter: clamp(16px, 4vw, 40px);
	--nc-header-h: 64px;
	--nc-header-offset: var(--nc-header-h);
	--nc-admin-bar: var(--wp-admin--admin-bar--height, 0px);
	--nc-ease: cubic-bezier(.2, .7, .1, 1);
	--nc-pill: 9999px;
}

.nc-scheme-graphite {
	--nc-canvas: #111214;
	--nc-surface-soft: #16171a;
	--nc-surface-card: #1b1c1f;
	--nc-surface-elevated: #25262a;
	--nc-hairline: #2c2d31;
	--nc-hairline-strong: #44454a;
	--nc-body: #c9c9c9;
}

.nc-scheme-ivory {
	--nc-canvas: #f4f1ec;
	--nc-surface-soft: #eeeae3;
	--nc-surface-card: #e8e3da;
	--nc-surface-elevated: #ded8cd;
	--nc-hairline: #d7d0c4;
	--nc-hairline-strong: #b6aea0;
	--nc-ink: #0b0b0b;
	--nc-body: #2e2e2e;
	--nc-body-strong: #161616;
	--nc-muted: #6b6b6b;
	--nc-muted-soft: #8c8c8c;
	--nc-link: #2a4a6e;
	--nc-on-ink: #f4f1ec;
}

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--nc-header-offset) + var(--nc-admin-bar) + 16px);
}

body {
	margin: 0;
	background: var(--nc-canvas);
	color: var(--nc-body);
	font-family: var(--nc-font-text);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

body.nc-lock {
	overflow: hidden;
}

img,
video,
svg,
iframe {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

img {
	border-style: none;
}

figure {
	margin: 0;
}

hr {
	height: 1px;
	margin: var(--nc-space-xl) 0;
	border: 0;
	background: var(--nc-hairline);
}

::selection {
	background: var(--nc-ink);
	color: var(--nc-on-ink);
}

.site-main {
	display: block;
	min-height: 50vh;
	padding-top: calc(var(--nc-header-offset));
	outline: none;
}

.nc-has-transparent-header .site-main {
	padding-top: 0;
}

/* 3. Typography ------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--nc-space-md);
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-weight: 300;
	line-height: 1.15;
	text-transform: uppercase;
}

h1 {
	font-size: clamp(36px, 5.5vw, 64px);
	letter-spacing: 4px;
	line-height: 1.1;
}

h2 {
	font-size: clamp(28px, 4vw, 48px);
	letter-spacing: 3px;
}

h3 {
	font-size: clamp(22px, 2.6vw, 32px);
	letter-spacing: 2px;
	line-height: 1.2;
}

h4 {
	font-size: 24px;
	letter-spacing: 1.5px;
	line-height: 1.3;
}

h5 {
	font-size: 20px;
	letter-spacing: 1px;
	line-height: 1.3;
}

h6 {
	font-size: 16px;
	letter-spacing: 1.5px;
	line-height: 1.3;
}

p {
	margin: 0 0 1.1em;
}

strong,
b {
	color: var(--nc-body-strong);
	font-weight: 500;
}

small {
	font-size: .8em;
}

code,
kbd,
pre,
samp {
	font-family: var(--nc-font-mono);
	font-size: .85em;
}

pre {
	overflow: auto;
	padding: var(--nc-space-lg);
	background: var(--nc-surface-soft);
	border: 1px solid var(--nc-hairline);
}

.nc-caption,
.nc-label {
	font-family: var(--nc-font-mono);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--nc-muted);
}

.nc-display {
	font-family: var(--nc-font-display);
	font-weight: 300;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--nc-ink);
}

/* 4. Buttons & links -------------------------------------------------------- */
a {
	color: var(--nc-ink);
	text-decoration: none;
	transition: color .25s var(--nc-ease), opacity .25s var(--nc-ease), border-color .25s var(--nc-ease), background-color .25s var(--nc-ease);
}

a:hover {
	color: var(--nc-body-strong);
}

.nc-prose a,
.comment-content a,
.woocommerce-product-details__short-description a,
.woocommerce-Tabs-panel a,
.nc-page-header__desc a {
	color: var(--nc-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

:focus-visible {
	outline: 1px solid var(--nc-link);
	outline-offset: 3px;
}

.nc-btn,
.button,
button.button,
input[type="submit"],
.wp-block-button__link,
.wp-element-button,
.elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 44px;
	padding: 14px 32px;
	border: 1px solid var(--nc-ink);
	border-radius: var(--nc-pill);
	background: transparent;
	color: var(--nc-ink);
	font-family: var(--nc-font-mono);
	font-size: 13px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .3s var(--nc-ease), color .3s var(--nc-ease), border-color .3s var(--nc-ease);
}

.nc-btn:hover,
.button:hover,
button.button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.wp-element-button:hover,
.elementor-button:hover {
	background: var(--nc-ink);
	color: var(--nc-on-ink);
	border-color: var(--nc-ink);
}

.nc-btn--ghost {
	border-color: var(--nc-hairline-strong);
}

.nc-btn--solid {
	background: var(--nc-ink);
	color: var(--nc-on-ink);
}

.nc-btn--solid:hover {
	background: transparent;
	color: var(--nc-ink);
}

.nc-btn[disabled],
.button.disabled,
.button:disabled,
.button[disabled] {
	opacity: .4;
	pointer-events: none;
}

.nc-textlink {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--nc-hairline-strong);
	color: var(--nc-ink);
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
}

.nc-textlink:hover {
	border-color: var(--nc-ink);
	color: var(--nc-ink);
}

.nc-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--nc-hairline-strong);
	border-radius: 50%;
	background: transparent;
	color: var(--nc-ink);
	cursor: pointer;
	transition: border-color .25s var(--nc-ease), background-color .25s var(--nc-ease), color .25s var(--nc-ease);
}

.nc-icon-btn:hover {
	border-color: var(--nc-ink);
}

/* 5. Layout utilities ------------------------------------------------------- */
.nc-container {
	width: 100%;
	max-width: calc(var(--nc-container) + var(--nc-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--nc-gutter);
}

.nc-section {
	padding-block: var(--nc-space-section);
}

.nc-section-tight {
	padding-block: var(--nc-space-xxl) var(--nc-space-section);
}

.nc-prose-wrap {
	max-width: calc(760px + var(--nc-gutter) * 2);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	word-wrap: normal !important;
}

.skip-link:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 14px 24px;
	clip: auto;
	clip-path: none;
	background: var(--nc-ink);
	color: var(--nc-on-ink);
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.alignleft {
	float: left;
	margin: .3em 1.6em 1em 0;
}

.alignright {
	float: right;
	margin: .3em 0 1em 1.6em;
}

.aligncenter {
	display: block;
	margin-inline: auto;
}

.wp-caption-text,
figcaption {
	margin-top: var(--nc-space-sm);
	color: var(--nc-muted);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.sticky,
.bypostauthor,
.gallery-caption {
	display: block;
}

/* 6. Header ----------------------------------------------------------------- */
.nc-header-wrap {
	position: fixed;
	top: var(--nc-admin-bar);
	left: 0;
	right: 0;
	z-index: 1000;
	color: var(--nc-ink);
	background: var(--nc-canvas);
	border-bottom: 1px solid var(--nc-hairline);
	transition: background-color .4s var(--nc-ease), border-color .4s var(--nc-ease), transform .4s var(--nc-ease), color .4s var(--nc-ease);
}

.nc-has-transparent-header .nc-header-wrap:not(.is-scrolled):not(.is-open) {
	background: transparent;
	border-color: transparent;
	color: var(--nc-on-photo);
}

.nc-header-wrap.is-hidden {
	transform: translateY(-100%);
}

.nc-header-wrap.is-open {
	background: transparent;
	border-color: transparent;
}

.nc-announcement {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 6px var(--nc-gutter);
	border-bottom: 1px solid var(--nc-hairline);
	color: var(--nc-body);
	text-align: center;
}

.nc-has-transparent-header .nc-header-wrap:not(.is-scrolled) .nc-announcement {
	border-color: rgba(255, 255, 255, .14);
	color: inherit;
}

.nc-announcement a {
	color: inherit;
}

.nc-header-wrap.is-open .nc-announcement {
	visibility: hidden;
}

.nc-header {
	height: var(--nc-header-h);
}

.nc-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--nc-space-lg);
	height: 100%;
	padding-inline: var(--nc-gutter);
}

.nc-header__left,
.nc-header__right {
	display: flex;
	align-items: center;
	gap: clamp(12px, 2vw, 32px);
	min-width: 0;
}

.nc-header__right {
	justify-content: flex-end;
}

.nc-header__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
}

.nc-header__link:hover {
	color: inherit;
	opacity: .7;
}

.nc-header__link .nc-label {
	color: inherit;
	font-size: 12px;
}

.nc-burger {
	position: relative;
	display: inline-block;
	width: 22px;
	height: 10px;
}

.nc-burger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	transition: transform .4s var(--nc-ease), top .4s var(--nc-ease);
}

.nc-burger span:first-child {
	top: 0;
}

.nc-burger span:last-child {
	top: 9px;
}

.is-open .nc-burger span:first-child {
	top: 5px;
	transform: rotate(45deg);
}

.is-open .nc-burger span:last-child {
	top: 5px;
	transform: rotate(-45deg);
}

.nc-header__brand {
	display: flex;
	justify-content: center;
	text-align: center;
}

.nc-wordmark {
	margin: 0;
	font-family: var(--nc-font-display);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 7px;
	text-transform: uppercase;
	white-space: nowrap;
}

.nc-wordmark a {
	color: inherit;
	/* Optical centering: trailing letter-spacing pushes text left. */
	padding-left: 7px;
}

.custom-logo-link {
	display: inline-flex;
}

.custom-logo {
	width: auto;
	max-height: 36px;
}

.nc-cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border: 1px solid currentColor;
	border-radius: var(--nc-pill);
	font-family: var(--nc-font-mono);
	font-size: 10px;
	letter-spacing: 0;
	line-height: 1;
}

.nc-cart-count[data-count="0"] {
	opacity: .55;
}

/* Inline header layout */
.nc-header-inline .nc-header__inner {
	grid-template-columns: auto 1fr auto;
}

.nc-header-inline .nc-header__brand--inline {
	justify-content: flex-start;
}

.nc-header-inline .nc-header__nav {
	display: flex;
	justify-content: center;
}

.nc-menu {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(16px, 2.4vw, 40px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-menu a {
	color: inherit;
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-menu .current-menu-item > a,
.nc-menu a:hover {
	opacity: .65;
}

.nc-header-inline .nc-menu-toggle {
	display: none;
}

@media (max-width: 1024px) {
	.nc-header-inline .nc-header__nav {
		display: none;
	}

	.nc-header-inline .nc-menu-toggle {
		display: inline-flex;
	}

	.nc-header-inline .nc-header__inner {
		grid-template-columns: auto 1fr auto;
	}
}

@media (max-width: 767px) {
	:root {
		--nc-header-h: 56px;
	}

	.nc-header__inner {
		gap: var(--nc-space-sm);
	}

	.nc-header__link .nc-label {
		display: none;
	}

	.nc-cart-toggle .nc-label {
		display: none;
	}

	.nc-account-link {
		display: none;
	}

	.nc-wordmark {
		font-size: 14px;
		letter-spacing: 5px;
	}

	.nc-wordmark a {
		padding-left: 5px;
	}
}

/* 7. Overlay menu & search -------------------------------------------------- */
.nc-overlay {
	position: fixed;
	inset: 0;
	z-index: 990;
	display: flex;
	overflow-y: auto;
	padding: calc(var(--nc-header-offset) + var(--nc-admin-bar) + var(--nc-space-xl)) var(--nc-gutter) var(--nc-space-xl);
	background: var(--nc-canvas);
	opacity: 0;
	visibility: hidden;
	transition: opacity .5s var(--nc-ease), visibility 0s linear .5s;
}

.nc-overlay.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity .5s var(--nc-ease), visibility 0s;
}

.nc-overlay__inner {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: var(--nc-space-xxl);
	width: 100%;
	max-width: var(--nc-container);
	margin: auto;
}

.nc-overlay-menu {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: nc-menu;
}

.nc-overlay-menu > li {
	counter-increment: nc-menu;
	border-bottom: 1px solid var(--nc-hairline);
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .6s var(--nc-ease), transform .6s var(--nc-ease);
}

.nc-overlay.is-open .nc-overlay-menu > li {
	opacity: 1;
	transform: none;
}

.nc-overlay.is-open .nc-overlay-menu > li:nth-child(2) { transition-delay: .05s; }
.nc-overlay.is-open .nc-overlay-menu > li:nth-child(3) { transition-delay: .1s; }
.nc-overlay.is-open .nc-overlay-menu > li:nth-child(4) { transition-delay: .15s; }
.nc-overlay.is-open .nc-overlay-menu > li:nth-child(5) { transition-delay: .2s; }
.nc-overlay.is-open .nc-overlay-menu > li:nth-child(6) { transition-delay: .25s; }
.nc-overlay.is-open .nc-overlay-menu > li:nth-child(7) { transition-delay: .3s; }
.nc-overlay.is-open .nc-overlay-menu > li:nth-child(n+8) { transition-delay: .35s; }

.nc-overlay-menu > li > a {
	display: flex;
	align-items: baseline;
	gap: var(--nc-space-lg);
	padding: clamp(10px, 1.6vw, 18px) 0;
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-size: clamp(30px, 5vw, 64px);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: clamp(2px, .4vw, 5px);
	text-transform: uppercase;
}

.nc-overlay-menu > li > a::before {
	content: counter(nc-menu, decimal-leading-zero);
	min-width: 2.4em;
	color: var(--nc-muted-soft);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 2px;
}

.nc-overlay-menu > li > a span {
	transition: transform .5s var(--nc-ease), color .3s;
}

.nc-overlay-menu > li > a:hover span {
	transform: translateX(12px);
	color: var(--nc-muted);
}

.nc-overlay-menu .sub-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-xs) var(--nc-space-lg);
	margin: 0;
	padding: 0 0 var(--nc-space-md) calc(2.4em * 11 / 11 + var(--nc-space-lg) + 26px);
	list-style: none;
}

.nc-overlay-menu .sub-menu a {
	color: var(--nc-muted);
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-overlay-menu .sub-menu a:hover {
	color: var(--nc-ink);
}

.nc-overlay__aside {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--nc-space-xl);
	padding-bottom: var(--nc-space-md);
}

.nc-overlay-secondary {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-overlay-secondary li + li {
	margin-top: var(--nc-space-sm);
}

.nc-overlay-secondary a {
	color: var(--nc-body);
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-overlay__note {
	color: var(--nc-muted);
	font-size: 17px;
}

.nc-social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--nc-hairline-strong);
	border-radius: 50%;
	color: var(--nc-ink);
}

.nc-social a:hover {
	border-color: var(--nc-ink);
	color: var(--nc-ink);
}

@media (max-width: 900px) {
	.nc-overlay__inner {
		grid-template-columns: 1fr;
		gap: var(--nc-space-xl);
		margin: 0;
	}

	.nc-overlay-menu .sub-menu {
		padding-left: 0;
	}
}

.nc-search {
	position: fixed;
	top: var(--nc-admin-bar);
	left: 0;
	right: 0;
	z-index: 1100;
	padding-block: var(--nc-space-xl);
	background: var(--nc-canvas);
	border-bottom: 1px solid var(--nc-hairline);
	transform: translateY(-105%);
	transition: transform .5s var(--nc-ease), visibility 0s linear .5s;
	visibility: hidden;
}

.nc-search.is-open {
	transform: none;
	visibility: visible;
	transition: transform .5s var(--nc-ease), visibility 0s;
}

.nc-search__inner {
	position: relative;
	padding-right: calc(var(--nc-gutter) + 56px);
}

.nc-search__close {
	position: absolute;
	top: 0;
	right: var(--nc-gutter);
}

.nc-search .woocommerce-product-search,
.nc-search .nc-searchform {
	display: flex;
	align-items: center;
	gap: var(--nc-space-md);
	margin-top: var(--nc-space-md);
	border-bottom: 1px solid var(--nc-hairline-strong);
}

.nc-search input[type="search"] {
	flex: 1;
	height: 72px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-size: clamp(24px, 4vw, 44px);
	font-weight: 300;
	letter-spacing: 3px;
	text-transform: uppercase;
}

.nc-search input[type="search"]:focus {
	outline: none;
}

.nc-search .woocommerce-product-search button {
	min-height: 40px;
	padding: 10px 24px;
}

.nc-scrim {
	position: fixed;
	inset: 0;
	z-index: 1050;
	background: rgba(0, 0, 0, .6);
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s var(--nc-ease), visibility 0s linear .4s;
}

.nc-scrim.is-visible {
	opacity: 1;
	visibility: visible;
	transition: opacity .4s var(--nc-ease), visibility 0s;
}

/* 8. Page header & sections -------------------------------------------------- */
.nc-page-header {
	padding-block: clamp(56px, 9vw, 120px) clamp(32px, 5vw, 64px);
	border-bottom: 1px solid var(--nc-hairline);
	text-align: center;
}

.nc-page-header__caption,
.nc-page-header .nc-breadcrumb {
	margin: 0 0 var(--nc-space-lg);
}

.nc-page-header__title {
	max-width: 18ch;
	margin: 0 auto;
}

.nc-page-header__title span {
	color: var(--nc-muted);
}

.nc-page-header__desc {
	max-width: 620px;
	margin: var(--nc-space-lg) auto 0;
	color: var(--nc-body);
	font-size: 19px;
}

.nc-page-header__desc p:last-child {
	margin-bottom: 0;
}

.nc-empty {
	max-width: 620px;
	margin: 0 auto;
	padding-block: var(--nc-space-xxl);
	text-align: center;
}

.nc-empty__title {
	margin-top: var(--nc-space-md);
	font-size: clamp(26px, 3vw, 36px);
}

.nc-empty .nc-searchform {
	margin-top: var(--nc-space-xl);
}

.nc-404 {
	display: flex;
	align-items: center;
	min-height: calc(100vh - var(--nc-header-offset) - var(--nc-admin-bar));
	padding-block: var(--nc-space-section);
	text-align: center;
}

.nc-404__title {
	margin: var(--nc-space-lg) 0;
	font-size: clamp(48px, 11vw, 160px);
	letter-spacing: clamp(4px, 1.2vw, 16px);
	line-height: .95;
}

.nc-404__text {
	max-width: 520px;
	margin: 0 auto var(--nc-space-xl);
	font-size: 20px;
}

.nc-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--nc-space-md);
}

.nc-404__search {
	max-width: 520px;
	margin: var(--nc-space-xxl) auto 0;
}

/* 9. Journal & single post --------------------------------------------------- */
.nc-post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: var(--nc-space-xxl) var(--nc-space-xl);
}

.nc-post-card {
	display: flex;
	flex-direction: column;
}

.nc-post-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--nc-surface-card);
}

.nc-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--nc-ease), opacity .6s var(--nc-ease);
}

.nc-post-card:hover .nc-post-card__media img {
	transform: scale(1.04);
}

.nc-post-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1;
	padding-top: var(--nc-space-lg);
}

.nc-post-card__meta,
.nc-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-md);
	margin-bottom: var(--nc-space-sm);
}

.nc-tag {
	color: var(--nc-muted);
}

.nc-tag:hover {
	color: var(--nc-ink);
}

.nc-post-card__title {
	margin-bottom: var(--nc-space-sm);
	font-size: 22px;
	letter-spacing: 1.2px;
	line-height: 1.25;
}

.nc-post-card__title a {
	color: var(--nc-ink);
}

.nc-post-card__excerpt {
	flex: 1;
	margin-bottom: var(--nc-space-lg);
	color: var(--nc-body);
	font-size: 17px;
}

.nc-post-card__excerpt p {
	margin: 0;
}

.nc-post-card__blank {
	display: block;
	width: 100%;
	height: 100%;
}

.pagination,
.woocommerce-pagination {
	margin-top: var(--nc-space-xxl);
	padding-top: var(--nc-space-xl);
	border-top: 1px solid var(--nc-hairline);
}

.pagination .nav-links,
.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--nc-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--nc-hairline);
	border-radius: var(--nc-pill);
	color: var(--nc-body);
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 1px;
}

.page-numbers.current,
a.page-numbers:hover {
	border-color: var(--nc-ink);
	color: var(--nc-ink);
}

.nc-single__header {
	max-width: calc(980px + var(--nc-gutter) * 2);
	padding-block: clamp(56px, 9vw, 120px) var(--nc-space-xxl);
	text-align: center;
}

.nc-single__meta {
	justify-content: center;
}

.nc-single__title {
	margin-bottom: var(--nc-space-lg);
}

.nc-single__lead {
	max-width: 680px;
	margin: 0 auto;
	color: var(--nc-body-strong);
	font-size: 22px;
	line-height: 1.5;
}

.nc-single__hero {
	aspect-ratio: 21 / 9;
	overflow: hidden;
	background: var(--nc-surface-card);
}

.nc-single__hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nc-single__layout {
	padding-block: var(--nc-space-section) var(--nc-space-xxl);
}

.nc-single__layout > .nc-prose {
	max-width: 760px;
	margin-inline: auto;
}

.nc-single__layout.has-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: var(--nc-space-xxl);
}

.nc-sidebar .widget + .widget {
	margin-top: var(--nc-space-xl);
}

.nc-sidebar h2,
.nc-sidebar .wp-block-heading,
.nc-shop__sidebar h2,
.nc-footer__col--widgets h2 {
	margin-bottom: var(--nc-space-md);
	color: var(--nc-ink);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 2.5px;
}

.nc-sidebar .wp-block-search__inside-wrapper {
	display: flex;
	gap: var(--nc-space-sm);
}

.nc-sidebar .wp-block-search__label {
	display: block;
	margin-bottom: 4px;
}

@media (max-width: 1024px) {
	.nc-single__layout.has-sidebar {
		grid-template-columns: 1fr;
	}
}

.nc-prose {
	color: var(--nc-body);
	font-size: 20px;
	line-height: 1.65;
}

.nc-prose > *:first-child {
	margin-top: 0;
}

.nc-prose h2,
.nc-prose h3,
.nc-prose h4 {
	margin-top: 2em;
}

.nc-prose h2 {
	font-size: clamp(26px, 3vw, 36px);
}

.nc-prose ul,
.nc-prose ol {
	padding-left: 1.2em;
}

.nc-prose li + li {
	margin-top: .4em;
}

.nc-prose blockquote,
.wp-block-quote {
	margin: 2em 0;
	padding: var(--nc-space-lg) 0 var(--nc-space-lg) var(--nc-space-xl);
	border-left: 1px solid var(--nc-ink);
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.nc-prose blockquote p:last-child {
	margin-bottom: 0;
}

.nc-prose blockquote cite {
	display: block;
	margin-top: var(--nc-space-md);
	color: var(--nc-muted);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	font-style: normal;
	letter-spacing: 2px;
}

.nc-prose figure,
.nc-prose .wp-block-image {
	margin: 2.4em 0;
}

.nc-prose table,
.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 17px;
}

.nc-prose th,
.nc-prose td,
.nc-prose .wp-block-table th,
.nc-prose .wp-block-table td {
	padding: var(--nc-space-sm) var(--nc-space-md) var(--nc-space-sm) 0;
	border: 0;
	border-bottom: 1px solid var(--nc-hairline);
	text-align: left;
}

.nc-prose .wp-block-table thead {
	border-bottom: 1px solid var(--nc-hairline-strong);
}

.nc-prose .wp-block-table tfoot {
	border-top: 1px solid var(--nc-hairline-strong);
}

.nc-prose .wp-block-table {
	overflow-x: auto;
}

.nc-prose th {
	color: var(--nc-muted);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-prose details {
	border-bottom: 1px solid var(--nc-hairline);
}

.nc-prose details:first-of-type {
	border-top: 1px solid var(--nc-hairline);
}

.nc-prose summary {
	position: relative;
	padding: var(--nc-space-lg) 40px var(--nc-space-lg) 0;
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-size: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}

.nc-prose summary::-webkit-details-marker {
	display: none;
}

.nc-prose summary::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--nc-font-mono);
	font-size: 18px;
	transition: transform .3s var(--nc-ease);
}

.nc-prose details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.nc-prose details > *:not(summary) {
	margin-top: 0;
	padding-bottom: var(--nc-space-lg);
}

.nc-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-xs);
	margin: var(--nc-space-xxl) 0 0;
	padding: 0;
	list-style: none;
}

.nc-tags a {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid var(--nc-hairline-strong);
	border-radius: var(--nc-pill);
	color: var(--nc-body) !important;
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 2px;
	text-decoration: none !important;
	text-transform: uppercase;
}

.nc-post-nav {
	padding-block: var(--nc-space-xl);
	border-top: 1px solid var(--nc-hairline);
	border-bottom: 1px solid var(--nc-hairline);
}

.nc-post-nav .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--nc-space-xl);
}

.nc-post-nav .nav-next {
	grid-column: 2;
	text-align: right;
}

.nc-post-nav a {
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-xs);
}

.nc-post-nav__title {
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-size: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* 10. Forms & comments ------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select,
.nc-input {
	width: 100%;
	min-height: 44px;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--nc-hairline-strong);
	border-radius: 0;
	background: transparent;
	color: var(--nc-ink);
	font-family: var(--nc-font-text);
	font-size: 18px;
	line-height: 1.4;
	transition: border-color .25s var(--nc-ease);
	-webkit-appearance: none;
	appearance: none;
}

textarea {
	min-height: 140px;
	resize: vertical;
}

select {
	padding-right: 28px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='1.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-position: right 4px center;
	background-repeat: no-repeat;
	cursor: pointer;
}

select option {
	background: var(--nc-canvas);
	color: var(--nc-ink);
}

input:focus,
textarea:focus,
select:focus,
.nc-input:focus {
	border-bottom-color: var(--nc-ink);
	outline: none;
}

::placeholder {
	color: var(--nc-muted);
	opacity: 1;
}

input[type="checkbox"],
input[type="radio"] {
	width: 16px;
	height: 16px;
	margin: 0 8px 0 0;
	vertical-align: -2px;
	accent-color: var(--nc-ink);
}

label {
	color: var(--nc-muted);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

fieldset {
	margin: 0 0 var(--nc-space-lg);
	padding: var(--nc-space-lg);
	border: 1px solid var(--nc-hairline);
}

legend {
	padding: 0 var(--nc-space-xs);
	color: var(--nc-ink);
	font-family: var(--nc-font-mono);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-searchform {
	display: flex;
	align-items: center;
	gap: var(--nc-space-md);
}

.nc-searchform .nc-input {
	flex: 1;
}

.nc-comments {
	padding-block: var(--nc-space-xxl);
}

.nc-comments__title {
	font-size: 24px;
	letter-spacing: 1.5px;
}

.nc-comment-list,
.nc-comment-list .children {
	margin: 0 0 var(--nc-space-xl);
	padding: 0;
	list-style: none;
}

.nc-comment-list .children {
	margin: 0 0 0 var(--nc-space-xl);
}

.nc-comment-list .comment-body {
	padding-block: var(--nc-space-lg);
	border-bottom: 1px solid var(--nc-hairline);
}

.comment-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-md);
	margin-bottom: var(--nc-space-sm);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.comment-meta a,
.comment-metadata a {
	color: var(--nc-muted);
}

.comment-author .fn,
.comment-author .fn a {
	color: var(--nc-ink);
	font-style: normal;
}

.comment-author .says {
	display: none;
}

.reply a {
	color: var(--nc-body);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.comment-form p {
	margin-bottom: var(--nc-space-lg);
}

.comment-form label {
	display: block;
	margin-bottom: 4px;
}

.comment-form-cookies-consent label {
	display: inline;
}

.comment-notes,
.logged-in-as {
	color: var(--nc-muted);
	font-size: 16px;
}

/* 11. Footer ------------------------------------------------------------------ */
.nc-footer {
	position: relative;
	overflow: hidden;
	padding-top: var(--nc-space-section);
	border-top: 1px solid var(--nc-hairline);
	background: var(--nc-canvas);
	color: var(--nc-muted);
	font-size: 16px;
}

.nc-footer__top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--nc-space-xl);
	padding-bottom: var(--nc-space-xxl);
}

.nc-footer__statement {
	max-width: 560px;
	color: var(--nc-ink);
	font-family: var(--nc-font-display);
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 300;
	line-height: 1.3;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-footer__statement p {
	margin: 0;
}

.nc-footer__columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--nc-space-xl);
	padding-block: var(--nc-space-xxl);
	border-top: 1px solid var(--nc-hairline);
}

.nc-footer__title,
.nc-footer .widget-title {
	margin-bottom: var(--nc-space-lg);
	color: var(--nc-ink);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 2.5px;
}

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

.nc-footer__menu li + li {
	margin-top: 10px;
}

.nc-footer__menu a {
	color: var(--nc-muted);
	font-size: 17px;
}

.nc-footer__menu a:hover {
	color: var(--nc-ink);
}

.nc-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-space-md) var(--nc-space-xl);
	padding-block: var(--nc-space-lg);
	border-top: 1px solid var(--nc-hairline);
}

.nc-footer__copy {
	margin: 0;
	color: var(--nc-muted-soft);
	font-size: 15px;
}

.nc-footer__legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-lg);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-footer__legal-menu a {
	color: var(--nc-muted-soft);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.nc-footer__legal-menu a:hover {
	color: var(--nc-ink);
}

.nc-footer__payments {
	margin: 0;
	color: var(--nc-muted-soft);
}

.nc-footer__wordmark {
	padding: 0 var(--nc-gutter);
	text-align: center;
	line-height: .78;
	user-select: none;
}

.nc-footer__wordmark span {
	display: inline-block;
	color: var(--nc-surface-elevated);
	font-family: var(--nc-font-display);
	font-size: clamp(56px, 15.5vw, 236px);
	font-weight: 300;
	letter-spacing: .18em;
	text-transform: uppercase;
	white-space: nowrap;
	transform: translateY(.06em);
	margin-right: -.18em;
}

/* 12. Elementor, motion, accessibility --------------------------------------- */
.nc-elementor-page .site-main > .elementor,
.elementor-page .site-main > .elementor {
	overflow: hidden;
}

.elementor-widget-text-editor {
	color: var(--nc-body);
}

.elementor-widget-text-editor a {
	color: var(--nc-link);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.elementor-widget-heading .elementor-heading-title {
	text-transform: uppercase;
}

.nc-banner a {
	display: block;
	overflow: hidden;
}

.nc-banner img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 1.4s var(--nc-ease), opacity .6s var(--nc-ease);
}

.nc-banner a:hover img {
	transform: scale(1.015);
	opacity: .92;
}

.elementor-widget-divider {
	--divider-color: var(--nc-hairline);
}

.nc-js [data-nc-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1s var(--nc-ease), transform 1.2s var(--nc-ease);
}

.nc-js [data-nc-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

.elementor-editor-active [data-nc-reveal] {
	opacity: 1 !important;
	transform: none !important;
}

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

	.nc-js [data-nc-reveal] {
		opacity: 1;
		transform: none;
	}
}

/* Widgets in sidebars */
.widget {
	color: var(--nc-body);
	font-size: 17px;
}

.widget-title {
	margin-bottom: var(--nc-space-md);
	color: var(--nc-ink);
	font-family: var(--nc-font-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 2.5px;
}

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

.widget li {
	padding-block: 6px;
}

.widget a {
	color: var(--nc-body);
}

.widget a:hover {
	color: var(--nc-ink);
}

/* Gutenberg block alignment inside the prose column */
.nc-prose .alignwide {
	margin-inline: calc(50% - min(640px, 50vw - var(--nc-gutter)));
	max-width: none;
}

.nc-prose .alignfull {
	margin-inline: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}

.nc-prose .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--nc-hairline);
}

.nc-prose .wp-block-pullquote {
	border-color: var(--nc-hairline);
}
