/* ==========================================================================
   Meltz Binder Crew — main stylesheet
   1. Fonts & tokens      7. Hero                13. Shop & product
   2. Base                8. Category cards      14. Builder
   3. Utilities           9. Designs / CTA       15. Reviews / contact / FAQ / legal
   4. Buttons & badges   10. Gallery             16. Blog / search / 404
   5. Header & menus     11. Contact & forms     17. WooCommerce
   6. Overlays & FX      12. Footer              18. Responsive & motion prefs
   ========================================================================== */

/* 1. Fonts & tokens ------------------------------------------------------- */
@font-face {
	font-family: "Bebas Neue";
	src: url("../fonts/bebas-neue.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Inter";
	src: url("../fonts/inter-var.woff") format("woff");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@property --angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}

:root {
	--bg: #04060b;
	--bg-2: #070a11;
	--card: #0a0d15;
	--card-2: #0f131d;
	--field: #1a1e27;
	--line: rgba(255, 255, 255, 0.08);
	--line-2: rgba(255, 255, 255, 0.14);
	--text: #eef0f6;
	--muted: #9aa2b4;
	--dim: #6b7385;
	--purple: #9b3ff0;
	--violet: #a855f7;
	--indigo: #5b6cf2;
	--blue: #1e9bd7;
	--cyan: #22b8e8;
	--gold: #e5b62e;
	--grad: linear-gradient(90deg, #1e9bd7 0%, #5b6cf2 50%, #9b3ff0 100%);
	--grad-r: linear-gradient(90deg, #9b3ff0 0%, #5b6cf2 50%, #1e9bd7 100%);
	--grad-text: linear-gradient(90deg, #a24bf2 0%, #6f63f2 45%, #2fa4e6 100%);
	--grad-text-r: linear-gradient(90deg, #2fa4e6 0%, #6f63f2 55%, #a24bf2 100%);
	--font-head: "Bebas Neue", "Oswald", Impact, "Arial Narrow", sans-serif;
	--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--radius: 10px;
	--radius-lg: 16px;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ease-io: cubic-bezier(0.76, 0, 0.24, 1);
	--header-h: 86px;
	--container: 1180px;
	--gutter: clamp(16px, 4vw, 32px);
}

/* 2. Base ----------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}
html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: 110px;
}
html.lenis,
html.lenis body {
	height: auto;
}
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	text-rendering: optimizeLegibility;
}
body.is-loading {
	overflow: hidden;
}
img,
svg,
video,
iframe {
	max-width: 100%;
	display: block;
}
img {
	height: auto;
}
a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s var(--ease);
}
a:hover {
	color: #fff;
}
button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}
button {
	cursor: pointer;
	background: none;
	border: 0;
	padding: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.5em;
	font-family: var(--font-head);
	font-weight: 400;
	line-height: 0.95;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: #fff;
}
p {
	margin: 0 0 1em;
}
ul,
ol {
	margin: 0;
	padding: 0;
}
::selection {
	background: var(--purple);
	color: #fff;
}
:focus-visible {
	outline: 2px solid var(--cyan);
	outline-offset: 3px;
	border-radius: 4px;
}
.icon {
	width: 20px;
	height: 20px;
	flex: none;
}

/* 3. Utilities ------------------------------------------------------------ */
.container {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.container--narrow {
	max-width: calc(920px + var(--gutter) * 2);
}
.container--text {
	max-width: calc(800px + var(--gutter) * 2);
}
.section {
	position: relative;
	padding: clamp(56px, 7vw, 90px) 0;
}
.section--tight {
	padding: clamp(36px, 5vw, 60px) 0;
}
.screen-reader-text,
.hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link {
	position: fixed;
	top: -60px;
	left: 16px;
	z-index: 10000;
	background: #fff;
	color: #000;
	padding: 10px 16px;
	border-radius: 6px;
	font-weight: 600;
	transition: top 0.3s;
}
.skip-link:focus {
	top: 16px;
}
.grad-text {
	background: var(--grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	background-size: 200% 100%;
	animation: gradShift 8s ease-in-out infinite alternate;
}
.grad-text .w > span {
	background: inherit;
	-webkit-background-clip: text;
	background-clip: text;
}
.text-blue {
	color: #2aa6e3;
}
@keyframes gradShift {
	0% {
		background-position: 0% 50%;
	}
	100% {
		background-position: 100% 50%;
	}
}
.title {
	font-size: clamp(2.3rem, 4.6vw, 3.5rem);
	margin-bottom: 0.35em;
}
.title--lg {
	font-size: clamp(2.6rem, 5vw, 3.9rem);
}
.title--sm {
	font-size: clamp(1.7rem, 3vw, 2.2rem);
}
.title--mono {
	font-family: var(--font-head);
	letter-spacing: 0.02em;
}
.eyebrow {
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--muted);
	margin-bottom: 14px;
}
.subtitle {
	font-size: 1.6rem;
	margin: 1.2em 0 0.4em;
}
.center-btn {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}
.lead {
	font-size: 1.05rem;
	color: var(--text);
}

/* Split heading words */
.split .w {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.06em;
	margin-bottom: -0.06em;
}
.split .w > span {
	display: inline-block;
}
html.js .split[data-split] .w > span {
	transform: translate3d(0, 110%, 0) rotate(4deg);
	transition: transform 1s var(--ease);
	transition-delay: calc(var(--i, 0) * 0.055s + var(--d, 0s));
}
html.js .split.is-in .w > span {
	transform: none;
}

/* Scroll reveal */
html.js [data-reveal] {
	opacity: 0;
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease), clip-path 1.2s var(--ease-io), filter 0.9s var(--ease);
	transition-delay: var(--d, 0s);
	will-change: opacity, transform;
}
html.js [data-reveal="fade-up"] {
	transform: translate3d(0, 40px, 0);
}
html.js [data-reveal="fade-left"] {
	transform: translate3d(40px, 0, 0);
}
html.js [data-reveal="fade-right"] {
	transform: translate3d(-40px, 0, 0);
}
html.js [data-reveal="zoom"] {
	transform: scale(0.94) translate3d(0, 30px, 0);
	filter: blur(6px);
}
html.js [data-reveal="clip"] {
	opacity: 1;
	transform: none;
}
html.js [data-reveal="clip"] > img {
	transition: clip-path 1.3s var(--ease-io), transform 1.6s var(--ease), filter 0.6s;
	transition-delay: var(--d, 0s);
}
html.js [data-reveal="clip"]:not(.is-in) > img {
	clip-path: inset(100% 0 0 0);
	transform: scale(1.3);
}
html.js [data-reveal].is-in {
	opacity: 1;
	transform: none;
	filter: none;
}


.float {
	animation: float 6s ease-in-out infinite;
}
@keyframes float {
	0%,
	100% {
		transform: translate3d(0, 0, 0) rotate(-1deg);
	}
	50% {
		transform: translate3d(0, -14px, 0) rotate(1deg);
	}
}

/* Gradient border used on cards (purple/blue glow on the bottom edge). */
.glow-border {
	position: relative;
	isolation: isolate;
}
.glow-border::before,
.glow-border::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	z-index: 2;
	padding: 1px;
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
}
.glow-border::before {
	background: linear-gradient(to top, rgba(155, 63, 240, 0.95), rgba(155, 63, 240, 0.25) 35%, rgba(255, 255, 255, 0.08) 65%, rgba(255, 255, 255, 0.1));
}
.glow-border--blue::before {
	background: linear-gradient(to top, rgba(30, 155, 215, 0.9), rgba(30, 155, 215, 0.2) 40%, rgba(255, 255, 255, 0.1));
}
.glow-border::after {
	background: conic-gradient(from var(--angle), transparent 0 60%, #22b8e8 72%, #9b3ff0 82%, transparent 92%);
	opacity: 0;
	transition: opacity 0.5s;
	animation: spin 4s linear infinite;
}
.glow-border:hover::after {
	opacity: 1;
}
@keyframes spin {
	to {
		--angle: 360deg;
	}
}

/* 4. Buttons & badges ----------------------------------------------------- */
.badge {
	display: inline-block;
	background: var(--gold);
	color: #111;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	padding: 5px 9px 4px;
	border-radius: 3px;
	margin-bottom: 14px;
	box-shadow: 0 0 0 0 rgba(229, 182, 46, 0.45);
	animation: badgePulse 3.2s ease-out infinite;
}
@keyframes badgePulse {
	0% {
		box-shadow: 0 0 0 0 rgba(229, 182, 46, 0.4);
	}
	60%,
	100% {
		box-shadow: 0 0 0 10px rgba(229, 182, 46, 0);
	}
}
.btn {
	--h: 44px;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: var(--h);
	padding: 0 26px;
	border-radius: 8px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	isolation: isolate;
	transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), color 0.35s, background-position 0.6s var(--ease), border-color 0.3s;
	cursor: pointer;
}
.btn > span {
	position: relative;
	z-index: 2;
	display: inline-block;
	transition: transform 0.4s var(--ease);
}
.btn--sm {
	--h: 38px;
	padding: 0 20px;
	font-size: 11px;
}
.btn--grad {
	background: linear-gradient(90deg, #1e9bd7, #5b6cf2, #9b3ff0, #5b6cf2, #1e9bd7);
	background-size: 250% 100%;
	color: #fff;
	box-shadow: 0 8px 24px -10px rgba(155, 63, 240, 0.7);
}
.btn--grad::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.45) 50%, transparent 70%);
	transform: translateX(-120%);
	transition: transform 0.9s var(--ease);
}
.btn--grad:hover {
	color: #fff;
	background-position: 100% 0;
	box-shadow: 0 14px 34px -10px rgba(91, 108, 242, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
	transform: translateY(-2px);
}
.btn--grad:hover::after {
	transform: translateX(120%);
}
.btn--outline {
	border: 1.5px solid rgba(255, 255, 255, 0.85);
	color: #fff;
}
.btn--outline::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform 0.45s var(--ease);
	z-index: 1;
}
.btn--outline:hover {
	color: #0a0d14;
	transform: translateY(-2px);
}
.btn--outline:hover::before {
	transform: scaleY(1);
}
.btn--light {
	background: #fff;
	color: #0a0d14;
}
.btn--light::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--grad);
	opacity: 0;
	transition: opacity 0.4s var(--ease);
	z-index: 1;
}
.btn--light:hover {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 26px -10px rgba(155, 63, 240, 0.8);
}
.btn--light:hover::before {
	opacity: 1;
}
.btn__spinner {
	display: none;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	animation: rot 0.7s linear infinite;
	position: relative;
	z-index: 2;
}
.is-sending .btn__spinner {
	display: inline-block;
}
.is-sending [type="submit"] {
	pointer-events: none;
	opacity: 0.85;
}
@keyframes rot {
	to {
		transform: rotate(360deg);
	}
}
.magnetic {
	will-change: transform;
}
.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.link-arrow .icon {
	width: 16px;
	transition: transform 0.4s var(--ease);
}
.link-arrow:hover .icon {
	transform: translateX(5px);
}
.arrow-line {
	position: relative;
	display: inline-block;
	width: 30px;
	height: 1.5px;
	background: currentColor;
	transition: width 0.5s var(--ease);
	vertical-align: middle;
	margin-left: 6px;
}
.arrow-line::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}

/* 5. Header & menus ------------------------------------------------------- */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 900;
	padding-top: 16px;
	transition: transform 0.6s var(--ease), padding 0.4s var(--ease);
}
.admin-bar .site-header {
	top: 32px;
}
.site-header.is-hidden {
	transform: translateY(-130%);
}
.site-header.is-scrolled {
	padding-top: 10px;
}
.site-header__bar {
	position: relative;
	display: flex;
	align-items: center;
	gap: 20px;
	height: 58px;
	padding: 0 10px 0 14px;
	border-radius: 10px;
	background: rgba(14, 17, 25, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 10px 40px -20px rgba(0, 0, 0, 0.8);
	transition: background 0.4s, box-shadow 0.4s, border-color 0.4s;
}
.site-header.is-scrolled .site-header__bar {
	background: rgba(9, 11, 18, 0.85);
	border-color: rgba(155, 63, 240, 0.25);
	box-shadow: 0 16px 50px -24px rgba(91, 108, 242, 0.55);
}
.logo {
	display: flex;
	flex-direction: column;
	line-height: 1;
	flex: none;
}
.logo__word {
	font-family: var(--font-head);
	font-size: 26px;
	letter-spacing: 0.01em;
	color: #fff;
	white-space: nowrap;
}
.logo__tag {
	font-size: 6.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
	margin-top: 4px;
	white-space: nowrap;
}
.custom-logo-link img {
	max-height: 44px;
	width: auto;
}
.logo:hover .grad-text {
	animation-duration: 1.5s;
}
.main-nav {
	flex: 1;
	display: flex;
	justify-content: center;
}
.main-nav .menu {
	list-style: none;
	display: flex;
	align-items: center;
	gap: clamp(14px, 2.2vw, 30px);
}
.main-nav .menu > li {
	position: relative;
}
.main-nav .menu > li > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 18px 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #d7dbe5;
}
.main-nav .menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12px;
	height: 1.5px;
	background: var(--grad-r);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.45s var(--ease);
}
.main-nav .menu > li > a:hover::after,
.main-nav .menu > li.current-menu-item > a::after,
.main-nav .menu > li.current-menu-ancestor > a::after,
.main-nav .menu > li.current_page_item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}
.main-nav .menu > li.current-menu-item > a,
.main-nav .menu > li.current_page_item > a,
.main-nav .menu > li.current-menu-ancestor > a {
	color: #c48cff;
}
.menu-chevron {
	width: 12px;
	height: 12px;
	transition: transform 0.35s var(--ease);
}
.main-nav li:hover > a .menu-chevron,
.main-nav li:focus-within > a .menu-chevron {
	transform: rotate(180deg);
}
.main-nav .sub-menu {
	list-style: none;
	position: absolute;
	top: 100%;
	left: 50%;
	min-width: 200px;
	padding: 8px;
	background: rgba(12, 15, 23, 0.96);
	border: 1px solid var(--line-2);
	border-radius: 10px;
	box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(155, 63, 240, 0.12);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px) scale(0.98);
	transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), visibility 0.35s;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0) scale(1);
}
.main-nav .sub-menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 12px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #cfd4df;
	transition: background 0.3s, color 0.3s, padding 0.35s var(--ease);
}
.main-nav .sub-menu a:hover {
	background: rgba(155, 63, 240, 0.14);
	color: #fff;
	padding-left: 18px;
}
.header-actions {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
}
.main-nav + .header-actions {
	margin-left: 0;
}
.icon-btn {
	position: relative;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #e6e9f0;
	transition: background 0.3s, color 0.3s, transform 0.4s var(--ease);
}
.icon-btn .icon {
	width: 19px;
	height: 19px;
}
.icon-btn:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	transform: translateY(-2px);
}
.cart-count {
	position: absolute;
	top: 3px;
	right: 2px;
	min-width: 15px;
	height: 15px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--grad);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	line-height: 15px;
	text-align: center;
	transform: scale(0);
	transition: transform 0.4s var(--ease);
}
.cart-count.has-items {
	transform: scale(1);
}
.header-cta {
	margin-left: 8px;
}
.burger {
	display: none;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	position: relative;
	margin-left: 4px;
}
.burger span {
	position: absolute;
	left: 10px;
	right: 10px;
	height: 2px;
	border-radius: 2px;
	background: #fff;
	transition: transform 0.45s var(--ease), opacity 0.3s, width 0.4s var(--ease);
}
.burger span:nth-child(1) {
	top: 13px;
}
.burger span:nth-child(2) {
	top: 19px;
	right: 16px;
}
.burger span:nth-child(3) {
	top: 25px;
}
.menu-open .burger span:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}
.menu-open .burger span:nth-child(2) {
	opacity: 0;
	transform: translateX(-10px);
}
.menu-open .burger span:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}

/* Mobile menu */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 850;
	pointer-events: none;
	visibility: hidden;
}
.mobile-menu__bg {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 80% 0%, rgba(155, 63, 240, 0.35), transparent 50%), radial-gradient(circle at 0% 100%, rgba(30, 155, 215, 0.3), transparent 50%), #05070d;
	clip-path: circle(0% at calc(100% - 44px) 44px);
	transition: clip-path 0.9s var(--ease-io);
}
.mobile-menu__inner {
	position: relative;
	height: 100%;
	overflow-y: auto;
	padding: 120px var(--gutter) 40px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
}
.mobile-menu__list {
	list-style: none;
}
.mobile-menu__list li {
	overflow: hidden;
}
.mobile-menu__list > li > a {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-head);
	font-size: clamp(2.4rem, 11vw, 3.6rem);
	line-height: 1.05;
	color: #fff;
	transform: translateY(110%);
	transition: transform 0.8s var(--ease), color 0.3s;
}
.mobile-menu__list > li > a .icon {
	display: none;
}
.mobile-menu__list > li.current-menu-item > a {
	background: var(--grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.mobile-menu__list .sub-menu {
	list-style: none;
	display: flex;
	gap: 18px;
	padding: 4px 0 10px;
}
.mobile-menu__list .sub-menu a {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--muted);
	transform: translateY(120%);
	transition: transform 0.8s var(--ease);
}
.mobile-menu__foot {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s 0.4s, transform 0.6s 0.4s var(--ease);
}
.mobile-menu__foot p {
	margin-top: 16px;
	color: var(--muted);
}
.menu-open .mobile-menu {
	pointer-events: auto;
	visibility: visible;
}
.menu-open .mobile-menu__bg {
	clip-path: circle(150% at calc(100% - 44px) 44px);
}
.menu-open .mobile-menu__list a {
	transform: none;
}
.menu-open .mobile-menu__foot {
	opacity: 1;
	transform: none;
}
.mobile-menu__list > li:nth-child(1) > a { transition-delay: 0.15s; }
.mobile-menu__list > li:nth-child(2) > a { transition-delay: 0.21s; }
.mobile-menu__list > li:nth-child(3) > a { transition-delay: 0.27s; }
.mobile-menu__list > li:nth-child(4) > a { transition-delay: 0.33s; }
.mobile-menu__list > li:nth-child(5) > a { transition-delay: 0.39s; }
.mobile-menu__list > li:nth-child(6) > a { transition-delay: 0.45s; }
.mobile-menu__list .sub-menu a { transition-delay: 0.35s; }
body.menu-open {
	overflow: hidden;
}

/* 6. Overlays & FX -------------------------------------------------------- */
.preloader {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	background: radial-gradient(circle at 50% 60%, rgba(91, 108, 242, 0.18), transparent 55%), #03050a;
	transition: clip-path 1s var(--ease-io), visibility 1s;
	clip-path: inset(0 0 0 0);
}
.is-returning .preloader {
	display: none;
}
.preloader.is-done {
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
}
.preloader__inner {
	text-align: center;
}
.preloader__word {
	display: flex;
	justify-content: center;
	overflow: hidden;
	font-family: var(--font-head);
	font-size: clamp(4rem, 14vw, 9rem);
	line-height: 0.9;
	color: #fff;
}
.preloader__word span {
	display: inline-block;
	transform: translateY(100%);
	animation: letterUp 0.9s var(--ease) forwards;
	animation-delay: calc(var(--i) * 0.07s + 0.1s);
}
@keyframes letterUp {
	to {
		transform: none;
	}
}
.preloader__sub {
	font-family: var(--font-head);
	font-size: clamp(1.4rem, 4vw, 2.2rem);
	letter-spacing: 0.3em;
	margin: 6px 0 24px;
	opacity: 0;
	animation: fadeIn 0.8s 0.6s forwards;
}
.preloader__bar {
	width: min(260px, 60vw);
	height: 2px;
	margin: 0 auto;
	background: rgba(255, 255, 255, 0.1);
	border-radius: 2px;
	overflow: hidden;
}
.preloader__bar span {
	display: block;
	height: 100%;
	width: 100%;
	background: var(--grad);
	transform: scaleX(var(--p, 0));
	transform-origin: left;
	transition: transform 0.3s ease-out;
}
.preloader__count {
	margin-top: 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--muted);
	font-variant-numeric: tabular-nums;
}
@keyframes fadeIn {
	to {
		opacity: 1;
	}
}
.page-wipe {
	position: fixed;
	inset: 0;
	z-index: 9990;
	pointer-events: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}
.page-wipe span {
	background: #05070d;
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform 0.6s var(--ease-io);
}
.page-wipe span:nth-child(1) {
	background: linear-gradient(#06080f, #0b0f1c);
}
.page-wipe span:nth-child(2) {
	transition-delay: 0.06s;
	background: linear-gradient(#07091a, #120a24);
}
.page-wipe span:nth-child(3) {
	transition-delay: 0.12s;
	background: linear-gradient(#060a14, #071526);
}
.is-leaving .page-wipe span {
	transform: scaleY(1);
}
html.is-entering .page-wipe span {
	transform: scaleY(1);
	transform-origin: top;
	transition: none;
}
html.is-entered .page-wipe span {
	transform-origin: top;
}
.scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	z-index: 1000;
	pointer-events: none;
}
.admin-bar .scroll-progress {
	top: 32px;
}
.scroll-progress span {
	display: block;
	height: 100%;
	background: var(--grad);
	transform: scaleX(0);
	transform-origin: left;
	box-shadow: 0 0 12px rgba(155, 63, 240, 0.8);
}
.cursor {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9998;
	pointer-events: none;
	display: none;
}
.has-cursor .cursor {
	display: block;
}
.cursor__dot,
.cursor__ring {
	position: fixed;
	top: 0;
	left: 0;
	border-radius: 50%;
	transform: translate3d(-100px, -100px, 0);
}
.cursor__dot {
	width: 6px;
	height: 6px;
	margin: -3px 0 0 -3px;
	background: #fff;
	mix-blend-mode: difference;
}
.cursor__ring {
	width: 36px;
	height: 36px;
	margin: -18px 0 0 -18px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	display: grid;
	place-items: center;
	transition: width 0.4s var(--ease), height 0.4s var(--ease), margin 0.4s var(--ease), background 0.4s, border-color 0.4s;
}
.cursor__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
	opacity: 0;
	transition: opacity 0.3s;
}
.cursor.is-hover .cursor__ring {
	width: 56px;
	height: 56px;
	margin: -28px 0 0 -28px;
	border-color: rgba(168, 85, 247, 0.8);
	background: rgba(155, 63, 240, 0.08);
}
.cursor.is-view .cursor__ring {
	width: 84px;
	height: 84px;
	margin: -42px 0 0 -42px;
	border-color: transparent;
	background: linear-gradient(135deg, rgba(30, 155, 215, 0.85), rgba(155, 63, 240, 0.85));
	backdrop-filter: blur(4px);
}
.cursor.is-view .cursor__label {
	opacity: 1;
}
.cursor.is-view .cursor__dot {
	opacity: 0;
}
.cursor.is-down .cursor__ring {
	transform-origin: center;
	border-color: #fff;
}
.cursor.is-hidden {
	opacity: 0;
}

.search-overlay {
	position: fixed;
	inset: 0;
	z-index: 950;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: var(--gutter);
	background: rgba(4, 6, 11, 0.86);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s var(--ease), visibility 0.5s;
}
.search-open .search-overlay {
	opacity: 1;
	visibility: visible;
}
.search-overlay__form {
	position: relative;
	width: min(820px, 100%);
	display: flex;
	align-items: center;
	border-bottom: 2px solid rgba(255, 255, 255, 0.18);
	transform: translateY(30px);
	transition: transform 0.7s var(--ease);
}
.search-overlay__form::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: var(--grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.9s 0.15s var(--ease);
}
.search-open .search-overlay__form {
	transform: none;
}
.search-open .search-overlay__form::after {
	transform: scaleX(1);
}
.search-overlay__form input {
	flex: 1;
	min-width: 0;
	background: none;
	border: 0;
	outline: 0;
	padding: 14px 0;
	font-family: var(--font-head);
	font-size: clamp(2rem, 6vw, 4.2rem);
	letter-spacing: 0.02em;
	color: #fff;
}
.search-overlay__form input::placeholder {
	color: rgba(255, 255, 255, 0.25);
}
.search-overlay__form button {
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--grad);
	transition: transform 0.4s var(--ease);
}
.search-overlay__form button:hover {
	transform: rotate(-45deg) scale(1.05);
}
.search-overlay__hint {
	margin-top: 22px;
	color: var(--muted);
	font-size: 13px;
}
.search-overlay__close {
	position: absolute;
	top: 28px;
	right: 28px;
	width: 50px;
	height: 50px;
	display: grid;
	place-items: center;
	border: 1px solid var(--line-2);
	border-radius: 50%;
	transition: transform 0.5s var(--ease), background 0.3s;
}
.search-overlay__close:hover {
	transform: rotate(90deg);
	background: rgba(255, 255, 255, 0.08);
}

.sparkles {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
}
.to-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 800;
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(12, 15, 23, 0.85);
	backdrop-filter: blur(8px);
	opacity: 0;
	transform: translateY(20px) scale(0.8);
	transition: opacity 0.4s, transform 0.5s var(--ease);
	pointer-events: none;
}
.to-top.is-visible {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.to-top svg:not(.icon) {
	position: absolute;
	inset: 0;
	transform: rotate(-90deg);
}
.to-top circle {
	fill: none;
	stroke-width: 2;
}
.to-top__track {
	stroke: rgba(255, 255, 255, 0.1);
}
.to-top__ring {
	stroke: #8b5cf6;
	stroke-dasharray: 138.2;
	stroke-dashoffset: var(--o, 138.2);
	stroke-linecap: round;
}
.to-top .icon {
	width: 18px;
	transition: transform 0.4s var(--ease);
}
.to-top:hover .icon {
	transform: translateY(-3px);
}
.toast {
	position: fixed;
	left: 50%;
	bottom: 26px;
	z-index: 9000;
	max-width: min(520px, calc(100% - 32px));
	padding: 14px 20px;
	border-radius: 10px;
	background: #10141e;
	border: 1px solid rgba(155, 63, 240, 0.4);
	box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.9);
	color: #fff;
	font-size: 14px;
	transform: translate(-50%, calc(100% + 60px));
	visibility: hidden;
	transition: transform 0.6s var(--ease), visibility 0.6s;
}
.toast.is-visible {
	transform: translate(-50%, 0);
	visibility: visible;
}
.toast.is-error {
	border-color: rgba(240, 80, 80, 0.6);
}

/* Lightbox */
.lightbox {
	position: fixed;
	inset: 0;
	z-index: 960;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 60px 16px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s, visibility 0.4s;
}
.lightbox.is-open {
	opacity: 1;
	visibility: visible;
}
.lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(3, 5, 10, 0.92);
	backdrop-filter: blur(10px);
}
.lightbox__figure {
	position: relative;
	margin: 0;
	max-width: min(900px, 100%);
	transform: scale(0.9);
	opacity: 0;
	transition: transform 0.6s var(--ease), opacity 0.4s;
}
.lightbox.is-open .lightbox__figure {
	transform: none;
	opacity: 1;
}
.lightbox__figure img {
	max-height: 74vh;
	width: auto;
	margin: 0 auto;
	border-radius: 10px;
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.9);
}
.lightbox__figure figcaption {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 16px;
}
.lightbox__title {
	font-family: var(--font-head);
	font-size: 1.8rem;
}
.lightbox__close {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--line-2);
	transition: transform 0.5s var(--ease);
}
.lightbox__close:hover {
	transform: rotate(90deg);
}
.lightbox__nav {
	position: relative;
	z-index: 2;
	width: 48px;
	height: 48px;
	flex: none;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--line-2);
	transition: background 0.3s, transform 0.3s;
}
.lightbox__nav:hover {
	background: rgba(255, 255, 255, 0.1);
}
.lightbox__nav--prev .icon {
	transform: rotate(180deg);
}

/* 7. Hero ----------------------------------------------------------------- */
.hero {
	position: relative;
	min-height: clamp(560px, 100svh, 860px);
	display: flex;
	align-items: center;
	overflow: hidden;
	padding: 120px 0 90px;
}
.hero__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.hero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(4, 6, 11, 0) 60%, var(--bg) 100%);
}
.hero__orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(80px);
	opacity: 0.55;
}
.hero__orb--a {
	width: 520px;
	height: 520px;
	right: 6%;
	top: 4%;
	background: radial-gradient(circle, rgba(91, 70, 200, 0.55), transparent 70%);
	animation: orb 14s ease-in-out infinite alternate;
}
.hero__orb--b {
	width: 420px;
	height: 420px;
	left: -8%;
	bottom: -10%;
	background: radial-gradient(circle, rgba(30, 155, 215, 0.35), transparent 70%);
	animation: orb 18s ease-in-out infinite alternate-reverse;
}
@keyframes orb {
	0% {
		transform: translate(0, 0) scale(1);
	}
	100% {
		transform: translate(-60px, 40px) scale(1.15);
	}
}
.hero__grid {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
	background-size: 64px 64px;
	-webkit-mask: radial-gradient(ellipse at 70% 40%, #000 0%, transparent 65%);
	mask: radial-gradient(ellipse at 70% 40%, #000 0%, transparent 65%);
}
.hero__inner {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	align-items: center;
	gap: 30px;
}
.hero__copy {
	padding-left: clamp(0px, 3vw, 40px);
	max-width: 560px;
}
.hero__title {
	font-size: clamp(3.3rem, 7.4vw, 5.6rem);
	line-height: 0.9;
	margin: 0 0 22px;
}
.hero__title .line {
	display: block;
	overflow: hidden;
	padding-bottom: 0.04em;
}
.hero-line {
	display: inline-block;
}
html.js .hero-line {
	transform: translateY(105%);
	transition: transform 1.1s var(--ease);
	transition-delay: var(--d);
}
html.js .hero-in {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
	transition-delay: var(--d);
}
.is-ready .hero-line,
.is-ready .hero-in {
	opacity: 1 !important;
	transform: none !important;
}
.hero__text {
	max-width: 400px;
	font-size: 15px;
	color: #c9cedb;
	margin-bottom: 28px;
}
.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.hero__visual {
	position: relative;
	justify-self: end;
	width: min(100%, 560px);
	aspect-ratio: 993 / 1065;
}
.hero__binder {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-mask: radial-gradient(ellipse 52% 54% at 57% 50%, #000 48%, transparent 82%);
	mask: radial-gradient(ellipse 52% 54% at 57% 50%, #000 48%, transparent 82%);
	transform: translate3d(var(--mx, 0), var(--my, 0), 0) scale(1.02);
	transition: transform 0.9s var(--ease);
}
html.js .hero__binder {
	opacity: 0;
	transform: translate3d(60px, 0, 0) scale(1.08);
	transition: opacity 1.4s var(--ease) 0.3s, transform 1.4s var(--ease) 0.3s;
}
html.js .is-ready .hero__binder {
	opacity: 1;
	transform: translate3d(var(--mx, 0), var(--my, 0), 0) scale(1.02);
}
.is-ready .hero__binder.is-tracking {
	transition: transform 0.9s var(--ease), opacity 0.6s;
}
.hero__glow {
	position: absolute;
	inset: 18% 18% 18% 26%;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(229, 182, 46, 0.25), rgba(155, 63, 240, 0.18) 45%, transparent 70%);
	filter: blur(40px);
	animation: pulse 5s ease-in-out infinite;
}
.hero__ring {
	position: absolute;
	inset: 6% 4% 6% 14%;
	border-radius: 50%;
	border: 1px dashed rgba(255, 255, 255, 0.09);
	animation: rot 60s linear infinite;
}
@keyframes pulse {
	0%,
	100% {
		opacity: 0.6;
		transform: scale(0.95);
	}
	50% {
		opacity: 1;
		transform: scale(1.05);
	}
}
.hero__bigword {
	position: absolute;
	left: 0;
	bottom: -0.12em;
	z-index: 2;
	display: flex;
	gap: 0.3em;
	white-space: nowrap;
	font-family: var(--font-head);
	font-size: clamp(7rem, 19vw, 17rem);
	line-height: 0.8;
	color: transparent;
	-webkit-text-stroke: 1px rgba(30, 155, 215, 0.22);
	background: linear-gradient(180deg, rgba(30, 155, 215, 0.2), rgba(30, 155, 215, 0) 80%);
	-webkit-background-clip: text;
	background-clip: text;
	pointer-events: none;
	transform: translate3d(var(--px, 0), 0, 0);
	text-transform: uppercase;
}
.hero__scroll {
	position: absolute;
	left: clamp(14px, 3vw, 40px);
	top: 50%;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	transform: translateY(-50%);
}
.hero__scroll span {
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #cfd4df;
}
.hero__scroll i {
	position: relative;
	width: 1px;
	height: 180px;
	background: rgba(255, 255, 255, 0.12);
	overflow: hidden;
}
.hero__scroll i::after {
	content: "";
	position: absolute;
	left: 0;
	top: -40%;
	width: 1px;
	height: 40%;
	background: linear-gradient(transparent, var(--cyan));
	animation: drop 2.2s var(--ease-io) infinite;
}
@keyframes drop {
	to {
		top: 100%;
	}
}

/* Inner page banner */
.page-banner {
	position: relative;
	overflow: hidden;
	padding: calc(var(--header-h) + clamp(60px, 9vw, 110px)) 0 clamp(50px, 7vw, 90px);
	background: radial-gradient(ellipse at 80% 0%, rgba(91, 70, 200, 0.22), transparent 55%), radial-gradient(ellipse at 0% 100%, rgba(30, 155, 215, 0.14), transparent 50%);
}
.page-banner__orbs span {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	pointer-events: none;
}
.page-banner__orbs span:nth-child(1) {
	width: 380px;
	height: 380px;
	right: 8%;
	top: -10%;
	background: rgba(155, 63, 240, 0.3);
	animation: orb 12s ease-in-out infinite alternate;
}
.page-banner__orbs span:nth-child(2) {
	width: 300px;
	height: 300px;
	left: 30%;
	bottom: -30%;
	background: rgba(30, 155, 215, 0.2);
	animation: orb 16s ease-in-out infinite alternate-reverse;
}
.page-banner__orbs span:nth-child(3) {
	width: 160px;
	height: 160px;
	right: 30%;
	top: 30%;
	background: rgba(229, 182, 46, 0.12);
	animation: orb 10s ease-in-out infinite alternate;
}
.page-banner__bgword {
	position: absolute;
	right: -0.05em;
	bottom: -0.18em;
	font-family: var(--font-head);
	font-size: clamp(6rem, 20vw, 16rem);
	line-height: 0.8;
	white-space: nowrap;
	text-transform: uppercase;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.07);
	pointer-events: none;
	transform: translate3d(var(--px, 0), 0, 0);
}
.page-banner__inner {
	position: relative;
	z-index: 2;
}
.page-banner__title {
	font-size: clamp(2.9rem, 7vw, 5.4rem);
	max-width: 15ch;
	margin-bottom: 18px;
}
.page-banner__text {
	max-width: 560px;
	color: #c4c9d6;
	font-size: 16px;
	margin: 0;
}
.page-banner__line {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(155, 63, 240, 0.6), rgba(30, 155, 215, 0.6), transparent);
}
.crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 22px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.crumbs a:hover {
	color: #fff;
}
.crumbs span[aria-current] {
	color: #c48cff;
}

/* 8. Category cards ------------------------------------------------------- */
.cats {
	margin-top: -30px;
	z-index: 4;
}
.cats__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.cat-card {
	position: relative;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	align-items: center;
	min-height: 192px;
	padding: 28px 18px 28px 22px;
	border-radius: 6px;
	background: radial-gradient(ellipse at 80% 50%, rgba(255, 255, 255, 0.04), transparent 60%), linear-gradient(180deg, #0c0f17, #090b12);
	overflow: hidden;
	transform-style: preserve-3d;
}
.cat-card__ghost {
	position: absolute;
	left: 40%;
	top: 50%;
	font-family: var(--font-head);
	font-size: 9rem;
	line-height: 1;
	color: rgba(255, 255, 255, 0.018);
	transform: translate(-50%, -50%) rotate(-8deg);
	transition: transform 1s var(--ease), color 0.6s;
	white-space: nowrap;
	pointer-events: none;
}
.cat-card:hover .cat-card__ghost {
	transform: translate(-46%, -50%) rotate(-4deg) scale(1.06);
	color: rgba(155, 63, 240, 0.07);
}
.cat-card__copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	transform: translateZ(30px);
}
.cat-card__title {
	font-family: var(--font-head);
	font-size: 2.1rem;
	line-height: 1;
	margin-bottom: 10px;
}
.cat-card__text {
	font-size: 12.5px;
	color: #c3c8d4;
	max-width: 190px;
	line-height: 1.6;
	margin-bottom: 18px;
}
.cat-card__cta {
	display: inline-flex;
	align-items: center;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
}
.cat-card:hover .arrow-line {
	width: 46px;
}
.cat-card__media {
	position: relative;
	z-index: 2;
	justify-self: end;
	width: 122px;
	transform: translateZ(50px) rotate(0deg);
	transition: transform 0.8s var(--ease), filter 0.6s;
	filter: drop-shadow(0 18px 24px rgba(0, 0, 0, 0.6));
}
.cat-card__media img {
	border-radius: 4px;
}
.cat-card:hover .cat-card__media {
	transform: translateZ(70px) translateY(-8px) rotate(-4deg) scale(1.05);
	filter: drop-shadow(0 26px 30px rgba(155, 63, 240, 0.35));
}

/* Tilt (JS-driven 3D) */
.tilt {
	transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0));
	transition: transform 0.6s var(--ease), box-shadow 0.6s var(--ease);
	will-change: transform;
}
.tilt.is-tilting {
	transition: transform 0.12s linear, box-shadow 0.6s var(--ease);
}
html.js .tilt[data-reveal]:not(.is-in) {
	transform: perspective(900px) translate3d(0, 40px, 0);
}
.tilt__glare {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	z-index: 3;
	background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, 0.12), transparent 45%);
	opacity: 0;
	transition: opacity 0.4s;
}
.tilt:hover .tilt__glare {
	opacity: 1;
}

/* 9. Designs & CTA -------------------------------------------------------- */
.section-head {
	margin-bottom: 36px;
}
.section-head p {
	color: #c3c8d4;
	max-width: 440px;
	font-size: 14px;
}
.section-head--split {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}
.section-head--center {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.section-head--center p {
	max-width: 520px;
}
.designs-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
.design-card {
	position: relative;
	border-radius: 6px;
	background: linear-gradient(180deg, #0b0e16, #080a10);
	transform-style: preserve-3d;
}
.design-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(160deg, rgba(30, 155, 215, 0.9), rgba(255, 255, 255, 0.06) 30%, rgba(255, 255, 255, 0.04) 60%, rgba(155, 63, 240, 0.95));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
	transition: opacity 0.4s;
}
.design-card::after {
	content: "";
	position: absolute;
	left: 10%;
	right: 10%;
	bottom: -1px;
	height: 30px;
	background: radial-gradient(ellipse at 50% 100%, rgba(155, 63, 240, 0.45), transparent 70%);
	filter: blur(8px);
	opacity: 0;
	transition: opacity 0.5s;
	pointer-events: none;
}
.design-card:hover {
	--ty: -6px;
	box-shadow: 0 30px 60px -30px rgba(91, 108, 242, 0.6);
}
.design-card:hover::after {
	opacity: 1;
}
.design-card__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 10px 18px 24px;
}
.design-card__media {
	display: block;
	width: 64%;
	aspect-ratio: 88 / 100;
	margin: 0 auto 18px;
	overflow: hidden;
	background: #fff;
	transform: translateZ(40px);
	transition: transform 0.7s var(--ease);
}
.design-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ease);
}
.design-card:hover .design-card__media img {
	transform: scale(1.12);
}
.design-card__bag {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(30, 155, 215, 0.18);
	color: #8ad6ff;
	transition: background 0.3s, transform 0.4s var(--ease), color 0.3s;
}
.design-card__bag .icon {
	width: 15px;
	height: 15px;
}
.design-card__bag:hover {
	background: var(--grad);
	color: #fff;
	transform: scale(1.12) rotate(-8deg);
}
.design-card__title {
	font-size: 1.45rem;
	line-height: 1;
	margin-bottom: 8px;
	word-break: break-word;
	text-transform: uppercase;
}
.design-card__title a {
	background: linear-gradient(90deg, #a24bf2, #c15bf2);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.design-card__text {
	font-size: 11.5px;
	color: #c3c8d4;
	line-height: 1.6;
	margin-bottom: 18px;
	max-width: 190px;
}
.design-card .btn--light {
	--h: 34px;
	padding: 0 20px;
	font-size: 10px;
}

.cta-section {
	padding-top: 20px;
}
.cta-card {
	position: relative;
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	align-items: center;
	min-height: 256px;
	padding: 0 clamp(24px, 5vw, 42px);
	border-radius: 6px;
	background: radial-gradient(ellipse at 75% 40%, rgba(255, 255, 255, 0.06), transparent 50%), linear-gradient(180deg, #121419, #0a0b10 70%, #0c1520);
	overflow: hidden;
}
.cta-card__beam {
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.04) 50%, transparent 60%);
	transform: translateX(-100%);
	animation: beam 7s ease-in-out infinite;
	pointer-events: none;
}
@keyframes beam {
	0%,
	30% {
		transform: translateX(-100%);
	}
	70%,
	100% {
		transform: translateX(100%);
	}
}
.cta-card__copy {
	position: relative;
	z-index: 2;
	padding: 40px 0;
}
.cta-card__copy p {
	color: #c9ced9;
	font-size: 14px;
	margin-bottom: 18px;
}
.cta-card__media {
	position: relative;
	align-self: stretch;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 18px 0;
}
.cta-card__media img {
	position: relative;
	z-index: 2;
	width: min(170px, 60%);
	filter: drop-shadow(0 30px 30px rgba(0, 0, 0, 0.7));
}
.cta-card__halo {
	position: absolute;
	width: 70%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(229, 182, 46, 0.22), transparent 65%);
	filter: blur(20px);
	animation: pulse 5s ease-in-out infinite;
}

/* 10. Gallery ------------------------------------------------------------- */
.mosaic {
	display: grid;
	grid-template-columns: 2fr 3fr 2fr 3fr;
	grid-auto-rows: clamp(120px, 15vw, 218px);
	gap: 12px;
}
.mosaic .m-a { grid-column: 1; grid-row: 1; }
.mosaic .m-b { grid-column: 1; grid-row: 2; }
.mosaic .m-c { grid-column: 2; grid-row: 1 / 3; }
.mosaic .m-d { grid-column: 3; grid-row: 1; }
.mosaic .m-e { grid-column: 3; grid-row: 2; }
.mosaic .m-f { grid-column: 4; grid-row: 1 / 3; }
.g-item {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 6px;
	background: #fff;
	isolation: isolate;
}
.g-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ease), filter 0.6s;
}
.g-item:hover img {
	transform: scale(1.08);
	filter: contrast(1.05);
}
.g-item__cap {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 14px;
	background: linear-gradient(180deg, transparent 30%, rgba(5, 7, 13, 0.92));
	opacity: 0;
	transition: opacity 0.5s var(--ease);
}
.g-item:hover .g-item__cap,
.g-item:focus-within .g-item__cap {
	opacity: 1;
}
.g-item__cat {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--gold);
	transform: translateY(14px);
	transition: transform 0.6s var(--ease);
}
.g-item__title {
	font-family: var(--font-head);
	font-size: 1.4rem;
	line-height: 1.05;
	color: #fff;
	word-break: break-word;
	transform: translateY(14px);
	transition: transform 0.6s 0.05s var(--ease);
}
.g-item__actions {
	position: absolute;
	top: 12px;
	right: 12px;
	display: flex;
	gap: 6px;
}
.g-item__btn {
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.95);
	color: #0a0d14;
	transform: translateY(-12px) scale(0.6);
	opacity: 0;
	transition: transform 0.5s var(--ease), opacity 0.4s, background 0.3s, color 0.3s;
}
.g-item__btn .icon {
	width: 16px;
	height: 16px;
}
.g-item__btn:nth-child(2) {
	transition-delay: 0.05s;
}
.g-item__btn:hover {
	background: var(--purple);
	color: #fff;
}
.g-item:hover .g-item__btn,
.g-item:focus-within .g-item__btn,
.g-item:hover .g-item__cat,
.g-item:hover .g-item__title {
	transform: none;
	opacity: 1;
}
.masonry {
	columns: 3 280px;
	column-gap: 14px;
}
.masonry .g-item {
	break-inside: avoid;
	margin-bottom: 14px;
	display: block;
}
.masonry .g-item img {
	height: auto;
	aspect-ratio: 588 / 556;
}
.masonry .g-item.is-tall img {
	aspect-ratio: 645 / 867;
}
.masonry .g-item.is-wide img {
	aspect-ratio: 16 / 10;
}
.is-filtered-out {
	display: none !important;
}
.is-filtering-out {
	opacity: 0 !important;
	transform: scale(0.92) !important;
	transition: opacity 0.3s, transform 0.3s !important;
}
.is-filtering-in {
	animation: popIn 0.6s var(--ease) both;
}
@keyframes popIn {
	from {
		opacity: 0;
		transform: scale(0.92) translateY(20px);
	}
}

/* Toolbar / filters */
.toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 30px;
}
.toolbar--center {
	justify-content: center;
}
.filters {
	position: relative;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
	padding: 5px;
	border-radius: 999px;
	background: var(--card);
	border: 1px solid var(--line);
}
.filters__pill {
	position: absolute;
	top: 5px;
	left: 0;
	height: calc(100% - 10px);
	border-radius: 999px;
	background: var(--grad);
	box-shadow: 0 6px 20px -8px rgba(155, 63, 240, 0.8);
	transition: transform 0.55s var(--ease), width 0.55s var(--ease);
	z-index: 0;
	width: 0;
}
.filters__btn {
	position: relative;
	z-index: 1;
	padding: 9px 18px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
	transition: color 0.3s;
}
.filters__btn sup {
	font-size: 9px;
	opacity: 0.7;
	margin-left: 2px;
}
.filters__btn:hover,
.filters__btn.is-active {
	color: #fff;
}
html:not(.js) .filters__btn.is-active {
	background: var(--grad);
}
.sort {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.sort select {
	appearance: none;
	background: var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ffffff' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
	border: 1px solid var(--line-2);
	border-radius: 8px;
	padding: 10px 38px 10px 14px;
	font-size: 13px;
	text-transform: none;
	letter-spacing: 0;
	color: #fff;
	cursor: pointer;
}
.sort select option {
	background: #0f131d;
}

/* 11. Contact section & forms ---------------------------------------------- */
.contact-card {
	display: grid;
	grid-template-columns: 0.92fr 1.08fr;
	gap: clamp(24px, 4vw, 40px);
	padding: clamp(28px, 4.5vw, 34px) clamp(22px, 4vw, 34px) clamp(28px, 4.5vw, 46px);
	border-radius: 6px;
	background: linear-gradient(180deg, #0f1218, #0a0c12);
}
.contact-card::before {
	background: linear-gradient(170deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.05) 40%, rgba(30, 155, 215, 0.85));
}
.contact-card--single {
	grid-template-columns: 1fr;
	max-width: 780px;
	margin: 0 auto;
}
.contact-card__intro {
	padding-top: 12px;
}
.contact-card__intro p {
	font-size: 13.5px;
	color: #c9ced9;
	max-width: 400px;
}
.contact-card__intro .title {
	font-size: clamp(2rem, 3.8vw, 2.8rem);
}
.socials {
	list-style: none;
	display: flex;
	gap: 10px;
	margin-top: 22px;
}
.socials a {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.4);
	color: #fff;
	transition: background 0.35s, border-color 0.35s, transform 0.4s var(--ease), box-shadow 0.35s;
}
.socials a .icon {
	width: 16px;
	height: 16px;
}
.socials a:hover {
	background: var(--grad);
	border-color: transparent;
	box-shadow: 0 10px 24px -8px rgba(155, 63, 240, 0.8);
}
.socials--square a {
	border-radius: 4px;
	width: 26px;
	height: 26px;
	border-color: rgba(255, 255, 255, 0.85);
}
.socials--square a .icon {
	width: 14px;
	height: 14px;
}
.socials--square a.is-facebook {
	background: linear-gradient(135deg, #6f63f2, #9b3ff0);
	border-color: transparent;
}
.mform {
	position: relative;
}
.mform__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 14px;
	margin-bottom: 20px;
}
.field {
	position: relative;
}
.field--full {
	grid-column: 1 / -1;
}
.field--half-pair {
	display: grid;
	grid-template-columns: 1fr 1.3fr;
	gap: 14px;
}
.field input,
.field textarea,
.field select {
	width: 100%;
	padding: 22px 14px 8px;
	background: var(--field);
	border: 1px solid transparent;
	border-radius: 2px;
	color: #fff;
	font-size: 14px;
	outline: none;
	transition: border-color 0.3s, background 0.3s, box-shadow 0.3s;
	-webkit-appearance: none;
	appearance: none;
}
.field input {
	height: 50px;
}
.field textarea {
	resize: vertical;
	min-height: 150px;
	padding-top: 26px;
}
.field input[type="date"] {
	color-scheme: dark;
}
.field label {
	position: absolute;
	left: 14px;
	top: 16px;
	font-size: 13px;
	color: #8f97a8;
	pointer-events: none;
	transform-origin: left top;
	transition: transform 0.35s var(--ease), color 0.3s, top 0.35s var(--ease);
}
.field textarea + label {
	top: 18px;
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label,
.field input[type="date"] + label,
.field input[type="number"] + label {
	transform: translateY(-9px) scale(0.78);
	color: #9fb4ff;
}
.field::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s var(--ease);
}
.field:focus-within::after {
	transform: scaleX(1);
}
.field--half-pair::after {
	display: none;
}
.field input:focus,
.field textarea:focus {
	background: #1e2330;
	box-shadow: 0 10px 30px -18px rgba(91, 108, 242, 0.7);
}
.field.has-error input,
.field.has-error textarea {
	border-color: rgba(240, 90, 90, 0.7);
	animation: shake 0.4s;
}
.field__error {
	display: block;
	margin-top: 4px;
	font-size: 11.5px;
	color: #ff8a8a;
}
@keyframes shake {
	25% {
		transform: translateX(-4px);
	}
	75% {
		transform: translateX(4px);
	}
}
.form-status {
	font-size: 13.5px;
	margin: -6px 0 16px;
	padding: 0;
	border-radius: 8px;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.5s var(--ease), padding 0.5s var(--ease);
}
.form-status.is-success,
.form-status.is-error {
	max-height: 200px;
	padding: 12px 14px;
}
.form-status.is-success {
	background: rgba(46, 204, 113, 0.1);
	border: 1px solid rgba(46, 204, 113, 0.4);
	color: #9ff0c0;
}
.form-status.is-error {
	background: rgba(240, 80, 80, 0.08);
	border: 1px solid rgba(240, 80, 80, 0.4);
	color: #ffb0b0;
}
.check {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 18px;
	font-size: 13px;
	color: #c3c8d4;
	cursor: pointer;
}
.check input {
	position: absolute;
	opacity: 0;
}
.check span {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	border-radius: 4px;
	border: 1.5px solid rgba(255, 255, 255, 0.4);
	transition: background 0.3s, border-color 0.3s;
	position: relative;
}
.check span::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 1px;
	width: 5px;
	height: 10px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) scale(0);
	transition: transform 0.3s var(--ease);
}
.check input:checked + span {
	background: var(--purple);
	border-color: var(--purple);
}
.check input:checked + span::after {
	transform: rotate(45deg) scale(1);
}
.check input:focus-visible + span {
	outline: 2px solid var(--cyan);
	outline-offset: 2px;
}

/* 12. Footer -------------------------------------------------------------- */
.marquee {
	position: relative;
	overflow: hidden;
	padding: 26px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: linear-gradient(90deg, rgba(30, 155, 215, 0.05), rgba(155, 63, 240, 0.06));
}
.marquee__track {
	display: flex;
	width: max-content;
	animation: marquee 38s linear infinite;
}
.marquee:hover .marquee__track {
	animation-play-state: paused;
}
.marquee__group {
	display: flex;
	align-items: center;
	gap: 34px;
	padding-right: 34px;
	font-family: var(--font-head);
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}
.marquee__group .outline {
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.5);
}
.marquee__group i {
	font-style: normal;
	font-size: 0.55em;
	color: var(--gold);
}
@keyframes marquee {
	to {
		transform: translateX(-50%);
	}
}
.site-footer {
	position: relative;
	overflow: hidden;
	padding-top: clamp(50px, 7vw, 70px);
	background: var(--bg);
}
.site-footer__glow {
	position: absolute;
	left: 50%;
	top: 0;
	width: 70%;
	height: 260px;
	transform: translate(-50%, -60%);
	background: radial-gradient(ellipse, rgba(91, 108, 242, 0.18), transparent 70%);
	pointer-events: none;
}
.site-footer__art {
	position: absolute;
	left: 52%;
	top: 0;
	bottom: 0;
	width: 34%;
	background-size: cover;
	background-position: center 30%;
	opacity: 0.09;
	filter: grayscale(0.2) contrast(1.2);
	-webkit-mask: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
	mask: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
	pointer-events: none;
}
.footer-grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.6fr 0.75fr 0.95fr 1.2fr;
	gap: 30px;
	padding: 0 clamp(0px, 2vw, 24px) 40px;
}
.logo--footer .logo__word {
	font-size: clamp(2.3rem, 4vw, 2.75rem);
}
.logo--footer .logo__tag {
	font-size: 9px;
	margin-top: 6px;
}
.footer-brand p {
	margin-top: 22px;
	font-size: 13px;
	color: #c9ced9;
	max-width: 250px;
}
.footer-col h3 {
	font-size: 1.45rem;
	margin-bottom: 16px;
}
.footer-col ul {
	list-style: none;
}
.footer-col li {
	margin-bottom: 4px;
	font-size: 13px;
	color: #c9ced9;
}
.footer-col a {
	position: relative;
	display: inline-block;
	transition: color 0.3s, transform 0.4s var(--ease);
}
.footer-col .menu a::before {
	content: "";
	position: absolute;
	left: -14px;
	top: 50%;
	width: 8px;
	height: 1.5px;
	background: var(--grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s var(--ease);
}
.footer-col .menu a:hover {
	transform: translateX(10px);
	color: #fff;
}
.footer-col .menu a:hover::before {
	transform: scaleX(1);
}
.footer-contact a:hover {
	color: #c48cff;
}
.footer-bottom {
	position: relative;
	border-top: 1px solid var(--line);
	padding: 16px 0;
}
.footer-bottom__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.footer-bottom p {
	margin: 0;
	font-size: 11px;
	color: #b6bccb;
}
.payments {
	list-style: none;
	display: flex;
	gap: 6px;
}
.pay {
	height: 20px;
	min-width: 30px;
	padding: 0 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	border-radius: 3px;
	background: #fff;
	color: #111;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.02em;
	transition: transform 0.35s var(--ease);
}
.pay:hover {
	transform: translateY(-3px);
}
.pay--cash {
	color: #00b33c;
	font-size: 7px;
}
.pay--zelle {
	background: #6d1ed4;
	color: #fff;
}
.pay--visa {
	color: #1a1f71;
	font-style: italic;
}
.pay--mc i {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: #eb001b;
}
.pay--mc i + i {
	background: #f79e1b;
	margin-left: -5px;
	mix-blend-mode: multiply;
}

/* 13. Shop & product ------------------------------------------------------ */
.entry-content--intro {
	max-width: 760px;
	margin-bottom: 30px;
	color: #c9ced9;
}
.products-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.products-grid__cell[hidden] {
	display: none;
}
.product-card {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	border-radius: 10px;
	background: linear-gradient(180deg, #0c0f17, #090b11);
	border: 1px solid var(--line);
	overflow: hidden;
	transition: border-color 0.4s, transform 0.6s var(--ease), box-shadow 0.6s var(--ease);
}
.product-card:hover {
	border-color: rgba(155, 63, 240, 0.45);
	box-shadow: 0 30px 60px -30px rgba(91, 108, 242, 0.6);
	--ty: -6px;
}
.product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1.05;
	overflow: hidden;
	background: radial-gradient(circle at 50% 45%, rgba(91, 108, 242, 0.18), transparent 60%), #06080d;
}
.product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ease);
}
.product-card:hover .product-card__media img {
	transform: scale(1.08) rotate(-1deg);
}
.product-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	padding: 5px 9px;
	border-radius: 4px;
	background: var(--gold);
	color: #111;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.product-card__quick {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 12px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 40px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.95);
	color: #0a0d14;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transform: translateY(150%);
	transition: transform 0.55s var(--ease);
}
.product-card__quick .icon {
	width: 15px;
}
.product-card:hover .product-card__quick {
	transform: none;
}
.product-card__body {
	padding: 16px 16px 18px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.product-card__type {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #5fc3f2;
	margin-bottom: 6px;
}
.product-card__title {
	font-size: 1.5rem;
	line-height: 1;
	margin-bottom: 12px;
}
.product-card__title a:hover {
	color: #c48cff;
}
.product-card__row {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.price {
	font-weight: 700;
	font-size: 15px;
	color: #fff;
}
.price del {
	font-weight: 500;
	color: var(--dim);
	font-size: 0.85em;
	margin-left: 4px;
}
.swatches {
	display: flex;
}
.swatches i {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--c);
	border: 2px solid #0b0e15;
	margin-left: -4px;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2);
	transition: transform 0.3s var(--ease);
}
.product-card:hover .swatches i {
	margin-left: 2px;
}
.empty-state {
	text-align: center;
	max-width: 520px;
	margin: 0 auto;
	padding: 50px 24px;
	border-radius: var(--radius-lg);
	border: 1px dashed var(--line-2);
	background: rgba(255, 255, 255, 0.015);
}
.empty-state--left {
	margin: 0;
	max-width: none;
}
.empty-state > .icon {
	width: 40px;
	height: 40px;
	margin: 0 auto 16px;
	color: #a56df5;
}
.empty-state h2 {
	font-size: 2rem;
}
.empty-state p {
	color: var(--muted);
}
.empty-filter {
	text-align: center;
	color: var(--muted);
	margin-top: 20px;
}
.perks__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.perk {
	padding: 26px 22px;
	border-radius: 12px;
	border: 1px solid var(--line);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent);
	transition: border-color 0.4s, transform 0.5s var(--ease), background 0.4s;
}
.perk:hover {
	border-color: rgba(30, 155, 215, 0.45);
	transform: translateY(-4px);
	background: linear-gradient(180deg, rgba(30, 155, 215, 0.06), transparent);
}
.perk__icon,
.info-card__icon,
.step-card__icon {
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 12px;
	margin-bottom: 16px;
	background: linear-gradient(135deg, rgba(30, 155, 215, 0.2), rgba(155, 63, 240, 0.25));
	color: #fff;
	transition: transform 0.6s var(--ease);
}
.perk:hover .perk__icon,
.info-card:hover .info-card__icon,
.step-card:hover .step-card__icon {
	transform: rotate(-10deg) scale(1.1);
}
.perk h3 {
	font-size: 1.4rem;
	margin-bottom: 6px;
}
.perk p {
	font-size: 13px;
	color: var(--muted);
	margin: 0;
}

.product-hero {
	position: relative;
	overflow: hidden;
	padding: calc(var(--header-h) + 50px) 0 clamp(50px, 7vw, 90px);
	background: radial-gradient(ellipse at 20% 0%, rgba(91, 70, 200, 0.2), transparent 55%);
}
.product-layout {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(28px, 5vw, 64px);
	align-items: start;
}
.product-media {
	position: sticky;
	top: 110px;
}
.zoom-frame {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	border: 1px solid var(--line-2);
	background: radial-gradient(circle at 50% 40%, rgba(91, 108, 242, 0.22), transparent 60%), #06080d;
	aspect-ratio: 1 / 1.05;
	cursor: zoom-in;
}
.zoom-frame--art {
	background: #fff;
}
.zoom-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform-origin: var(--zx, 50%) var(--zy, 50%);
	transition: transform 0.5s var(--ease);
}
.zoom-frame.is-zoomed img {
	transform: scale(2);
}
.product-info .title {
	font-size: clamp(2.6rem, 5vw, 4rem);
}
.product-info__price {
	font-size: 1.6rem;
	font-weight: 700;
	margin-bottom: 18px;
	background: var(--grad-text-r);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	display: inline-block;
}
.product-info__price del {
	-webkit-text-fill-color: var(--dim);
	font-size: 0.7em;
	font-weight: 500;
}
.product-form {
	margin: 24px 0;
	padding-top: 24px;
	border-top: 1px solid var(--line);
}
.opt {
	border: 0;
	padding: 0;
	margin: 0 0 22px;
	min-width: 0;
}
.opt legend,
.opt__label {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}
.opt legend strong,
.opt__label strong {
	color: #fff;
	letter-spacing: 0.02em;
}
.swatch-picker {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.swatch-opt {
	position: relative;
	cursor: pointer;
}
.swatch-opt input {
	position: absolute;
	opacity: 0;
}
.swatch-opt span {
	display: block;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--c);
	box-shadow: 0 0 0 2px #0b0e15, 0 0 0 3px rgba(255, 255, 255, 0.18);
	transition: transform 0.4s var(--ease), box-shadow 0.3s;
}
.swatch-opt:hover span {
	transform: scale(1.1);
}
.swatch-opt input:checked + span {
	box-shadow: 0 0 0 3px #0b0e15, 0 0 0 5px #a855f7, 0 8px 20px -6px rgba(168, 85, 247, 0.8);
	transform: scale(1.06);
}
.swatch-opt input:focus-visible + span {
	outline: 2px solid var(--cyan);
	outline-offset: 6px;
}
.design-picker {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	gap: 10px;
	margin-bottom: 18px;
}
.design-picker--sm {
	grid-template-columns: repeat(auto-fill, minmax(58px, 1fr));
}
.design-opt {
	position: relative;
	cursor: pointer;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 1;
	background: #fff;
	border: 2px solid transparent;
	transition: transform 0.4s var(--ease), border-color 0.3s, box-shadow 0.3s;
}
.design-opt input {
	position: absolute;
	opacity: 0;
}
.design-opt img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--ease);
}
.design-opt:hover {
	transform: translateY(-3px);
}
.design-opt:hover img {
	transform: scale(1.1);
}
.design-opt:has(input:checked) {
	border-color: #a855f7;
	box-shadow: 0 10px 24px -10px rgba(168, 85, 247, 0.9);
}
.design-opt:has(input:focus-visible) {
	outline: 2px solid var(--cyan);
	outline-offset: 2px;
}
.design-opt.is-checked {
	border-color: #a855f7;
}
.design-opt__name {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 14px 6px 5px;
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	transform: translateY(100%);
	transition: transform 0.4s var(--ease);
}
.design-opt:hover .design-opt__name,
.design-opt:has(input:checked) .design-opt__name {
	transform: none;
}
.design-opt--own {
	background: var(--card-2);
	border: 2px dashed rgba(255, 255, 255, 0.2);
}
.design-opt--own > span {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	color: #c3c8d4;
	text-align: center;
	padding: 4px;
}
.design-opt--own small {
	font-size: 9.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1.2;
}
.seg {
	display: inline-flex;
	padding: 4px;
	border-radius: 10px;
	background: var(--field);
	gap: 4px;
	flex-wrap: wrap;
}
.seg label {
	position: relative;
	cursor: pointer;
}
.seg input {
	position: absolute;
	opacity: 0;
}
.seg span {
	display: block;
	padding: 8px 14px;
	border-radius: 7px;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	transition: background 0.35s, color 0.35s;
}
.seg input:checked + span {
	background: var(--grad);
	color: #fff;
}
.seg input:focus-visible + span {
	outline: 2px solid var(--cyan);
}
.product-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 8px;
}
.accordion details,
.faq-list details {
	border-bottom: 1px solid var(--line);
}
.accordion summary,
.faq-list summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 40px 18px 0;
	font-weight: 600;
	font-size: 15px;
	color: #fff;
	cursor: pointer;
	list-style: none;
	transition: color 0.3s;
}
.accordion summary::-webkit-details-marker,
.faq-list summary::-webkit-details-marker {
	display: none;
}
.accordion summary::before,
.accordion summary::after,
.faq-list summary::before,
.faq-list summary::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	width: 14px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.45s var(--ease);
}
.accordion summary::after,
.faq-list summary::after {
	transform: rotate(90deg);
}
.accordion details[open] > summary::after,
.faq-list details[open] > summary::after {
	transform: rotate(0deg);
}
.accordion details[open] > summary,
.faq-list details[open] > summary {
	color: #c48cff;
}
.accordion summary:hover,
.faq-list summary:hover {
	color: #c48cff;
}
.accordion details > :not(summary),
.faq-list details > :not(summary) {
	color: #c3c8d4;
	font-size: 14px;
}
.details-body {
	overflow: hidden;
}
.details-body > :last-child {
	margin-bottom: 18px;
}
.specs {
	margin: 0 0 16px;
}
.specs div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--line);
}
.specs dt {
	color: var(--muted);
}
.specs dd {
	margin: 0;
	color: #fff;
	text-align: right;
}
.available {
	margin-top: 32px;
}
.chip-list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 14px 5px 5px;
	border-radius: 999px;
	border: 1px solid var(--line-2);
	font-size: 12px;
	font-weight: 600;
	transition: border-color 0.3s, background 0.3s, transform 0.4s var(--ease);
}
.chip img {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
}
.chip:hover {
	border-color: #a855f7;
	background: rgba(168, 85, 247, 0.1);
	transform: translateY(-2px);
}
.post-nav {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 36px;
	padding-top: 24px;
	border-top: 1px solid var(--line);
}
.post-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	max-width: 48%;
}
.post-nav__link span {
	display: flex;
	flex-direction: column;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.3;
	word-break: break-word;
}
.post-nav__link small {
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}
.post-nav__link--next {
	margin-left: auto;
	text-align: right;
}
.post-nav__link--prev .icon {
	transform: rotate(180deg);
}
.post-nav__link .icon {
	transition: transform 0.4s var(--ease);
}
.post-nav__link--prev:hover .icon {
	transform: rotate(180deg) translateX(5px);
}
.post-nav__link--next:hover .icon {
	transform: translateX(5px);
}

/* 14. Builder -------------------------------------------------------------- */
.steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.steps__line {
	position: absolute;
	top: 46px;
	left: 12%;
	right: 12%;
	height: 1px;
	background: var(--line-2);
}
.steps__line span {
	display: block;
	height: 100%;
	background: var(--grad);
	transform: scaleX(var(--p, 0));
	transform-origin: left;
	box-shadow: 0 0 10px rgba(155, 63, 240, 0.7);
}
.step-card {
	position: relative;
	padding: 24px 20px;
	border-radius: 12px;
	background: linear-gradient(180deg, #0c0f17, #090b11);
	border: 1px solid var(--line);
	transition: border-color 0.4s, transform 0.5s var(--ease);
}
.step-card:hover {
	border-color: rgba(155, 63, 240, 0.45);
	transform: translateY(-4px);
}
.step-card__num {
	position: absolute;
	top: 18px;
	right: 18px;
	font-family: var(--font-head);
	font-size: 2.6rem;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.2);
}
.step-card h3 {
	font-size: 1.4rem;
	margin-bottom: 6px;
}
.step-card p {
	font-size: 13px;
	color: var(--muted);
	margin: 0;
}
.builder {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(24px, 4vw, 48px);
	align-items: start;
}
.builder__preview {
	position: sticky;
	top: 100px;
}
.preview-stage {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 470px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: radial-gradient(circle at 50% 45%, rgba(91, 108, 242, 0.16), transparent 60%), repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.015) 0 2px, transparent 2px 10px), #070a10;
	perspective: 1200px;
	overflow: hidden;
}
.preview-stage__glow {
	position: absolute;
	width: 60%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(229, 182, 46, 0.16), transparent 65%);
	filter: blur(30px);
	animation: pulse 5s ease-in-out infinite;
}
.mock {
	--body: #111;
	position: relative;
	width: 270px;
	aspect-ratio: 3 / 4;
	transform-style: preserve-3d;
	transform: rotateY(var(--ry, -14deg)) rotateX(var(--rx, 6deg));
	transition: transform 0.8s var(--ease), width 0.6s var(--ease), aspect-ratio 0.6s var(--ease);
	filter: drop-shadow(0 40px 40px rgba(0, 0, 0, 0.6));
}
.mock.is-tracking {
	transition: transform 0.15s linear;
}
.mock[data-shape="box"] {
	width: 230px;
	aspect-ratio: 1 / 1.12;
}
.mock__body {
	position: absolute;
	inset: 0;
	border-radius: 12px 16px 16px 12px;
	background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.14), transparent 50%), radial-gradient(circle at 80% 90%, rgba(0, 0, 0, 0.35), transparent 50%), var(--body);
	overflow: hidden;
	transition: background-color 0.6s, background 0.6s;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), inset -8px 0 18px rgba(0, 0, 0, 0.35);
}
.mock__body::before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0.35;
	background-image: radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px);
	background-size: 4px 4px;
	mix-blend-mode: overlay;
}
.mock[data-shape="box"] .mock__body {
	border-radius: 10px;
}
.mock[data-shape="box"] .mock__body::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 22%;
	height: 2px;
	background: rgba(0, 0, 0, 0.35);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12);
}
.mock__zip {
	position: absolute;
	inset: 8px;
	border-radius: 9px 12px 12px 9px;
	border: 2px dashed rgba(255, 255, 255, 0.16);
}
.mock[data-shape="box"] .mock__zip {
	display: none;
}
.mock__spine {
	position: absolute;
	left: -10px;
	top: 3%;
	bottom: 3%;
	width: 16px;
	border-radius: 8px 0 0 8px;
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.08)), var(--body);
	transform: translateZ(-8px);
}
.mock[data-shape="box"] .mock__spine {
	left: auto;
	right: -14px;
	top: 4%;
	bottom: -4%;
	width: 18px;
	border-radius: 0 8px 8px 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.55)), var(--body);
}
.mock__art {
	position: absolute;
	left: 16%;
	right: 16%;
	top: 13%;
	aspect-ratio: 88 / 100;
	display: grid;
	place-items: center;
}
.mock[data-shape="box"] .mock__art {
	top: 30%;
	left: 20%;
	right: 20%;
	aspect-ratio: 1;
}
.mock__art img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
	transition: opacity 0.4s, filter 0.6s, transform 0.6s var(--ease);
	-webkit-mask: radial-gradient(ellipse at center, #000 62%, transparent 100%);
	mask: radial-gradient(ellipse at center, #000 62%, transparent 100%);
}
.mock__art img.is-swapping {
	opacity: 0;
	transform: scale(0.94);
}
/* Engrave looks */
.mock[data-finish="Gold infill"] .mock__art img {
	filter: grayscale(1) invert(1) sepia(1) saturate(3.2) hue-rotate(-8deg) brightness(0.95) contrast(1.15);
	mix-blend-mode: screen;
}
.mock[data-finish="Silver infill"] .mock__art img {
	filter: grayscale(1) invert(1) brightness(0.9) contrast(1.2);
	mix-blend-mode: screen;
}
.mock[data-finish="Natural engrave"] .mock__art img {
	filter: grayscale(1) invert(1) brightness(0.55) contrast(1.3);
	mix-blend-mode: screen;
	opacity: 0.85;
}
.mock[data-tone="light"] .mock__art img {
	filter: grayscale(1) contrast(1.25) brightness(0.9);
	mix-blend-mode: multiply;
	opacity: 0.8;
}
.mock[data-tone="light"][data-finish="Gold infill"] .mock__art img {
	filter: grayscale(1) sepia(1) saturate(2) hue-rotate(-15deg) contrast(1.3) brightness(0.75);
}
.mock__own {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 2px dashed rgba(229, 182, 46, 0.6);
	border-radius: 8px;
	color: var(--gold);
	font-family: var(--font-head);
	font-size: 1.4rem;
}
.mock__own[hidden] {
	display: none;
}
.mock__own .icon {
	width: 30px;
	height: 30px;
}
.mock__own.has-file {
	border: 0;
}
.mock__own img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.mock__text {
	position: absolute;
	left: 10%;
	right: 10%;
	bottom: 8%;
	text-align: center;
	font-family: var(--font-head);
	font-size: 1.5rem;
	letter-spacing: 0.12em;
	color: #e5c46b;
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.6), 0 0 10px rgba(229, 182, 46, 0.35);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-transform: uppercase;
}
.mock[data-finish="Silver infill"] .mock__text {
	color: #e3e6ee;
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.6), 0 0 10px rgba(255, 255, 255, 0.25);
}
.mock[data-finish="Natural engrave"] .mock__text {
	color: rgba(255, 255, 255, 0.55);
}
.mock[data-tone="light"] .mock__text {
	color: rgba(40, 25, 15, 0.75);
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
}
.mock[data-shape="box"] .mock__text {
	bottom: 6%;
	font-size: 1.2rem;
}
.mock__shine {
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.14) 48%, transparent 60%);
	transform: translateX(-100%);
	animation: beam 6s ease-in-out infinite;
}
.preview-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	margin-top: 16px;
	font-size: 13px;
	color: var(--muted);
}
.preview-meta span + span::before {
	content: "·";
	margin-right: 14px;
	color: var(--dim);
}
.preview-meta strong {
	color: #fff;
}
.preview-note {
	margin-top: 8px;
	font-size: 12px;
	color: var(--dim);
}
.builder__form {
	padding: clamp(22px, 3.5vw, 32px);
	border-radius: 16px;
	border: 1px solid var(--line);
	background: linear-gradient(180deg, #0d1018, #090b11);
}
.stepper {
	margin-bottom: 26px;
}
.stepper__bar {
	height: 3px;
	border-radius: 3px;
	background: var(--line);
	overflow: hidden;
	margin-bottom: 14px;
}
.stepper__bar span {
	display: block;
	height: 100%;
	width: 33.33%;
	background: var(--grad);
	transition: width 0.7s var(--ease);
}
.stepper ol {
	list-style: none;
	display: flex;
	justify-content: space-between;
}
.stepper li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dim);
	transition: color 0.4s;
}
.stepper li span {
	width: 24px;
	height: 24px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--line-2);
	font-size: 11px;
	transition: background 0.4s, border-color 0.4s, color 0.4s;
}
.stepper li.is-active,
.stepper li.is-done {
	color: #fff;
}
.stepper li.is-active span,
.stepper li.is-done span {
	background: var(--grad);
	border-color: transparent;
}
.steps-wrap {
	position: relative;
}
.fstep {
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}
html.js .fstep {
	display: none;
}
html.js .fstep.is-active {
	display: block;
	animation: stepIn 0.6s var(--ease) both;
}
html.js .fstep.is-back {
	animation-name: stepInBack;
}
@keyframes stepIn {
	from {
		opacity: 0;
		transform: translateX(40px);
	}
}
@keyframes stepInBack {
	from {
		opacity: 0;
		transform: translateX(-40px);
	}
}
.fstep__title {
	font-family: var(--font-head);
	font-size: 1.9rem;
	color: #fff;
	margin-bottom: 18px;
	padding: 0;
}
html:not(.js) .fstep {
	margin-bottom: 30px;
}
html:not(.js) .stepper,
html:not(.js) .js-next,
html:not(.js) .js-prev {
	display: none;
}
.fstep__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 22px;
}
.product-picker {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 22px;
}
.pp-opt {
	position: relative;
	cursor: pointer;
}
.pp-opt input {
	position: absolute;
	opacity: 0;
}
.pp-opt__card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px;
	border-radius: 10px;
	border: 1px solid var(--line-2);
	background: var(--card);
	transition: border-color 0.3s, background 0.3s, transform 0.4s var(--ease), box-shadow 0.3s;
}
.pp-opt__card img,
.pp-opt__plus {
	width: 48px;
	height: 48px;
	border-radius: 8px;
	object-fit: cover;
	flex: none;
}
.pp-opt__plus {
	display: grid;
	place-items: center;
	background: var(--field);
}
.pp-opt__card > span:not(.pp-opt__plus) {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.3;
}
.pp-opt__card strong {
	font-size: 13px;
	color: #fff;
}
.pp-opt__card small {
	font-size: 12px;
	color: var(--muted);
}
.pp-opt__check {
	position: absolute;
	top: -7px;
	right: -7px;
	width: 22px;
	height: 22px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--grad);
	transform: scale(0);
	transition: transform 0.4s var(--ease);
}
.pp-opt__check .icon {
	width: 13px;
	height: 13px;
}
.pp-opt:hover .pp-opt__card {
	transform: translateY(-2px);
	border-color: rgba(255, 255, 255, 0.3);
}
.pp-opt input:checked + .pp-opt__card {
	border-color: #a855f7;
	background: rgba(168, 85, 247, 0.08);
	box-shadow: 0 10px 30px -14px rgba(168, 85, 247, 0.8);
}
.pp-opt input:checked + .pp-opt__card .pp-opt__check {
	transform: scale(1);
}
.pp-opt input:focus-visible + .pp-opt__card {
	outline: 2px solid var(--cyan);
	outline-offset: 2px;
}
.dropzone {
	position: relative;
	margin-bottom: 18px;
}
.dropzone[hidden] {
	display: none;
}
.dropzone input {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}
.dropzone label {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 28px 16px;
	text-align: center;
	border-radius: 12px;
	border: 2px dashed rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.02);
	transition: border-color 0.3s, background 0.3s;
}
.dropzone label .icon {
	width: 30px;
	height: 30px;
	color: #a855f7;
	animation: bob 2s ease-in-out infinite;
}
@keyframes bob {
	50% {
		transform: translateY(-5px);
	}
}
.dropzone label strong {
	font-size: 14px;
}
.dropzone label small {
	font-size: 12px;
	color: var(--muted);
}
.dropzone.is-over label,
.dropzone:hover label {
	border-color: #a855f7;
	background: rgba(168, 85, 247, 0.06);
}
.dropzone__files {
	list-style: none;
	margin-top: 10px;
}
.dropzone__files li {
	display: flex;
	justify-content: space-between;
	font-size: 12.5px;
	padding: 6px 10px;
	border-radius: 6px;
	background: var(--field);
	margin-bottom: 4px;
	animation: popIn 0.5s var(--ease) both;
}
.dropzone__files small {
	color: var(--muted);
}
.help-strip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: clamp(24px, 4vw, 40px);
	border-radius: 14px;
	background: linear-gradient(120deg, rgba(30, 155, 215, 0.08), rgba(155, 63, 240, 0.1));
}
.help-strip p {
	margin: 0;
	color: #c3c8d4;
}
.help-strip__actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

/* 15. Reviews / contact / FAQ / legal -------------------------------------- */
.reviews__layout {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 30px;
	align-items: start;
}
.rating-summary {
	position: sticky;
	top: 110px;
	padding: 30px 26px;
	border-radius: 14px;
	background: linear-gradient(180deg, #0f1218, #0a0c12);
	text-align: center;
}
.rating-summary__score {
	font-family: var(--font-head);
	font-size: 5rem;
	line-height: 1;
	background: var(--grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.rating-summary__score small {
	font-size: 0.4em;
	-webkit-text-fill-color: var(--muted);
}
.rating-summary p {
	color: var(--muted);
	font-size: 13px;
	margin: 8px 0 18px;
}
.rating-summary__empty h2 {
	font-size: 2rem;
	margin: 14px 0 8px;
}
.stars {
	display: inline-flex;
	gap: 3px;
	color: var(--gold);
}
.stars span {
	display: inline-flex;
	color: rgba(255, 255, 255, 0.18);
}
.stars span.on {
	color: var(--gold);
}
.stars .icon {
	width: 16px;
	height: 16px;
	fill: currentColor;
	stroke: none;
}
.bars {
	list-style: none;
	margin-bottom: 22px;
	text-align: left;
}
.bars li {
	display: grid;
	grid-template-columns: 30px 1fr 24px;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	color: var(--muted);
	margin-bottom: 6px;
}
.bars i {
	height: 6px;
	border-radius: 6px;
	background: var(--line);
	overflow: hidden;
}
.bars b {
	display: block;
	height: 100%;
	width: 0;
	border-radius: 6px;
	background: var(--grad);
	transition: width 1.4s var(--ease) 0.3s;
}
.is-in .bars b {
	width: var(--w);
}
.bars em {
	font-style: normal;
	text-align: right;
}
.review-grid {
	columns: 2 280px;
	column-gap: 16px;
}
.review-card {
	position: relative;
	break-inside: avoid;
	margin-bottom: 16px;
	padding: 26px 24px 22px;
	border-radius: 14px;
	border: 1px solid var(--line);
	background: linear-gradient(180deg, #0d1017, #090b11);
	overflow: hidden;
	transition: border-color 0.4s;
}
.review-card:hover {
	border-color: rgba(155, 63, 240, 0.4);
}
.review-card__quote {
	position: absolute;
	right: 18px;
	top: -10px;
	font-family: Georgia, serif;
	font-size: 7rem;
	line-height: 1;
	color: rgba(155, 63, 240, 0.15);
}
.review-card__text {
	margin: 12px 0 18px;
	color: #d3d7e1;
	font-size: 14.5px;
}
.review-card footer {
	display: flex;
	align-items: center;
	gap: 12px;
}
.review-card footer > span:last-child {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}
.review-card footer small {
	color: var(--muted);
	font-size: 12px;
}
.avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: var(--grad);
	font-family: var(--font-head);
	font-size: 1.3rem;
	color: #fff;
}
.avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.star-input {
	border: 0;
	padding: 0;
	margin: 0 0 18px;
}
.star-input legend {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 8px;
}
.star-input__row {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: 4px;
}
.star-input input {
	position: absolute;
	opacity: 0;
}
.star-input label {
	cursor: pointer;
	color: rgba(255, 255, 255, 0.2);
	transition: color 0.2s, transform 0.3s var(--ease);
}
.star-input label .icon {
	width: 30px;
	height: 30px;
	fill: currentColor;
	stroke: none;
}
.star-input label:hover,
.star-input label:hover ~ label,
.star-input input:checked ~ label {
	color: var(--gold);
}
.star-input label:hover {
	transform: scale(1.2) rotate(-8deg);
}
.star-input input:focus-visible + label {
	outline: 2px solid var(--cyan);
	border-radius: 4px;
}
.info-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.info-card {
	position: relative;
	padding: 26px 22px;
	border-radius: 12px;
	border: 1px solid var(--line);
	background: linear-gradient(180deg, #0d1017, #090b11);
	transition: border-color 0.4s;
	overflow: hidden;
}
.info-card:hover {
	border-color: rgba(30, 155, 215, 0.5);
}
.info-card h2 {
	font-size: 1.5rem;
	margin-bottom: 6px;
}
.info-card p {
	margin: 0;
	font-size: 13.5px;
	color: #c3c8d4;
	word-break: break-word;
}
.info-card a:hover {
	color: #c48cff;
}
.map-frame {
	position: relative;
	border-radius: 14px;
	overflow: hidden;
	height: 380px;
	background: #0a0d14;
}
.map-frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(1) invert(0.92) hue-rotate(190deg) contrast(0.9) brightness(0.9);
}
.map-frame__pin {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 50px;
	height: 50px;
	margin: -60px 0 0 -25px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--grad);
	pointer-events: none;
	animation: pinBounce 2.4s var(--ease) infinite;
	box-shadow: 0 0 0 0 rgba(155, 63, 240, 0.6);
}
@keyframes pinBounce {
	0%,
	100% {
		transform: translateY(0);
		box-shadow: 0 0 0 0 rgba(155, 63, 240, 0.5);
	}
	50% {
		transform: translateY(-10px);
		box-shadow: 0 0 0 16px rgba(155, 63, 240, 0);
	}
}
.split-layout {
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: clamp(28px, 5vw, 64px);
	align-items: start;
}
.split-layout__aside {
	position: sticky;
	top: 110px;
}
.sticky-card {
	padding: 26px 22px;
	border-radius: 14px;
	background: linear-gradient(180deg, #0f1218, #0a0c12);
}
.sticky-card p {
	color: var(--muted);
	font-size: 13.5px;
}
.faq-search {
	position: relative;
	display: block;
	margin-top: 22px;
}
.faq-search .icon {
	position: absolute;
	left: 12px;
	top: 50%;
	width: 16px;
	transform: translateY(-50%);
	color: var(--muted);
}
.faq-search input {
	width: 100%;
	padding: 11px 12px 11px 36px;
	border-radius: 8px;
	border: 1px solid var(--line-2);
	background: var(--field);
	outline: none;
	transition: border-color 0.3s;
}
.faq-search input:focus {
	border-color: #a855f7;
}
.faq-list details {
	padding: 0 4px;
}
.faq-list summary {
	font-size: 16px;
	padding-top: 22px;
	padding-bottom: 22px;
}
.faq-list details.is-hidden {
	display: none;
}
.toc ol {
	list-style: none;
	counter-reset: toc;
}
.toc li {
	counter-increment: toc;
}
.toc a {
	position: relative;
	display: flex;
	gap: 10px;
	padding: 7px 0 7px 12px;
	font-size: 13.5px;
	color: var(--muted);
	border-left: 2px solid var(--line);
	transition: color 0.3s, border-color 0.3s, padding 0.35s var(--ease);
}
.toc a::before {
	content: counter(toc, decimal-leading-zero);
	font-size: 11px;
	font-weight: 700;
	color: var(--dim);
	padding-top: 2px;
}
.toc a:hover,
.toc a.is-active {
	color: #fff;
	border-color: #a855f7;
	padding-left: 16px;
}

/* Rich content */
.entry-content > * {
	margin-top: 0;
}
.entry-content p,
.entry-content li {
	color: #c9ced9;
	font-size: 15px;
}
.entry-content h2 {
	font-size: clamp(1.8rem, 3vw, 2.3rem);
	margin: 1.6em 0 0.5em;
	scroll-margin-top: 110px;
}
.entry-content h2:first-child {
	margin-top: 0;
}
.entry-content h3 {
	font-size: 1.5rem;
	margin: 1.4em 0 0.4em;
}
.entry-content a {
	color: #c48cff;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size 0.4s var(--ease);
}
.entry-content a:hover {
	background-size: 100% 1px;
}
.entry-content .btn,
.entry-content .wp-block-button__link {
	background-size: auto;
}
.entry-content ul,
.entry-content ol {
	padding-left: 1.3em;
	margin-bottom: 1em;
}
.entry-content li::marker {
	color: #a855f7;
}
.entry-content blockquote {
	margin: 1.6em 0;
	padding: 18px 22px;
	border-left: 3px solid #a855f7;
	background: rgba(168, 85, 247, 0.06);
	border-radius: 0 10px 10px 0;
}
.entry-content img {
	border-radius: 10px;
}
.entry-content figure {
	margin: 1.6em 0;
}
.entry-content .wp-block-button__link {
	background: var(--grad);
	color: #fff;
	border-radius: 8px;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: 0.04em;
	padding: 14px 24px;
}
.entry-content table {
	width: 100%;
	border-collapse: collapse;
}
.entry-content th,
.entry-content td {
	border: 1px solid var(--line-2);
	padding: 10px;
	text-align: left;
}

/* 16. Blog / search / 404 ------------------------------------------------- */
.post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: 12px;
	border: 1px solid var(--line);
	background: linear-gradient(180deg, #0d1017, #090b11);
	overflow: hidden;
	transition: border-color 0.4s;
}
.post-card:hover {
	border-color: rgba(155, 63, 240, 0.4);
}
.post-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #fff;
}
.post-card__media.is-empty {
	display: grid;
	place-items: center;
	background: radial-gradient(circle, rgba(91, 108, 242, 0.25), transparent 70%), #080a10;
}
.post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s var(--ease);
}
.post-card:hover .post-card__media img {
	transform: scale(1.06);
}
.post-card__body {
	padding: 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.post-card__body p {
	color: var(--muted);
	font-size: 13.5px;
}
.post-card__body .link-arrow {
	margin-top: auto;
}
.post-card__meta {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #5fc3f2;
	margin-bottom: 8px;
}
.post-card__title {
	font-size: 1.6rem;
}
.pagination {
	margin-top: 40px;
}
.pagination .nav-links {
	display: flex;
	justify-content: center;
	gap: 6px;
}
.pagination .page-numbers {
	min-width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border-radius: 8px;
	border: 1px solid var(--line-2);
	font-weight: 600;
	transition: background 0.3s, border-color 0.3s;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
	background: var(--grad);
	border-color: transparent;
	color: #fff;
}
.search-inline {
	max-width: 560px;
	margin: 0 auto 36px;
}
.search-form {
	display: flex;
	gap: 8px;
}
.search-form input {
	flex: 1;
	min-width: 0;
	padding: 0 16px;
	height: 44px;
	border-radius: 8px;
	border: 1px solid var(--line-2);
	background: var(--field);
	outline: none;
}
.search-form input:focus {
	border-color: #a855f7;
}
.search-form .btn {
	--h: 44px;
}
.post-hero-img {
	margin: 0 0 30px;
	border-radius: 14px;
	overflow: hidden;
}
.comments {
	margin-top: 50px;
}
.comment-list {
	list-style: none;
}
.comment-respond input:not([type="submit"]):not([type="checkbox"]),
.comment-respond textarea {
	width: 100%;
	padding: 12px 14px;
	border-radius: 6px;
	border: 1px solid var(--line-2);
	background: var(--field);
}
.error-404 {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	padding: 140px 0 80px;
	text-align: center;
}
.error-404__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.error-404 .hero__actions {
	justify-content: center;
}
.error-404 p {
	color: #c3c8d4;
	max-width: 460px;
}
.glitch {
	position: relative;
	font-family: var(--font-head);
	font-size: clamp(8rem, 28vw, 18rem);
	line-height: 0.85;
	background: var(--grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	margin-bottom: 20px;
}
.glitch::before,
.glitch::after {
	content: attr(data-text);
	position: absolute;
	inset: 0;
	background: inherit;
	-webkit-background-clip: text;
	background-clip: text;
}
.glitch::before {
	animation: glitch 2.6s infinite steps(1);
	text-shadow: -2px 0 rgba(30, 155, 215, 0.7);
}
.glitch::after {
	animation: glitch 3.1s infinite steps(1) reverse;
	text-shadow: 2px 0 rgba(155, 63, 240, 0.7);
}
@keyframes glitch {
	0%,
	88%,
	100% {
		clip-path: inset(0 0 100% 0);
		transform: none;
	}
	90% {
		clip-path: inset(20% 0 60% 0);
		transform: translateX(-6px);
	}
	93% {
		clip-path: inset(60% 0 15% 0);
		transform: translateX(6px);
	}
	96% {
		clip-path: inset(40% 0 40% 0);
		transform: translateX(-3px);
	}
}

/* 17. WooCommerce (optional) --------------------------------------------- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	list-style: none;
	padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 12px;
	border-radius: 10px;
	border: 1px solid var(--line);
	background: var(--card);
	transition: border-color 0.4s, transform 0.5s var(--ease);
}
.woocommerce ul.products li.product:hover {
	border-color: rgba(155, 63, 240, 0.45);
	transform: translateY(-5px);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-head);
	font-size: 1.4rem;
	color: #fff;
}
.woocommerce .price,
.woocommerce ul.products li.product .price {
	color: #fff;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--grad) !important;
	color: #fff !important;
	border-radius: 8px !important;
	font-size: 12px !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.woocommerce .quantity .qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce select {
	background: var(--field);
	border: 1px solid var(--line-2);
	color: #fff;
	padding: 10px;
	border-radius: 6px;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--card) !important;
	color: var(--text) !important;
	border-top-color: #a855f7 !important;
}
.woocommerce table.shop_table {
	border-color: var(--line-2);
}
.woocommerce span.onsale {
	background: var(--gold);
	color: #111;
}

/* 18. Responsive ---------------------------------------------------------- */
@media (max-width: 1100px) {
	.main-nav,
	.header-cta {
		display: none;
	}
	.burger {
		display: block;
	}
	.designs-grid,
	.products-grid,
	.woocommerce ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
	.perks__grid,
	.info-grid,
	.steps {
		grid-template-columns: repeat(2, 1fr);
	}
	.steps__line {
		display: none;
	}
	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px;
	}
	.site-footer__art {
		left: 40%;
		width: 60%;
	}
}
@media (max-width: 900px) {
	:root {
		--header-h: 76px;
	}
	.hero {
		padding-top: 110px;
		min-height: auto;
	}
	.hero__inner {
		grid-template-columns: 1fr;
		text-align: left;
	}
	.hero__visual {
		justify-self: center;
		width: min(100%, 440px);
		margin-top: -10px;
		order: -1;
	}
	.hero__copy {
		padding-left: 0;
	}
	.hero__scroll {
		display: none;
	}
	.cats {
		margin-top: 0;
	}
	.cta-card,
	.contact-card,
	.product-layout,
	.builder,
	.reviews__layout,
	.split-layout {
		grid-template-columns: 1fr;
	}
	.cta-card__media {
		order: -1;
		padding-top: 30px;
	}
	.cta-card__copy {
		padding-top: 10px;
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.product-media,
	.builder__preview,
	.rating-summary,
	.split-layout__aside {
		position: relative;
		top: 0;
	}
	.preview-stage {
		min-height: 400px;
	}
	.mosaic {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 150px;
	}
	.mosaic .m-a { grid-column: 1; grid-row: 1; }
	.mosaic .m-b { grid-column: 2; grid-row: 1; }
	.mosaic .m-c { grid-column: 1; grid-row: 2 / 4; }
	.mosaic .m-d { grid-column: 2; grid-row: 2; }
	.mosaic .m-e { grid-column: 2; grid-row: 3; }
	.mosaic .m-f { grid-column: 1 / -1; grid-row: 4 / 6; }
	.section-head--split {
		flex-direction: column;
		align-items: flex-start;
	}
	.post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.admin-bar .site-header,
	.admin-bar .scroll-progress {
		top: 46px;
	}
}
@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}
@media (max-width: 680px) {
	.cats__grid,
	.designs-grid,
	.products-grid,
	.perks__grid,
	.info-grid,
	.steps,
	.post-grid,
	.product-picker,
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
	.designs-grid {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	.products-grid {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	.design-card__inner {
		padding: 10px 10px 18px;
	}
	.design-card__title {
		font-size: 1.15rem;
	}
	.design-card__text {
		display: none;
	}
	.product-card__body {
		padding: 12px;
	}
	.product-card__title {
		font-size: 1.2rem;
	}
	.product-card__row {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
	.mform__grid {
		grid-template-columns: 1fr;
	}
	.cat-card {
		min-height: 170px;
	}
	.footer-grid {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 0 0 30px;
	}
	.footer-bottom__inner {
		flex-direction: column;
		align-items: flex-start;
	}
	.hero__actions .btn {
		flex: 1;
	}
	.stepper li {
		font-size: 10px;
	}
	.fstep__nav .btn {
		padding: 0 16px;
	}
	.filters__btn {
		padding: 8px 12px;
		font-size: 11px;
	}
	.page-banner__title {
		max-width: none;
	}
	.mock {
		width: 220px;
	}
	.mock[data-shape="box"] {
		width: 200px;
	}
	.lightbox__nav {
		position: absolute;
		bottom: 16px;
	}
	.lightbox__nav--prev {
		left: calc(50% - 56px);
	}
	.lightbox__nav--next {
		right: calc(50% - 56px);
	}
	.to-top {
		right: 14px;
		bottom: 14px;
	}
}

/* Pointer-only effects */
@media (hover: none) {
	.g-item__cap {
		opacity: 1;
		background: linear-gradient(180deg, transparent 55%, rgba(5, 7, 13, 0.85));
	}
	.g-item__btn,
	.g-item__cat,
	.g-item__title {
		transform: none;
		opacity: 1;
	}
	.product-card__quick {
		display: none;
	}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	html.js [data-reveal],
	html.js .split[data-split] .w > span,
	html.js .hero-line,
	html.js .hero-in,
	html.js .hero__binder {
		opacity: 1 !important;
		transform: none !important;
		clip-path: none !important;
		filter: none !important;
	}
	.marquee__track {
		animation: none;
	}
}

/* Small phones: keep the header bar inside the screen */
@media (max-width: 480px) {
	.site-header__bar {
		gap: 8px;
		padding: 0 4px 0 12px;
	}
	.logo__word {
		font-size: 22px;
	}
	.logo__tag {
		font-size: 5.5px;
	}
	.icon-btn--account {
		display: none;
	}
	.header-actions {
		gap: 2px;
	}
	.icon-btn {
		width: 34px;
		height: 34px;
	}
	.mosaic .g-item__title {
		font-size: 1.05rem;
	}
	.mosaic .g-item__cat {
		display: none;
	}
}
