/* ============================================================================
   FEARLESS PIXY — design system
   Inspired by the brand photography: volcanic rock, tropical canopy, golden
   hour backlight, burnished metal tags. Editorial, dark-luxury, image-led.
   ============================================================================ */

/* ---------- design tokens ---------- */

:root {
	/* Volcanic earth + warm undertone */
	--fp-bg:           #0A0908;
	--fp-bg-1:         #141110;   /* slight elevation */
	--fp-bg-2:         #1A1614;   /* card */
	--fp-bg-3:         #221C18;   /* input / well */
	--fp-bg-hi:        #2A211B;

	/* Hairline borders — warm, low contrast */
	--fp-line:         rgba(232, 218, 188, 0.08);
	--fp-line-strong:  rgba(232, 218, 188, 0.18);
	--fp-line-gold:    rgba(212, 169, 95, 0.32);

	/* Brass / champagne gold (matches the metal tag in the photos) */
	--fp-gold:         #D4A95F;
	--fp-gold-hi:      #E8C685;
	--fp-gold-deep:    #7A5C29;
	--fp-gold-soft:    rgba(212, 169, 95, 0.12);

	/* Tropical greenery accent */
	--fp-forest:       #2F4A36;
	--fp-forest-hi:    #4A6F52;

	/* Text — warm cream, never pure white */
	--fp-ink:          #F0E8D8;
	--fp-ink-soft:     #C5B79E;
	--fp-ink-mute:     #8A7B66;
	--fp-ink-faint:    #5C5147;

	/* Type */
	--fp-serif:        'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	--fp-sans:         'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	/* Shape */
	--fp-r-sm:         6px;
	--fp-r:            10px;
	--fp-r-lg:         18px;

	/* Shadow */
	--fp-shadow:       0 30px 80px -30px rgba(0,0,0,0.85), 0 4px 12px -6px rgba(0,0,0,0.5);
	--fp-shadow-soft:  0 16px 40px -20px rgba(0,0,0,0.6);

	/* Motion */
	--fp-ease:         cubic-bezier(.22, 1, .36, 1);
	--fp-ease-out:     cubic-bezier(0, 0, 0.2, 1);
}

/* ---------- reset + base ---------- */

*, *::before, *::after { box-sizing: border-box; }

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

body {
	margin: 0;
	font-family: var(--fp-sans);
	font-weight: 400;
	line-height: 1.65;
	color: var(--fp-ink);
	background: var(--fp-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

/* Warm noise/grain layer over the whole site for depth — very subtle */
body::before {
	content: '';
	position: fixed; inset: 0;
	pointer-events: none;
	z-index: 1000;
	opacity: 0.04;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");
}

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

a {
	color: var(--fp-gold-hi);
	text-decoration: none;
	transition: color 200ms var(--fp-ease);
}
a:hover { color: var(--fp-gold); }

h1, h2, h3, h4, h5 {
	font-family: var(--fp-serif);
	font-weight: 500;
	color: var(--fp-ink);
	letter-spacing: -0.015em;
	line-height: 1.1;
	margin: 0 0 0.5em;
}

h1 { font-size: clamp(2.4rem, 5.5vw, 4.4rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h4 { font-size: 1rem; }

p { margin: 0 0 1em; color: var(--fp-ink-soft); }
p:last-child { margin-bottom: 0; }

::selection { background: var(--fp-gold); color: #1A1306; }

.fp-skip {
	position: absolute; left: -9999px;
	background: var(--fp-gold); color: #000;
	padding: 12px 18px; z-index: 9999;
	font-weight: 600;
}
.fp-skip:focus { left: 12px; top: 12px; }

/* ---------- layout primitives ---------- */

.fp-container {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 max(24px, 4vw);
}

.fp-section {
	padding: clamp(80px, 12vw, 140px) 0;
	position: relative;
}
.fp-section-dark { background: var(--fp-bg-1); }

.fp-main { position: relative; }

.fp-section-head {
	max-width: 760px;
	margin: 0 auto 64px;
	text-align: center;
}
.fp-section-title-lg {
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 500;
}

.fp-kicker {
	display: inline-block;
	font-family: var(--fp-sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--fp-gold);
	margin-bottom: 1.2em;
	position: relative;
}
.fp-kicker::before {
	content: '';
	display: inline-block;
	width: 26px; height: 1px;
	background: var(--fp-gold);
	vertical-align: middle;
	margin-right: 12px;
	opacity: 0.6;
}

.fp-lede {
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.7;
	color: var(--fp-ink-soft);
	max-width: 60ch;
}

/* ---------- buttons ---------- */

.fp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 999px;
	font-family: var(--fp-sans);
	font-weight: 600;
	font-size: 0.92rem;
	letter-spacing: 0.04em;
	cursor: pointer;
	border: 1px solid transparent;
	text-decoration: none;
	transition: transform 280ms var(--fp-ease), background 280ms var(--fp-ease), color 280ms var(--fp-ease), border-color 280ms var(--fp-ease), box-shadow 280ms var(--fp-ease);
	white-space: nowrap;
}
.fp-btn:hover { transform: translateY(-2px); }
.fp-btn:active { transform: translateY(0); }
.fp-btn:focus-visible { outline: 2px solid var(--fp-gold); outline-offset: 3px; }

.fp-btn-primary {
	background: linear-gradient(135deg, var(--fp-gold) 0%, var(--fp-gold-hi) 100%);
	color: #1A1306;
	box-shadow: 0 12px 30px -14px rgba(212, 169, 95, 0.55);
}
.fp-btn-primary:hover {
	color: #1A1306;
	background: linear-gradient(135deg, var(--fp-gold-hi) 0%, #F2D38E 100%);
	box-shadow: 0 18px 40px -16px rgba(212, 169, 95, 0.7);
}

.fp-btn-ghost {
	background: transparent;
	color: var(--fp-ink);
	border-color: var(--fp-line-strong);
}
.fp-btn-ghost:hover {
	color: var(--fp-ink);
	border-color: var(--fp-gold);
	background: var(--fp-gold-soft);
}

.fp-btn-text {
	background: transparent;
	color: var(--fp-gold-hi);
	padding: 14px 4px;
	border-bottom: 1px solid transparent;
	border-radius: 0;
}
.fp-btn-text:hover {
	color: var(--fp-gold);
	transform: none;
	border-bottom-color: var(--fp-gold);
}

.fp-btn-large { padding: 18px 36px; font-size: 0.98rem; letter-spacing: 0.05em; }
.fp-btn-block { width: 100%; }

.fp-arrow {
	display: inline-block;
	transition: transform 280ms var(--fp-ease);
}
.fp-btn:hover .fp-arrow { transform: translateX(4px); }

/* WhatsApp icon */
.fp-wa-icon {
	width: 18px; height: 18px;
	display: inline-block; flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20.52 3.48A11.83 11.83 0 0012 0C5.37 0 0 5.37 0 12c0 2.11.55 4.17 1.6 5.99L0 24l6.18-1.62A11.97 11.97 0 0012 24c6.63 0 12-5.37 12-12 0-3.2-1.25-6.21-3.48-8.52zM12 22a9.9 9.9 0 01-5.05-1.38l-.36-.21-3.67.96.98-3.58-.24-.37A9.9 9.9 0 012 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10zm5.46-7.46c-.3-.15-1.77-.87-2.04-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.17-.17.2-.35.22-.65.07a8.13 8.13 0 01-2.4-1.48 9.04 9.04 0 01-1.67-2.07c-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.07-.15-.67-1.62-.92-2.22-.24-.58-.49-.5-.67-.51l-.57-.01c-.2 0-.52.07-.8.37-.27.3-1.04 1.02-1.04 2.49 0 1.47 1.07 2.89 1.22 3.09.15.2 2.11 3.22 5.11 4.51.71.31 1.27.5 1.7.64.71.23 1.36.2 1.87.12.57-.08 1.77-.72 2.02-1.42.25-.7.25-1.29.17-1.42-.07-.13-.27-.2-.57-.35z'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20.52 3.48A11.83 11.83 0 0012 0C5.37 0 0 5.37 0 12c0 2.11.55 4.17 1.6 5.99L0 24l6.18-1.62A11.97 11.97 0 0012 24c6.63 0 12-5.37 12-12 0-3.2-1.25-6.21-3.48-8.52z'/></svg>") no-repeat center / contain;
}

/* ---------- header ---------- */

.fp-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(10, 9, 8, 0.85);
	backdrop-filter: saturate(140%) blur(18px);
	-webkit-backdrop-filter: saturate(140%) blur(18px);
	border-bottom: 1px solid var(--fp-line);
	transition: background 200ms var(--fp-ease);
}

/* Top row: brand on left, utility on right */
.fp-header-top {
	padding: 14px 0 12px;
	border-bottom: 1px solid var(--fp-line);
}
.fp-header-top-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.fp-brand {
	display: flex; align-items: center; gap: 14px;
	color: var(--fp-ink);
	text-decoration: none;
	flex-shrink: 0;
}
.fp-brand:hover { color: var(--fp-ink); }
.fp-brand-mark {
	display: flex; align-items: center; justify-content: center;
	width: 42px; height: 42px;
	border-radius: 50%;
	flex-shrink: 0;
	transition: transform 400ms var(--fp-ease);
}
.fp-brand:hover .fp-brand-mark { transform: rotate(-6deg); }
.fp-brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.fp-brand-name {
	font-family: var(--fp-serif);
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: 0.005em;
}
.fp-brand-sub {
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	color: var(--fp-ink-mute);
	text-transform: uppercase;
	font-weight: 500;
	margin-top: 3px;
	white-space: nowrap;
}

.fp-header-utility {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-shrink: 0;
}
.fp-utility-link {
	color: var(--fp-ink-soft);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-decoration: none;
	white-space: nowrap;
	transition: color 200ms var(--fp-ease);
}
.fp-utility-link:hover { color: var(--fp-ink); }
.fp-utility-sep {
	width: 1px; height: 18px;
	background: var(--fp-line-strong);
}

.fp-lang-switch {
	display: flex; align-items: center; gap: 6px;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--fp-ink-mute);
}
.fp-lang-switch a {
	color: var(--fp-ink-mute);
	padding: 6px 4px;
	transition: color 200ms var(--fp-ease);
}
.fp-lang-switch a.is-active { color: var(--fp-gold); }
.fp-lang-switch a:hover { color: var(--fp-ink); }
.fp-lang-sep { color: var(--fp-ink-faint); }

.fp-header-cta {
	padding: 10px 20px;
	font-size: 0.85rem;
}

/* Bottom row: primary nav, left-aligned */
.fp-header-bottom {
	padding: 0;
}
.fp-header-bottom .fp-container {
	padding-top: 4px;
	padding-bottom: 4px;
}
.fp-nav {
	display: flex;
	justify-content: flex-start;
}
.fp-nav-list {
	list-style: none; margin: 0; padding: 0;
	display: flex;
	gap: clamp(20px, 2.4vw, 36px);
	align-items: center;
}
.fp-nav-mobile-only { display: none; }
.fp-nav-list a {
	display: inline-block;
	color: var(--fp-ink-soft);
	font-size: 0.88rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	position: relative;
	padding: 14px 2px;
	transition: color 200ms var(--fp-ease);
}
.fp-nav-list a:hover { color: var(--fp-ink); }
.fp-nav-list a::after {
	content: '';
	position: absolute; left: 0; right: 0; bottom: 8px;
	height: 1px;
	background: var(--fp-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 320ms var(--fp-ease);
}
.fp-nav-list a:hover::after,
.fp-nav-list .current-menu-item a::after { transform: scaleX(1); }

.fp-nav-toggle {
	display: none;
	background: transparent; border: 0;
	padding: 10px; cursor: pointer;
	flex-direction: column; gap: 5px;
}
.fp-nav-toggle span {
	width: 22px; height: 1.5px;
	background: var(--fp-ink);
	transition: transform 250ms var(--fp-ease), opacity 250ms var(--fp-ease);
}
.fp-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fp-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.fp-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Tablet — hide tagline + CTA label to reclaim width */
@media (max-width: 1024px) {
	.fp-brand-sub { display: none; }
	.fp-cta-label { display: none; }
	.fp-header-cta { padding: 10px 14px; }
	.fp-header-utility { gap: 14px; }
}

/* Mobile — collapse bottom nav into hamburger; hide Contact link & lang
   in top bar (they move into the hamburger drawer) */
@media (max-width: 880px) {
	.fp-utility-link,
	.fp-header-utility .fp-utility-sep,
	.fp-header-utility .fp-lang-switch { display: none; }
	.fp-nav-toggle { display: flex; }

	.fp-header-bottom {
		display: none;
		border-top: 1px solid var(--fp-line);
	}
	.fp-header-bottom.is-open { display: block; }
	.fp-header-bottom .fp-container { padding-top: 0; padding-bottom: 0; }

	.fp-nav-list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
	}
	.fp-nav-mobile-only { display: block; }
	.fp-nav-list li { border-bottom: 1px solid var(--fp-line); }
	.fp-nav-list li:last-child { border-bottom: 0; }
	.fp-nav-list a {
		display: block;
		padding: 18px 4px;
		font-size: 0.95rem;
	}
	.fp-nav-list a::after { display: none; }
}

/* ---------- hero ---------- */

.fp-hero {
	position: relative;
	min-height: clamp(620px, 92vh, 880px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	isolation: isolate;
}

.fp-hero-media {
	position: absolute;
	inset: 0;
	z-index: -1;
}
.fp-hero-image {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	background-color: #1A1614;
	transform: scale(1.04);
	animation: fp-hero-pan 24s ease-in-out infinite alternate;
}
@keyframes fp-hero-pan {
	0%   { transform: scale(1.04) translate(0, 0); }
	100% { transform: scale(1.08) translate(-1.5%, -1%); }
}
.fp-hero-vignette {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(10,9,8,0.25) 0%, rgba(10,9,8,0.55) 40%, rgba(10,9,8,0.95) 100%),
		radial-gradient(80% 60% at 30% 50%, rgba(10,9,8,0.0) 0%, rgba(10,9,8,0.6) 100%);
}
.fp-hero-grain {
	position: absolute; inset: 0;
	opacity: 0.08;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

.fp-hero-content {
	padding: 100px 0 90px;
	max-width: 920px;
	position: relative;
}

.fp-hero-title {
	font-size: clamp(2.6rem, 8vw, 6rem);
	line-height: 0.98;
	font-weight: 500;
	margin: 0 0 0.4em;
	letter-spacing: -0.025em;
}
.fp-hero-word {
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
	animation: fp-rise 900ms var(--fp-ease) forwards;
}
.fp-hero-word-1 { animation-delay: 0.1s; }
.fp-hero-word-2 { animation-delay: 0.3s; }
.fp-hero-word-3 { animation-delay: 0.5s; }
.fp-hero-dot { color: var(--fp-gold); }
@keyframes fp-rise {
	to { opacity: 1; transform: translateY(0); }
}

.fp-hero-subtitle {
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	color: var(--fp-ink-soft);
	max-width: 56ch;
	line-height: 1.7;
	margin-bottom: 2em;
	opacity: 0;
	animation: fp-rise 900ms var(--fp-ease) 0.7s forwards;
}

.fp-hero-cta {
	display: flex; gap: 14px; flex-wrap: wrap;
	opacity: 0;
	animation: fp-rise 900ms var(--fp-ease) 0.9s forwards;
}

.fp-hero-scroll {
	position: absolute;
	bottom: 24px; left: 50%;
	transform: translateX(-50%);
	width: 1px;
	height: 56px;
	overflow: hidden;
}
.fp-hero-scroll-line {
	display: block;
	width: 1px; height: 100%;
	background: linear-gradient(180deg, transparent 0%, var(--fp-gold) 50%, transparent 100%);
	animation: fp-scroll-bounce 2.2s ease-in-out infinite;
}
@keyframes fp-scroll-bounce {
	0%   { transform: translateY(-100%); }
	100% { transform: translateY(100%); }
}

/* ---------- marquee ---------- */

.fp-marquee-section {
	padding: 32px 0;
	border-top: 1px solid var(--fp-line);
	border-bottom: 1px solid var(--fp-line);
	background: var(--fp-bg-1);
}
.fp-marquee {
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.fp-marquee-track {
	display: flex; gap: 36px;
	white-space: nowrap;
	animation: fp-marquee 36s linear infinite;
	font-family: var(--fp-serif);
	font-style: italic;
	font-size: clamp(1.4rem, 3vw, 2rem);
	color: var(--fp-ink-soft);
}
.fp-marquee-track span { display: inline-block; }
.fp-marquee-track .fp-dot { color: var(--fp-gold); }
@keyframes fp-marquee {
	to { transform: translateX(-50%); }
}

/* ---------- values (numbered editorial grid) ---------- */

.fp-values-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0;
	border-top: 1px solid var(--fp-line);
}
.fp-value {
	padding: 36px 28px;
	border-bottom: 1px solid var(--fp-line);
	border-right: 1px solid var(--fp-line);
	position: relative;
	transition: background 300ms var(--fp-ease);
}
.fp-value:hover { background: var(--fp-bg-1); }
.fp-value-num {
	font-family: var(--fp-serif);
	font-style: italic;
	font-size: 0.9rem;
	color: var(--fp-gold);
	letter-spacing: 0.08em;
	display: block;
	margin-bottom: 1.4em;
}
.fp-value h3 {
	margin-bottom: 0.5em;
	font-weight: 500;
}
.fp-value p { font-size: 0.95rem; line-height: 1.7; }

@media (max-width: 800px) {
	.fp-value { border-right: 0; }
}

/* ---------- split sections ---------- */

.fp-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: center;
}
.fp-split-reverse { direction: rtl; }
.fp-split-reverse > * { direction: ltr; }

.fp-split-image-wrap {
	position: relative;
}
.fp-split-image {
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center;
	background-color: var(--fp-bg-2);
	border-radius: var(--fp-r);
	box-shadow: var(--fp-shadow);
	position: relative;
	overflow: hidden;
}
.fp-split-image::after {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 0%, rgba(10,9,8,0.25) 100%);
}
.fp-split-image.fp-portrait { aspect-ratio: 3 / 4; }

.fp-split-image-deco {
	position: absolute;
	width: 56%; height: 56%;
	top: -20px; right: -20px;
	border: 1px solid var(--fp-line-gold);
	border-radius: var(--fp-r);
	z-index: -1;
}

.fp-split-content h2 { margin-bottom: 0.4em; }
.fp-cta-row {
	display: flex; gap: 20px; flex-wrap: wrap; align-items: center;
	margin-top: 1.5em;
}

.fp-price {
	font-family: var(--fp-serif);
	font-style: italic;
	font-size: 1.2rem;
	color: var(--fp-gold);
	margin: 1em 0;
}

@media (max-width: 800px) {
	.fp-split { grid-template-columns: 1fr; gap: 32px; }
	.fp-split-reverse { direction: ltr; }
}

/* ---------- pixy quote ---------- */

.fp-pixy-quote {
	background: var(--fp-bg-1);
	position: relative;
}
.fp-pixy-quote-inner {
	max-width: 820px;
	text-align: center;
	position: relative;
}
.fp-quote-mark {
	font-family: var(--fp-serif);
	font-size: 10rem;
	line-height: 1;
	color: var(--fp-gold);
	opacity: 0.15;
	position: absolute;
	top: -40px; left: 50%;
	transform: translateX(-50%);
	font-style: italic;
}
.fp-pixy-quote blockquote {
	margin: 0 0 32px;
	font-family: var(--fp-serif);
	font-style: italic;
	font-size: clamp(1.3rem, 2.2vw, 1.7rem);
	font-weight: 400;
	line-height: 1.55;
	color: var(--fp-ink);
}
.fp-pixy-quote cite {
	display: block;
	font-family: var(--fp-sans);
	font-size: 0.78rem;
	font-style: normal;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fp-gold);
	margin-top: 2em;
}

/* ---------- page intro ---------- */

.fp-page-intro {
	padding: clamp(100px, 14vw, 160px) 0 clamp(60px, 8vw, 90px);
	text-align: center;
	border-bottom: 1px solid var(--fp-line);
	position: relative;
}
.fp-page-intro h1 {
	margin: 0 0 0.4em;
}
.fp-page-intro .fp-lede {
	margin: 0 auto;
}

/* ---------- product grid (shop) ---------- */

.fp-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(24px, 3vw, 36px);
}
.fp-product-card {
	background: var(--fp-bg-2);
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-r);
	overflow: hidden;
	transition: transform 400ms var(--fp-ease), border-color 400ms var(--fp-ease), box-shadow 400ms var(--fp-ease);
	display: flex; flex-direction: column;
}
.fp-product-card:hover {
	transform: translateY(-6px);
	border-color: var(--fp-line-gold);
	box-shadow: var(--fp-shadow-soft);
}
.fp-product-image {
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center;
	background-color: var(--fp-bg-3);
	transition: transform 700ms var(--fp-ease);
}
.fp-product-card:hover .fp-product-image { transform: scale(1.04); }
.fp-product-image-wrap {
	overflow: hidden;
	position: relative;
}
.fp-product-image-wrap::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(10,9,8,0.45) 100%);
}
.fp-product-body {
	padding: 28px;
	flex: 1;
	display: flex; flex-direction: column;
}
.fp-product-body h3 { margin-bottom: 0.5em; font-weight: 500; }
.fp-product-body p { font-size: 0.95rem; flex: 1; }

/* ---------- coming soon pills ---------- */

.fp-coming-soon { text-align: center; }
.fp-pill-list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 12px; justify-content: center;
}
.fp-pill-list li {
	padding: 12px 24px;
	border: 1px solid var(--fp-line-strong);
	border-radius: 999px;
	color: var(--fp-ink-soft);
	font-size: 0.92rem;
	letter-spacing: 0.02em;
	transition: border-color 300ms var(--fp-ease), color 300ms var(--fp-ease);
}
.fp-pill-list li:hover {
	border-color: var(--fp-gold);
	color: var(--fp-ink);
}

/* ---------- cards (makers) ---------- */

.fp-card-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
}
.fp-card {
	background: var(--fp-bg-2);
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-r);
	padding: 36px 30px;
	transition: border-color 300ms var(--fp-ease);
}
.fp-card:hover { border-color: var(--fp-line-gold); }
.fp-card h3 {
	color: var(--fp-gold);
	margin-bottom: 0.5em;
	font-family: var(--fp-serif);
	font-style: italic;
	font-weight: 500;
}

/* ---------- makers hero + gallery ---------- */

.fp-makers-hero {
	aspect-ratio: 16 / 7;
	background-size: cover;
	background-position: center;
	background-color: var(--fp-bg-2);
	border-radius: var(--fp-r);
	box-shadow: var(--fp-shadow);
	position: relative;
	overflow: hidden;
}
.fp-makers-hero::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(10,9,8,0.4) 100%);
}

.fp-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.fp-gallery-item {
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center;
	background-color: var(--fp-bg-2);
	border-radius: var(--fp-r-sm);
	transition: transform 500ms var(--fp-ease);
	overflow: hidden;
}
.fp-gallery-item:hover { transform: scale(1.02); }

/* ---------- impact stack ---------- */

.fp-impact-stack {
	display: flex; flex-direction: column;
	gap: clamp(60px, 10vw, 120px);
}
.fp-impact-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: center;
}
.fp-impact-row-reverse { direction: rtl; }
.fp-impact-row-reverse > * { direction: ltr; }
.fp-impact-img {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	background-color: var(--fp-bg-2);
	border-radius: var(--fp-r);
	box-shadow: var(--fp-shadow);
}
@media (max-width: 800px) {
	.fp-impact-row, .fp-impact-row-reverse {
		grid-template-columns: 1fr;
		direction: ltr;
		gap: 28px;
	}
}

/* ---------- steps (custom orders) ---------- */

.fp-steps {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(20px, 3vw, 36px);
}
.fp-step {
	padding: 40px 32px 32px;
	background: var(--fp-bg-2);
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-r);
	position: relative;
	transition: transform 300ms var(--fp-ease), border-color 300ms var(--fp-ease);
}
.fp-step:hover {
	transform: translateY(-4px);
	border-color: var(--fp-line-gold);
}
.fp-step-num {
	position: absolute;
	top: -20px; left: 28px;
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--fp-gold) 0%, var(--fp-gold-deep) 100%);
	color: #1A1306;
	border-radius: 50%;
	font-family: var(--fp-serif);
	font-weight: 600;
	font-size: 1.1rem;
}
.fp-step h3 {
	margin: 4px 0 0.4em;
	font-weight: 500;
}

.fp-callout {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	padding: 24px;
}
.fp-callout h2 { margin-bottom: 0.5em; }

/* ---------- order form ---------- */

.fp-order-form-wrap {
	max-width: 820px;
	margin: 0 auto;
	background: var(--fp-bg-2);
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-r-lg);
	padding: clamp(32px, 5vw, 56px);
	position: relative;
}
.fp-order-form-wrap::before {
	content: '';
	position: absolute;
	top: 0; left: 24px; right: 24px;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--fp-gold), transparent);
	opacity: 0.4;
}
.fp-order-form-intro { text-align: center; margin-bottom: 36px; }
.fp-order-form-intro h2 { margin-bottom: 0.4em; }
.fp-order-form { display: flex; flex-direction: column; gap: 20px; }
.fp-form-row { display: grid; gap: 20px; }
.fp-form-row-2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .fp-form-row-2 { grid-template-columns: 1fr; } }

.fp-order-form label {
	display: flex; flex-direction: column; gap: 8px;
}
.fp-order-form label span {
	font-size: 0.74rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fp-ink-mute);
	font-weight: 600;
}
.fp-order-form input,
.fp-order-form select,
.fp-order-form textarea {
	background: var(--fp-bg-3);
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-r-sm);
	padding: 14px 16px;
	color: var(--fp-ink);
	font-family: inherit;
	font-size: 1rem;
	transition: border-color 200ms var(--fp-ease), background 200ms var(--fp-ease);
}
.fp-order-form input:focus,
.fp-order-form select:focus,
.fp-order-form textarea:focus {
	outline: none;
	border-color: var(--fp-gold);
	background: var(--fp-bg-hi);
}
.fp-order-form input::placeholder,
.fp-order-form textarea::placeholder { color: var(--fp-ink-faint); }
.fp-form-actions {
	display: flex; gap: 24px; align-items: center; flex-wrap: wrap;
	margin-top: 12px;
}
.fp-form-or {
	color: var(--fp-ink-soft);
	font-size: 0.92rem;
	border-bottom: 1px solid var(--fp-line-strong);
	padding-bottom: 2px;
}
.fp-form-or:hover { color: var(--fp-gold); border-bottom-color: var(--fp-gold); }

/* ---------- contact ---------- */

.fp-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}
.fp-contact-card {
	background: var(--fp-bg-2);
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-r);
	padding: 40px 28px;
	text-align: center;
	color: var(--fp-ink);
	text-decoration: none;
	transition: border-color 300ms var(--fp-ease), transform 300ms var(--fp-ease), background 300ms var(--fp-ease);
}
.fp-contact-card:hover {
	color: var(--fp-ink);
	border-color: var(--fp-gold);
	transform: translateY(-4px);
	background: var(--fp-bg-hi);
}
.fp-contact-icon {
	width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--fp-line-gold);
	border-radius: 50%;
	margin-bottom: 16px;
	color: var(--fp-gold);
}
.fp-contact-icon::after {
	content: '';
	width: 18px; height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--icon, none) no-repeat center / contain;
	        mask: var(--icon, none) no-repeat center / contain;
}
.fp-contact-card h3 { margin: 0 0 0.4em; font-weight: 500; font-family: var(--fp-serif); }
.fp-contact-card p { margin: 0; color: var(--fp-ink-soft); font-size: 0.95rem; }
.fp-contact-icon.fp-wa-icon { --icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20.52 3.48A11.83 11.83 0 0012 0C5.37 0 0 5.37 0 12c0 2.11.55 4.17 1.6 5.99L0 24l6.18-1.62A11.97 11.97 0 0012 24c6.63 0 12-5.37 12-12 0-3.2-1.25-6.21-3.48-8.52z'/></svg>"); }
.fp-mail-icon { --icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V6a2 2 0 00-2-2zm0 4l-8 5-8-5V6l8 5 8-5z'/></svg>"); }
.fp-ig-icon { --icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2c2.7 0 3 0 4.1.1 1 0 1.7.2 2.3.5.6.3 1.1.6 1.6 1.1.5.5.8 1 1.1 1.6.3.6.4 1.3.5 2.3.1 1.1.1 1.4.1 4.1s0 3-.1 4.1c0 1-.2 1.7-.5 2.3-.3.6-.6 1.1-1.1 1.6-.5.5-1 .8-1.6 1.1-.6.3-1.3.4-2.3.5-1.1.1-1.4.1-4.1.1s-3 0-4.1-.1c-1 0-1.7-.2-2.3-.5-.6-.3-1.1-.6-1.6-1.1-.5-.5-.8-1-1.1-1.6-.3-.6-.4-1.3-.5-2.3C2 15 2 14.7 2 12s0-3 .1-4.1c0-1 .2-1.7.5-2.3.3-.6.6-1.1 1.1-1.6.5-.5 1-.8 1.6-1.1.6-.3 1.3-.4 2.3-.5C9 2 9.3 2 12 2zm0 5a5 5 0 100 10 5 5 0 000-10zm6.5-.8a1.2 1.2 0 100-2.4 1.2 1.2 0 000 2.4zM12 9a3 3 0 110 6 3 3 0 010-6z'/></svg>"); }
.fp-tt-icon { --icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19.6 6.3a5.7 5.7 0 01-4.5-2.3V15a5.2 5.2 0 11-5.2-5.2c.3 0 .5 0 .8.1v2.7a2.5 2.5 0 102.1 2.5V2h2.3a5.7 5.7 0 004.5 4z'/></svg>"); }

/* ---------- CTA banner ---------- */

.fp-cta-banner {
	padding: clamp(64px, 10vw, 110px) 0;
	background:
		linear-gradient(135deg, rgba(212,169,95,0.08) 0%, rgba(47,74,54,0.08) 100%),
		var(--fp-bg-1);
	border-top: 1px solid var(--fp-line);
	border-bottom: 1px solid var(--fp-line);
	position: relative;
	overflow: hidden;
}
.fp-cta-banner::before {
	content: '';
	position: absolute;
	top: -40%; left: -10%;
	width: 50%; height: 180%;
	background: radial-gradient(ellipse, rgba(212,169,95,0.08) 0%, transparent 60%);
	pointer-events: none;
}
.fp-cta-banner-inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 40px; flex-wrap: wrap;
	position: relative;
}
.fp-cta-text { max-width: 560px; }
.fp-cta-banner h2 { margin: 0 0 0.4em; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.fp-cta-banner p { margin: 0; color: var(--fp-ink-soft); font-size: 1.05rem; }

/* ---------- footer ---------- */

.fp-footer {
	background: var(--fp-bg);
	padding: clamp(60px, 8vw, 90px) 0 0;
	border-top: 1px solid var(--fp-line);
}
.fp-footer-grid {
	display: grid;
	grid-template-columns: 1.8fr 1fr 1fr;
	gap: clamp(32px, 5vw, 60px);
	padding-bottom: 56px;
}
@media (max-width: 700px) { .fp-footer-grid { grid-template-columns: 1fr; gap: 36px; } }

.fp-footer-brand-name {
	font-family: var(--fp-serif);
	font-size: 1.6rem;
	font-weight: 600;
	margin-bottom: 16px;
	color: var(--fp-ink);
}
.fp-footer-brand p { max-width: 42ch; font-size: 0.96rem; }
.fp-footer-made {
	font-size: 0.85rem;
	color: var(--fp-ink-mute);
	margin-top: 24px;
	font-style: italic;
	font-family: var(--fp-serif);
}

.fp-footer h4 {
	font-family: var(--fp-sans);
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fp-gold);
	margin: 0 0 22px;
	font-weight: 600;
}
.fp-footer ul {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 14px;
}
.fp-footer ul a {
	color: var(--fp-ink-soft);
	font-size: 0.95rem;
	transition: color 200ms var(--fp-ease), padding 200ms var(--fp-ease);
}
.fp-footer ul a:hover { color: var(--fp-gold-hi); padding-left: 4px; }

.fp-footer-bottom {
	border-top: 1px solid var(--fp-line);
	padding: 24px 0;
}
.fp-footer-bottom-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 0.85rem;
	color: var(--fp-ink-mute);
}
.fp-footer-locale {
	font-family: var(--fp-serif);
	font-style: italic;
}

/* ---------- page article (wraps shortcode-rendered pages) ---------- */

.fp-page-article { display: block; }

/* ---------- scroll reveal ---------- */

.fp-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 800ms var(--fp-ease), transform 800ms var(--fp-ease);
}
.fp-reveal.fp-in-view {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- 404 ---------- */

.fp-404 {
	min-height: 60vh;
	display: flex; align-items: center;
	text-align: center;
}
.fp-404 .fp-container { width: 100%; }

/* ---------- reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.fp-hero-image { animation: none; }
	.fp-marquee-track { animation: none; }
}
