/*
Theme Name: Store Theme
Description: Custom WooCommerce theme for a furniture & home décor store. Brand name, logo and contact details come from Settings → Brand & Store and the Customizer, so the store can be rebranded without editing templates.
Version: 1.0.0
Requires PHP: 8.0
Text Domain: fx-theme
*/

/* ---------- Tokens ---------- */
:root {
	--bg: #f6f2ec;
	--surface: #fffdf9;
	--tint: #efe8de;
	--sand: #e4d9ca;
	--ink: #1f1c18;
	--ink-2: #4a443c;
	--muted: #7a7166;
	--line: #ddd3c5;
	--accent: #9b5a35;
	--accent-ink: #7d4426;
	--sage: #6f7b66;
	--ok: #3f6b48;
	--err: #a23b2a;
	--serif: "Fraunces", "Iowan Old Style", Georgia, serif;
	--sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
	--radius: 4px;
	--gutter: clamp(16px, 4vw, 48px);
	--max: 1440px;
	--header-h: 76px;
	--shadow: 0 10px 30px -12px rgba(31, 28, 24, .25);
	--shadow-pop: 0 22px 48px -20px rgba(31, 28, 24, .38), 0 2px 8px -2px rgba(31, 28, 24, .08);
	--radius-md: 8px;
	--ring: 0 0 0 3px rgba(155, 90, 53, .16);
	--field-h: 48px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-color: rgba(31, 28, 24, .3); text-underline-offset: 3px; }
a:hover { color: var(--accent); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 8px; left: 8px; width: auto; height: auto; clip: auto; z-index: 999; background: var(--ink); color: #fff; padding: 10px 16px; }
.fx-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
[hidden] { display: none !important; }
.fx-container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.fx-main { min-height: 50vh; }
.fx-small { font-size: .85rem; color: var(--muted); }

/* ---------- Buttons ---------- */
.fx-btn, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 12px 26px;
	background: var(--ink); color: #fff;
	border: 1px solid var(--ink); border-radius: var(--radius);
	font-family: var(--sans); font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	text-decoration: none; cursor: pointer; line-height: 1.2;
	transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.fx-btn:hover, .woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover, .woocommerce #respond input#submit:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce input.button.alt { background: var(--ink); color: #fff; border-color: var(--ink); }
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: var(--accent); border-color: var(--accent); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled, .woocommerce button.button.alt.disabled, .woocommerce button.button:disabled[disabled] { background: var(--ink); color: #fff; opacity: .45; padding: 12px 26px; }
.fx-btn--outline { background: transparent; color: var(--ink); }
.fx-btn--outline:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.fx-btn--light { background: #fff; color: var(--ink); border-color: #fff; }
.fx-btn--light:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.fx-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .8); }
.fx-btn--ghost-light:hover { background: #fff; color: var(--ink); border-color: #fff; }
.fx-btn--dark { background: var(--accent); border-color: var(--accent); }
.fx-btn--dark:hover { background: var(--accent-ink); border-color: var(--accent-ink); }
.fx-btn--small { min-height: 40px; padding: 8px 16px; font-size: .74rem; }
.fx-link { font-size: .9rem; text-decoration: underline; }
.fx-link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .9rem; text-decoration: none; letter-spacing: .02em; }
.fx-link-arrow .fx-icon { transition: transform .25s var(--ease); }
.fx-link-arrow:hover .fx-icon { transform: translateX(4px); }
.fx-icon-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: none; border: 0; border-radius: 50%; cursor: pointer; color: var(--ink); text-decoration: none; transition: background .2s; }
.fx-icon-btn:hover { background: var(--tint); color: var(--ink); }
.fx-eyebrow { display: inline-block; margin: 0 0 12px; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.fx-eyebrow--light { color: #f3e3d3; }

/* ---------- Announcement ---------- */
.fx-announce { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; padding: 0 var(--gutter); background: var(--ink); color: #f4ede4; font-size: .78rem; letter-spacing: .03em; }
.fx-announce__track { position: relative; flex: 1; height: 38px; overflow: hidden; }
.fx-announce__msg { position: absolute; inset: 0; display: flex; align-items: center; margin: 0; opacity: 0; transform: translateY(8px); transition: opacity .5s, transform .5s; }
.fx-announce__msg.is-active { opacity: 1; transform: none; }
.fx-announce__util { display: flex; align-items: center; gap: 18px; }
.fx-announce__util a { color: inherit; text-decoration: none; }
.fx-announce__util a:hover { text-decoration: underline; color: #fff; }
.fx-announce { position: relative; z-index: 55; }

/* ---------- Header ---------- */
.fx-header { position: sticky; top: 0; z-index: 50; background: rgba(246, 242, 236, .96); backdrop-filter: saturate(1.2) blur(8px); border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s; }
.fx-header.is-stuck { border-color: var(--line); box-shadow: 0 6px 20px -16px rgba(0, 0, 0, .4); }
.fx-header__inner { display: flex; align-items: center; gap: 24px; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); height: var(--header-h); }
.fx-header__burger { display: none; }
.fx-header__logo { flex: 0 0 auto; }
.fx-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); line-height: 1; --mark-accent: var(--accent); }
.fx-logo:hover { color: var(--ink); }
.fx-logo__mark { flex: 0 0 auto; width: 30px; height: 36px; overflow: visible; }
.fx-mark__arch, .fx-mark__base { stroke: currentColor; }
.fx-mark__letter { stroke: var(--mark-accent); }
.fx-mark__letter-text { fill: var(--mark-accent); }
.fx-mark__inner { stroke: currentColor; opacity: .38; transition: opacity .3s var(--ease); }
.fx-logo:hover .fx-mark__inner { opacity: .7; }
.fx-logo__words { display: inline-flex; flex-direction: column; align-items: flex-start; }
.fx-logo__name { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; margin-right: -.16em; }
.fx-logo__tag { margin-top: 6px; font-size: .55rem; font-weight: 600; letter-spacing: .36em; text-transform: uppercase; color: var(--muted); }
.fx-logo__img { max-height: 52px; width: auto; }
.fx-nav { flex: 1; display: flex; justify-content: center; }
.fx-nav__list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.fx-nav__item { position: static; }
.fx-nav__list > .fx-nav__item > .fx-nav__link { display: flex; align-items: center; height: var(--header-h); padding: 0 12px; font-size: .86rem; font-weight: 600; letter-spacing: .02em; text-decoration: none; position: relative; }
.fx-nav__list > .fx-nav__item > .fx-nav__link::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 22px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.fx-nav__list > .fx-nav__item:hover > .fx-nav__link::after, .fx-nav__list > .fx-nav__item.is-current > .fx-nav__link::after, .fx-nav__list > .fx-nav__item.is-open > .fx-nav__link::after { transform: scaleX(1); }
.fx-mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-top: 1px solid var(--line); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .25s, transform .25s, visibility .25s; }
.fx-nav__item.has-mega:hover > .fx-mega, .fx-nav__item.has-mega:focus-within > .fx-mega, .fx-nav__item.is-open > .fx-mega { opacity: 1; visibility: visible; transform: none; }
.fx-mega__inner { display: grid; grid-template-columns: 1fr 300px; gap: 48px; max-width: var(--max); margin: 0 auto; padding: 36px var(--gutter) 40px; }
.fx-mega__list { columns: 3; column-gap: 32px; list-style: none; margin: 0; padding: 0; }
.fx-mega__list .fx-nav__item { break-inside: avoid; }
.fx-mega__list .fx-nav__link { display: block; padding: 8px 0; font-family: var(--serif); font-size: 1.15rem; text-decoration: none; }
.fx-mega__feature { position: relative; display: block; overflow: hidden; border-radius: var(--radius); text-decoration: none; color: #fff; aspect-ratio: 4 / 3; }
.fx-mega__feature img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.fx-mega__feature:hover img { transform: scale(1.04); }
.fx-mega__feature span { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 8px; padding: 40px 18px 16px; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); font-weight: 600; font-size: .9rem; }
.fx-header__icons { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.fx-cart-count, .fx-wish-count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent); color: #fff; font-size: .66rem; font-weight: 700; line-height: 18px; text-align: center; }
.fx-cart-count[data-count="0"] { display: none; }

/* Search panel */
.fx-search { position: fixed; inset: 0 0 auto 0; z-index: 70; background: var(--surface); box-shadow: var(--shadow); padding: 28px var(--gutter) 24px; animation: fx-drop .3s var(--ease); }
.fx-search__inner { display: flex; align-items: center; gap: 12px; max-width: 980px; margin: 0 auto; }
.fx-search__form { flex: 1; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--ink); padding-bottom: 8px; }
.fx-search__form input[type=search] { flex: 1; min-width: 0; border: 0; background: none; font-family: var(--serif); font-size: clamp(1.2rem, 3vw, 1.8rem); padding: 8px 0; outline: none; }
.fx-search__popular { display: flex; flex-wrap: wrap; gap: 8px 16px; max-width: 980px; margin: 16px auto 0; font-size: .85rem; color: var(--muted); }
.fx-search__popular a { color: var(--ink); }

/* Drawer */
.fx-drawer { position: fixed; inset: 0; z-index: 80; }
.fx-drawer__panel { position: absolute; top: 0; left: 0; bottom: 0; width: min(380px, 88vw); background: var(--surface); overflow-y: auto; padding: 16px 20px 32px; animation: fx-slide .35s var(--ease); }
.fx-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.fx-drawer__head .fx-logo__name { font-size: 1.15rem; }
.fx-drawer__head .fx-logo__mark { width: 24px; height: 29px; }
.fx-drawer__head .fx-logo { gap: 10px; }
.fx-mnav, .fx-mnav .sub-menu { list-style: none; margin: 0; padding: 0; }
.fx-mnav > li { border-bottom: 1px solid var(--line); }
.fx-mnav > li > a { display: flex; justify-content: space-between; padding: 14px 0; font-family: var(--serif); font-size: 1.25rem; text-decoration: none; }
.fx-mnav .menu-item-has-children > a::after { content: "+"; font-family: var(--sans); color: var(--muted); }
.fx-mnav .menu-item-has-children.is-open > a::after { content: "–"; }
.fx-mnav .sub-menu { display: none; padding: 0 0 12px 12px; }
.fx-mnav .is-open > .sub-menu { display: block; }
.fx-mnav .sub-menu a { display: block; padding: 8px 0; text-decoration: none; color: var(--ink-2); }
.fx-drawer__links { display: grid; gap: 4px; margin: 20px 0; }
.fx-drawer__links a { display: flex; align-items: center; gap: 12px; padding: 10px 0; text-decoration: none; font-weight: 500; }
.fx-drawer .fx-currency { padding-top: 8px; border-top: 1px solid var(--line); }
.fx-drawer .fx-currency::before { content: "Currency"; display: block; margin: 12px 0 8px; font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.fx-overlay { position: fixed; inset: 0; z-index: 60; background: rgba(20, 18, 15, .45); animation: fx-fade .3s; }
@keyframes fx-fade { from { opacity: 0; } }
@keyframes fx-slide { from { transform: translateX(-100%); } }
@keyframes fx-slide-r { from { transform: translateX(100%); } }
@keyframes fx-drop { from { transform: translateY(-20px); opacity: 0; } }

/* ---------- Sections ---------- */
.fx-section { padding: clamp(56px, 8vw, 104px) 0; }
.fx-section--tint { background: var(--tint); }
.fx-section--flush { padding-top: 0; }
.fx-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(24px, 4vw, 44px); }
.fx-section__title { font-size: clamp(1.8rem, 3.6vw, 2.8rem); margin: 0; }

/* Hero */
.fx-hero { position: relative; min-height: min(86vh, 860px); display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: #3b342c; }
.fx-hero__media, .fx-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fx-hero__media img { animation: fx-zoom 14s var(--ease) forwards; }
@keyframes fx-zoom { from { transform: scale(1.08); } }
.fx-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .05) 30%, rgba(20, 16, 12, .62)); }
.fx-hero__content { position: relative; z-index: 1; padding-bottom: clamp(48px, 9vw, 110px); }
.fx-hero__title { max-width: 14ch; font-size: clamp(2.6rem, 7vw, 5.6rem); font-weight: 300; line-height: 1.02; margin-bottom: 20px; }
.fx-hero__text { max-width: 46ch; font-size: clamp(1rem, 1.6vw, 1.15rem); color: #f1e9df; }
.fx-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* USP */
.fx-usp { border-bottom: 1px solid var(--line); background: var(--surface); }
.fx-usp__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.fx-usp__item { display: flex; align-items: center; gap: 14px; padding: 22px 16px; font-size: .88rem; }
.fx-usp__item + .fx-usp__item { border-left: 1px solid var(--line); }
.fx-usp__item strong { display: block; font-weight: 600; }
.fx-usp__item span { color: var(--muted); font-size: .8rem; word-break: break-word; }
.fx-usp__item .fx-icon { flex: 0 0 auto; color: var(--accent); }

/* Category tiles */
.fx-cats { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(170px, 1fr); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: thin; }
.fx-cat { scroll-snap-align: start; text-decoration: none; }
.fx-cat__img { display: block; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 5; background: var(--sand); }
.fx-cat__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.fx-cat:hover .fx-cat__img img { transform: scale(1.05); }
.fx-cat__name { display: block; margin-top: 12px; font-family: var(--serif); font-size: 1.1rem; }

/* Collections */
.fx-collections { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 18px; }
.fx-collection { position: relative; display: block; overflow: hidden; border-radius: var(--radius); min-height: 460px; color: #fff; text-decoration: none; background: #3b342c; }
.fx-collection img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.fx-collection:hover img { transform: scale(1.04); }
.fx-collection:hover { color: #fff; }
.fx-collection::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(15, 12, 9, .7)); }
.fx-collection__body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 28px; display: grid; gap: 6px; }
.fx-collection__title { font-family: var(--serif); font-size: 1.9rem; }
.fx-collection__text { max-width: 34ch; color: #efe5da; font-size: .92rem; }
.fx-collection__count { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Room feature */
.fx-room { display: grid; grid-template-columns: 1.25fr 1fr; background: var(--surface); }
.fx-room__media img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.fx-room__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(32px, 6vw, 96px); }
.fx-room__title { font-size: clamp(2rem, 3.6vw, 3rem); }
.fx-room__body p { color: var(--ink-2); max-width: 46ch; }
.fx-rooms2 { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); }
.fx-roomcard__media { display: block; overflow: hidden; border-radius: var(--radius); margin-bottom: 22px; aspect-ratio: 3 / 2; }
.fx-roomcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.fx-roomcard:hover .fx-roomcard__media img { transform: scale(1.04); }
.fx-roomcard__title { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.fx-roomcard p { color: var(--ink-2); max-width: 52ch; }

/* Promos */
.fx-promos { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.fx-promo { position: relative; display: block; min-height: 420px; overflow: hidden; border-radius: var(--radius); color: #fff; text-decoration: none; background: #3b342c; }
.fx-promo:hover { color: #fff; }
.fx-promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.fx-promo:hover img { transform: scale(1.04); }
.fx-promo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15, 12, 9, .62), transparent 70%); }
.fx-promo__body { position: absolute; z-index: 1; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 10px; padding: clamp(24px, 5vw, 56px); max-width: 520px; }
.fx-promo__title { font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.1; }
.fx-promo__text { color: #efe5da; margin-bottom: 8px; }

/* Reviews */
.fx-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.fx-review { margin: 0; padding: 32px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-direction: column; gap: 16px; }
.fx-review blockquote { margin: 0; font-family: var(--serif); font-size: 1.15rem; line-height: 1.5; }
.fx-review blockquote p { margin: 0; }
.fx-review figcaption { margin-top: auto; font-size: .85rem; color: var(--muted); }
.fx-review figcaption a { color: var(--ink); }
.fx-review-note { margin: 18px 0 0; font-size: .8rem; color: var(--muted); font-style: italic; }

/* Stars */
.fx-stars { position: relative; display: inline-block; width: 82px; height: 15px; vertical-align: middle; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16.4' height='15' viewBox='0 0 24 22'%3E%3Cpath d='m12 1 3.1 6.6 7.1.9-5.2 5 1.3 7.2L12 17.2l-6.3 3.5L7 13.5l-5.2-5 7.1-.9z' fill='none' stroke='%239b5a35' stroke-width='1.6'/%3E%3C/svg%3E") repeat-x; background-size: 16.4px 15px; }
.fx-stars__fill { position: absolute; inset: 0 auto 0 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16.4' height='15' viewBox='0 0 24 22'%3E%3Cpath d='m12 1 3.1 6.6 7.1.9-5.2 5 1.3 7.2L12 17.2l-6.3 3.5L7 13.5l-5.2-5 7.1-.9z' fill='%239b5a35' stroke='%239b5a35' stroke-width='1.6'/%3E%3C/svg%3E") repeat-x; background-size: 16.4px 15px; }
.fx-stars__count { margin-left: 6px; font-size: .8rem; color: var(--muted); }

/* Story */
.fx-story { display: grid; grid-template-columns: 1fr 1.1fr; align-items: stretch; background: var(--ink); color: #efe7dc; }
.fx-story__media img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; }
.fx-story__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(32px, 7vw, 110px); }
.fx-story__title { font-size: clamp(2rem, 3.6vw, 3.2rem); color: #fff; }
.fx-story .fx-eyebrow { color: #e0b58f; }
.fx-story .fx-btn--outline { color: #fff; border-color: rgba(255, 255, 255, .6); margin-top: 12px; }
.fx-story .fx-btn--outline:hover { background: #fff; color: var(--ink); }
.fx-ticks { list-style: none; margin: 8px 0 20px; padding: 0; display: grid; gap: 10px; }
.fx-ticks li { position: relative; padding-left: 28px; }
.fx-ticks li::before { content: ""; position: absolute; left: 0; top: .45em; width: 14px; height: 8px; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); color: #e0b58f; }

/* Gallery strip */
.fx-gallery-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.fx-gallery-strip figure { margin: 0; scroll-snap-align: start; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius); }
.fx-gallery-strip img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Product grid & cards ---------- */
.woocommerce ul.products, ul.products.fx-grid { display: grid; gap: clamp(28px, 3vw, 40px) clamp(14px, 2vw, 24px); margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.fx-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fx-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products li.product.fx-card { width: auto; margin: 0; float: none; padding: 0; text-align: left; }
.fx-card__media { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--sand); aspect-ratio: 4 / 5; }
.fx-card__imglink { display: block; height: 100%; }
.fx-card__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; transition: opacity .5s var(--ease), transform .8s var(--ease); margin: 0 !important; }
.fx-card__img--alt { opacity: 0; }
.fx-card:hover .fx-card__img--alt { opacity: 1; }
.fx-card:hover .fx-card__img { transform: scale(1.03); }
.fx-card__badges { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; z-index: 2; }
.fx-badge { display: inline-block; padding: 5px 9px; background: var(--surface); color: var(--ink); font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; border-radius: 2px; }
.fx-badge--sale { background: var(--accent); color: #fff; }
.fx-badge--muted { background: var(--ink); color: #fff; }
.fx-wish-btn { position: absolute; top: 10px; right: 10px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255, 253, 249, .92); cursor: pointer; color: var(--ink); transition: transform .2s, color .2s; }
.fx-wish-btn:hover { transform: scale(1.08); color: var(--accent); }
.fx-wish-btn[aria-pressed="true"] { color: var(--accent); }
.fx-wish-btn[aria-pressed="true"] .fx-icon { fill: currentColor; }
.fx-card__quick { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .3s var(--ease); }
.fx-card:hover .fx-card__quick, .fx-card:focus-within .fx-card__quick { opacity: 1; transform: none; }
.woocommerce ul.products li.product .fx-card__quick .button { width: 100%; margin: 0; background: rgba(255, 253, 249, .95); color: var(--ink); border-color: transparent; }
.woocommerce ul.products li.product .fx-card__quick .button:hover { background: var(--ink); color: #fff; }
.woocommerce ul.products li.product .fx-card__quick .added_to_cart { display: block; margin-top: 6px; padding: 6px; text-align: center; background: var(--surface); font-size: .78rem; font-weight: 600; border-radius: 2px; }
.woocommerce a.button.loading::after { top: auto; right: 12px; }
.fx-card__body { padding-top: 14px; }
.fx-card__cat { margin: 0 0 4px; font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.fx-card__title { margin: 0 0 6px; font-family: var(--serif); font-size: 1.12rem; line-height: 1.3; }
.fx-card__title a { text-decoration: none; }
.fx-card__price, .woocommerce ul.products li.product .price { color: var(--ink); font-size: .95rem; font-weight: 600; }
.fx-card__price del, .fx-pdp__price del, .woocommerce .price del { color: var(--muted); font-weight: 400; opacity: 1; margin-right: 6px; }
.fx-card__price ins, .fx-pdp__price ins { text-decoration: none; color: var(--accent); }
.fx-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; min-height: 16px; }
.fx-swatches { display: inline-flex; align-items: center; gap: 4px; }
.fx-swatch { display: inline-block; width: 14px; height: 14px; border-radius: 50%; background: var(--sw, #ccc); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); flex: 0 0 auto; }
.fx-swatches__more { font-size: .75rem; color: var(--muted); margin-left: 2px; }
.fx-card__rating .fx-stars { width: 66px; height: 12px; background-size: 13.2px 12px; }
.fx-card__rating .fx-stars__fill { background-size: 13.2px 12px; }
.fx-card__rating .fx-stars__count { font-size: .72rem; }

/* ---------- Shop archive ---------- */
.fx-breadcrumb, .woocommerce .woocommerce-breadcrumb { margin: 0 0 16px; font-size: .78rem; color: var(--muted); }
.fx-breadcrumb a, .woocommerce .woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
.fx-breadcrumb a:hover { color: var(--ink); text-decoration: underline; }
.fx-breadcrumb .sep { margin: 0 8px; opacity: .6; }
.fx-shophead { position: relative; padding: clamp(32px, 6vw, 72px) 0 clamp(28px, 4vw, 48px); background: var(--tint); }
.fx-shophead--img { color: #fff; background: #3b342c; min-height: 340px; display: flex; align-items: flex-end; }
.fx-shophead--img .fx-breadcrumb, .fx-shophead--img .woocommerce-breadcrumb { color: #eadfd3 !important; }
.fx-shophead__media, .fx-shophead__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fx-shophead--img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .1), rgba(15, 12, 9, .66)); }
.fx-shophead__inner { position: relative; z-index: 1; }
.fx-shophead__title { font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; margin: 0 0 10px; }
.fx-shophead__desc { max-width: 60ch; font-size: 1rem; }
.fx-shophead--img .fx-shophead__desc { color: #f1e9df; }
.fx-shophead__desc p:last-child { margin: 0; }
.fx-chips { border-bottom: 1px solid var(--line); background: var(--surface); overflow-x: auto; scrollbar-width: none; }
.fx-chips::-webkit-scrollbar { display: none; }
.fx-chips__inner { display: flex; gap: 8px; padding-top: 14px; padding-bottom: 14px; width: max-content; min-width: 100%; }
.fx-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; font-weight: 500; text-decoration: none; white-space: nowrap; background: var(--bg); }
.fx-chip span { color: var(--muted); font-size: .74rem; }
.fx-chip:hover, .fx-chip.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.fx-chip:hover span, .fx-chip.is-active span { color: #d8cfc4; }
.fx-shop { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); padding-top: 36px; padding-bottom: 80px; }
.fx-filters__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.fx-filters__head h2 { font-size: 1.4rem; margin: 0; }
.fx-filters__close { display: none; }
.fx-fgroup { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 18px 0 20px; min-width: 0; }
.fx-fgroup__title { display: block; width: 100%; padding: 0; margin-bottom: 12px; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fx-fopts, .fx-price-inputs { width: 100%; }
.fx-price-inputs { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.fx-price-inputs label { position: relative; flex: 1; }
.fx-price-inputs__sym { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: .8rem; color: var(--muted); pointer-events: none; }
.fx-price-inputs input { width: 100%; padding: 10px 8px 10px 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); font-size: .88rem; -moz-appearance: textfield; }
.fx-price-inputs input::-webkit-outer-spin-button, .fx-price-inputs input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fx-fopts { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.fx-fopts.is-collapsed .fx-more-item { display: none; }
.fx-showmore { margin-top: 8px; padding: 4px 0; background: none; border: 0; font: 600 .8rem var(--sans); color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fx-showmore:hover { color: var(--ink); }
.fx-fopts label:hover::before { border-color: var(--ink-2); }
.fx-fopts li { position: relative; }
.fx-fopts input { position: absolute; opacity: 0; width: 18px; height: 18px; left: 0; top: 9px; margin: 0; }
.fx-fopts label { display: flex; align-items: center; gap: 10px; padding: 7px 0 7px 28px; cursor: pointer; font-size: .9rem; position: relative; }
.fx-fopts label::before { content: ""; position: absolute; left: 0; top: 50%; width: 18px; height: 18px; margin-top: -9px; border: 1px solid #b9ad9d; border-radius: 3px; background: var(--surface); transition: background .15s, border-color .15s; }
.fx-fopts input:checked + label::before { background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat center; border-color: var(--ink); }
.fx-fopts input:focus-visible + label::before { outline: 2px solid var(--accent); outline-offset: 2px; }
.fx-fopts__name { flex: 1; }
.fx-fopts__count { font-size: .76rem; color: var(--muted); }
.fx-filterform__actions { display: flex; align-items: center; gap: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.js .fx-filterform__actions .fx-btn { display: none; }
.fx-toolbar { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.fx-toolbar__filter { display: none; }
.woocommerce .fx-toolbar .woocommerce-result-count { margin: 0; float: none; font-size: .86rem; color: var(--muted); flex: 1; }
.woocommerce .fx-toolbar .woocommerce-ordering { margin: 0; float: none; }
.woocommerce-ordering select, .fx-select { appearance: none; padding: 10px 36px 10px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231f1c18' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 12px center; font-size: .86rem; cursor: pointer; }
.fx-active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; }
.fx-active__chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px 6px 12px; background: var(--ink); color: #fff; border-radius: 999px; font-size: .8rem; text-decoration: none; }
.fx-active__chip:hover { background: var(--accent); color: #fff; }
.fx-empty { padding: 64px 24px; text-align: center; background: var(--surface); border: 1px dashed var(--line); border-radius: var(--radius); }
.woocommerce nav.woocommerce-pagination { margin-top: 56px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: var(--radius); font-size: .9rem; background: var(--surface); }
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---------- Product page ---------- */
.fx-pdp-wrap { padding-top: 24px; }
.fx-pdp { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.fx-gallery { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; position: sticky; top: calc(var(--header-h) + 16px); }
.fx-gallery__main { grid-column: 2; grid-row: 1; position: relative; aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--radius); background: var(--sand); }
.fx-gallery__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .45s var(--ease); }
.fx-gallery__slide.is-active { opacity: 1; z-index: 1; }
.fx-gallery__slide a { display: block; height: 100%; cursor: zoom-in; }
.fx-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
.fx-gallery__thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; }
.fx-gallery__thumb { padding: 0; border: 1px solid transparent; border-radius: var(--radius); overflow: hidden; cursor: pointer; background: none; aspect-ratio: 4 / 5; opacity: .65; transition: opacity .2s, border-color .2s; }
.fx-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.fx-gallery__thumb.is-active, .fx-gallery__thumb:hover { opacity: 1; border-color: var(--ink); }
.fx-pdp__summary, .woocommerce div.product div.summary.fx-pdp__summary { padding-top: 4px; width: auto; float: none; margin: 0; }
.woocommerce div.product .fx-gallery__thumb img, .fx-gallery__thumb img { display: block; height: 100%; }
.fx-pdp__crumbs { margin-bottom: 8px; }
.fx-pdp__title { font-size: clamp(2rem, 3.4vw, 2.8rem); font-weight: 300; margin: 0 0 12px; }
.fx-pdp__rating { display: inline-flex; align-items: center; margin-bottom: 14px; text-decoration: none; }
.fx-pdp__price { font-size: 1.45rem; font-weight: 500; margin-bottom: 18px; }
.fx-pdp__price .woocommerce-Price-amount { font-weight: 600; }
.fx-pdp__short { color: var(--ink-2); margin-bottom: 18px; }
.fx-pdp__facts { list-style: none; margin: 0 0 22px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; gap: 10px; font-size: .9rem; }
.fx-pdp__facts li { display: flex; gap: 10px; align-items: flex-start; }
.fx-pdp__facts .fx-icon { color: var(--accent); flex: 0 0 auto; margin-top: 2px; }
.woocommerce div.product form.cart { margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 4px; border: 0; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; line-height: 1.4; }
.woocommerce div.product form.cart .variations th label { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 10px; display: block; }
.woocommerce div.product form.cart .variations select { width: 100%; max-width: 360px; appearance: none; padding: 12px 36px 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231f1c18' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 12px center; margin: 0; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 16px; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 8px; font-size: .8rem; }
.fx-has-swatches select { position: absolute !important; opacity: 0; pointer-events: none; width: 1px !important; height: 1px; }
.fx-vswatches { display: flex; flex-wrap: wrap; gap: 10px; }
.fx-vswatch { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 6px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); cursor: pointer; font-size: .86rem; transition: border-color .2s; }
.fx-vswatch .fx-swatch { width: 26px; height: 26px; }
.fx-vswatch:hover { border-color: var(--ink-2); }
.fx-vswatch[aria-pressed="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.fx-vswatch[disabled] { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.fx-vswatch--text { padding: 10px 16px; }
.woocommerce div.product form.cart .single_variation_wrap { width: 100%; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 8px; font-size: 1.2rem; font-weight: 600; }
.woocommerce div.product .woocommerce-variation-price .price, .woocommerce div.product span.price, .woocommerce div.product p.price { color: var(--ink); }
.woocommerce div.product .woocommerce-variation-availability p, .woocommerce div.product p.stock { margin: 0 0 10px; font-size: .88rem; font-weight: 600; }
.woocommerce div.product p.stock.in-stock { color: var(--ok); }
.woocommerce div.product p.stock.out-of-stock { color: var(--err); }
.woocommerce .quantity { display: inline-flex; align-items: stretch; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.woocommerce .quantity .qty { width: 52px; border: 0; background: none; text-align: center; font-weight: 600; -moz-appearance: textfield; padding: 0; min-height: 46px; }
.woocommerce .quantity .qty::-webkit-outer-spin-button, .woocommerce .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fx-qty-btn { width: 40px; border: 0; background: none; cursor: pointer; font-size: 1.1rem; color: var(--ink-2); }
.fx-qty-btn:hover { color: var(--accent); }
.woocommerce div.product form.cart .button.single_add_to_cart_button { flex: 1; min-width: 160px; float: none; }
.fx-buy-now { flex: 1; min-width: 140px; }
.fx-wish-btn--text { position: static; width: auto; height: auto; border-radius: 0; background: none; gap: 8px; padding: 8px 0; font-size: .88rem; font-weight: 600; }
.fx-wish-btn--text:hover { transform: none; }
.fx-service { list-style: none; margin: 18px 0; padding: 18px; display: grid; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); font-size: .86rem; }
.fx-service li { display: flex; gap: 12px; align-items: flex-start; }
.fx-service .fx-icon { color: var(--accent); flex: 0 0 auto; }
.fx-service strong { display: block; font-weight: 600; }
.fx-service span { color: var(--muted); }
.fx-service strong { color: var(--ink); }
.fx-pdp__sku { font-size: .78rem; color: var(--muted); }
.fx-accordion { max-width: 980px; margin: clamp(40px, 6vw, 72px) 0 0; border-top: 1px solid var(--line); }
.fx-accordion__item { border-bottom: 1px solid var(--line); }
.fx-accordion__title { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; font-family: var(--serif); font-size: 1.35rem; cursor: pointer; list-style: none; }
.fx-accordion__title::-webkit-details-marker { display: none; }
.fx-accordion__title .fx-icon { transition: transform .3s var(--ease); }
.fx-accordion__item[open] .fx-accordion__title .fx-icon { transform: rotate(180deg); }
.fx-accordion__body { padding: 0 0 28px; }
.fx-specs { width: 100%; border-collapse: collapse; font-size: .92rem; }
.fx-specs th, .fx-specs td { padding: 12px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.fx-specs th { width: 34%; font-weight: 600; padding-right: 16px; }
.fx-specs td { color: var(--ink-2); }
.fx-prose h2 { font-size: 1.7rem; margin-top: 1.6em; }
.fx-prose h3 { font-size: 1.25rem; margin-top: 1.4em; }
.fx-prose ul { padding-left: 1.2em; }
.fx-prose li { margin-bottom: .4em; }
.fx-prose > *:first-child { margin-top: 0; }
.related.products > h2, .fx-section .related > h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom: 32px; }
.fx-lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(20, 17, 14, .94); display: flex; align-items: center; justify-content: center; padding: 24px; }
.fx-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fx-lightbox__close { position: absolute; top: 16px; right: 16px; color: #fff; }
.fx-lightbox__close:hover { background: rgba(255, 255, 255, .1); color: #fff; }

/* Reviews (product) */
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li { margin-bottom: 0; padding: 20px 0; border-bottom: 1px solid var(--line); }
.woocommerce #reviews #comments ol.commentlist li img.avatar { display: none; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { margin: 0; border: 0; padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta { font-size: .85rem; color: var(--muted); }
.woocommerce .star-rating, .woocommerce p.stars a { color: var(--accent); }
.woocommerce #review_form #respond { margin-top: 24px; }
.woocommerce #review_form #respond textarea, .comment-form input[type=text], .comment-form input[type=email] { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.woocommerce-Reviews-title { font-size: 1.3rem; }

/* ---------- Pages ---------- */
.fx-page__head { padding: clamp(36px, 6vw, 72px) 0 clamp(24px, 3vw, 36px); background: var(--tint); margin-bottom: clamp(32px, 5vw, 56px); }
.fx-page__title { font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 300; margin: 0; }
.fx-page__lead { max-width: 60ch; margin: 14px 0 0; font-size: 1.1rem; color: var(--ink-2); }
.fx-page__content { max-width: 820px; padding-bottom: 88px; }
.fx-page--wide .fx-page__content { max-width: none; }
.fx-page__content a { color: var(--accent-ink); }
.fx-404 { padding: 100px 0; text-align: center; }
.fx-404__search { display: flex; gap: 8px; max-width: 480px; margin: 24px auto; }
.fx-404__search input { flex: 1; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); }
.fx-faq details { border-bottom: 1px solid var(--line); }
.fx-faq summary { padding: 18px 0; font-weight: 600; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.fx-faq summary::after { content: "+"; font-weight: 400; font-size: 1.3rem; line-height: 1; color: var(--muted); }
.fx-faq details[open] summary::after { content: "–"; }
.fx-faq summary::-webkit-details-marker { display: none; }
.fx-faq details > div { padding: 0 0 18px; color: var(--ink-2); }
.fx-two { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.fx-card-box { padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.fx-figure { margin: 2em 0; border-radius: var(--radius); overflow: hidden; }
.fx-figure img { width: 100%; }
.fx-lead { font-family: var(--serif); font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.4; color: var(--ink); }
.fx-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; margin: 1.5em 0; }
.fx-page__content a.fx-tile, .fx-tile { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius); background: #3b342c; color: #fff; text-decoration: none; }
.fx-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.fx-tile:hover img { transform: scale(1.04); }
.fx-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(15, 12, 9, .7)); }
.fx-tile__body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 20px; display: grid; gap: 4px; }
.fx-tile__title { font-family: var(--serif); font-size: 1.45rem; line-height: 1.15; }
.fx-tile__count { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #efe5da; }
.fx-page__content .fx-btn { color: #fff; text-decoration: none; }
.fx-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 2em 0; }
.fx-values div { padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.fx-values h3 { margin-top: 0; }

/* Forms */
.fx-form { display: grid; gap: 16px; }
.fx-form__row { display: grid; gap: 6px; }
.fx-form label, .woocommerce form .form-row label { font-size: .82rem; font-weight: 600; }
.fx-optional, .woocommerce form .form-row .optional { font-weight: 400; color: var(--muted); }
.fx-form input, .fx-form textarea, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single, .woocommerce-cart table.cart td.actions .coupon .input-text, .woocommerce form.checkout_coupon input.input-text, .woocommerce-account input[type=password] {
	width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); font-size: .95rem; min-height: 48px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 22px; padding-left: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.fx-form input:focus, .fx-form textarea:focus, .woocommerce form .form-row input.input-text:focus { border-color: var(--ink); outline: none; }
.fx-form__small { font-size: .8rem; color: var(--muted); margin: 0; }
.fx-alert { padding: 14px 16px; border-radius: var(--radius); font-size: .92rem; }
.fx-alert--ok { background: #e6efe5; color: var(--ok); }
.fx-alert--err { background: #f6e3de; color: var(--err); }

/* ---------- WooCommerce: notices, cart, checkout, account ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews { border: 0; border-left: 3px solid var(--accent); background: var(--surface); border-radius: var(--radius); padding: 16px 20px 16px 52px; font-size: .92rem; color: var(--ink); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--accent); top: 1em; }
.woocommerce-error { border-left-color: var(--err); }
.woocommerce-error::before { color: var(--err); }
.woocommerce-message .button, .woocommerce-info .button { min-height: 36px; padding: 8px 16px; }
.fx-page--wc .fx-page__head { margin-bottom: 32px; }
.fx-page--wc .fx-page__content { padding-bottom: 96px; }
.woocommerce table.shop_table { border: 0; border-radius: 0; border-collapse: collapse; background: var(--surface); }
.woocommerce table.shop_table th { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 14px 12px; }
.woocommerce table.shop_table td { padding: 16px 12px; border-top: 1px solid var(--line); }
.woocommerce-cart table.cart img { width: 96px; border-radius: var(--radius); }
.woocommerce-cart table.cart .product-name a { font-family: var(--serif); font-size: 1.1rem; text-decoration: none; }
.woocommerce a.remove { color: var(--muted) !important; font-weight: 400; }
.woocommerce a.remove:hover { background: var(--err); color: #fff !important; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 200px; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { width: 100%; max-width: 460px; padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 1.5rem; }
.woocommerce .cart-collaterals .cart_totals table { background: none; }
.woocommerce-shipping-calculator .shipping-calculator-button { font-size: .85rem; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
.woocommerce-checkout .col2-set, .woocommerce-page .col2-set { width: 100%; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 0 56px; align-items: start; }
form.checkout.woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
form.checkout .col2-set { grid-column: 1; grid-row: 2 / 5; }
form.checkout .col2-set .col-1, form.checkout .col2-set .col-2 { float: none; width: 100%; }
form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; }
form.checkout #order_review { padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); position: sticky; top: calc(var(--header-h) + 16px); }
form.checkout h3 { font-size: 1.5rem; }
.woocommerce-checkout #payment { background: var(--tint); border-radius: var(--radius); }
.woocommerce-checkout #payment div.payment_box { background: var(--surface); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--surface); }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; }
.fx-currency-note { font-size: .85rem; padding: 12px 14px; margin: 12px 0; background: var(--tint); border-radius: var(--radius); }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 48px; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 13px 4px; text-decoration: none; font-weight: 500; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--accent); font-weight: 700; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.woocommerce .u-columns.col2-set .col-1, .woocommerce .u-columns.col2-set .col-2 { float: none; width: 100%; padding: 32px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { border: 0; padding: 0; margin: 0; }
.woocommerce-order-details, .woocommerce-customer-details { margin-top: 32px; }
.woocommerce ul.order_details { padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.woocommerce .track_order { max-width: 560px; }
.wpo_wcpdf.button, a.button.invoice { margin: 2px; }

/* ---------- Newsletter & footer ---------- */
.fx-newsletter { background: var(--sand); padding: clamp(48px, 7vw, 88px) 0; }
.fx-newsletter__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.fx-newsletter__title { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0; max-width: 22ch; }
.fx-newsletter__form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.fx-newsletter__form input[type=email] { padding: 14px 16px; border: 1px solid var(--ink); border-radius: var(--radius); background: var(--surface); min-height: 50px; min-width: 0; }
.fx-newsletter__msg { grid-column: 1 / -1; margin: 0; font-size: .9rem; font-weight: 600; min-height: 0; }
.fx-newsletter__msg.is-err { color: var(--err); }
.fx-newsletter__small { grid-column: 1 / -1; margin: 0; font-size: .76rem; color: var(--ink-2); }
.fx-footer { background: var(--ink); color: #cfc6ba; padding: clamp(48px, 7vw, 80px) 0 28px; font-size: .9rem; }
.fx-footer a { color: #cfc6ba; text-decoration: none; }
.fx-footer a:hover { color: #fff; }
.fx-footer .fx-logo { color: #fff; margin-bottom: 18px; --mark-accent: #e0b58f; }
.fx-footer .fx-logo__mark { width: 34px; height: 41px; }
.fx-footer .fx-logo__tag { color: #9c9286; }
.fx-footer__grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 40px; }
.fx-footer__brand p { max-width: 38ch; }
.fx-footer__contact { display: flex; align-items: center; gap: 8px; }
.fx-footer__title { font-family: var(--sans); font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #fff; margin: 0 0 16px; }
.fx-footer__toggle { all: unset; display: flex; justify-content: space-between; align-items: center; width: 100%; cursor: default; }
.fx-footer__toggle .fx-icon { display: none; }
.fx-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fx-social { display: flex; gap: 6px; margin-top: 16px; }
.fx-social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid #4a443c; border-radius: 50%; }
.fx-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 56px; padding-top: 24px; border-top: 1px solid #3a352e; font-size: .8rem; }
.fx-footer__bottom p { margin: 0; }
.fx-footer__legal { display: grid; gap: 4px; }
.fx-footer__entity { color: #9c9286; font-size: .76rem; max-width: 70ch; }
.fx-footer__contact + .fx-footer__contact { margin-top: -6px; }
.fx-pay { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.fx-pay li { padding: 5px 10px; border: 1px solid #4a443c; border-radius: 3px; font-size: .72rem; font-weight: 600; letter-spacing: .04em; color: #e8e1d7; }

/* ==========================================================
   Design-system components (dropdowns, selects, choices, fields)
   ========================================================== */

/* Custom dropdown (enhanced native select) */
.fx-dd { position: relative; display: inline-block; vertical-align: middle; }
.fx-dd__native { position: absolute !important; inset: 0; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; }
.fx-dd__btn {
	display: inline-flex; align-items: center; justify-content: space-between; gap: 10px;
	min-height: 44px; padding: 10px 14px 10px 16px; width: 100%;
	background: var(--surface); color: var(--ink);
	border: 1px solid var(--line); border-radius: var(--radius);
	font: 500 .86rem/1.2 var(--sans); text-align: left; cursor: pointer;
	transition: border-color .2s, box-shadow .2s, background .2s;
}
.fx-dd__btn:hover { border-color: #bfb2a1; }
.fx-dd__btn:focus-visible { outline: none; border-color: var(--ink); box-shadow: var(--ring); }
.fx-dd.is-open .fx-dd__btn { border-color: var(--ink); }
.fx-dd__value { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fx-dd__muted { color: var(--muted); font-weight: 400; }
.fx-dd__chev { flex: 0 0 auto; transition: transform .25s var(--ease); }
.fx-dd.is-open .fx-dd__chev { transform: rotate(180deg); }
.fx-dd__list {
	position: absolute; z-index: 130; top: calc(100% + 8px); right: 0;
	min-width: 100%; width: max-content; max-width: min(320px, calc(100vw - 32px)); max-height: min(360px, 62vh); overflow-y: auto; overscroll-behavior: contain;
	margin: 0; padding: 6px; list-style: none;
	background: var(--surface); color: var(--ink);
	border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-pop);
	opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.98); transform-origin: top right;
	transition: opacity .18s var(--ease), transform .2s var(--ease), visibility 0s linear .2s;
}
.fx-dd__list:focus { outline: none; }
.fx-dd.is-open .fx-dd__list { opacity: 1; visibility: visible; transform: none; transition: opacity .18s var(--ease), transform .2s var(--ease), visibility 0s; }
.fx-dd.is-up .fx-dd__list { top: auto; bottom: calc(100% + 8px); transform-origin: bottom right; transform: translateY(6px) scale(.98); }
.fx-dd.is-up.is-open .fx-dd__list { transform: none; }
.fx-dd.is-left .fx-dd__list { right: auto; left: 0; transform-origin: top left; }
.fx-dd__opt { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 6px; font-size: .88rem; line-height: 1.3; cursor: pointer; white-space: nowrap; transition: background .12s; }
.fx-dd__opt.is-active { background: var(--tint); }
.fx-dd__opt[aria-selected="true"] { font-weight: 600; }
.fx-dd__text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.fx-dd__text small { font-size: .76rem; font-weight: 400; color: var(--muted); }
.fx-dd__check { margin-left: auto; flex: 0 0 auto; color: var(--accent); opacity: 0; }
.fx-dd__opt[aria-selected="true"] .fx-dd__check { opacity: 1; }
.fx-dd__sym { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 6px; border-radius: 50%; background: var(--bg); border: 1px solid var(--line); font-size: .78rem; font-weight: 600; color: var(--ink-2); }
.fx-dd__opt[aria-selected="true"] .fx-dd__sym { background: var(--ink); border-color: var(--ink); color: #fff; }
.fx-dd__code { font-weight: 700; letter-spacing: .04em; }
.fx-dd__symsm { opacity: .75; }
/* Currency – compact pill on the dark announcement bar */
.fx-dd--dark .fx-dd__btn { min-height: 28px; padding: 4px 10px 4px 12px; gap: 6px; background: transparent; color: #f4ede4; border-color: rgba(244, 237, 228, .22); border-radius: 999px; font-size: .74rem; }
.fx-dd--dark .fx-dd__btn:hover, .fx-dd--dark.is-open .fx-dd__btn { border-color: rgba(244, 237, 228, .6); background: rgba(255, 255, 255, .06); }
.fx-dd--dark .fx-dd__btn:focus-visible { box-shadow: 0 0 0 3px rgba(244, 237, 228, .25); border-color: #f4ede4; }
.fx-dd--dark .fx-dd__list { min-width: 240px; }
.fx-dd--currency .fx-dd__list { max-height: calc(100vh - 72px); }
.fx-dd__list { scrollbar-width: thin; scrollbar-color: var(--sand) transparent; }
.fx-dd__list::-webkit-scrollbar { width: 6px; }
.fx-dd__list::-webkit-scrollbar-thumb { background: var(--sand); border-radius: 3px; }
.fx-dd--block { display: block; }
.fx-dd--block .fx-dd__list { left: 0; right: 0; width: auto; max-width: none; }
.fx-dd--block .fx-dd__value { gap: 8px; }
.fx-dd--sort .fx-dd__btn { min-width: 230px; }
.woocommerce .woocommerce-ordering .fx-dd__native { position: absolute !important; }
.fx-dd.is-loading .fx-dd__btn { opacity: .6; pointer-events: none; }

/* Safety net: any remaining native select gets the house style */
select:not(.fx-dd__native):not(.select2-hidden-accessible) {
	appearance: none; -webkit-appearance: none;
	min-height: var(--field-h); padding: 10px 40px 10px 14px;
	border: 1px solid var(--line); border-radius: var(--radius);
	background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231f1c18' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 14px center;
	color: var(--ink); font: 400 .92rem var(--sans); cursor: pointer;
}
select:not(.fx-dd__native):focus { outline: none; border-color: var(--ink); box-shadow: var(--ring); }

/* Select2 / selectWoo (country & state fields) */
.select2-container { font-family: var(--sans); }
.select2-container--default .select2-selection--single {
	height: var(--field-h); display: flex; align-items: center;
	border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
	transition: border-color .2s, box-shadow .2s; padding: 0;
}
.select2-container--default .select2-selection--single:hover { border-color: #bfb2a1; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single { border-color: var(--ink); box-shadow: var(--ring); }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 44px 0 14px; line-height: 1.3; color: var(--ink); font-size: .95rem; }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--muted); }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; right: 12px; height: 100%; width: 16px; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__arrow b { position: static; margin: 0; border: 0; width: 12px; height: 8px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231f1c18' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat center; transition: transform .25s var(--ease); }
.select2-container--open .select2-selection--single .select2-selection__arrow b { transform: rotate(180deg); }
.select2-dropdown { border: 1px solid var(--line) !important; border-radius: var(--radius-md) !important; background: var(--surface); box-shadow: var(--shadow-pop); overflow: hidden; z-index: 140; }
.select2-container--open .select2-dropdown--below { margin-top: 6px; }
.select2-container--open .select2-dropdown--above { margin-top: -6px; }
.select2-search--dropdown { padding: 10px 10px 4px; }
.select2-container--default .select2-search--dropdown .select2-search__field { min-height: 42px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); font: .9rem var(--sans); outline: none; }
.select2-container--default .select2-search--dropdown .select2-search__field:focus { border-color: var(--ink); }
.select2-results > .select2-results__options { padding: 6px; max-height: 280px; scrollbar-width: thin; scrollbar-color: var(--sand) transparent; }
.select2-results > .select2-results__options::-webkit-scrollbar { width: 6px; }
.select2-results > .select2-results__options::-webkit-scrollbar-thumb { background: var(--sand); border-radius: 3px; }
.select2-results > .select2-results__options::-webkit-scrollbar-button { display: none; }
.select2-container--default .select2-results__option { padding: 9px 12px; border-radius: 6px; font-size: .9rem; color: var(--ink); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--tint) !important; color: var(--ink) !important; }
.select2-container--default .select2-results__option[aria-selected="true"], .select2-container--default .select2-results__option[data-selected="true"] { background: transparent; font-weight: 600; color: var(--accent-ink); }
.select2-container--default .select2-results__message { color: var(--muted); }

/* Checkboxes & radios (WooCommerce forms) */
.woocommerce form input[type="checkbox"], .woocommerce-form__input-checkbox, #createaccount, #ship-to-different-address-checkbox, #rememberme,
.woocommerce form input[type="radio"], .wc_payment_method > input[type="radio"], #shipping_method input[type="radio"] {
	appearance: none; -webkit-appearance: none;
	display: inline-grid; place-content: center; flex: 0 0 auto;
	width: 18px; height: 18px; margin: 0 10px 0 0; vertical-align: -3px;
	border: 1px solid #b4a796; border-radius: 4px; background: var(--surface);
	cursor: pointer; transition: background .15s, border-color .15s, box-shadow .15s;
}
.woocommerce form input[type="radio"], .wc_payment_method > input[type="radio"], #shipping_method input[type="radio"] { border-radius: 50%; }
.woocommerce form input[type="checkbox"]:hover, .woocommerce form input[type="radio"]:hover { border-color: var(--ink-2); }
.woocommerce form input[type="checkbox"]:checked, #createaccount:checked, #ship-to-different-address-checkbox:checked, #rememberme:checked {
	background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat center; border-color: var(--ink);
}
.woocommerce form input[type="radio"]:checked, .wc_payment_method > input[type="radio"]:checked, #shipping_method input[type="radio"]:checked { border-color: var(--ink); background: var(--surface); box-shadow: inset 0 0 0 4px var(--surface), inset 0 0 0 10px var(--ink); }
.woocommerce form input[type="checkbox"]:focus-visible, .woocommerce form input[type="radio"]:focus-visible { outline: none; box-shadow: var(--ring); }
.woocommerce form input[type="radio"]:checked:focus-visible { box-shadow: inset 0 0 0 4px var(--surface), inset 0 0 0 10px var(--ink), var(--ring); }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row .woocommerce-form__label-for-checkbox, .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; font-weight: 500; font-size: .9rem; cursor: pointer; }
#ship-to-different-address label { display: inline-flex; align-items: center; font-family: var(--serif); font-size: 1.25rem; font-weight: 400; cursor: pointer; }

/* Payment methods */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0; border: 0; display: grid; gap: 10px; margin-bottom: 18px; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; margin: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); line-height: 1.4; transition: border-color .2s; }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--ink); }
.woocommerce-checkout #payment ul.payment_methods li > label { display: inline; font-weight: 600; cursor: pointer; }
.woocommerce-checkout #payment div.payment_box { margin: 10px 0 0; padding: 0; background: transparent; color: var(--ink-2); font-size: .88rem; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: 0; }
.woocommerce-privacy-policy-text p { font-size: .8rem; color: var(--muted); }
#shipping_method { list-style: none; margin: 0; padding: 0; }
#shipping_method li { display: flex; align-items: center; margin: 0 0 6px; }
#shipping_method li label { margin: 0; }

/* Text fields – one consistent style */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .fx-form input, .fx-form textarea, .woocommerce-account input[type=password], .comment-form input[type=text], .comment-form input[type=email], .woocommerce #review_form #respond textarea, .fx-search__form input, .fx-404__search input {
	transition: border-color .2s, box-shadow .2s;
}
.woocommerce form .form-row input.input-text:hover, .woocommerce form .form-row textarea:hover, .fx-form input:hover, .fx-form textarea:hover { border-color: #bfb2a1; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .fx-form input:focus, .fx-form textarea:focus, .comment-form input:focus, .woocommerce #review_form #respond textarea:focus, .fx-price-inputs input:focus, .fx-newsletter__form input[type=email]:focus, .fx-404__search input:focus, .woocommerce-cart table.cart td.actions .coupon .input-text:focus, .woocommerce form.checkout_coupon input.input-text:focus {
	outline: none; border-color: var(--ink); box-shadow: var(--ring);
}
.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row label { margin-bottom: 6px; display: block; color: var(--ink); }
.woocommerce form .form-row .required { color: var(--accent); text-decoration: none; }
.woocommerce form .form-row textarea { min-height: 120px; }
.woocommerce form .form-row input.input-text::placeholder, .fx-form input::placeholder, .fx-form textarea::placeholder { color: #a99e91; }
.woocommerce .show-password-input, .woocommerce-page .show-password-input { top: 50%; transform: translateY(-50%); right: 12px; color: var(--muted); }
.woocommerce .show-password-input:hover { color: var(--ink); }
.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit)::before, .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit)::after { display: none; }
.woocommerce-form-login .woocommerce-form-login__submit { order: 2; }
.woocommerce-form-login .woocommerce-form-login__rememberme { order: 1; margin: 0; }
.woocommerce-LostPassword a, .lost_password a { font-size: .86rem; color: var(--accent-ink); }
.woocommerce-account .u-columns h2, .woocommerce form.login h2 { font-size: 1.6rem; }
.woocommerce .u-columns.col2-set::before, .woocommerce .u-columns.col2-set::after { display: none; }
.woocommerce-password-strength { margin-top: 8px; padding: 8px 12px; border-radius: var(--radius); font-size: .8rem; }

/* Validation messages */
.fx-field-error, .woocommerce .checkout-inline-error-message { margin: 6px 0 0; font-size: .8rem; font-weight: 500; color: var(--err); display: flex; align-items: center; gap: 6px; }
.fx-field-error::before { content: ""; width: 14px; height: 14px; flex: 0 0 auto; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a23b2a' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6M12 16.5v.5'/%3E%3C/svg%3E") no-repeat center / contain; }
.fx-invalid input, .fx-invalid textarea, .fx-invalid select, .woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid .select2-selection { border-color: var(--err) !important; }
.fx-invalid input, .fx-invalid textarea { background-color: #fdf6f3 !important; }
.fx-page__content:has(.fx-two) { max-width: 1120px; }
.fx-invalid input:focus, .fx-invalid textarea:focus { box-shadow: 0 0 0 3px rgba(162, 59, 42, .14) !important; }
.woocommerce form .form-row.woocommerce-invalid label { color: var(--err); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--line); }

/* Buttons – states */
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled], .woocommerce button.button.disabled { background: transparent; color: var(--muted); border-color: var(--line); opacity: 1; cursor: not-allowed; }
.fx-btn:focus-visible, .woocommerce .button:focus-visible { outline: none; box-shadow: var(--ring); }
.fx-btn:active, .woocommerce .button:active { transform: translateY(1px); }
.woocommerce div.product form.cart .reset_variations { font-size: .78rem; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce div.product form.cart .reset_variations:hover { color: var(--ink); }
.woocommerce-cart table.cart td.actions .coupon .button { white-space: nowrap; }

.woocommerce #review_form #respond { padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.woocommerce #review_form #respond .comment-reply-title { display: block; margin-bottom: 4px; font-family: var(--serif); font-size: 1.35rem; }
.woocommerce #review_form #respond .comment-notes { font-size: .82rem; color: var(--muted); }
.woocommerce #review_form #respond p { margin-bottom: 16px; }

/* Review stars input */
.woocommerce p.stars a { color: var(--accent); width: 1.3em; height: 1.3em; }
.woocommerce p.stars a::before { font-size: 1.3em; }
.comment-form-rating label { display: block; margin-bottom: 6px; font-weight: 600; font-size: .82rem; }
.comment-form label { font-weight: 600; font-size: .82rem; display: block; margin-bottom: 6px; }
.woocommerce #review_form #respond .form-submit input, .woocommerce #review_form #respond .form-submit button { margin-top: 6px; }

/* Notices – icon and spacing refinements */
.woocommerce-message, .woocommerce-info, .woocommerce-error { box-shadow: 0 1px 0 rgba(31, 28, 24, .04); line-height: 1.5; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { color: var(--accent-ink); }
.woocommerce-error li { margin: 0; }
.woocommerce form.checkout_coupon, .woocommerce form.login.woocommerce-form-login:not(.u-column1 form) { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }

.fx-nav__link { white-space: nowrap; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
	.fx-nav { display: none; }
	.fx-header__burger { display: inline-flex; margin-left: -10px; }
	.fx-header__logo { flex: 1; text-align: center; }
	.fx-header__icons { margin-left: 0; }
}
@media (max-width: 1180px) {
	.fx-nav__list > .fx-nav__item > .fx-nav__link { padding: 0 8px; font-size: .82rem; }
	.fx-mega__list { columns: 2; }
	.fx-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.fx-collections { grid-template-columns: 1fr 1fr; }
	.fx-collection--lg { grid-column: 1 / -1; }
}
@media (max-width: 1023px) {
	:root { --header-h: 64px; }
	.fx-nav { display: none; }
	.fx-header__burger { display: inline-flex; margin-left: -10px; }
	.fx-header__logo { flex: 1; text-align: center; }
	.fx-header__icons { margin-left: 0; }
	.fx-logo__name { font-size: 1.3rem; letter-spacing: .14em; }
	.fx-logo__tag { font-size: .48rem; letter-spacing: .3em; }
	.fx-header .fx-logo__mark { width: 25px; height: 30px; }
	.fx-header .fx-logo { gap: 9px; }
	.fx-announce__util a { display: none; }
	.fx-usp__grid { grid-template-columns: 1fr 1fr; }
	.fx-usp__item:nth-child(3) { border-left: 0; }
	.fx-usp__item:nth-child(n+3) { border-top: 1px solid var(--line); }
	.fx-room, .fx-story { grid-template-columns: 1fr; }
	.fx-room__media img, .fx-story__media img { min-height: 360px; max-height: 520px; }
	.fx-reviews { grid-template-columns: 1fr; }
	.fx-shop { grid-template-columns: 1fr; padding-top: 20px; }
	.fx-filters { position: fixed; top: 0; right: 0; bottom: 0; z-index: 85; width: min(400px, 92vw); background: var(--surface); padding: 16px 20px 24px; overflow-y: auto; transform: translateX(105%); transition: transform .35s var(--ease); visibility: hidden; }
	.fx-filters.is-open { transform: none; visibility: visible; box-shadow: var(--shadow); }
	.fx-filters__close { display: inline-flex; }
	.fx-filters__head { margin-bottom: 8px; }
	.js .fx-filterform__actions .fx-btn { display: inline-flex; flex: 1; }
	.fx-filterform__actions { position: sticky; bottom: -24px; background: var(--surface); padding-bottom: 8px; }
	.fx-toolbar__filter { display: inline-flex; }
	.woocommerce .fx-toolbar .woocommerce-result-count { order: 3; flex-basis: 100%; }
	.fx-pdp { grid-template-columns: 1fr; }
	.fx-gallery { position: static; grid-template-columns: 1fr; }
	.fx-gallery__main { grid-column: 1; }
	.fx-gallery__thumbs { grid-column: 1; grid-row: 2; flex-direction: row; overflow-x: auto; }
	.fx-gallery__thumb { flex: 0 0 72px; }
	form.checkout.woocommerce-checkout { display: block; }
	form.checkout #order_review { position: static; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 24px; }
	.fx-footer__grid { grid-template-columns: 1fr 1fr; }
	.fx-footer__brand { grid-column: 1 / -1; }
	.fx-newsletter__inner { grid-template-columns: 1fr; }
	.fx-two { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	body { font-size: 15px; }
	.fx-hide-sm { display: none; }
	.fx-grid--4, .fx-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
	.fx-card__title { font-size: 1rem; }
	.fx-card__quick { display: none; }
	.fx-card__price { font-size: .88rem; }
	.fx-wish-btn { width: 34px; height: 34px; top: 8px; right: 8px; }
	.fx-wish-btn .fx-icon { width: 18px; height: 18px; }
	.fx-wish-btn--text { width: auto; height: auto; }
	.fx-collections, .fx-promos, .fx-rooms2 { grid-template-columns: 1fr; }
	.fx-collection { min-height: 340px; }
	.fx-promo { min-height: 340px; }
	.fx-usp__item { padding: 16px 8px; gap: 10px; }
	.fx-usp__item .fx-icon { width: 22px; height: 22px; }
	.fx-usp__item strong { font-size: .8rem; }
	.fx-usp__item span { font-size: .72rem; }
	.fx-section__head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.fx-hero { min-height: 78vh; }
	.fx-hero__ctas .fx-btn { flex: 1 1 100%; }
	.fx-shophead--img { min-height: 260px; }
	.fx-values { grid-template-columns: 1fr; }
	.fx-newsletter__form { grid-template-columns: 1fr; }
	.fx-footer__grid { grid-template-columns: 1fr; gap: 0; }
	.fx-footer__brand { margin-bottom: 24px; }
	.fx-footer__col { border-top: 1px solid #3a352e; }
	.fx-footer__title { margin: 0; }
	.fx-footer__toggle { cursor: pointer; padding: 16px 0; }
	.fx-footer__toggle .fx-icon { display: block; transition: transform .3s; }
	.fx-footer__toggle[aria-expanded="true"] .fx-icon { transform: rotate(180deg); }
	.js .fx-footer__col .fx-footer__links { display: none; padding-bottom: 16px; }
	.js .fx-footer__col.is-open .fx-footer__links { display: grid; }
	.fx-footer__bottom { flex-direction: column-reverse; align-items: flex-start; }
	.woocommerce .u-columns.col2-set { grid-template-columns: 1fr; }
	.woocommerce .u-columns.col2-set .col-1, .woocommerce .u-columns.col2-set .col-2 { padding: 22px; }
	.woocommerce-cart table.cart td.actions .coupon { flex-direction: column; float: none; }
	.woocommerce-cart table.cart td.actions .coupon { display: flex; flex-direction: column; gap: 10px; width: 100%; padding-bottom: 0; }
	.woocommerce-cart table.cart td.actions .coupon .input-text,
	.woocommerce-cart table.cart td.actions .coupon .button { width: 100% !important; float: none !important; margin: 0 !important; }
	.woocommerce-cart table.cart td.actions .coupon .button { white-space: normal; }
	.woocommerce form.checkout_coupon .form-row-first, .woocommerce form.checkout_coupon .form-row-last { width: 100%; float: none; margin: 0 0 10px; }
	.woocommerce form.checkout_coupon .form-row-last { margin: 0; }
	.woocommerce form.checkout_coupon .button { width: 100%; }
	.woocommerce-cart table.cart td.actions > .button { width: 100%; margin-top: 10px; }
	.woocommerce table.shop_table_responsive tr td::before { font-weight: 600; }
	.woocommerce-cart table.cart img { width: 72px; }
	.fx-specs th { width: 42%; }
	.fx-accordion__title { font-size: 1.15rem; padding: 18px 0; }
	.fx-pdp__title { font-size: 1.9rem; }
	.woocommerce div.product form.cart .button.single_add_to_cart_button, .fx-buy-now { flex: 1 1 100%; }
	.woocommerce-variation-add-to-cart .quantity { flex: 0 0 auto; }
	.woocommerce div.product form.cart .quantity + .single_add_to_cart_button { flex: 1 1 auto; }
	.woocommerce .woocommerce-ordering { flex: 1; }
	.fx-toolbar { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
	.woocommerce .fx-toolbar .woocommerce-result-count { grid-column: 1 / -1; }
	.fx-toolbar__filter { min-height: 44px; }
	.fx-dd--sort { display: block; }
	.fx-dd--sort .fx-dd__btn { min-width: 0; }
	.fx-dd--sort .fx-dd__list { left: auto; right: 0; }
	.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { flex-direction: column; align-items: flex-start; }
	.woocommerce-form-login .woocommerce-form-login__submit { width: 100%; }
	.woocommerce-ordering select { width: 100%; }
	.fx-announce { justify-content: center; font-size: .72rem; }
	.fx-announce__track { height: 44px; }
	.fx-announce__msg { justify-content: center; text-align: center; }
	.fx-announce__util { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
