/*
Theme Name: Luxeen
Theme URI: https://luxeen.net
Author: Luxeen
Author URI: https://luxeen.net
Description: Soft Noir Luxury FSE block theme for Luxeen — native Gutenberg + WooCommerce blocks.
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Version: 1.3.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luxeen
Tags: full-site-editing, block-themes, e-commerce, woocommerce, custom-colors, custom-fonts, wide-blocks
*/

/* Design tokens live in theme.json; utilities via Windpress. Luxury layer below. */

.luxeen-skip-link:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	display: block;
	padding: 0.75rem 1rem;
	z-index: 100000;
}

/* Windpress/Tailwind defines .size-full { width/height:100% } which clashes with
   WordPress image size classes (size-full/size-large). Neutralize for image blocks. */
figure.wp-block-image.size-full,
figure.wp-block-image.size-large,
figure.wp-block-image.size-medium,
figure.wp-block-image.size-thumbnail {
	width: auto !important;
	height: auto !important;
}

/* ---------- Logos (transparent PNGs) ---------- */
figure.luxeen-logo,
figure.luxeen-logo-dark {
	display: table;
	flex: 0 0 auto;
	width: fit-content !important;
	margin-top: 0;
	margin-bottom: 0;
}

figure.luxeen-logo.aligncenter,
figure.luxeen-logo-dark.aligncenter {
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.25rem;
}

.luxeen-footer figure.luxeen-logo-dark {
	margin-bottom: 1rem;
}

figure.luxeen-logo img,
figure.luxeen-logo-dark img {
	height: auto;
	display: block;
}

/* ---------- Header ---------- */
.luxeen-header {
	border-bottom: 1px solid var(--wp--preset--color--mist);
}

/* Right cluster: nav · | account | cart with tapered brass separators */
.luxeen-header-right {
	gap: 0;
}

.luxeen-header-right .wp-block-navigation {
	padding-right: 0.9rem;
}

.luxeen-header-right .wp-block-woocommerce-customer-account,
.luxeen-header-right .wc-block-mini-cart {
	position: relative;
	display: flex;
	align-items: center;
	padding-left: 0.9rem;
	margin-left: 0;
}

.luxeen-header-right .wp-block-woocommerce-customer-account::before,
.luxeen-header-right .wc-block-mini-cart::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 30px;
	background: linear-gradient(
		to bottom,
		transparent,
		rgba(196, 165, 116, 0.9) 50%,
		transparent
	);
}

.luxeen-header-right .wp-block-woocommerce-customer-account {
	margin-right: 0.9rem;
}

.luxeen-header-right .wc-block-customer-account__link,
.luxeen-header-right .wc-block-mini-cart__button {
	color: var(--wp--preset--color--noir);
	transition: color 0.3s ease;
}

.luxeen-header-right .wc-block-customer-account__link:hover,
.luxeen-header-right .wc-block-mini-cart__button:hover {
	color: var(--wp--preset--color--brass-deep);
}

@media (min-width: 782px) {
	header .wp-block-navigation,
	header .wp-block-navigation .wp-block-navigation__container {
		flex-wrap: nowrap;
	}
}

/* ---------- Hairlines (tapered: fade to transparent at both ends) ---------- */
.luxeen-hairline,
.luxeen-hairline-hero,
.luxeen-hairline-center,
.luxeen-hairline-card,
.luxeen-footer-rule {
	height: 1px;
	border: none;
	background-color: transparent !important;
	background-image: linear-gradient(
		to right,
		transparent,
		var(--wp--preset--color--brass) 50%,
		transparent
	) !important;
}

.luxeen-hairline {
	width: 76px;
	margin: 1.4rem 0;
}

.luxeen-hairline-hero {
	width: 60px;
	margin: 0;
}

.luxeen-hairline-center {
	width: 110px;
	margin: 2rem auto 0;
}

.luxeen-hairline-card {
	width: 40px;
	margin: 1rem 0 1.05rem;
}

.luxeen-footer-rule {
	opacity: 0.55;
	margin-bottom: 1.5rem;
}

/* ---------- Hero ---------- */
.luxeen-hero-eyebrow {
	gap: 1rem;
	margin-bottom: 1.6rem;
}

.luxeen-hero-sub {
	max-width: 560px;
	margin-top: 1.4rem;
}

.luxeen-hero-buttons {
	margin-top: 2.2rem;
	gap: 1rem;
}

.luxeen-hero-meta {
	margin-top: 2.4rem;
}

/* ---------- Eyebrow (category / meta labels) ---------- */
.luxeen-eyebrow,
.luxeen-eyebrow a {
	font-size: 0.66rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--mute);
	text-decoration: none;
}

.luxeen-eyebrow a:hover {
	color: var(--wp--preset--color--brass-deep);
}

/* ---------- Editorial image frames ---------- */
.luxeen-frame {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--brass);
	padding: 14px;
	box-shadow: 0 30px 60px -34px rgba(20, 24, 31, 0.35);
}

.luxeen-frame img {
	display: block;
	width: 100%;
}

.luxeen-gallery-frame {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--mist);
	padding: 18px;
	box-shadow: 0 30px 60px -38px rgba(20, 24, 31, 0.3);
}

/* ---------- Luxury buttons (site-wide standard) ----------
   Standard: flat luxe surface + inner brass keyline (inset shadow),
   deep soft drop shadow, slow ease, letter-spacing breath on hover. */
.wp-element-button,
.wp-block-button__link {
	transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, letter-spacing 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
}

.wp-block-button__link:hover {
	letter-spacing: 0.14em;
}

/* Filled brass CTA */
.luxeen-btn-brass .wp-block-button__link {
	background: var(--wp--preset--color--brass);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--brass);
	padding: 1rem 2.2rem;
	box-shadow: inset 0 0 0 1px rgba(20, 24, 31, 0.18), 0 18px 36px -20px rgba(196, 165, 116, 0.55);
}

.luxeen-btn-brass .wp-block-button__link:hover {
	background: var(--wp--preset--color--pearl);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--pearl);
	box-shadow: inset 0 0 0 1px rgba(196, 165, 116, 0.6), 0 18px 36px -18px rgba(247, 246, 243, 0.35);
}

/* Ghost button for dark surfaces */
.luxeen-btn-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--pearl);
	border: 1px solid rgba(247, 246, 243, 0.5);
	padding: 1rem 2.2rem;
}

.luxeen-btn-ghost .wp-block-button__link:hover {
	background: rgba(247, 246, 243, 0.1);
	color: var(--wp--preset--color--pearl);
	border-color: var(--wp--preset--color--pearl);
	box-shadow: 0 18px 36px -20px rgba(247, 246, 243, 0.25);
}

/* ---------- Luxe product cards ---------- */
.luxeen-card {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--mist);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
}

.luxeen-card:hover {
	border-color: var(--wp--preset--color--brass);
	box-shadow: 0 26px 52px -22px rgba(20, 24, 31, 0.32);
	transform: translateY(-4px);
}

.luxeen-card .wc-block-components-product-image,
.luxeen-card .wp-block-woocommerce-product-image {
	margin: 0;
	overflow: hidden;
	border-bottom: 1px solid var(--wp--preset--color--mist);
}

.luxeen-card .wc-block-components-product-image img,
.luxeen-card .wp-block-woocommerce-product-image img {
	transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.luxeen-card:hover .wc-block-components-product-image img,
.luxeen-card:hover .wp-block-woocommerce-product-image img {
	transform: scale(1.045);
}

.luxeen-card-body {
	padding: 1.5rem 1.4rem 1.6rem;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.luxeen-card-body > * {
	margin-top: 0;
	margin-bottom: 0;
}

/* Breathing room between title, hairline and price (beats the reset above) */
.luxeen-card-body .luxeen-hairline-card {
	margin: 1rem 0 1.05rem;
}

.luxeen-card-body .wp-block-woocommerce-product-price {
	margin-bottom: 1.1rem;
}

.luxeen-card-body .luxeen-eyebrow {
	margin-bottom: 0.7rem;
}

.luxeen-card-body .wp-block-post-title {
	margin-bottom: 0;
}

.luxeen-card .wp-block-post-title a {
	text-decoration: none;
	color: var(--wp--preset--color--noir);
	transition: color 0.3s ease;
}

.luxeen-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--brass-deep);
}

.luxeen-card .wc-block-components-product-price {
	color: var(--wp--preset--color--noir);
	margin: 0;
}

/* CTA row: quantity stepper + add to cart, pinned to card bottom */
.luxeen-card-cta {
	margin-top: auto;
}

.luxeen-card-cta .wc-block-components-notices {
	margin: 0;
}

.luxeen-card-cta .wc-block-add-to-cart-with-options {
	margin: 0;
}

.luxeen-card-cta .wc-block-add-to-cart-with-options > .wp-block-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0.6rem;
	width: 100%;
}

/* Keep the stepper compact so the button gets the remaining width */
.luxeen-card-cta .wp-block-add-to-cart-with-options-quantity-selector,
.luxeen-card-cta .wc-block-add-to-cart-with-options__quantity-selector {
	flex: 0 0 auto;
	width: auto;
	margin: 0;
}

/* Quantity stepper — quiet, framed, matches button height */
.luxeen-card-cta .wc-block-components-quantity-selector {
	display: flex;
	align-items: stretch;
	margin: 0;
	border: 1px solid var(--wp--preset--color--mist);
	background: #ffffff;
	height: 100%;
	width: auto;
}

.luxeen-card-cta .wc-block-components-quantity-selector::after {
	display: none;
}

.luxeen-card-cta .wc-block-components-quantity-selector__input {
	order: 2;
	width: 2rem;
	min-width: 2rem;
	border: none;
	background: transparent;
	text-align: center;
	font-family: inherit;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--wp--preset--color--noir);
	padding: 0.55rem 0;
	appearance: textfield;
	-moz-appearance: textfield;
}

.luxeen-card-cta .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
.luxeen-card-cta .wc-block-components-quantity-selector__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.luxeen-card-cta .wc-block-components-quantity-selector__button {
	border: none;
	background: transparent;
	width: 1.7rem;
	color: var(--wp--preset--color--mute);
	font-size: 0.95rem;
	cursor: pointer;
	transition: color 0.3s ease;
}

.luxeen-card-cta .wc-block-components-quantity-selector__button--minus {
	order: 1;
}

.luxeen-card-cta .wc-block-components-quantity-selector__button--plus {
	order: 3;
}

.luxeen-card-cta .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	color: var(--wp--preset--color--brass-deep);
}

.luxeen-card-cta .wc-block-components-product-button {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}

.luxeen-card-cta .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	text-align: center;
	height: 100%;
	padding-left: 0.6rem;
	padding-right: 0.6rem;
}

.luxeen-card .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--brass);
	color: var(--wp--preset--color--ink);
	border: none;
	border-radius: 0;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Card add-to-cart → compact noir luxe chip beside price */
.luxeen-card .wc-block-components-product-button {
	margin: 0;
	width: auto;
}

.luxeen-card .wc-block-components-product-button .wp-block-button__link {
	background: var(--wp--preset--color--noir) !important;
	color: var(--wp--preset--color--pearl) !important;
	border: 1px solid var(--wp--preset--color--noir) !important;
	border-radius: 0 !important;
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.62rem 1rem;
	width: auto;
	white-space: nowrap !important;
	box-shadow: inset 0 0 0 1px rgba(196, 165, 116, 0.4), 0 10px 22px -14px rgba(20, 24, 31, 0.5);
	transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, letter-spacing 0.35s ease, box-shadow 0.35s ease;
}

.luxeen-card .wc-block-components-product-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--brass) !important;
	color: var(--wp--preset--color--ink) !important;
	border-color: var(--wp--preset--color--brass) !important;
	box-shadow: inset 0 0 0 1px rgba(20, 24, 31, 0.15), 0 14px 28px -14px rgba(196, 165, 116, 0.6);
}

/* Featured product (front page) add-to-cart → matches single product CTA */
.wc-block-components-product-button .wp-block-button__link {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--pearl);
	border: 1px solid var(--wp--preset--color--noir);
	border-radius: 0;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	padding: 1rem 2.4rem;
	white-space: nowrap;
	box-shadow: inset 0 0 0 1px rgba(196, 165, 116, 0.4), 0 14px 30px -18px rgba(20, 24, 31, 0.55);
	transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, letter-spacing 0.35s ease, box-shadow 0.35s ease;
}

.wc-block-components-product-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--brass);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--brass);
	letter-spacing: 0.24em;
	box-shadow: inset 0 0 0 1px rgba(20, 24, 31, 0.15), 0 18px 36px -18px rgba(196, 165, 116, 0.6);
}

/* ---------- Single product ---------- */
.single-product form.cart {
	display: flex;
	gap: 0.85rem;
	align-items: stretch;
	flex-wrap: wrap;
	margin: 1.6rem 0 1.2rem;
}

.single-product form.cart .quantity .qty {
	border: 1px solid var(--wp--preset--color--mist);
	border-radius: 0;
	background: #ffffff;
	padding: 1rem 0.5rem;
	min-height: 100%;
	font-family: inherit;
	font-size: 0.9rem;
}

.single-product form.cart .single_add_to_cart_button {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--pearl);
	border: 1px solid var(--wp--preset--color--noir);
	border-radius: 0;
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	padding: 1.05rem 2.6rem;
	flex: 1 1 auto;
	max-width: 340px;
	box-shadow: inset 0 0 0 1px rgba(196, 165, 116, 0.4), 0 14px 30px -18px rgba(20, 24, 31, 0.55);
	transition: background 0.35s ease, border-color 0.35s ease, color 0.35s ease, letter-spacing 0.35s ease, box-shadow 0.35s ease;
}

.single-product form.cart .single_add_to_cart_button:hover {
	background: var(--wp--preset--color--brass);
	border-color: var(--wp--preset--color--brass);
	color: var(--wp--preset--color--ink);
	letter-spacing: 0.26em;
	box-shadow: inset 0 0 0 1px rgba(20, 24, 31, 0.15), 0 18px 36px -18px rgba(196, 165, 116, 0.6);
}

.single-product .wc-block-components-product-rating {
	color: var(--wp--preset--color--brass);
}

/* Trust box — tapered brass accent on the left */
.luxeen-trust-box {
	position: relative;
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--mist);
	padding: 1.1rem 1.25rem;
	gap: 1rem;
	margin-top: 1.4rem;
}

.luxeen-trust-box::before {
	content: "";
	position: absolute;
	left: -1px;
	top: 8%;
	bottom: 8%;
	width: 2px;
	background: linear-gradient(
		to bottom,
		transparent,
		var(--wp--preset--color--brass) 50%,
		transparent
	);
}

.luxeen-trust-box p {
	margin: 0;
}

/* Product meta: quiet, small caps labels */
.luxeen-product-meta,
.single-product .wp-block-woocommerce-product-meta {
	font-size: 0.78rem;
	color: var(--wp--preset--color--mute);
	letter-spacing: 0.04em;
	margin-top: 1.4rem;
}

.single-product .wp-block-woocommerce-product-meta a {
	color: var(--wp--preset--color--brass-deep);
}

/* Product gallery: calm thumbnails */
.wp-block-woocommerce-product-image-gallery img {
	background: #ffffff;
}

/* Product details tabs → tapered brass active line */
.wc-block-product-details .wc-tabs li.active a,
.wp-block-woocommerce-product-details .wc-tabs li.active a {
	border-bottom-color: transparent;
	border-image: linear-gradient(
			to right,
			transparent,
			var(--wp--preset--color--brass) 50%,
			transparent
		)
		1;
}

/* ---------- Contact card — tapered brass accent on top ---------- */
.luxeen-contact-card {
	position: relative;
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--mist);
	padding: 2.2rem 2rem;
	box-shadow: 0 26px 52px -30px rgba(20, 24, 31, 0.28);
	align-self: flex-start;
}

.luxeen-contact-card::before,
.luxeen-filter-panel::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 6%;
	right: 6%;
	height: 2px;
	background: linear-gradient(
		to right,
		transparent,
		var(--wp--preset--color--brass) 50%,
		transparent
	);
}

/* ---------- Filters sidebar — tapered brass accent on top ---------- */
.luxeen-filter-panel {
	position: relative;
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--mist);
	padding: 1.5rem 1.4rem;
	align-self: flex-start;
}

.wc-block-product-filters input[type="checkbox"] {
	accent-color: var(--wp--preset--color--brass-deep);
}

.wc-block-product-filter-checkbox-list__label {
	font-size: 0.86rem;
}

/* ---------- Navigation hover ---------- */
.wp-block-navigation a:hover {
	color: var(--wp--preset--color--brass-deep) !important;
}

/* ---------- Breadcrumbs ---------- */
.wp-block-woocommerce-breadcrumbs {
	font-size: 0.74rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--mute);
}

.wp-block-woocommerce-breadcrumbs a {
	color: var(--wp--preset--color--mute);
	text-decoration: none;
}

.wp-block-woocommerce-breadcrumbs a:hover {
	color: var(--wp--preset--color--brass-deep);
}

/* ---------- Sort dropdown ---------- */
.wc-block-catalog-sorting select,
.woocommerce-ordering select {
	border: 1px solid var(--wp--preset--color--mist);
	border-radius: 0;
	background: #ffffff;
	font-size: 0.8rem;
	padding: 0.5rem 0.75rem;
}
