/* Flamepot — a quiet gallery: pale plaster wall, ivory header, charcoal type,
   paintings in wooden frames with cream mounts. The art carries the colour. */
:root {
	--straw: #F1EDE6;          /* wall */
	--straw-deep: #E8E2D8;
	--ivory: #FCFAF6;          /* header */
	--ink: #2A2521;
	--ink-soft: #6B635B;
	--hingula: #8C4A36;        /* muted terracotta: links and small accents */
	--hingula-dark: #6E3828;
	--haritala: #B9A88C;       /* warm grey-gold */
	--neela: #2A2521;          /* footer */
	--conch: #FBF8F2;          /* mounts, panels */
	--line: rgba(42, 37, 33, .16);

	--head: "Marcellus", "Iowan Old Style", Georgia, serif;
	--body: "Hind", "Segoe UI", system-ui, sans-serif;

	--wrap: 1240px;
	--gutter: clamp(16px, 4vw, 40px);
	--space: clamp(56px, 8vw, 104px);
	--header-h: 124px;

	/* Soft plaster: fine grain plus a large, faint mottle. */
	--wall-tex: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .38 0 0 0 0 .33 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--wall-mottle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .5 0 0 0 0 .44 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");
	/* Walnut frame, light from above: top, right, bottom, left. */
	--wood: #5B3E27 #4A321F #36241A #432D1C;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 140px; }
body {
	margin: 0;
	background-color: var(--straw);
	background-image: var(--wall-tex), var(--wall-mottle);
	color: var(--ink);
	font-family: var(--body);
	font-weight: 400;
	font-size: 1.0625rem;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--hingula); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--hingula-dark); }
:focus-visible { outline: 2px solid var(--hingula); outline-offset: 3px; }
::selection { background: #E2D6C2; color: var(--ink); }

.fp-wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.fp-narrow { max-width: 760px; }
.fp-skip { position: absolute; left: -9999px; top: 8px; background: var(--conch); padding: 8px 14px; z-index: 100; }
.fp-skip:focus { left: 8px; }
.fp-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Type ---------- */
h1, h2, h3, h4 { font-family: var(--head); font-weight: 400; line-height: 1.18; margin: 0 0 .5em; letter-spacing: .005em; }
.fp-h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); }
.fp-h2 { font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2rem); }
.fp-lede { font-size: 1.1875rem; color: var(--ink-soft); max-width: 62ch; }
.fp-crumb { margin: 0 0 .4rem; font-size: .9375rem; }
.fp-crumb a { color: var(--ink-soft); text-decoration: none; border-bottom: 1px solid rgba(42, 37, 33, .3); }
.fp-crumb a:hover { color: var(--hingula); }
.fp-date { color: var(--ink-soft); font-size: .9375rem; margin-top: -.6rem; }

.fp-prose { max-width: 68ch; }
.fp-prose h2 { font-size: 1.6rem; margin-top: 1.8em; }
.fp-prose h3 { font-size: 1.3rem; margin-top: 1.6em; }
.fp-prose h4 { font-family: var(--body); font-weight: 500; font-size: 1.0625rem; margin-top: 1.4em; }
.fp-prose ul, .fp-prose ol { padding-left: 1.2em; }
.fp-prose li { margin-bottom: .35em; }
.fp-prose blockquote { margin: 1.5em 0; padding-left: 1.2em; border-left: 3px solid var(--haritala); font-family: var(--head); font-size: 1.25rem; }
.fp-prose img { margin: 1.5em 0; background: var(--conch); padding: 10px; border: 1px solid var(--line); }

/* ---------- Section divider: a quiet double rule ---------- */
.fp-band { height: 7px; max-width: calc(var(--wrap) - 2 * var(--gutter)); margin-inline: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
@media (max-width: 1240px) { .fp-band { margin-inline: var(--gutter); } }
.fp-band--footer { display: none; }

/* ---------- Buttons & links ---------- */
.fp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.4rem 0; }
.fp-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 46px; padding: .55em 1.35em;
	font: 500 1rem/1.2 var(--body); letter-spacing: .01em;
	color: var(--ink); background: transparent;
	border: 1.5px solid var(--ink); border-radius: 2px;
	text-decoration: none; cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.fp-btn:hover { background: var(--ink); color: var(--conch); }
.fp-btn--solid { background: var(--ink); color: var(--conch); }
.fp-btn--solid:hover { background: #4A423B; border-color: #4A423B; color: var(--conch); }
.fp-btn--wide { width: 100%; }
.fp-inline-form { display: inline-flex; margin: 0; }
.fp-textbtn { background: none; border: 0; padding: 4px 0; font: inherit; font-size: .9375rem; color: var(--ink-soft); text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.fp-textbtn:hover { color: var(--hingula); }
.fp-link { font-size: .9875rem; text-decoration: none; border-bottom: 1px solid currentColor; white-space: nowrap; }

/* ---------- Header ---------- */
.fp-header { position: sticky; top: 0; z-index: 50; background: var(--ivory); border-bottom: 1px solid rgba(42, 37, 33, .12); box-shadow: 0 8px 18px -12px rgba(42, 37, 33, .35); }
.fp-header__row { display: flex; align-items: center; gap: 24px; min-height: var(--header-h); }
.fp-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); margin-right: auto; }
.fp-brand__logo { width: auto; height: 96px; }
.fp-brand__name { font-family: var(--head); font-size: 1.6rem; letter-spacing: .02em; }
.fp-brand__logo + .fp-brand__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.fp-nav { display: flex; align-items: center; gap: 28px; }
.fp-nav__list { display: flex; gap: 22px; list-style: none; margin: 0; padding: 0; }
.fp-nav__list a { color: var(--ink); text-decoration: none; font-size: .9875rem; padding: 6px 0; border-bottom: 1.5px solid transparent; }
.fp-nav__list a:hover, .fp-nav__list .current-menu-item > a, .fp-nav__list .current-menu-ancestor > a { border-bottom-color: var(--ink); color: var(--ink); }
.fp-nav__wa { font-size: .9375rem; text-decoration: none; padding: 7px 14px; border: 1px solid var(--ink-soft); color: var(--ink); border-radius: 2px; }
.fp-nav__wa:hover { border-color: var(--ink); background: var(--ink); color: var(--conch); }
.fp-menu-toggle { display: none; }
.fp-cartlink { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); text-decoration: none; font-size: .9375rem; padding: 7px 2px; }
.fp-cartlink:hover { color: var(--ink-soft); }
.fp-cartlink__n { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--hingula); color: var(--conch); font-size: .8125rem; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; }

@media (max-width: 1020px) {
	.fp-menu-toggle {
		display: inline-flex; align-items: center; gap: 10px;
		background: none; border: 1px solid var(--ink-soft); color: var(--ink);
		font: 500 .9375rem var(--body); padding: 8px 14px; cursor: pointer; border-radius: 2px;
	}
	.fp-menu-toggle__bars, .fp-menu-toggle__bars::before, .fp-menu-toggle__bars::after { display: block; width: 18px; height: 1.5px; background: currentColor; position: relative; }
	.fp-menu-toggle__bars::before, .fp-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
	.fp-menu-toggle__bars::before { top: -6px; }
	.fp-menu-toggle__bars::after { top: 6px; }
	.fp-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 0;
		background: var(--ivory); border-bottom: 1px solid rgba(42, 37, 33, .12);
		box-shadow: 0 14px 20px -14px rgba(42, 37, 33, .35);
		padding: 8px var(--gutter) 20px;
	}
	.fp-nav.is-open { display: flex; }
	.fp-nav__list { flex-direction: column; gap: 0; }
	.fp-nav__list a { display: block; padding: 13px 0; border-bottom: 1px solid rgba(31, 26, 21, .1); font-size: 1.0625rem; }
	.fp-nav__wa { margin-top: 16px; text-align: center; padding: 12px; }
	.fp-brand__logo { height: 64px; }
	:root { --header-h: 86px; }
}

/* ---------- Plain mats (cart, checkout, blog thumbnails) ---------- */
.fp-mat { display: block; background: var(--conch); padding: 6px; border: 1px solid var(--line); }

/* ---------- Hung paintings: walnut frame, cream mount, shadow on the wall ----------
   Large works (.fp-frame) hang from a wire on a hook. Grid works sit in a fixed-height
   "wall slot" and each frame follows its painting's own shape (--ar = width / height,
   set on the slot by the theme), so portraits and landscapes share one centre line. */
.fp-frame { display: inline-block; position: relative; margin-top: 70px; max-width: 100%; }
.fp-frame::before { /* picture wire */
	content: ""; position: absolute; left: 18%; right: 18%; top: -62px; height: 64px; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 64' preserveAspectRatio='none'%3E%3Cpath d='M0 64 L50 6 L100 64' fill='none' stroke='%23857A6E' stroke-width='.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.fp-frame::after { /* hook */
	content: ""; position: absolute; left: 50%; top: -60px; width: 9px; height: 9px; margin-left: -4.5px; border-radius: 50%;
	background: radial-gradient(circle at 35% 35%, #CFC6B8, #6E655B); box-shadow: 1px 2px 2px rgba(0, 0, 0, .25);
}
.fp-frame__img {
	--pad: clamp(22px, 3.2vw, 46px);
	--bd: clamp(14px, 1.6vw, 22px);
	display: block; box-sizing: content-box; margin: 0 auto;
	width: auto; height: auto;
	max-width: calc(100% - 2 * (var(--pad) + var(--bd)));
	max-height: calc(64vh - 2 * (var(--pad) + var(--bd)));
	padding: var(--pad); background: var(--conch);
	border: var(--bd) solid; border-color: var(--wood);
	box-shadow:
		inset 0 0 0 1px rgba(0, 0, 0, .35),
		inset 3px 4px 7px rgba(0, 0, 0, .22),
		0 0 0 1px rgba(0, 0, 0, .25),
		0 2px 3px rgba(0, 0, 0, .18),
		8px 26px 34px -10px rgba(45, 32, 20, .42);
}
.fp-card__mat, .fp-tradition .fp-mat, .fp-yantra .fp-mat {
	--slot: clamp(220px, 22vw, 290px);
	container-type: inline-size; /* lets the frame size against the slot's width (cqw) */
	display: flex; align-items: center; justify-content: center;
	height: var(--slot); padding: 0; border: 0; background: none;
}
.fp-card__mat img, .fp-tradition .fp-mat img, .fp-yantra .fp-mat img {
	--pad: clamp(10px, 1.3vw, 18px);
	--bd: clamp(7px, .8vw, 10px);
	--f: calc(2 * (var(--pad) + var(--bd)));
	--w: min(calc(100cqw - var(--f)), calc((var(--slot) - var(--f)) * var(--ar, 1)));
	flex: none; box-sizing: content-box;
	width: var(--w); height: calc(var(--w) / var(--ar, 1)); max-width: none;
	object-fit: cover;
	padding: var(--pad); background: var(--conch);
	border: var(--bd) solid; border-color: var(--wood);
	box-shadow:
		inset 0 0 0 1px rgba(0, 0, 0, .3),
		inset 2px 3px 5px rgba(0, 0, 0, .2),
		0 0 0 1px rgba(0, 0, 0, .22),
		0 1px 2px rgba(0, 0, 0, .15),
		5px 16px 20px -8px rgba(45, 32, 20, .4);
	transition: transform .2s, box-shadow .2s;
}
.fp-card__link:hover .fp-card__mat img, .fp-tradition a:hover .fp-mat img, .fp-yantra a:hover .fp-mat img {
	transform: translateY(-2px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .3), inset 2px 3px 5px rgba(0, 0, 0, .2), 0 0 0 1px rgba(0, 0, 0, .22), 0 1px 2px rgba(0, 0, 0, .15), 7px 22px 26px -8px rgba(45, 32, 20, .45);
}
.fp-hero__art::before, .fp-piece__art::before { /* gallery spotlight */
	content: ""; position: absolute; inset: -60px -12% -40px; z-index: -1; pointer-events: none;
	background: radial-gradient(ellipse 60% 55% at 50% 30%, rgba(255, 252, 244, .9), rgba(255, 252, 244, 0) 70%);
}
@media (max-width: 600px) {
	.fp-card__mat, .fp-tradition .fp-mat, .fp-yantra .fp-mat { --slot: 170px; }
	.fp-card__mat img, .fp-tradition .fp-mat img, .fp-yantra .fp-mat img { --pad: 7px; --bd: 5px; }
	.fp-frame__img { --pad: 16px; --bd: 10px; max-height: calc(58vh - 2 * (var(--pad) + var(--bd))); }
	.fp-frame { margin-top: 56px; }
	.fp-frame::before { top: -50px; height: 52px; }
	.fp-frame::after { top: -48px; }
}

/* ---------- Hero ---------- */
.fp-hero { padding: clamp(40px, 6vw, 80px) 0 var(--space); }
.fp-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.fp-hero__title { font-size: clamp(2.3rem, 1.4rem + 3.4vw, 3.9rem); line-height: 1.08; margin-bottom: .45em; max-width: 14ch; }
.fp-hero__lede { font-size: 1.1875rem; color: var(--ink-soft); max-width: 46ch; }
.fp-hero__art { margin: 0; max-width: 600px; justify-self: end; width: 100%; position: relative; text-align: center; }
.fp-hero__caption { margin-top: 28px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: .9375rem; color: var(--ink-soft); }
.fp-hero__caption a { font-family: var(--head); font-size: 1.15rem; color: var(--ink); text-decoration: none; }
.fp-hero__caption a:hover { color: var(--hingula); }
@media (max-width: 860px) {
	.fp-hero__grid { grid-template-columns: 1fr; }
	.fp-hero__art { justify-self: center; max-width: 480px; }
	.fp-hero__title { max-width: 18ch; }
}

/* ---------- Sections ---------- */
.fp-section { padding: var(--space) 0; }
.fp-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 2rem; flex-wrap: wrap; }
.fp-section__head .fp-h2 { margin: 0; }

.fp-traditions { padding-top: 0; }
.fp-traditions .fp-h2 { margin-bottom: 1.6rem; }
.fp-traditions__list, .fp-yantras { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 3vw, 36px); }
.fp-yantras { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fp-tradition a, .fp-yantra a { text-decoration: none; color: var(--ink); display: block; }
.fp-tradition__name { display: block; font-family: var(--head); font-size: 1.4rem; margin-top: 18px; text-align: center; }
.fp-tradition a:hover .fp-tradition__name, .fp-yantra a:hover .fp-tradition__name { color: var(--hingula); }
.fp-tradition__line { margin: .35rem auto .25rem; color: var(--ink-soft); font-size: .9875rem; line-height: 1.55; text-align: center; max-width: 30ch; }
.fp-tradition__count { margin: 0; font-size: .875rem; color: var(--hingula); text-align: center; }
@media (max-width: 960px) { .fp-traditions__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .fp-yantras { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.fp-tradition__name { font-size: 1.15rem; margin-top: 10px; }
	.fp-tradition__line { font-size: .875rem; }
}

/* ---------- Painting grid & cards ---------- */
.fp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr)); gap: 64px clamp(18px, 2.4vw, 32px); }
.fp-card { display: flex; flex-direction: column; }
.fp-card__link { text-decoration: none; color: var(--ink); display: block; }
.fp-card__title { display: block; font-family: var(--head); font-size: 1.15rem; line-height: 1.3; margin-top: 18px; text-align: center; }
.fp-card__link:hover .fp-card__title { color: var(--hingula); }
.fp-card__meta { margin: 4px 0 0; display: flex; justify-content: center; gap: 14px; font-size: .9375rem; color: var(--ink-soft); }
.fp-card__price { color: var(--ink); font-weight: 500; white-space: nowrap; }
.fp-card__price--sold { color: var(--hingula); font-weight: 400; }
/* Sold works stay fully framed; the "Sold" label marks them. */
@media (max-width: 600px) {
	.fp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 14px; }
	.fp-card__title { font-size: 1rem; margin-top: 12px; }
	.fp-card__meta { flex-direction: column; align-items: center; gap: 0; font-size: .875rem; }
}

/* ---------- Promise strip ---------- */
.fp-promise { color: var(--ink); padding: clamp(48px, 6vw, 72px) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fp-promise__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); }
.fp-promise__h { color: var(--ink); font-size: 1.45rem; margin-bottom: .35em; }
.fp-promise p { margin: 0; color: var(--ink-soft); max-width: 38ch; }
@media (max-width: 760px) { .fp-promise__grid { grid-template-columns: 1fr; } }

/* ---------- Story ---------- */
.fp-story__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(32px, 6vw, 96px); }
.fp-story__text { font-family: var(--head); font-size: clamp(1.25rem, 1.05rem + .6vw, 1.55rem); line-height: 1.45; max-width: 40ch; }
.fp-reading { list-style: none; margin: 0; padding: 0; }
.fp-reading li { border-top: 1px solid rgba(31, 26, 21, .18); }
.fp-reading li:last-child { border-bottom: 1px solid rgba(31, 26, 21, .18); }
.fp-reading a { display: block; padding: 14px 0; color: var(--ink); text-decoration: none; font-size: 1.0625rem; }
.fp-reading a:hover { color: var(--hingula); }
@media (max-width: 760px) { .fp-story__grid { grid-template-columns: 1fr; } }

/* ---------- Listing ---------- */
.fp-listing { padding: clamp(36px, 5vw, 64px) 0 var(--space); }
.fp-listing__head { margin-bottom: 2rem; }
.fp-listing__lede { color: var(--ink-soft); font-size: 1.125rem; max-width: 60ch; }
.fp-listing__desc { color: var(--ink-soft); }
.fp-chips { list-style: none; padding: 0; margin: 1.2rem 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fp-chips a { display: inline-block; padding: 6px 14px; border: 1px solid var(--ink); color: var(--ink); text-decoration: none; font-size: .9375rem; border-radius: 2px; }
.fp-chips a:hover { background: var(--ink); color: var(--conch); }

.fp-filters {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px;
	padding: 14px 0; margin-bottom: 2.4rem;
	border-top: 1px solid rgba(31, 26, 21, .2); border-bottom: 1px solid rgba(31, 26, 21, .2);
}
.fp-filters__count { margin: 0; color: var(--ink-soft); font-size: .9375rem; }
.fp-filters__fields { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.fp-empty { padding: 48px 0; text-align: center; }

.fp-pages { margin-top: 56px; }
.fp-pages .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.fp-pages .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(31, 26, 21, .25); color: var(--ink); text-decoration: none; }
.fp-pages .page-numbers.current { background: var(--ink); color: var(--conch); border-color: var(--ink); }
.fp-pages a.page-numbers:hover { border-color: var(--hingula); color: var(--hingula); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Single painting ---------- */
.fp-piece { padding: clamp(32px, 5vw, 64px) 0 var(--space); }
.fp-piece__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.fp-piece__art { position: sticky; top: calc(var(--header-h) + 8px); text-align: center; }
.fp-frame--piece { cursor: zoom-in; }
.fp-piece__more { list-style: none; padding: 0; margin: 24px 0 0; display: flex; gap: 12px; flex-wrap: wrap; }
.fp-piece__more .fp-mat { padding: 6px; box-shadow: none; }
.fp-piece__more img { width: 84px; height: 84px; object-fit: cover; }
.fp-piece__title { font-size: clamp(2rem, 1.5rem + 2vw, 2.9rem); margin-bottom: .2em; }
.fp-piece__size { margin: 0; color: var(--ink-soft); font-size: 1.0625rem; }
.fp-piece__price { font-family: var(--head); font-size: 2rem; margin: 1.1rem 0 .1rem; }
.fp-piece__price--sold { color: var(--hingula); }
.fp-piece__note { margin: 0; color: var(--ink-soft); font-size: .9875rem; }
.fp-piece__about { margin: 1.6rem 0; font-size: 1.0625rem; }
.fp-piece__policy { font-size: .9375rem; color: var(--ink-soft); }
.fp-facts { margin: 1.8rem 0; padding: 0; border-top: 1px solid rgba(31, 26, 21, .2); }
.fp-facts > div { display: grid; grid-template-columns: 9.5em 1fr; gap: 12px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid rgba(31, 26, 21, .2); }
.fp-facts dt { color: var(--ink-soft); font-size: .9375rem; }
.fp-facts dd { margin: 0; }
@media (max-width: 860px) {
	.fp-piece__grid { grid-template-columns: 1fr; }
	.fp-piece__art { position: relative; top: auto; }
}

/* ---------- Forms ---------- */
.fp-form { margin-top: 1.4rem; }
.fp-form__row { display: grid; gap: 16px; margin-bottom: 16px; }
.fp-form__row--2 { grid-template-columns: 1fr 1fr; }
.fp-form__row--3 { grid-template-columns: 1.2fr 1.2fr .8fr; }
@media (max-width: 640px) { .fp-form__row--2, .fp-form__row--3 { grid-template-columns: 1fr; } }
.fp-field { display: flex; flex-direction: column; gap: 6px; font-size: .9375rem; color: var(--ink-soft); }
.fp-field input, .fp-field select, .fp-field textarea {
	font: 400 1.0625rem/1.4 var(--body); color: var(--ink);
	background: var(--conch); border: 1px solid rgba(31, 26, 21, .4); border-radius: 2px;
	padding: 11px 12px; width: 100%; min-height: 46px;
}
.fp-field textarea { resize: vertical; }
.fp-field input, .fp-field select { height: 48px; }
.fp-field--inline input, .fp-field--inline select { height: 40px; }
.fp-field input:focus, .fp-field select:focus, .fp-field textarea:focus { outline: 2px solid var(--hingula); outline-offset: 0; border-color: var(--hingula); }
.fp-field--inline { flex-direction: row; align-items: center; gap: 10px; }
.fp-field--inline input, .fp-field--inline select { width: auto; min-height: 40px; padding: 6px 10px; font-size: .9875rem; }
.fp-check { display: inline-flex; align-items: center; gap: 8px; font-size: .9375rem; color: var(--ink-soft); cursor: pointer; }
.fp-check input { width: 18px; height: 18px; accent-color: var(--hingula); }
.fp-form__submit { margin: 22px 0 10px; }
.fp-form__fine { font-size: .875rem; color: var(--ink-soft); }
.cf-turnstile { margin: 8px 0 4px; }
.fp-alert { border-left: 3px solid var(--hingula); background: var(--conch); padding: 14px 18px; margin: 1.2rem 0; }
.fp-alert p { margin: 0 0 .4em; }
.fp-alert ul { margin: 0; padding-left: 1.1em; }
.fp-alert--ok { border-left-color: #2f6b3a; }
.fp-search { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 1.2rem 0 2rem; }
.fp-search input { min-width: 240px; }

/* ---------- Buy ---------- */
.fp-buy { padding-top: clamp(36px, 5vw, 64px); }
.fp-buy__grid { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.fp-buy__summary .fp-mat img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.fp-buy__title { font-size: 1.4rem; margin: 16px 0 2px; }
.fp-buy__size { margin: 0; color: var(--ink-soft); }
.fp-buy__total { margin: 18px 0 0; border-top: 1px solid rgba(31, 26, 21, .2); }
.fp-buy__total > div { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid rgba(31, 26, 21, .2); }
.fp-buy__total dt { color: var(--ink-soft); }
.fp-buy__total dd { margin: 0; }
.fp-buy__sum dt, .fp-buy__sum dd { color: var(--ink); font-weight: 500; }
.fp-buy__lede { color: var(--ink-soft); max-width: 58ch; }
.fp-buy__form { max-width: 680px; }
@media (max-width: 860px) {
	.fp-buy__grid { grid-template-columns: 1fr; }
	.fp-buy__summary { display: grid; grid-template-columns: 110px 1fr; gap: 0 16px; align-items: start; }
	.fp-buy__summary .fp-mat { grid-row: span 3; padding: 6px; box-shadow: none; }
	.fp-buy__title { margin-top: 0; font-size: 1.2rem; }
	.fp-buy__total { grid-column: 1 / -1; }
}
.fp-order__ref { margin-top: 2rem; color: var(--ink-soft); font-size: .9375rem; }
.fp-piece__ask { margin: -.4rem 0 0; font-size: .9875rem; color: var(--ink-soft); }

/* ---------- Cart & checkout ---------- */
.fp-cart { padding-top: clamp(36px, 5vw, 64px); }
.fp-cart__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(32px, 5vw, 72px); align-items: start; margin-top: 1rem; }
.fp-cart__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(31, 26, 21, .2); }
.fp-cart__item { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; grid-template-areas: "thumb info price" "thumb remove remove"; gap: 4px 20px; padding: 18px 0; border-bottom: 1px solid rgba(31, 26, 21, .2); }
.fp-cart__thumb { grid-area: thumb; padding: 5px; box-shadow: none; align-self: start; }
.fp-cart__thumb img { width: 84px; height: 84px; object-fit: contain; }
.fp-cart__info { grid-area: info; display: flex; flex-direction: column; gap: 2px; }
.fp-cart__title { font-family: var(--head); font-size: 1.25rem; color: var(--ink); text-decoration: none; }
.fp-cart__title:hover { color: var(--hingula); }
.fp-cart__meta { color: var(--ink-soft); font-size: .9375rem; }
.fp-cart__gone { color: var(--hingula); font-size: .9375rem; }
.fp-cart__price { grid-area: price; font-weight: 500; white-space: nowrap; }
.fp-cart__remove { grid-area: remove; margin: 0; }
.fp-cart__item.is-sold .fp-cart__thumb img { opacity: .5; }
.fp-cart__item.is-sold .fp-cart__price { color: var(--hingula); font-weight: 400; }
.fp-cart__summary { position: sticky; top: calc(var(--header-h) + 16px); background: var(--conch); padding: 22px 24px; border: 1px solid var(--line); }
.fp-cart__summary .fp-buy__total { margin-top: 0; }
.fp-cart__fine { font-size: .9375rem; color: var(--ink-soft); margin: .6rem 0 0; }
.fp-empty--left { text-align: left; padding: 8px 0 24px; }
@media (max-width: 860px) {
	.fp-cart__grid { grid-template-columns: 1fr; }
	.fp-cart__summary { position: static; }
	.fp-cart__item { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 2px 14px; }
	.fp-cart__thumb img { width: 60px; height: 60px; }
	.fp-cart__title { font-size: 1.1rem; }
}

.fp-checkout__items { list-style: none; margin: 14px 0 0; padding: 0; }
.fp-checkout__items li { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px solid rgba(31, 26, 21, .15); }
.fp-checkout__thumb { padding: 4px; box-shadow: none; }
.fp-checkout__thumb img { width: 54px; height: 54px; object-fit: contain; }
.fp-checkout__name { display: flex; flex-direction: column; line-height: 1.35; }
.fp-checkout__name small { color: var(--ink-soft); font-size: .875rem; }
.fp-checkout__price { white-space: nowrap; }
.fp-checkout__summary .fp-buy__title { margin-top: 0; }
@media (max-width: 860px) { .fp-checkout__summary { display: block; } }
.fp-checkout__summary { background: var(--conch); padding: 20px 22px; border: 1px solid var(--line); }
.fp-order__items { margin-top: 2rem; border-top: 1px solid rgba(31, 26, 21, .2); }

/* ---------- Contact ---------- */
.fp-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.fp-contact__form { background: var(--conch); padding: clamp(22px, 3vw, 36px); border: 1px solid var(--line); }
.fp-facts--contact > div { grid-template-columns: 6em 1fr; }
@media (max-width: 860px) { .fp-contact__grid { grid-template-columns: 1fr; } }

/* ---------- Blog list ---------- */
.fp-posts { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.fp-post-item { padding: 22px 0; border-bottom: 1px solid rgba(31, 26, 21, .18); }
.fp-post-item a { display: flex; align-items: center; gap: 18px; color: var(--ink); text-decoration: none; }
.fp-post-item__img { padding: 5px; box-shadow: none; flex: none; }
.fp-post-item__img img { width: 72px; height: 72px; object-fit: cover; }
.fp-post-item__title { font-family: var(--head); font-size: 1.45rem; }
.fp-post-item a:hover .fp-post-item__title { color: var(--hingula); }
.fp-post-item__excerpt { margin: .5rem 0 0; color: var(--ink-soft); }
.fp-page__img { margin: 0 0 2rem; }

/* ---------- Footer ---------- */
.fp-footer { background: var(--neela); color: rgba(250, 245, 230, .86); margin-top: 0; }
.fp-footer a { color: var(--conch); text-decoration-color: rgba(250, 245, 230, .4); }
.fp-footer a:hover { color: #E3D6BF; }
.fp-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.fp-footer__name { font-family: var(--head); font-size: 1.8rem; color: var(--conch); margin: 0 0 .4rem; }
.fp-footer__about p:last-child { max-width: 36ch; }
.fp-footer__h { font-family: var(--body); font-size: 1rem; font-weight: 500; color: #CDBFA8; margin-bottom: .8rem; }
.fp-footer address { font-style: normal; margin-bottom: 1rem; }
.fp-footer__list { list-style: none; margin: 0; padding: 0; }
.fp-footer__list li { margin-bottom: .45rem; }
.fp-footer__list a { text-decoration: none; }
.fp-footer__legal { padding-bottom: 28px; font-size: .875rem; }
.fp-footer__legal p { margin: 0; padding-top: 18px; border-top: 1px solid rgba(250, 245, 230, .18); }
@media (max-width: 760px) { .fp-footer__grid { grid-template-columns: 1fr; gap: 28px; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Keep the spotlight and frame shadows from widening the page on small screens. */
.fp-hero, .fp-piece { overflow-x: clip; }
