	/*!
	Theme Name: FWThemes
	Theme URI: https://for-wordpress.org/
	Author: For-Wordpress.org
	Author URI: https://for-wordpress.org
	Description: Premium WordPress theme & plugin marketplace. WooCommerce compatible, SEO optimized, dark/light mode.
	Version: 1.3.1
	Tested up to: 6.5
	Requires PHP: 7.4
	License: GNU General Public License v2 or later
	License URI: LICENSE
	Text Domain: fw-themes
	Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, e-commerce, one-column
	*/

	/* ==========================================================================
	CSS Custom Properties
	========================================================================== */

	:root {
		/* Light mode (default) */
		--fw-bg-primary: #ffffff;
		--fw-bg-secondary: #f7f7f7;
		--fw-bg-tertiary: #efefef;
		--fw-bg-card: #ffffff;
		--fw-text-primary: #111111;
		--fw-text-secondary: #555555;
		--fw-text-tertiary: #888888;
		--fw-border-color: #e0e0e0;
		--fw-border-light: #f0f0f0;
		--fw-accent: #111111;
		--fw-accent-hover: #333333;
		--fw-accent-inverse: #ffffff;
		--fw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
		--fw-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
		--fw-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.1);
		--fw-overlay: rgba(0, 0, 0, 0.5);
		--fw-success: #1a8a4a;
		--fw-error: #c0392b;
		--fw-info: #555555;
		--fw-badge-sale-bg: #111111;
		--fw-badge-sale-text: #ffffff;
		--fw-input-bg: #ffffff;
		--fw-input-border: #d0d0d0;
		--fw-input-focus: #111111;
		--fw-skeleton: #e8e8e8;
		--fw-code-bg: #f5f5f5;
		--fw-radius: 3px;
		--fw-transition: 0.2s ease;
		--fw-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
		--fw-font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Fira Mono', 'Roboto Mono', monospace;
		--fw-container: 1200px;
		--fw-container-narrow: 800px;
		--fw-header-height: 64px;
	}

	[data-theme="dark"] {
		--fw-bg-primary: #0a0a0a;
		--fw-bg-secondary: #111111;
		--fw-bg-tertiary: #1a1a1a;
		--fw-bg-card: #141414;
		--fw-text-primary: #f0f0f0;
		--fw-text-secondary: #a0a0a0;
		--fw-text-tertiary: #707070;
		--fw-border-color: #252525;
		--fw-border-light: #1e1e1e;
		--fw-accent: #ffffff;
		--fw-accent-hover: #d0d0d0;
		--fw-accent-inverse: #0a0a0a;
		--fw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
		--fw-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
		--fw-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
		--fw-overlay: rgba(0, 0, 0, 0.7);
		--fw-success: #2ecc71;
		--fw-error: #e74c3c;
		--fw-info: #a0a0a0;
		--fw-badge-sale-bg: #ffffff;
		--fw-badge-sale-text: #0a0a0a;
		--fw-input-bg: #1a1a1a;
		--fw-input-border: #333333;
		--fw-input-focus: #ffffff;
		--fw-skeleton: #222222;
		--fw-code-bg: #1a1a1a;
	}

	/* ==========================================================================
	Reset & Base
	========================================================================== */

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

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

	body {
		background-color: var(--fw-bg-primary);
		color: var(--fw-text-primary);
		font-family: var(--fw-font-sans);
		font-size: 1rem;
		line-height: 1.6;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		transition: background-color var(--fw-transition), color var(--fw-transition);
	}

	/* ==========================================================================
	Typography
	========================================================================== */

	h1, h2, h3, h4, h5, h6 {
		font-weight: 600;
		line-height: 1.3;
		color: var(--fw-text-primary);
		letter-spacing: -0.01em;
	}

	h1 { font-size: 2.25rem; }
	h2 { font-size: 1.75rem; }
	h3 { font-size: 1.375rem; }
	h4 { font-size: 1.125rem; }
	h5 { font-size: 1rem; }
	h6 { font-size: 0.875rem; }

	p {
		margin-bottom: 1.25em;
		color: var(--fw-text-secondary);
	}

	a {
		color: var(--fw-text-primary);
		text-decoration: none;
		transition: color var(--fw-transition);
	}

	a:hover {
		color: var(--fw-text-secondary);
	}

	a:focus-visible {
		outline: 2px solid var(--fw-accent);
		outline-offset: 2px;
		border-radius: var(--fw-radius);
	}

	strong, b {
		font-weight: 600;
	}

	small {
		font-size: 0.875rem;
	}

	code, kbd, samp, pre {
		font-family: var(--fw-font-mono);
	}

	code {
		background: var(--fw-code-bg);
		padding: 0.15em 0.4em;
		border-radius: var(--fw-radius);
		font-size: 0.875em;
	}

	pre {
		background: var(--fw-code-bg);
		padding: 1.25em;
		border-radius: var(--fw-radius);
		overflow-x: auto;
		margin-bottom: 1.5em;
		border: 1px solid var(--fw-border-color);
	}

	pre code {
		background: none;
		padding: 0;
	}

	blockquote {
		border-left: 3px solid var(--fw-border-color);
		padding-left: 1.25em;
		margin: 0 0 1.5em;
		color: var(--fw-text-secondary);
		font-style: italic;
	}

	hr {
		border: none;
		border-top: 1px solid var(--fw-border-color);
		margin: 2em 0;
	}

	mark {
		background: var(--fw-bg-tertiary);
		padding: 0.1em 0.3em;
		border-radius: var(--fw-radius);
	}

	/* ==========================================================================
	Elements
	========================================================================== */

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

	figure {
		margin: 0 0 1.5em;
	}

	figcaption {
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.5em;
	}

	ul, ol {
		margin: 0 0 1.5em 1.5em;
	}

	li {
		margin-bottom: 0.25em;
	}

	table {
		width: 100%;
		border-collapse: collapse;
		margin-bottom: 1.5em;
	}

	th, td {
		text-align: left;
		padding: 0.75em 1em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	th {
		font-weight: 600;
		color: var(--fw-text-primary);
		background: var(--fw-bg-secondary);
	}

	embed,
	iframe,
	object {
		max-width: 100%;
	}

	/* ==========================================================================
	Forms
	========================================================================== */

	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	input[type="number"],
	input[type="tel"],
	input[type="date"],
	input[type="datetime-local"],
	input[type="color"],
	textarea,
	select {
		width: 100%;
		padding: 0.625em 0.875em;
		font-family: var(--fw-font-sans);
		font-size: 0.9375rem;
		line-height: 1.5;
		color: var(--fw-text-primary);
		background-color: var(--fw-input-bg);
		border: 1px solid var(--fw-input-border);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
		appearance: none;
	}

	input:focus,
	textarea:focus,
	select:focus {
		outline: none;
		border-color: var(--fw-input-focus);
		box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
	}

	[data-theme="dark"] input:focus,
	[data-theme="dark"] textarea:focus,
	[data-theme="dark"] select:focus {
		box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1);
	}

	textarea {
		min-height: 120px;
		resize: vertical;
	}

	select {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 0.75em center;
		padding-right: 2.5em;
	}

	label {
		display: block;
		font-size: 0.875rem;
		font-weight: 500;
		color: var(--fw-text-primary);
		margin-bottom: 0.375em;
	}

	input[type="checkbox"],
	input[type="radio"] {
		width: auto;
		margin-right: 0.5em;
	}

	/* ==========================================================================
	Buttons
	========================================================================== */

	.btn,
	button,
	input[type="button"],
	input[type="reset"],
	input[type="submit"] {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 0.5em;
		padding: 0.625em 1.5em;
		font-family: var(--fw-font-sans);
		font-size: 0.875rem;
		font-weight: 500;
		line-height: 1.5;
		color: var(--fw-accent-inverse);
		background-color: var(--fw-accent);
		border: 1px solid var(--fw-accent);
		border-radius: var(--fw-radius);
		cursor: pointer;
		transition: all var(--fw-transition);
		text-decoration: none;
		white-space: nowrap;
	}

	.btn:hover,
	button:hover,
	input[type="button"]:hover,
	input[type="reset"]:hover,
	input[type="submit"]:hover {
		background-color: var(--fw-accent-hover);
		border-color: var(--fw-accent-hover);
		color: var(--fw-accent-inverse);
	}

	.btn:focus-visible,
	button:focus-visible {
		outline: 2px solid var(--fw-accent);
		outline-offset: 2px;
	}

	.btn--outline {
		background: transparent;
		color: var(--fw-text-primary);
		border-color: var(--fw-border-color);
	}

	.btn--outline:hover {
		background: var(--fw-bg-secondary);
		border-color: var(--fw-text-primary);
		color: var(--fw-text-primary);
	}

	.btn--ghost {
		background: transparent;
		border-color: transparent;
		color: var(--fw-text-primary);
		padding: 0.5em 0.75em;
	}

	.btn--ghost:hover {
		background: var(--fw-bg-secondary);
		color: var(--fw-text-primary);
	}

	.btn--sm {
		padding: 0.375em 1em;
		font-size: 0.8125rem;
	}

	.btn--lg {
		padding: 0.875em 2em;
		font-size: 1rem;
	}

	.btn--block {
		width: 100%;
	}

	/* ==========================================================================
	Layout
	========================================================================== */

	.fw-container {
		width: 100%;
		max-width: var(--fw-container);
		margin: 0 auto;
		padding: 0 1.25em;
	}

	.fw-container--narrow {
		max-width: var(--fw-container-narrow);
	}

	.fw-section {
		padding: 4em 0;
	}

	.fw-section--sm {
		padding: 2.5em 0;
	}

	.fw-section--lg {
		padding: 6em 0;
	}

	.fw-grid {
		display: grid;
		gap: 1.5em;
	}

	.fw-grid--2 { grid-template-columns: repeat(2, 1fr); }
	.fw-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.fw-grid--4 { grid-template-columns: repeat(4, 1fr); }

	@media (max-width: 1024px) {
		.fw-grid--4 { grid-template-columns: repeat(2, 1fr); }
		.fw-grid--3 { grid-template-columns: repeat(2, 1fr); }
	}

	@media (max-width: 640px) {
		.fw-grid--4,
		.fw-grid--3,
		.fw-grid--2 { grid-template-columns: 1fr; }

		.fw-section { padding: 2.5em 0; }
		.fw-section--lg { padding: 3.5em 0; }

		h1 { font-size: 1.75rem; }
		h2 { font-size: 1.375rem; }
		h3 { font-size: 1.125rem; }
	}

	/* ==========================================================================
	Header
	========================================================================== */

	.site-header {
		position: sticky;
		top: 0;
		z-index: 1000;
		background-color: var(--fw-bg-primary);
		border-bottom: 1px solid var(--fw-border-color);
		height: var(--fw-header-height);
		transition: background-color var(--fw-transition), border-color var(--fw-transition);
	}

	.header-inner {
		position: relative;
		display: flex;
		align-items: center;
		height: 100%;
		max-width: var(--fw-container);
		margin: 0 auto;
		padding: 0 1.25em;
	}

	.site-branding {
		flex-shrink: 0;
		z-index: 2;
	}

	.site-branding a {
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.site-logo {
		height: 28px;
		width: auto;
		display: block;
	}

	.site-logo--dark {
		display: none;
	}

	[data-theme="dark"] .site-logo--light {
		display: none;
	}

	[data-theme="dark"] .site-logo--dark {
		display: block;
	}

	.site-title {
		font-size: 1.125rem;
		font-weight: 700;
		margin: 0;
		letter-spacing: -0.02em;
	}

	.site-title a {
		color: var(--fw-text-primary);
	}

	.site-title a:hover {
		color: var(--fw-text-primary);
	}

	.site-description {
		display: none;
	}

	/* Navigation — centered between logo & actions */
	.main-navigation {
		display: none;
	}

	.main-navigation ul {
		display: flex;
		align-items: center;
		list-style: none;
		margin: 0;
		padding: 0;
		gap: 0.25em;
	}

	.main-navigation li {
		position: relative;
	}

	.main-navigation a {
		display: flex;
		align-items: center;
		gap: 0.375em;
		padding: 0.5em 0.75em;
		font-size: 0.875rem;
		font-weight: 450;
		color: var(--fw-text-secondary);
		border-radius: var(--fw-radius);
		transition: color var(--fw-transition), background-color var(--fw-transition);
	}

	.main-navigation a:hover,
	.main-navigation .current-menu-item > a,
	.main-navigation .current_page_item > a {
		color: var(--fw-text-primary);
		background-color: var(--fw-bg-secondary);
	}

	/* Chevron for items with children */
	.main-navigation .menu-item-has-children > a::after {
		content: '';
		display: inline-block;
		width: 4px;
		height: 4px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		margin-top: -2px;
		opacity: 0.6;
		transition: transform var(--fw-transition);
	}

	.main-navigation .menu-item-has-children:hover > a::after {
		transform: rotate(-135deg);
		opacity: 1;
	}

	/* Standard Dropdown */
	.main-navigation ul ul {
		display: none;
		position: absolute;
		top: calc(100% + 4px);
		left: 0;
		min-width: 220px;
		padding: 0.375em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		box-shadow: var(--fw-shadow-lg);
		z-index: 100;
	}

	.main-navigation li:hover > ul,
	.main-navigation li.focus > ul {
		display: block;
	}

	.main-navigation ul ul a {
		padding: 0.5em 0.75em;
		font-size: 0.8125rem;
	}

	.main-navigation ul ul a::after {
		display: none;
	}

	.main-navigation ul ul ul {
		left: 100%;
		top: -0.375em;
	}

	/* ---- Mega Menu ----
	   Add the CSS class "mega-menu" to any top-level menu item
	   via Appearance > Menus > Screen Options > CSS Classes.
	   Second-level items become column headings.
	   Third-level items become links within each column.
	   ---------------------------------------------------- */
	.main-navigation .mega-menu {
		position: static;
	}

	.main-navigation .mega-menu > ul {
		left: 0;
		right: 0;
		width: 100%;
		min-width: auto;
		padding: 1.5em 2em;
		display: none;
		grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
		gap: 1.5em;
		border-radius: 0 0 var(--fw-radius) var(--fw-radius);
	}

	.main-navigation .mega-menu:hover > ul,
	.main-navigation .mega-menu.focus > ul {
		display: grid;
	}

	/* Column headings (2nd-level items) */
	.main-navigation .mega-menu > ul > li {
		border: none;
	}

	.main-navigation .mega-menu > ul > li > a {
		font-size: 0.6875rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.06em;
		color: var(--fw-text-tertiary);
		padding: 0 0 0.5em;
		border-bottom: 1px solid var(--fw-border-light);
		margin-bottom: 0.375em;
		pointer-events: none;
		background: none;
	}

	.main-navigation .mega-menu > ul > li > a:hover {
		background: none;
	}

	/* Column links (3rd-level items) */
	.main-navigation .mega-menu > ul > li > ul {
		display: block;
		position: static;
		min-width: auto;
		padding: 0;
		background: none;
		border: none;
		box-shadow: none;
	}

	.main-navigation .mega-menu > ul > li > ul > li {
		border: none;
	}

	.main-navigation .mega-menu > ul > li > ul a {
		padding: 0.375em 0;
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
		border-radius: 0;
	}

	.main-navigation .mega-menu > ul > li > ul a:hover {
		color: var(--fw-text-primary);
		background: none;
		text-decoration: underline;
	}

	/* If a mega-menu column has no children, make the heading clickable */
	.main-navigation .mega-menu > ul > li:not(.menu-item-has-children) > a {
		pointer-events: auto;
		font-size: 0.8125rem;
		font-weight: 450;
		text-transform: none;
		letter-spacing: normal;
		color: var(--fw-text-secondary);
		border-bottom: none;
		padding: 0.375em 0;
	}

	.main-navigation .mega-menu > ul > li:not(.menu-item-has-children) > a:hover {
		color: var(--fw-text-primary);
		text-decoration: underline;
	}

	/* Header actions */
	.header-actions {
		display: flex;
		align-items: center;
		gap: 0.25em;
		margin-left: auto;
		z-index: 2;
	}

	.header-search {
		position: relative;
	}

	.header-search-toggle {
		background: none;
		border: none;
		padding: 0.5em;
		color: var(--fw-text-secondary);
		cursor: pointer;
		border-radius: var(--fw-radius);
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.header-search-toggle:hover {
		color: var(--fw-text-primary);
		background: var(--fw-bg-secondary);
	}

	.header-search-toggle svg {
		width: 18px;
		height: 18px;
	}

	/* Cart */
	.header-cart {
		position: relative;
	}

	.header-cart a {
		display: flex;
		align-items: center;
		gap: 0.375em;
		padding: 0.5em;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		border-radius: var(--fw-radius);
		transition: color var(--fw-transition), background-color var(--fw-transition);
	}

	.header-cart a:hover {
		color: var(--fw-text-primary);
		background: var(--fw-bg-secondary);
	}

	.header-cart svg {
		width: 18px;
		height: 18px;
	}

	.cart-count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		font-size: 0.6875rem;
		font-weight: 600;
		color: var(--fw-accent-inverse);
		background: var(--fw-accent);
		border-radius: 9px;
	}

	/* Dark mode toggle */
	.dark-mode-toggle {
		background: none;
		border: none;
		padding: 0.5em;
		color: var(--fw-text-secondary);
		cursor: pointer;
		border-radius: var(--fw-radius);
		display: flex;
		align-items: center;
		justify-content: center;
		transition: color var(--fw-transition), background-color var(--fw-transition);
	}

	.dark-mode-toggle:hover {
		color: var(--fw-text-primary);
		background: var(--fw-bg-secondary);
	}

	.dark-mode-toggle svg {
		width: 18px;
		height: 18px;
	}

	.dark-mode-toggle .icon-sun {
		display: none;
	}

	[data-theme="dark"] .dark-mode-toggle .icon-moon {
		display: none;
	}

	[data-theme="dark"] .dark-mode-toggle .icon-sun {
		display: block;
	}

	/* Mobile menu toggle */
	.menu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		background: none;
		border: none;
		padding: 0.5em;
		color: var(--fw-text-secondary);
		cursor: pointer;
		border-radius: var(--fw-radius);
	}

	.menu-toggle:hover {
		color: var(--fw-text-primary);
		background: var(--fw-bg-secondary);
	}

	.menu-toggle svg {
		width: 20px;
		height: 20px;
	}

	.menu-toggle .icon-close {
		display: none;
	}

	.menu-toggle[aria-expanded="true"] .icon-menu {
		display: none;
	}

	.menu-toggle[aria-expanded="true"] .icon-close {
		display: block;
	}

	/* iOS-safe body scroll lock */
	body.fw-menu-open {
		overflow: hidden;
		position: fixed;
		width: 100%;
		-webkit-overflow-scrolling: none;
	}

	/* Mobile menu */
	.mobile-menu {
		display: none;
		position: fixed;
		top: var(--fw-header-height);
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--fw-bg-primary);
		z-index: 999;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 1em 1.25em 2em;
		border-top: 1px solid var(--fw-border-color);
	}

	.mobile-menu.is-open {
		display: block;
	}

	.mobile-menu ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.mobile-menu li {
		border-bottom: 1px solid var(--fw-border-light);
	}

	.mobile-menu a {
		display: block;
		padding: 0.875em 0;
		font-size: 1rem;
		font-weight: 450;
		color: var(--fw-text-primary);
	}

	.mobile-menu a:hover {
		color: var(--fw-text-secondary);
	}

	/* Mobile sub-menus */
	.mobile-menu ul ul {
		padding-left: 1em;
	}

	.mobile-menu ul ul a {
		font-size: 0.9375rem;
		color: var(--fw-text-secondary);
		padding: 0.625em 0;
	}

	.mobile-menu ul ul ul {
		padding-left: 1em;
	}

	.mobile-menu ul ul ul a {
		font-size: 0.875rem;
	}

	@media (min-width: 1025px) {
		.menu-toggle {
			display: none;
		}

		.main-navigation {
			position: absolute;
			left: 50%;
			transform: translateX(-50%);
			display: block;
		}

		.mobile-menu {
			display: none !important;
		}
	}

	/* Tablet: hamburger menu visible, nav hidden */
	@media (min-width: 769px) and (max-width: 1024px) {
		.header-inner {
			justify-content: space-between;
		}

		.mobile-menu ul {
			display: flex;
			flex-wrap: wrap;
			gap: 0;
		}

		.mobile-menu li {
			width: 50%;
		}

		.mobile-menu a {
			padding: 0.75em 0.5em;
		}
	}

	/* ==========================================================================
	Footer
	========================================================================== */

	.site-footer {
		background-color: var(--fw-bg-secondary);
		border-top: 1px solid var(--fw-border-color);
		transition: background-color var(--fw-transition), border-color var(--fw-transition);
	}

	/* Trust Badges Bar */
	.footer-trust {
		border-bottom: 1px solid var(--fw-border-color);
		padding: 2em 0;
	}

	.footer-trust-grid {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1.5em;
	}

	.footer-trust-item {
		display: flex;
		align-items: flex-start;
		gap: 0.75em;
	}

	.footer-trust-icon {
		width: 28px;
		height: 28px;
		flex-shrink: 0;
		color: var(--fw-primary, #4f46e5);
		margin-top: 2px;
	}

	.footer-trust-item strong {
		display: block;
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin-bottom: 2px;
	}

	.footer-trust-item span {
		display: block;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	/* Main Footer Grid */
	.footer-main {
		display: grid;
		grid-template-columns: 2fr 1fr 1fr 1fr;
		gap: 2.5em;
		padding: 3em 0;
	}

	.footer-brand p {
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.75em;
		margin-bottom: 0;
		max-width: 280px;
		line-height: 1.6;
	}

	.footer-logo {
		display: inline-block;
	}

	/* Social Icons */
	.footer-social {
		display: flex;
		gap: 0.5em;
		margin-top: 1.25em;
	}

	.footer-social-link {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		border-radius: 6px;
		color: var(--fw-text-tertiary);
		background: var(--fw-bg-tertiary, transparent);
		transition: color var(--fw-transition), background-color var(--fw-transition);
	}

	.footer-social-link:hover {
		color: var(--fw-text-primary);
		background: var(--fw-border-color);
	}

	.footer-social-link svg {
		width: 15px;
		height: 15px;
	}

	/* Newsletter */
	.footer-newsletter {
		margin-top: 1.5em;
		padding-top: 1.5em;
		border-top: 1px solid var(--fw-border-color);
	}

	.footer-newsletter h4 {
		font-size: 0.8125rem;
		font-weight: 600;
		margin: 0 0 0.25em;
		color: var(--fw-text-primary);
	}

	.footer-newsletter > p {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 0.75em;
		line-height: 1.5;
	}

	.footer-newsletter-form {
		display: flex;
		gap: 0;
		max-width: 320px;
	}

	.footer-newsletter-form input[type="email"] {
		flex: 1;
		padding: 0.5em 0.75em;
		font-size: 0.8125rem;
		border: 1px solid var(--fw-border-color);
		border-right: 0;
		border-radius: var(--fw-radius, 3px) 0 0 var(--fw-radius, 3px);
		background: var(--fw-bg-primary, #fff);
		color: var(--fw-text-primary);
		outline: none;
		transition: border-color var(--fw-transition);
	}

	.footer-newsletter-form input[type="email"]:focus {
		border-color: var(--fw-primary, #4f46e5);
	}

	.footer-newsletter-form button {
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0.5em 0.75em;
		background: var(--fw-primary, #4f46e5);
		color: #fff;
		border: 1px solid var(--fw-primary, #4f46e5);
		border-radius: 0 var(--fw-radius, 3px) var(--fw-radius, 3px) 0;
		cursor: pointer;
		transition: opacity var(--fw-transition);
	}

	.footer-newsletter-form button:hover {
		opacity: 0.85;
	}

	.footer-newsletter-form button:disabled {
		opacity: 0.5;
		cursor: wait;
	}

	.footer-newsletter-form button svg {
		width: 16px;
		height: 16px;
	}

	.footer-newsletter-msg {
		font-size: 0.75rem;
		margin-top: 0.5em;
		padding: 0.35em 0;
	}

	.footer-newsletter-msg--success {
		color: var(--fw-success, #16a34a);
	}

	.footer-newsletter-msg--error {
		color: var(--fw-error, #dc2626);
	}

	/* Footer Nav Columns */
	.footer-col h4 {
		font-size: 0.8125rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--fw-text-tertiary);
		margin-bottom: 1em;
	}

	.footer-col ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.footer-col li {
		margin-bottom: 0.5em;
	}

	.footer-col a {
		font-size: 0.875rem;
		color: var(--fw-text-secondary);
		transition: color var(--fw-transition);
	}

	.footer-col a:hover {
		color: var(--fw-text-primary);
	}

	/* Footer Bottom */
	.footer-bottom {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1.5em 0;
		border-top: 1px solid var(--fw-border-color);
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
	}

	.footer-bottom a {
		color: var(--fw-text-secondary);
	}

	.footer-bottom a:hover {
		color: var(--fw-text-primary);
	}

	/* Payment Icons */
	.footer-payment-icons {
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.payment-icon {
		height: 22px;
		width: auto;
		color: var(--fw-text-tertiary);
		opacity: 0.7;
		transition: opacity var(--fw-transition);
	}

	.payment-icon:hover {
		opacity: 1;
	}

	/* Footer Responsive */
	@media (max-width: 768px) {
		.footer-trust-grid {
			grid-template-columns: 1fr 1fr;
			gap: 1.25em;
		}

		.footer-main {
			grid-template-columns: 1fr 1fr;
			gap: 2em;
		}

		.footer-brand {
			grid-column: 1 / -1;
		}

		.footer-newsletter-form {
			max-width: 100%;
		}

		.footer-bottom {
			flex-direction: column;
			gap: 1em;
			text-align: center;
		}
	}

	@media (max-width: 480px) {
		.footer-trust-grid {
			grid-template-columns: 1fr;
		}

		.footer-main {
			grid-template-columns: 1fr;
		}
	}

	/* ==========================================================================
	Homepage - Hero
	========================================================================== */

	.hero {
		position: relative;
		padding: 4.5em 0 3.5em;
		overflow: hidden;
		background: linear-gradient(160deg,
			#f0f0f0 0%,
			#ffffff 25%,
			#f5f3ff 45%,
			#f0f7ff 65%,
			#ffffff 85%,
			#f7f7f7 100%
		);
		border-bottom: 1px solid var(--fw-border-light);
	}

	[data-theme="dark"] .hero {
		background: linear-gradient(160deg,
			#0a0a0a 0%,
			#0f0d1a 25%,
			#0d1117 45%,
			#0a1018 65%,
			#0f0f0f 85%,
			#0a0a0a 100%
		);
		border-bottom-color: var(--fw-border-color);
	}

	/* Ambient glow orbs */
	.hero-glow {
		position: absolute;
		border-radius: 50%;
		filter: blur(80px);
		opacity: 0.35;
		pointer-events: none;
	}

	.hero-glow--1 {
		width: 500px;
		height: 500px;
		top: -180px;
		left: -100px;
		background: radial-gradient(circle, #c4b5fd 0%, transparent 70%);
	}

	.hero-glow--2 {
		width: 400px;
		height: 400px;
		top: -80px;
		right: -60px;
		background: radial-gradient(circle, #93c5fd 0%, transparent 70%);
	}

	.hero-glow--3 {
		width: 350px;
		height: 350px;
		bottom: -120px;
		left: 40%;
		background: radial-gradient(circle, #a5b4fc 0%, transparent 70%);
	}

	[data-theme="dark"] .hero-glow {
		opacity: 0.12;
	}

	[data-theme="dark"] .hero-glow--1 {
		background: radial-gradient(circle, #7c3aed 0%, transparent 70%);
	}

	[data-theme="dark"] .hero-glow--2 {
		background: radial-gradient(circle, #3b82f6 0%, transparent 70%);
	}

	[data-theme="dark"] .hero-glow--3 {
		background: radial-gradient(circle, #6366f1 0%, transparent 70%);
	}

	.hero-layout {
		position: relative;
		z-index: 1;
		display: grid;
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: 2.5em;
		align-items: center;
		width: 100%;
	}

	/* Full-width centered mode when no deal card */
	.hero-layout--centered {
		grid-template-columns: 1fr;
		max-width: 720px;
		margin: 0 auto;
		text-align: center;
	}

	.hero-shell {
		width: 100%;
		height: 100%;
		padding: 0;
		background: transparent;
		border: 0;
		border-radius: 0;
	}

	.hero-copy {
		padding: 0.5em 0;
		background: transparent;
		border: 0;
		border-radius: 0;
	}

	.hero-copy--centered {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.hero-kicker {
		display: inline-flex;
		align-items: center;
		gap: 0.5em;
		font-size: 0.7rem;
		font-weight: 600;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--fw-text-tertiary);
		margin-bottom: 1.25em;
		padding: 0.4em 0.9em 0.4em 0.65em;
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-light);
		border-radius: 999px;
	}

	[data-theme="dark"] .hero-kicker {
		background: rgba(255, 255, 255, 0.04);
		border-color: rgba(255, 255, 255, 0.08);
	}

	.hero-kicker-dot {
		width: 6px;
		height: 6px;
		border-radius: 50%;
		background: var(--fw-success);
		flex-shrink: 0;
	}

	.hero h1 {
		font-size: clamp(2rem, 5vw, 3.25rem);
		font-weight: 700;
		letter-spacing: -0.025em;
		margin-bottom: 0.45em;
		max-width: 16ch;
		line-height: 1.1;
		color: var(--fw-text-primary);
	}

	.hero-copy--centered h1 {
		max-width: 20ch;
	}

	.hero p {
		font-size: 1.0625rem;
		line-height: 1.6;
		max-width: 48ch;
		margin-bottom: 1.75em;
		color: var(--fw-text-secondary);
	}

	.hero-actions {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 0.75em;
		flex-wrap: wrap;
	}

	.hero-copy--centered .hero-actions {
		justify-content: center;
	}

	.hero-stats {
		display: flex;
		gap: 0.5em;
		margin-top: 1.75em;
		padding-top: 0;
		border-top: 0;
	}

	.hero-copy--centered .hero-stats {
		justify-content: center;
	}

	.hero-stat {
		padding: 0.65em 1em;
		background: rgba(255, 255, 255, 0.65);
		border: 1px solid var(--fw-border-light);
		border-radius: var(--fw-radius);
		text-align: center;
		backdrop-filter: blur(8px);
		-webkit-backdrop-filter: blur(8px);
	}

	[data-theme="dark"] .hero-stat {
		background: rgba(255, 255, 255, 0.03);
		border-color: rgba(255, 255, 255, 0.06);
	}

	.hero-stat-value {
		display: block;
		font-size: 1.3rem;
		font-weight: 700;
		color: var(--fw-text-primary);
		line-height: 1.2;
	}

	.hero-stat-label {
		display: block;
		font-size: 0.6875rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--fw-text-tertiary);
		margin-top: 0.15em;
	}

	/* Spotlight / Deal Card */
	.hero-spotlight {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		padding: 0;
	}

	.hero-spotlight-card {
		display: grid;
		grid-template-rows: auto 1fr;
		width: min(100%, 360px);
		min-height: 420px;
		border: 1px solid var(--fw-border-color);
		border-radius: calc(var(--fw-radius) + 4px);
		background: rgba(255, 255, 255, 0.7);
		overflow: hidden;
		box-shadow: var(--fw-shadow-md);
		color: inherit;
		backdrop-filter: blur(12px);
		-webkit-backdrop-filter: blur(12px);
		transition: transform var(--fw-transition), box-shadow var(--fw-transition);
	}

	[data-theme="dark"] .hero-spotlight-card {
		background: rgba(20, 20, 20, 0.7);
		border-color: rgba(255, 255, 255, 0.06);
	}

	.hero-spotlight-card:hover {
		transform: translateY(-3px);
		box-shadow: var(--fw-shadow-lg);
	}

	.hero-spotlight-media {
		position: relative;
		display: block;
		aspect-ratio: 16 / 10;
		overflow: hidden;
		background: var(--fw-bg-secondary);
	}

	.hero-spotlight-media img,
	.hero-spotlight-media .hero-deal-thumb-fallback {
		width: 100%;
		height: 100%;
		display: block;
	}

	.hero-spotlight-media img {
		object-fit: contain;
		padding: 0.65em;
	}

	.hero-spotlight-badge {
		position: absolute;
		top: 0.75em;
		right: 0.75em;
		font-size: 0.72rem;
		font-weight: 700;
		padding: 0.3em 0.6em;
		border-radius: 999px;
		background: var(--fw-text-primary);
		color: var(--fw-bg-primary);
	}

	.hero-spotlight-body {
		display: grid;
		align-content: start;
		gap: 0.5em;
		padding: 1.1em;
	}

	.hero-spotlight-kicker {
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--fw-text-tertiary);
	}

	.hero-spotlight-title {
		font-size: 0.95rem;
		font-weight: 700;
		line-height: 1.32;
		display: -webkit-box;
		line-clamp: 2;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.hero-spotlight-desc {
		font-size: 0.82rem;
		line-height: 1.45;
		color: var(--fw-text-secondary);
		display: -webkit-box;
		line-clamp: 3;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.hero-spotlight-price {
		display: inline-flex;
		align-items: center;
		gap: 0.55em;
		margin-top: 0.15em;
	}

	.hero-spotlight-original {
		font-size: 0.85rem;
		color: var(--fw-text-tertiary);
		text-decoration: line-through;
	}

	.hero-spotlight-current {
		font-size: 1.08rem;
		font-weight: 700;
		color: var(--fw-text-primary);
	}

	.hero-spotlight-cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin-top: 0.35em;
		padding: 0.5em 0.95em;
		font-size: 0.8rem;
		font-weight: 600;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		width: fit-content;
		transition: all var(--fw-transition);
	}

	.hero-spotlight-card:hover .hero-spotlight-cta {
		background: var(--fw-accent);
		color: var(--fw-accent-inverse);
		border-color: var(--fw-accent);
	}

	/* Hero responsive */
	@media (max-width: 768px) {
		.hero {
			padding: 3em 0 2.5em;
		}

		.hero-glow--1 {
			width: 300px;
			height: 300px;
			top: -100px;
			left: -80px;
		}

		.hero-glow--2 {
			width: 250px;
			height: 250px;
		}

		.hero-glow--3 {
			display: none;
		}

		.hero-layout,
		.hero-layout--centered {
			grid-template-columns: 1fr;
			gap: 1.5em;
			text-align: center;
			max-width: 100%;
		}

		.hero-copy,
		.hero-copy--centered {
			display: flex;
			flex-direction: column;
			align-items: center;
			padding: 0;
		}

		.hero h1 {
			font-size: 1.85rem;
			max-width: 100%;
		}

		.hero p {
			font-size: 0.95rem;
		}

		.hero-actions {
			justify-content: center;
		}

		.hero-stats {
			justify-content: center;
			flex-wrap: wrap;
		}

		.hero-stat {
			padding: 0.5em 0.75em;
		}

		.hero-stat-value {
			font-size: 1.1rem;
		}

		.hero-spotlight {
			justify-content: center;
		}

		.hero-spotlight-card {
			width: 100%;
			max-width: 380px;
			min-height: 0;
		}

		.hero-spotlight-body {
			padding: 0.9em;
		}
	}

	@media (max-width: 480px) {
		.hero {
			padding: 2.5em 0 2em;
		}

		.hero h1 {
			font-size: 1.6rem;
		}

		.hero-kicker {
			font-size: 0.625rem;
		}

		.hero-stat {
			padding: 0.4em 0.6em;
		}

		.hero-stat-value {
			font-size: 0.95rem;
		}

		.hero-stat-label {
			font-size: 0.625rem;
		}
	}

	/* ==========================================================================
	Homepage - Section Headers
	========================================================================== */

	.section-header {
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		margin-bottom: 2em;
		gap: 1em;
	}

	.section-header h2 {
		margin: 0;
	}

	.section-header p {
		font-size: 0.9375rem;
		margin: 0.25em 0 0;
		color: var(--fw-text-tertiary);
	}

	.section-header a {
		font-size: 0.875rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		white-space: nowrap;
		display: inline-flex;
		align-items: center;
		gap: 0.375em;
	}

	.section-header a:hover {
		color: var(--fw-text-primary);
	}

	@media (max-width: 640px) {
		.section-header {
			flex-direction: column;
			align-items: flex-start;
		}
	}

	/* ==========================================================================
	Homepage - Features
	========================================================================== */

	.features-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25em;
	}

	.feature-card {
		padding: 1.75em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.feature-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.feature-icon {
		width: 36px;
		height: 36px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--fw-bg-tertiary);
		border-radius: var(--fw-radius);
		margin-bottom: 1em;
	}

	.feature-icon svg {
		width: 18px;
		height: 18px;
		color: var(--fw-text-primary);
	}

	.feature-card h3 {
		font-size: 0.9375rem;
		margin-bottom: 0.5em;
	}

	.feature-card p {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0;
		line-height: 1.5;
	}

	@media (max-width: 768px) {
		.features-grid {
			grid-template-columns: 1fr;
		}
	}

	/* ==========================================================================
	Homepage - Categories
	========================================================================== */

	/* Categories Header */
	.categories-header {
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		margin-bottom: 1.5em;
		gap: 1em;
	}

	.categories-title {
		font-size: 1.375rem;
		font-weight: 700;
		margin: 0 0 0.25em;
		color: var(--fw-text-primary);
	}

	.categories-subtitle {
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
		margin: 0;
	}

	.categories-view-all {
		display: inline-flex;
		align-items: center;
		gap: 0.375em;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		white-space: nowrap;
		transition: color var(--fw-transition);
	}

	.categories-view-all:hover {
		color: var(--fw-text-primary);
	}

	.categories-view-all svg {
		transition: transform var(--fw-transition);
	}

	.categories-view-all:hover svg {
		transform: translateX(3px);
	}

	/* Categories Grid */
	.categories-grid {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1em;
	}

	.category-card {
		display: flex;
		align-items: center;
		gap: 1em;
		padding: 1.25em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition), transform var(--fw-transition);
	}

	.category-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
		transform: translateY(-2px);
	}

	/* Category color variants */
	.category-card[data-color="blue"] .category-icon {
		background: #eff6ff;
		color: #2563eb;
	}
	.category-card[data-color="purple"] .category-icon {
		background: #f3f0ff;
		color: #7c3aed;
	}
	.category-card[data-color="orange"] .category-icon {
		background: #fff7ed;
		color: #ea580c;
	}
	.category-card[data-color="dark"] .category-icon {
		background: #f3f4f6;
		color: #111827;
	}
	.category-card[data-color="default"] .category-icon {
		background: var(--fw-bg-tertiary);
		color: var(--fw-text-primary);
	}

	/* Dark mode color variants */
	[data-theme="dark"] .category-card[data-color="blue"] .category-icon {
		background: rgba(37, 99, 235, 0.15);
		color: #60a5fa;
	}
	[data-theme="dark"] .category-card[data-color="purple"] .category-icon {
		background: rgba(124, 58, 237, 0.15);
		color: #a78bfa;
	}
	[data-theme="dark"] .category-card[data-color="orange"] .category-icon {
		background: rgba(234, 88, 12, 0.15);
		color: #fb923c;
	}
	[data-theme="dark"] .category-card[data-color="dark"] .category-icon {
		background: rgba(255, 255, 255, 0.1);
		color: #e5e7eb;
	}

	/* Hover color accents */
	.category-card[data-color="blue"]:hover {
		border-color: #93c5fd;
	}
	.category-card[data-color="purple"]:hover {
		border-color: #c4b5fd;
	}
	.category-card[data-color="orange"]:hover {
		border-color: #fdba74;
	}
	.category-card[data-color="dark"]:hover {
		border-color: #9ca3af;
	}

	.category-icon {
		width: 48px;
		height: 48px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 12px;
		flex-shrink: 0;
		transition: transform var(--fw-transition);
	}

	.category-card:hover .category-icon {
		transform: scale(1.05);
	}

	.category-icon svg {
		width: 22px;
		height: 22px;
	}

	.category-info {
		flex: 1;
		min-width: 0;
	}

	.category-card h3 {
		font-size: 0.9rem;
		font-weight: 600;
		margin: 0 0 0.125em;
		color: var(--fw-text-primary);
	}

	.category-desc {
		font-size: 0.75rem;
		color: var(--fw-text-secondary);
		margin: 0 0 0.375em;
		line-height: 1.4;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.category-count {
		display: inline-block;
		font-size: 0.6875rem;
		font-weight: 500;
		color: var(--fw-text-tertiary);
		background: var(--fw-bg-tertiary);
		padding: 0.15em 0.625em;
		border-radius: 999px;
		line-height: 1.6;
	}

	.category-arrow {
		flex-shrink: 0;
		color: var(--fw-text-tertiary);
		transition: transform var(--fw-transition), color var(--fw-transition);
	}

	.category-card:hover .category-arrow {
		transform: translateX(3px);
		color: var(--fw-text-primary);
	}

	/* Tablet */
	@media (max-width: 768px) {
		.categories-grid {
			grid-template-columns: repeat(2, 1fr);
		}

		.categories-header {
			flex-direction: column;
			align-items: flex-start;
			gap: 0.5em;
		}

		.category-desc {
			display: none;
		}
	}

	/* Mobile */
	@media (max-width: 480px) {
		.categories-grid {
			grid-template-columns: 1fr;
			gap: 0.75em;
		}

		.category-card {
			padding: 1em;
		}

		.category-desc {
			display: block;
		}

		.category-icon {
			width: 44px;
			height: 44px;
		}

		.category-icon svg {
			width: 20px;
			height: 20px;
		}
	}

	/* ==========================================================================
	Product Cards
	========================================================================== */

	.products-grid {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1.25em;
	}

	/* --- Product Card --- */
	.product-card {
		display: flex;
		flex-direction: column;
		height: 100%;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		overflow: hidden;
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.product-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-md);
	}

	/* Image area - 16:9 ratio for 1920x1080 images */
	.product-card-image {
		position: relative;
		overflow: hidden;
		background: var(--fw-bg-tertiary);
		aspect-ratio: 16 / 9;
	}

	.product-card-image-link {
		display: block;
		width: 100%;
		height: 100%;
	}

	.product-card-image img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.35s ease;
	}

	.product-card:hover .product-card-image img {
		transform: scale(1.05);
	}

	.product-card-placeholder {
		width: 100%;
		height: 100%;
		background: var(--fw-bg-tertiary);
	}

	/* Hover Overlay */
	.product-card-overlay {
		position: absolute;
		inset: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0.5em;
		background: rgba(0, 0, 0, 0.45);
		opacity: 0;
		transition: opacity 0.3s ease;
		z-index: 2;
	}

	.product-card:hover .product-card-overlay {
		opacity: 1;
	}

	.product-card-overlay-btn {
		display: inline-flex;
		align-items: center;
		padding: 0.5em 1.25em;
		font-size: 0.8125rem;
		font-weight: 600;
		color: #fff;
		background: rgba(255, 255, 255, 0.15);
		backdrop-filter: blur(4px);
		border: 1px solid rgba(255, 255, 255, 0.3);
		border-radius: var(--fw-radius);
		transform: translateY(6px);
		transition: transform 0.3s ease, background 0.2s ease;
	}

	.product-card:hover .product-card-overlay-btn {
		transform: translateY(0);
	}

	.product-card-overlay-btn:hover {
		background: rgba(255, 255, 255, 0.25);
	}

	.product-card-overlay-demo {
		font-size: 0.6875rem;
		padding: 0.4em 1em;
		text-decoration: none;
		color: #fff;
	}

	/* Badges */
	.product-card-badge {
		position: absolute;
		top: 0.75em;
		left: 0.75em;
		right: auto;
		padding: 0.25em 0.6em;
		font-size: 0.6875rem;
		font-weight: 700;
		letter-spacing: 0.02em;
		border-radius: var(--fw-radius);
		z-index: 3;
		line-height: 1.3;
	}

	.product-card-badge--sale {
		background: var(--fw-badge-sale-bg);
		color: var(--fw-badge-sale-text);
	}

	.product-card-badge--new {
		background: var(--fw-primary, #4f46e5);
		color: #fff;
	}

	/* Card Body - flex column with fixed-height zones */
	.product-card-body {
		padding: 0.875em;
		display: flex;
		flex-direction: column;
		flex: 1;
	}

	/* Meta row: category + stars */
	.product-card-meta {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5em;
		min-height: 1.25em;
		margin-bottom: 0.375em;
	}

	.product-card-category {
		font-size: 0.6875rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--fw-text-tertiary);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* Rating Stars */
	.product-card-rating {
		display: inline-flex;
		align-items: center;
		gap: 1px;
		flex-shrink: 0;
		color: #f59e0b;
	}

	.product-card-rating .star {
		width: 12px;
		height: 12px;
	}

	.product-card-rating .star--filled {
		fill: currentColor;
	}

	.product-card-rating .star--empty {
		fill: none;
		stroke: currentColor;
		stroke-width: 1.5;
	}

	/* Title - fixed 2-line height */
	.product-card-title {
		font-size: 0.875rem;
		font-weight: 600;
		margin-bottom: 0.25em;
		line-height: 1.4;
		height: calc(0.875rem * 1.4 * 2);
		overflow: hidden;
	}

	.product-card-title a {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		color: var(--fw-text-primary);
	}

	.product-card-title a:hover {
		color: var(--fw-text-secondary);
	}

	/* Excerpt - fixed 2-line height */
	.product-card-excerpt {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		line-height: 1.5;
		margin-bottom: 0;
		height: calc(0.75rem * 1.5 * 2);
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	/* Sales/Downloads stats */
	.product-card-stats {
		display: flex;
		align-items: center;
		gap: 0.35em;
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.5em;
		min-height: 1em;
	}

	.product-card-stats svg {
		width: 11px;
		height: 11px;
		flex-shrink: 0;
	}

	/* Footer - pinned to bottom */
	.product-card-footer {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5em;
		margin-top: auto;
		padding: 0.75em 0.875em;
		border-top: 1px solid var(--fw-border-color);
	}

	/* Price area */
	.product-card-price {
		display: flex;
		align-items: baseline;
		gap: 0.35em;
		min-width: 0;
	}

	.product-card-price .price-current {
		font-size: 1rem;
		font-weight: 700;
		color: var(--fw-text-primary);
		white-space: nowrap;
	}

	.product-card-price .price-original {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
		text-decoration: line-through;
		white-space: nowrap;
	}

	.product-card-action {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 0.35em;
		flex-shrink: 0;
	}

	.product-card-action .btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 5.5em;
		min-height: 2.2em;
		padding: 0.375em 0.875em;
		font-size: 0.8125rem;
		white-space: nowrap;
		flex-shrink: 0;
	}


	/* Responsive */
	@media (max-width: 1024px) {
		.products-grid {
			grid-template-columns: repeat(3, 1fr);
		}
	}

	@media (max-width: 768px) {
		.products-grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 480px) {
		.products-grid {
			grid-template-columns: 1fr;
			max-width: 400px;
		}
	}

	/* ==========================================================================
	Homepage - Statistics Section
	========================================================================== */

	.stats-section {
		background: var(--fw-bg-secondary);
		border-top: 1px solid var(--fw-border-color);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.stats-grid {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1.5em;
	}

	.stat-item {
		text-align: center;
		padding: 2em 1em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.stat-item:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.stat-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		margin: 0 auto 1em;
		background: var(--fw-bg-tertiary);
		border-radius: var(--fw-radius);
	}

	.stat-icon svg {
		width: 24px;
		height: 24px;
		color: var(--fw-text-primary);
	}

	.stat-number {
		display: block;
		font-size: 2rem;
		font-weight: 700;
		line-height: 1.2;
		color: var(--fw-text-primary);
		letter-spacing: -0.02em;
	}

	.stat-label {
		display: block;
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.25em;
	}

	@media (max-width: 1024px) {
		.stats-grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 480px) {
		.stats-grid {
			grid-template-columns: 1fr;
		}

		.stat-number {
			font-size: 1.5rem;
		}
	}

	/* ==========================================================================
	Homepage - Testimonials Section
	========================================================================== */

	.testimonials-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25em;
	}

	.testimonial-card {
		padding: 1.75em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
		display: flex;
		flex-direction: column;
	}

	.testimonial-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.testimonial-stars {
		display: flex;
		gap: 0.125em;
		margin-bottom: 1em;
	}

	.testimonial-stars .star-filled {
		color: #f59e0b;
	}

	.testimonial-stars .star-empty {
		color: var(--fw-border-color);
	}

	.testimonial-content {
		flex: 1;
		margin: 0 0 1.25em;
	}

	.testimonial-content p {
		font-size: 0.9375rem;
		line-height: 1.6;
		color: var(--fw-text-secondary);
		margin: 0;
	}

	.testimonial-footer {
		display: flex;
		align-items: center;
		gap: 0.75em;
		padding-top: 1em;
		border-top: 1px solid var(--fw-border-light);
	}

	.testimonial-avatar img {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		object-fit: cover;
	}

	.testimonial-name {
		display: block;
		font-size: 0.875rem;
		font-weight: 600;
		font-style: normal;
		color: var(--fw-text-primary);
	}

	.testimonial-product {
		display: block;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.125em;
	}

	@media (max-width: 1024px) {
		.testimonials-grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 640px) {
		.testimonials-grid {
			grid-template-columns: 1fr;
		}
	}

	/* ==========================================================================
	Homepage - Blog Posts Section
	========================================================================== */

	.blog-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25em;
	}

	.blog-card {
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		overflow: hidden;
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.blog-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.blog-card-image {
		display: block;
		aspect-ratio: 16 / 9;
		overflow: hidden;
	}

	.blog-card-image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.3s ease;
	}

	.blog-card:hover .blog-card-image img {
		transform: scale(1.03);
	}

	.blog-card-body {
		padding: 1.25em;
	}

	.blog-card-meta {
		display: flex;
		align-items: center;
		gap: 0.75em;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin-bottom: 0.625em;
	}

	.blog-card-cat {
		padding: 0.125em 0.5em;
		background: var(--fw-bg-tertiary);
		border-radius: var(--fw-radius);
		font-weight: 500;
	}

	.blog-card-title {
		font-size: 1rem;
		font-weight: 600;
		margin-bottom: 0.5em;
		line-height: 1.4;
	}

	.blog-card-title a {
		color: var(--fw-text-primary);
		text-decoration: none;
	}

	.blog-card-title a:hover {
		color: var(--fw-text-secondary);
	}

	.blog-card-excerpt {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 1em;
		line-height: 1.5;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.blog-card-link {
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		display: inline-flex;
		align-items: center;
		gap: 0.375em;
		text-decoration: none;
	}

	.blog-card-link:hover {
		color: var(--fw-text-primary);
	}

	@media (max-width: 1024px) {
		.blog-grid {
			grid-template-columns: repeat(2, 1fr);
		}

		.blog-card:last-child {
			display: none;
		}
	}

	@media (max-width: 640px) {
		.blog-grid {
			grid-template-columns: 1fr;
		}

		.blog-card:last-child {
			display: block;
		}
	}

	/* ==========================================================================
	Homepage - Partner / Integration Logos
	========================================================================== */

	.partners-section {
		border-top: 1px solid var(--fw-border-color);
		border-bottom: 1px solid var(--fw-border-color);
		background: var(--fw-bg-secondary);
	}

	.partners-label {
		text-align: center;
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		text-transform: uppercase;
		letter-spacing: 0.05em;
		font-weight: 500;
		margin-bottom: 1.5em;
	}

	.partners-grid {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 1.5em 2.5em;
	}

	.partner-item {
		display: flex;
		align-items: center;
		gap: 0.5em;
		padding: 0.625em 1em;
		font-size: 0.875rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.partner-item:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.partner-item svg {
		width: 20px;
		height: 20px;
		color: var(--fw-text-tertiary);
		flex-shrink: 0;
	}

	.partner-item img {
		width: 24px;
		height: 24px;
		object-fit: contain;
		flex-shrink: 0;
	}

	@media (max-width: 640px) {
		.partners-grid {
			gap: 0.75em;
		}

		.partner-item {
			font-size: 0.8125rem;
			padding: 0.5em 0.75em;
		}
	}

	/* ==========================================================================
	CTA Section
	========================================================================== */

	.cta-section {
		text-align: center;
		background: var(--fw-bg-secondary);
		border-top: 1px solid var(--fw-border-color);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.cta-section h2 {
		margin-bottom: 0.5em;
	}

	.cta-section p {
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 1.5em;
	}

	/* ==========================================================================
	Search Overlay
	========================================================================== */

	.search-overlay {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 10000;
		background: var(--fw-overlay);
	}

	.search-overlay.is-open {
		display: flex;
		align-items: flex-start;
		justify-content: center;
		padding-top: 20vh;
	}

	.search-overlay-inner {
		width: 100%;
		max-width: 560px;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		box-shadow: var(--fw-shadow-lg);
		margin: 0 1.25em;
	}

	.search-overlay-inner input[type="search"] {
		border: none;
		padding: 1em 1.25em;
		font-size: 1.0625rem;
		background: transparent;
		width: 100%;
	}

	.search-overlay-inner input[type="search"]:focus {
		box-shadow: none;
	}

	/* Live Search */
	.live-search__input-wrap {
		display: flex;
		align-items: center;
		padding: 0 1em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.live-search__icon {
		flex-shrink: 0;
		color: var(--fw-text-tertiary);
	}

	.live-search__input {
		flex: 1;
		border: none;
		padding: 0.875em 0.75em;
		font-size: 1rem;
		background: transparent;
		color: var(--fw-text-primary);
	}

	.live-search__input:focus {
		outline: none;
		box-shadow: none;
	}

	.live-search__kbd {
		font-size: 0.625rem;
		font-family: var(--fw-font-sans);
		padding: 0.2em 0.5em;
		background: var(--fw-bg-tertiary);
		border: 1px solid var(--fw-border-color);
		border-radius: 3px;
		color: var(--fw-text-tertiary);
	}

	.live-search__results {
		max-height: 400px;
		overflow-y: auto;
	}

	.live-search__section {
		padding: 0.5em 0;
	}

	.live-search__section h4 {
		font-size: 0.625rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		color: var(--fw-text-tertiary);
		padding: 0.5em 1.125em;
		margin: 0;
	}

	.live-search__item {
		display: flex;
		align-items: center;
		gap: 0.75em;
		padding: 0.625em 1.125em;
		transition: background var(--fw-transition);
	}

	.live-search__item:hover {
		background: var(--fw-bg-secondary);
	}

	.live-search__thumb {
		width: 36px;
		height: 36px;
		border-radius: var(--fw-radius);
		object-fit: cover;
		flex-shrink: 0;
		border: 1px solid var(--fw-border-color);
	}

	.live-search__thumb--empty {
		background: var(--fw-bg-tertiary);
	}

	.live-search__info {
		flex: 1;
		min-width: 0;
	}

	.live-search__name {
		display: block;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-primary);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.live-search__cat {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
	}

	.live-search__price {
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		white-space: nowrap;
		flex-shrink: 0;
	}

	.live-search__price del {
		color: var(--fw-text-tertiary);
		font-weight: 400;
		font-size: 0.75rem;
	}

	.live-search__price ins {
		text-decoration: none;
	}

	.live-search__view-all {
		display: block;
		text-align: center;
		padding: 0.75em;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-accent);
		border-top: 1px solid var(--fw-border-color);
	}

	.live-search__view-all:hover {
		background: var(--fw-bg-secondary);
	}

	.live-search__empty {
		text-align: center;
		padding: 2em 1em;
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
	}

	.live-search__loading {
		display: flex;
		justify-content: center;
		padding: 1.5em;
	}

	.live-search__loading span {
		width: 20px;
		height: 20px;
		border: 2px solid var(--fw-border-color);
		border-top-color: var(--fw-text-primary);
		border-radius: 50%;
		animation: fw-spin 0.6s linear infinite;
	}

	@keyframes fw-spin {
		to { transform: rotate(360deg); }
	}

	@media (max-width: 480px) {
		.search-overlay.is-open {
			padding-top: 10vh;
		}

		.live-search__results {
			max-height: 60vh;
		}

		.live-search__kbd {
			display: none;
		}
	}

	/* ==========================================================================
	Search Results
	========================================================================== */

	.search-results-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1em;
		margin-top: 1.5em;
	}

	.search-result-card {
		display: flex;
		gap: 1em;
		padding: 1em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.search-result-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.search-result-thumb {
		flex-shrink: 0;
		width: 120px;
		height: 90px;
		overflow: hidden;
		border-radius: var(--fw-radius);
		background: var(--fw-bg-tertiary);
		display: block;
	}

	.search-result-thumb img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.search-result-body {
		flex: 1;
		min-width: 0;
	}

	.search-result-type {
		display: inline-block;
		font-size: 0.6875rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--fw-text-tertiary);
		margin-bottom: 0.25em;
	}

	.search-result-title {
		font-size: 0.875rem;
		font-weight: 600;
		margin-bottom: 0.25em;
		line-height: 1.4;
	}

	.search-result-title a {
		color: var(--fw-text-primary);
	}

	.search-result-title a:hover {
		color: var(--fw-text-secondary);
	}

	.search-result-excerpt {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		line-height: 1.5;
		margin: 0;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.search-result-price {
		display: inline-block;
		margin-top: 0.375em;
		font-size: 0.8125rem;
		font-weight: 700;
		color: var(--fw-text-primary);
	}

	.search-result-price del {
		font-weight: 400;
		color: var(--fw-text-tertiary);
		font-size: 0.75rem;
	}

	.search-result-price ins {
		text-decoration: none;
	}

	@media (max-width: 768px) {
		.search-results-grid {
			grid-template-columns: 1fr;
		}
	}

	@media (max-width: 480px) {
		.search-result-thumb {
			width: 80px;
			height: 64px;
		}
	}

	/* ==========================================================================
	404 Page
	========================================================================== */

	.error-404 {
		text-align: center;
		padding: 5em 0;
		min-height: 60vh;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.error-404-code {
		font-size: 7rem;
		font-weight: 800;
		color: var(--fw-bg-tertiary);
		line-height: 1;
		letter-spacing: -0.05em;
		margin-bottom: 0.125em;
	}

	.error-404 h1 {
		font-size: 1.5rem;
		margin-bottom: 0.5em;
	}

	.error-404 p {
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 2em;
	}

	.error-404 .search-form {
		max-width: 400px;
		margin: 0 auto 2em;
		display: flex;
		gap: 0.5em;
	}

	.error-404 .search-form input[type="search"] {
		flex: 1;
	}

	/* ==========================================================================
	Archive / Shop Page
	========================================================================== */

	.page-header {
		padding: 2.5em 0 0;
	}

	.page-header h1 {
		font-size: 1.75rem;
		margin-bottom: 0.25em;
	}

	.page-header .archive-description,
	.page-header .term-description {
		font-size: 0.9375rem;
		color: var(--fw-text-secondary);
		max-width: 600px;
	}

	.page-header .term-description p {
		margin-bottom: 0;
	}

	.shop-toolbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1em 0;
		border-bottom: 1px solid var(--fw-border-color);
		margin-bottom: 2em;
	}

	.shop-toolbar .woocommerce-result-count {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0;
	}

	.shop-toolbar .woocommerce-ordering select {
		width: auto;
		padding: 0.375em 2em 0.375em 0.75em;
		font-size: 0.8125rem;
	}

	/* ==========================================================================
	Single Product
	========================================================================== */

	.single-product-layout {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 3em;
		padding: 2.5em 0 4em;
	}

	.product-gallery {
		position: relative;
	}

	.product-gallery img {
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
	}

	.product-info .product_title {
		font-size: 1.75rem;
		margin-bottom: 0.5em;
	}

	.product-info .price {
		font-size: 1.5rem;
		font-weight: 700;
		margin-bottom: 1em;
	}

	.product-info .price del {
		font-size: 1.125rem;
		color: var(--fw-text-tertiary);
		font-weight: 400;
	}

	.product-info .price ins {
		text-decoration: none;
	}

	.product-info .woocommerce-product-details__short-description {
		font-size: 0.9375rem;
		color: var(--fw-text-secondary);
		margin-bottom: 1.5em;
		line-height: 1.7;
	}

	.product-meta-info {
		display: flex;
		flex-direction: column;
		gap: 0.5em;
		padding: 1.25em 0;
		border-top: 1px solid var(--fw-border-color);
		border-bottom: 1px solid var(--fw-border-color);
		margin-bottom: 1.5em;
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
	}

	.product-meta-info span {
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.product-meta-info a {
		color: var(--fw-text-secondary);
	}

	.product-meta-info a:hover {
		color: var(--fw-text-primary);
	}

	@media (max-width: 768px) {
		.single-product-layout {
			grid-template-columns: 1fr;
			gap: 2em;
		}
	}

	/* ==========================================================================
	WooCommerce - Add to Cart
	========================================================================== */

	.single_add_to_cart_button {
		width: 100%;
		padding: 0.875em 2em !important;
		font-size: 0.9375rem !important;
	}

	.quantity {
		display: flex;
		align-items: center;
		margin-bottom: 1em;
	}

	.quantity .qty {
		width: 80px;
		text-align: center;
		padding: 0.5em;
	}

	/* ==========================================================================
	WooCommerce - Tabs
	========================================================================== */

	.woocommerce-tabs {
		margin-top: 3em;
		padding-top: 3em;
		border-top: 1px solid var(--fw-border-color);
	}

	.woocommerce-tabs ul.tabs {
		display: flex;
		gap: 0;
		list-style: none;
		margin: 0 0 2em;
		padding: 0;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.woocommerce-tabs ul.tabs li {
		margin: 0;
	}

	.woocommerce-tabs ul.tabs li a {
		display: block;
		padding: 0.75em 1.25em;
		font-size: 0.875rem;
		font-weight: 500;
		color: var(--fw-text-tertiary);
		border-bottom: 2px solid transparent;
		margin-bottom: -1px;
		transition: color var(--fw-transition), border-color var(--fw-transition);
	}

	.woocommerce-tabs ul.tabs li.active a {
		color: var(--fw-text-primary);
		border-bottom-color: var(--fw-accent);
	}

	.woocommerce-tabs .panel {
		font-size: 0.9375rem;
		line-height: 1.7;
		color: var(--fw-text-secondary);
	}

	.woocommerce-tabs .panel h2 {
		font-size: 1.125rem;
		margin-bottom: 1em;
	}

	/* ==========================================================================
	WooCommerce - Cart & Checkout
	========================================================================== */

	/* =============================================
	   Cart Page
	   ============================================= */

	.woocommerce-cart .woocommerce {
		padding: 2em 0 3em;
		display: flex;
		flex-wrap: wrap;
		gap: 2em;
	}

	/* Form (items + coupon) takes left column */
	.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
		width: 100%;
		flex: 0 0 100%;
	}

	.woocommerce-cart .woocommerce > form {
		flex: 1 1 0;
		min-width: 0;
	}

	/* Cart totals takes right column */
	.woocommerce-cart .woocommerce > .cart-collaterals {
		flex: 0 0 340px;
		width: 340px;
	}

	/* Hide the default table structure */
	.woocommerce-cart table.shop_table {
		border: none !important;
		border-collapse: separate !important;
		border-spacing: 0 !important;
	}

	.woocommerce-cart table.shop_table thead {
		display: none !important;
	}

	.woocommerce-cart table.shop_table,
	.woocommerce-cart table.shop_table tbody {
		display: block !important;
	}

	/* Each cart item = a card */
	.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
		display: flex !important;
		align-items: center;
		gap: 1.25em;
		padding: 1.25em;
		margin-bottom: 0.75em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	/* Reset all table cells */
	.woocommerce-cart table.shop_table td {
		display: block !important;
		padding: 0 !important;
		border: none !important;
		vertical-align: middle;
		float: none !important;
		text-align: left !important;
		width: auto !important;
	}

	.woocommerce-cart table.shop_table td::before {
		display: none !important;
	}

	/* Thumbnail */
	.woocommerce-cart td.product-thumbnail {
		flex-shrink: 0;
	}

	.woocommerce-cart td.product-thumbnail a {
		display: block;
	}

	.woocommerce-cart td.product-thumbnail img {
		width: 88px !important;
		height: 88px !important;
		object-fit: cover;
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
		display: block;
		margin: 0 !important;
	}

	/* Product name */
	.woocommerce-cart td.product-name {
		flex: 1;
		min-width: 0;
	}

	.woocommerce-cart td.product-name a {
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		text-decoration: none;
		display: block;
	}

	.woocommerce-cart td.product-name a:hover {
		color: var(--fw-text-secondary);
	}

	.woocommerce-cart td.product-name dl.variation {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin: 0.25em 0 0;
	}

	/* Unit price */
	.woocommerce-cart td.product-price {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		white-space: nowrap;
		flex-shrink: 0;
	}

	/* Quantity with +/- buttons */
	.woocommerce-cart td.product-quantity {
		flex-shrink: 0;
	}

	.woocommerce-cart td.product-quantity .quantity {
		display: inline-flex !important;
		align-items: center;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		overflow: hidden;
	}

	.woocommerce-cart td.product-quantity .quantity input.qty {
		width: 44px !important;
		height: 36px;
		text-align: center;
		border: none !important;
		border-left: 1px solid var(--fw-border-color) !important;
		border-right: 1px solid var(--fw-border-color) !important;
		padding: 0 !important;
		font-size: 0.875rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		background: transparent !important;
		-moz-appearance: textfield;
		margin: 0 !important;
	}

	.woocommerce-cart td.product-quantity .quantity input.qty::-webkit-inner-spin-button,
	.woocommerce-cart td.product-quantity .quantity input.qty::-webkit-outer-spin-button {
		-webkit-appearance: none;
		margin: 0;
	}

	.woocommerce-cart .quantity .fw-qty-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		background: transparent;
		border: none;
		color: var(--fw-text-secondary);
		cursor: pointer;
		font-size: 1rem;
		line-height: 1;
		padding: 0;
		transition: all var(--fw-transition);
	}

	.woocommerce-cart .quantity .fw-qty-btn:hover {
		background: var(--fw-bg-secondary);
		color: var(--fw-text-primary);
	}

	/* Subtotal */
	.woocommerce-cart td.product-subtotal {
		font-size: 1rem;
		font-weight: 700;
		color: var(--fw-text-primary);
		white-space: nowrap;
		flex-shrink: 0;
	}

	/* Remove (X) button — at the end */
	.woocommerce-cart td.product-remove {
		flex-shrink: 0;
		order: 99;
	}

	.woocommerce-cart td.product-remove a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		font-size: 0;
		color: var(--fw-text-tertiary) !important;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: all var(--fw-transition);
		text-decoration: none;
	}

	.woocommerce-cart td.product-remove a::after {
		content: '×';
		font-size: 1.125rem;
		line-height: 1;
	}

	.woocommerce-cart td.product-remove a:hover {
		color: #fff !important;
		background: var(--fw-error, #dc2626);
		border-color: var(--fw-error, #dc2626);
	}

	/* Actions row (coupon + update cart) */
	.woocommerce-cart table.shop_table tr:not(.woocommerce-cart-form__cart-item) {
		display: block !important;
	}

	.woocommerce-cart td.actions {
		display: flex !important;
		align-items: center;
		gap: 0.5em;
		flex-wrap: wrap;
		padding: 0.75em 0 0 !important;
	}

	.woocommerce-cart td.actions .coupon {
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.woocommerce-cart td.actions .coupon label {
		display: none;
	}

	.woocommerce-cart td.actions .coupon #coupon_code {
		min-width: 160px;
		max-width: 260px;
		padding: 0.5em 0.75em;
		font-size: 0.8125rem;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-primary);
		color: var(--fw-text-primary);
	}

	.woocommerce-cart td.actions .coupon .button,
	.woocommerce-cart td.actions > .button {
		padding: 0.5em 1em !important;
		font-size: 0.8125rem !important;
		font-weight: 500 !important;
		background: var(--fw-bg-secondary) !important;
		color: var(--fw-text-primary) !important;
		border: 1px solid var(--fw-border-color) !important;
		border-radius: var(--fw-radius) !important;
		cursor: pointer;
		white-space: nowrap;
		transition: all var(--fw-transition);
	}

	.woocommerce-cart td.actions .coupon .button:hover,
	.woocommerce-cart td.actions > .button:hover {
		background: var(--fw-border-color) !important;
	}

	.woocommerce-cart td.actions > .button[name="update_cart"] {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
		padding: 0;
		margin: -1px;
	}

	/* =============================================
	   Cart Totals + Checkout Button
	   ============================================= */

	.woocommerce-cart .cart-collaterals {
		margin-top: 0;
	}

	.woocommerce-cart .cart-collaterals .cart_totals {
		width: 100%;
		position: sticky;
		top: calc(var(--fw-header-height, 70px) + 1.5em);
	}

	.woocommerce-cart .cart_totals {
		background: var(--fw-bg-card);
		padding: 1.5em;
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
	}

	.woocommerce-cart .cart_totals h2 {
		font-size: 1rem;
		font-weight: 600;
		margin: 0 0 1em;
		padding-bottom: 0.75em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.woocommerce-cart .cart_totals table {
		margin-bottom: 0;
		border: none;
	}

	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td {
		padding: 0.625em 0;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.woocommerce-cart .cart_totals table th {
		font-size: 0.875rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		text-align: left;
	}

	.woocommerce-cart .cart_totals table td {
		text-align: right;
		font-size: 0.875rem;
	}

	.woocommerce-cart .cart_totals .order-total th {
		font-weight: 600;
		color: var(--fw-text-primary);
		font-size: 1rem;
		border-bottom: none;
	}

	.woocommerce-cart .cart_totals .order-total td {
		border-bottom: none;
	}

	.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount {
		font-size: 1.5rem;
		font-weight: 700;
		color: var(--fw-text-primary);
	}

	.woocommerce-cart .wc-proceed-to-checkout {
		padding-top: 1.25em;
		margin-top: 0.5em;
	}

	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
	.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
		display: block !important;
		width: 100% !important;
		padding: 0.875em 1em !important;
		font-size: 1rem !important;
		font-weight: 600 !important;
		text-align: center !important;
		text-decoration: none !important;
		border-radius: var(--fw-radius) !important;
		background: var(--fw-text-primary) !important;
		color: var(--fw-bg-primary) !important;
		border: none !important;
		cursor: pointer;
		transition: opacity var(--fw-transition);
		box-sizing: border-box;
	}

	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
	.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
		opacity: 0.85;
	}

	/* Cart responsive — tablet */
	@media (max-width: 960px) {
		.woocommerce-cart .woocommerce {
			flex-direction: column;
		}

		.woocommerce-cart .woocommerce > form,
		.woocommerce-cart .woocommerce > .cart-collaterals {
			flex: 1 1 100% !important;
			width: 100% !important;
		}

		.woocommerce-cart .cart-collaterals .cart_totals {
			position: static;
		}
	}

	/* Cart responsive — mobile */
	@media (max-width: 768px) {

		/* Card becomes a CSS grid: 2 rows */
		.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
			display: grid !important;
			grid-template-columns: 56px 1fr auto;
			grid-template-rows: auto auto;
			gap: 0.5em 0.75em;
			padding: 1em;
			align-items: center;
		}

		/* Row 1: thumbnail | product name | remove */
		.woocommerce-cart td.product-thumbnail {
			grid-row: 1;
			grid-column: 1;
		}

		.woocommerce-cart td.product-thumbnail img {
			width: 56px !important;
			height: 56px !important;
		}

		.woocommerce-cart td.product-name {
			grid-row: 1;
			grid-column: 2;
			white-space: nowrap;
			overflow: hidden;
			text-overflow: ellipsis;
		}

		.woocommerce-cart td.product-name a {
			font-size: 0.8125rem;
		}

		.woocommerce-cart td.product-remove {
			grid-row: 1;
			grid-column: 3;
			order: 0;
		}

		.woocommerce-cart td.product-remove a {
			width: 28px;
			height: 28px;
			border: none;
		}

		/* Row 2: (skip thumbnail col) quantity | subtotal — right-aligned */
		.woocommerce-cart td.product-quantity {
			grid-row: 2;
			grid-column: 2;
		}

		.woocommerce-cart td.product-subtotal {
			grid-row: 2;
			grid-column: 3;
			text-align: right !important;
		}

		/* Hide unit price on mobile (subtotal is enough) */
		.woocommerce-cart td.product-price {
			display: none !important;
		}

		/* Coupon section full-width */
		.woocommerce-cart td.actions {
			flex-direction: column;
			align-items: stretch !important;
		}

		.woocommerce-cart td.actions .coupon {
			display: flex;
			flex-direction: column;
			width: 100%;
			gap: 0.5em;
		}

		.woocommerce-cart td.actions .coupon #coupon_code {
			max-width: 100%;
			width: 100%;
		}

		.woocommerce-cart td.actions .coupon .button {
			width: 100% !important;
			text-align: center !important;
			box-sizing: border-box;
		}

		.woocommerce-cart .cart-collaterals .cart_totals {
			max-width: 100%;
		}
	}

	/* ==========================================================================
	WooCommerce Blocks - Checkout & Cart
	========================================================================== */

	/* ==========================================================================
	WooCommerce Blocks Override
	Uses .wc-block-components-sidebar-layout / main / sidebar
	========================================================================== */

	/* Container full width */
	.wp-block-woocommerce-checkout,
	.wp-block-woocommerce-cart {
		max-width: var(--fw-container) !important;
		margin: 0 auto !important;
		padding: 2em 1.25em 3em !important;
	}

	/* Sidebar layout - the main flex container */
	.wc-block-components-sidebar-layout {
		max-width: 100% !important;
		gap: 2em;
	}

	/* Left column: form fields */
	.wc-block-components-sidebar-layout .wc-block-components-main {
		width: auto !important;
		padding-right: 0 !important;
		flex: 1 1 0 !important;
		min-width: 0;
	}

	/* Right column: order summary / cart totals */
	.wc-block-components-sidebar-layout .wc-block-components-sidebar {
		width: 420px !important;
		max-width: 100%;
		min-width: 320px;
		padding-left: 0 !important;
		flex: 0 0 420px !important;
	}

	.wc-block-components-sidebar-layout .wc-block-components-sidebar > div {
		background: var(--fw-bg-secondary);
		padding: 1.5em;
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
		position: sticky;
		top: calc(var(--fw-header-height) + 1.5em);
	}

	/* Responsive: stack on mobile */
	@media (max-width: 700px) {
		.wc-block-components-sidebar-layout .wc-block-components-main,
		.wc-block-components-sidebar-layout .wc-block-components-sidebar {
			width: 100% !important;
			min-width: 0;
			padding-left: 0 !important;
			padding-right: 0 !important;
			flex: 1 1 100% !important;
		}

		.wc-block-components-sidebar-layout .wc-block-components-sidebar > div {
			position: static;
		}
	}

	/* Dark mode for WC Block inputs */
	[data-theme="dark"] .wc-block-components-text-input input,
	[data-theme="dark"] .wc-block-components-text-input textarea,
	[data-theme="dark"] .wc-block-components-combobox input,
	[data-theme="dark"] .wc-block-components-select select {
		background-color: var(--fw-input-bg) !important;
		color: var(--fw-text-primary) !important;
		border-color: var(--fw-input-border) !important;
	}

	[data-theme="dark"] .wc-block-components-text-input label,
	[data-theme="dark"] .wc-block-components-combobox label {
		color: var(--fw-text-secondary) !important;
	}

	/* Keep WC Blocks order summary product names horizontal and readable */
	.wc-block-components-order-summary .wc-block-components-product-name {
		writing-mode: horizontal-tb !important;
		text-orientation: mixed !important;
		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: anywhere !important;
		line-height: 1.35;
	}

	/* Checkout layout - form.checkout is the actual form element (classic checkout fallback) */
	form.checkout.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 420px;
		gap: 2em;
		align-items: start;
	}

	form.checkout.woocommerce-checkout > .woocommerce-notices-wrapper,
	form.checkout.woocommerce-checkout > .woocommerce-form-coupon-toggle {
		grid-column: 1 / -1;
	}

	form.checkout.woocommerce-checkout > #customer_details {
		grid-column: 1;
		grid-row: 1;
	}

	form.checkout.woocommerce-checkout > #order_review_heading {
		grid-column: 2;
		grid-row: 1;
		align-self: start;
		display: none;
	}

	form.checkout.woocommerce-checkout > #order_review {
		grid-column: 2;
		grid-row: 1 / 3;
	}

	.woocommerce-checkout .form-row {
		margin-bottom: 1.25em;
	}

	.woocommerce-checkout .form-row label {
		font-size: 0.8125rem;
		margin-bottom: 0.375em;
	}

	.woocommerce-checkout .form-row .required {
		color: var(--fw-error);
	}

	.woocommerce-checkout h3 {
		font-size: 1.125rem;
		margin-bottom: 1em;
		padding-bottom: 0.625em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.woocommerce-checkout .col2-set {
		display: block;
	}

	.woocommerce-checkout .col2-set .col-1,
	.woocommerce-checkout .col2-set .col-2 {
		width: 100%;
		float: none;
	}

	.woocommerce-checkout .col2-set .form-row-first,
	.woocommerce-checkout .col2-set .form-row-last {
		width: 48%;
		display: inline-block;
		vertical-align: top;
	}

	.woocommerce-checkout .col2-set .form-row-first {
		margin-right: 3%;
	}

	#order_review,
	.woocommerce-checkout-review-order {
		background: var(--fw-bg-secondary);
		padding: 1.5em;
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
		position: sticky;
		top: calc(var(--fw-header-height) + 1.5em);
	}

	#order_review h3,
	.woocommerce-checkout-review-order h3 {
		font-size: 1.125rem;
		border-bottom: none;
		padding-bottom: 0;
		margin-bottom: 0.75em;
	}

	#order_review .shop_table,
	.woocommerce-checkout-review-order-table {
		margin-bottom: 1em;
		table-layout: auto;
		width: 100%;
	}

	#order_review .shop_table td,
	#order_review .shop_table th,
	.woocommerce-checkout-review-order-table td,
	.woocommerce-checkout-review-order-table th {
		padding: 0.5em 0;
		font-size: 0.8125rem;
		vertical-align: middle;
		border-bottom: 1px solid var(--fw-border-color);
	}

	#order_review .shop_table thead,
	.woocommerce-checkout-review-order-table thead {
		display: none;
	}

	.woocommerce-checkout-review-order-table .product-name,
	#order_review .shop_table .product-name {
		word-break: normal;
		overflow-wrap: break-word;
		font-size: 0.8125rem;
		line-height: 1.4;
		max-width: 200px;
	}

	.woocommerce-checkout-review-order-table .product-total,
	#order_review .shop_table .product-total {
		text-align: right;
		white-space: nowrap;
		font-weight: 600;
	}

	#order_review .shop_table img,
	.woocommerce-checkout-review-order-table img {
		display: none;
	}

	.woocommerce-checkout-review-order-table tfoot th {
		font-weight: 500;
		background: none;
	}

	.woocommerce-checkout-review-order-table tfoot .order-total th,
	.woocommerce-checkout-review-order-table tfoot .order-total td {
		font-weight: 700;
		font-size: 1rem;
		border-bottom: none;
		padding-top: 0.75em;
	}

	#place_order {
		width: 100%;
		padding: 1em !important;
		font-size: 1rem !important;
		margin-top: 1em;
	}

	@media (max-width: 900px) {
		form.checkout.woocommerce-checkout {
			grid-template-columns: 1fr;
		}

		form.checkout.woocommerce-checkout > #customer_details,
		form.checkout.woocommerce-checkout > #order_review_heading,
		form.checkout.woocommerce-checkout > #order_review {
			grid-column: 1;
			grid-row: auto;
		}

		#order_review,
		.woocommerce-checkout-review-order {
			position: static;
		}
	}

	@media (max-width: 500px) {
		.woocommerce-checkout .col2-set .form-row-first,
		.woocommerce-checkout .col2-set .form-row-last {
			width: 100%;
			display: block;
			margin-right: 0;
		}
	}

	/* (cart styles consolidated in Cart & Checkout section above) */

	/* WooCommerce "View Cart" link after add to cart */
	.added_to_cart,
	a.added_to_cart {
		display: inline-block;
		margin-top: 0.5em;
		margin-left: 0;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-secondary);
		text-align: center;
		width: 100%;
	}

	.products-grid .added_to_cart {
		display: block;
		margin: 0 1em 1em;
		padding: 0.375em 1em;
		text-align: center;
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.products-grid .added_to_cart:hover {
		color: var(--fw-text-primary);
		border-color: var(--fw-text-primary);
	}

	/* Shop page ordering select */
	.woocommerce-ordering {
		margin-bottom: 1.5em;
	}

	.woocommerce-ordering select {
		width: auto;
		min-width: 200px;
		padding: 0.5em 2.5em 0.5em 0.875em;
		font-size: 0.8125rem;
	}

	.woocommerce-result-count {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin-bottom: 0.5em;
	}

	/* Shop toolbar: result count + ordering */
	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		display: inline-block;
		vertical-align: middle;
	}

	.woocommerce .woocommerce-result-count {
		float: left;
		line-height: 2.8;
	}

	.woocommerce .woocommerce-ordering {
		float: right;
	}

	.woocommerce .products-grid,
	.products-grid {
		clear: both;
	}

	.fw-shop-toolbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.75em;
		padding: 1.25em 0;
		border-bottom: 1px solid var(--fw-border-color);
		margin-bottom: 0.5em;
	}

	.fw-shop-toolbar .shop-filter-toggle {
		margin: 0;
	}

	.fw-shop-toolbar .woocommerce-result-count {
		float: none;
		margin: 0;
		line-height: 1.35;
	}

	.fw-shop-toolbar .woocommerce-ordering {
		float: none;
		margin: 0;
	}

	.fw-shop-toolbar .woocommerce-ordering select {
		margin: 0;
	}

	/* ==========================================================================
	Single Product Layout
	========================================================================== */

	.single-product div.product {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 2.5em;
		row-gap: 1em;
		padding: 2em 0 3em;
		align-items: start;
	}

	.single-product div.product .woocommerce-product-gallery {
		grid-column: 1;
		grid-row: 1;
		float: none;
		width: 100%;
		position: relative;
		padding: 0.75em;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-card);
	}

	.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
		position: absolute;
		top: 0.75em;
		right: 0.75em;
		left: auto;
		z-index: 6;
		width: 2.25rem;
		height: 2.25rem;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0;
		font-size: 0;
		line-height: 0;
		overflow: hidden;
		text-indent: -9999px;
		white-space: nowrap;
		border: 1px solid var(--fw-border-color);
		border-radius: 999px;
		background: color-mix(in srgb, var(--fw-bg-primary) 92%, transparent);
		backdrop-filter: blur(4px);
		color: var(--fw-text-primary);
		box-shadow: var(--fw-shadow-sm);
		transition: transform var(--fw-transition), box-shadow var(--fw-transition), border-color var(--fw-transition);
	}

	.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover,
	.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger:focus-visible {
		transform: translateY(-1px);
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-md);
	}

	.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
		content: '' !important;
		display: block;
		width: 0.78rem;
		height: 0.78rem;
		border: 2px solid currentColor;
		border-radius: 50%;
		position: absolute;
		top: 0.62rem;
		left: 0.62rem;
		box-sizing: border-box;
	}

	.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::after {
		content: '';
		position: absolute;
		width: 0.5rem;
		height: 2px;
		background: currentColor;
		transform: rotate(45deg);
		transform-origin: center;
		right: 0.58rem;
		bottom: 0.58rem;
		border-radius: 2px;
	}

	.single-product div.product .woocommerce-product-gallery img {
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
	}

	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
		display: flex !important;
		align-items: center;
		gap: 0.5em;
		overflow-x: auto;
		list-style: none !important;
		list-style-type: none !important;
		margin: 0.75em 0 0 !important;
		padding: 0 !important;
		scrollbar-width: thin;
	}

	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
		flex: 0 0 86px;
		width: 86px !important;
		max-width: 86px;
		float: none !important;
		margin: 0 !important;
		list-style: none !important;
	}

	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img {
		width: 86px;
		height: 86px;
		object-fit: cover;
		cursor: pointer;
		opacity: 0.78;
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
		transition: opacity var(--fw-transition), border-color var(--fw-transition);
	}

	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li:hover img,
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
		opacity: 1;
		border-color: var(--fw-text-tertiary);
	}

	.single-product div.product .summary {
		grid-column: 2;
		grid-row: 1 / span 3;
		padding: 1.5em;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-card);
	}

	.single-product div.product .woocommerce-tabs {
		grid-column: 1 / -1;
		margin-top: 1.5em;
		padding: 1.5em;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-card);
	}

	.single-product div.product .related.products {
		grid-column: 1 / -1;
	}

	.single-product div.product .summary .product_title {
		font-size: 1.5rem;
		font-weight: 700;
		margin-bottom: 0.5em;
	}

	.single-product div.product .summary .price {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 0.375em;
		font-size: 1.375rem;
		font-weight: 700;
		margin-bottom: 1em;
	}

	.single-product div.product .summary .price del {
		font-size: 1rem;
		color: var(--fw-text-tertiary);
		font-weight: 400;
	}

	.single-product div.product .summary .price ins {
		text-decoration: none;
	}

	.single-product div.product .summary .woocommerce-product-details__short-description {
		font-size: 0.9375rem;
		color: var(--fw-text-secondary);
		line-height: 1.7;
		margin-bottom: 1.5em;
	}

	.single-product div.product .summary .cart {
		display: grid;
		grid-template-columns: minmax(120px, 148px) minmax(0, 1fr);
		align-items: stretch;
		gap: 0.625em;
		margin: 1.25em 0 1.5em;
		padding-top: 1.1em;
		border-top: 1px solid var(--fw-border-color);
	}

	.single-product div.product .summary .cart .quantity {
		display: grid;
		grid-template-columns: 2.15em minmax(0, 1fr) 2.15em;
		align-items: center;
		width: 100%;
		margin: 0;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		overflow: hidden;
		background: var(--fw-bg-primary);
		min-width: 0;
	}

	.single-product div.product .summary .cart .quantity .qty {
		width: 100%;
		min-width: 0;
		height: 2.75em;
		margin: 0;
		padding: 0.5em 0.25em;
		text-align: center;
		border: 0;
		border-left: 1px solid var(--fw-border-color);
		border-right: 1px solid var(--fw-border-color);
		border-radius: 0;
		background: transparent;
	}

	.single-product div.product .summary .cart .quantity .fw-qty-btn {
		appearance: none;
		-webkit-appearance: none;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		height: 2.75em;
		margin: 0;
		padding: 0;
		min-width: 0;
		min-height: 0;
		border: 0;
		border-radius: 0;
		background: var(--fw-bg-secondary);
		color: var(--fw-text-primary);
		font-size: 1.05rem;
		font-weight: 700;
		line-height: 1;
		cursor: pointer;
	}

	.single-product div.product .summary .cart .quantity .fw-qty-btn:hover {
		background: var(--fw-bg-tertiary);
	}

	.single-product div.product .summary .cart .single_add_to_cart_button {
		width: 100% !important;
		min-height: 2.75em;
		margin: 0 !important;
		padding: 0.7em 1em !important;
		min-width: 0;
	}

	.single-product div.product .summary .cart .single_add_to_cart_button.disabled,
	.single-product div.product .summary .cart .single_add_to_cart_button:disabled {
		opacity: 0.65;
		cursor: not-allowed;
	}

	.single-product div.product .summary .fw-single-demo-wrap {
		margin: -0.5em 0 1.25em;
	}

	.single-product div.product .summary .fw-single-demo-btn {
		display: inline-flex;
		width: 100%;
		min-height: 2.6em;
		justify-content: center;
		align-items: center;
		border: 1px solid var(--fw-text-primary);
		background: var(--fw-text-primary);
		color: var(--fw-bg-primary);
		font-weight: 600;
		border-radius: var(--fw-radius);
		transition: opacity var(--fw-transition);
	}

	.single-product div.product .summary .fw-single-demo-btn:hover {
		opacity: 0.85;
	}

	.single-product div.product .summary .product_meta {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		padding-top: 1em;
		border-top: 1px solid var(--fw-border-color);
	}

	.single-product div.product .woocommerce-tabs ul.tabs {
		margin: 0 0 1.1em;
		padding: 0;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.single-product div.product .woocommerce-tabs .panel {
		margin: 0;
		padding: 0.25em 0 0;
	}

	.single-product div.product .summary .product_meta > span {
		display: block;
		margin-bottom: 0.375em;
	}

	.single-product div.product .summary .product_meta a {
		color: var(--fw-text-secondary);
	}

	.single-product div.product .summary .product_meta a:hover {
		color: var(--fw-text-primary);
	}

	.single-product div.product .onsale {
		position: absolute;
		top: 0.625em;
		left: 3em;
		z-index: 6;
		display: inline-block;
		margin: 0;
		padding: 0.25em 0.75em;
		font-size: 0.75rem;
		font-weight: 600;
		background: var(--fw-badge-sale-bg);
		color: var(--fw-badge-sale-text);
		border-radius: var(--fw-radius);
		min-height: 0;
		min-width: 0;
		line-height: 1.5;
	}

	.fw-product-rating-badge {
		display: none;
	}

	/* Sticky summary on desktop */
	.fw-sticky-summary .single-product div.product .summary {
		position: sticky;
		top: calc(var(--fw-header-height, 64px) + 1.5em);
		align-self: start;
	}


	/* Trust badges + Product info: left column below gallery */
	.single-product div.product .fw-single-trust,
	.single-product div.product .fw-product-info {
		grid-column: 1;
		margin-top: 0;
	}

	/* Trust badges */
	.fw-single-trust {
		display: flex;
		gap: 1.25em;
		padding: 1em 1.25em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.fw-single-trust__item {
		display: flex;
		align-items: center;
		gap: 0.375em;
		font-size: 0.6875rem;
		font-weight: 500;
		color: var(--fw-text-tertiary);
	}

	.fw-single-trust__item svg {
		width: 14px;
		height: 14px;
		flex-shrink: 0;
		color: var(--fw-primary, #4f46e5);
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	/* Product Info / Technical Details table */
	.fw-product-info {
		padding: 1.25em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.fw-product-info__title {
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin: 0 0 0.75em;
	}

	.fw-product-info__list {
		margin: 0;
	}

	.fw-product-info__row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0.5em 0;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.fw-product-info__row:last-child {
		border-bottom: none;
	}

	.fw-product-info__row dt {
		display: flex;
		align-items: center;
		gap: 0.5em;
		font-size: 0.8125rem;
		font-weight: 400;
		color: var(--fw-text-tertiary);
	}

	.fw-product-info__icon {
		display: inline-flex;
		align-items: center;
		flex-shrink: 0;
	}

	.fw-product-info__icon svg {
		width: 14px;
		height: 14px;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.fw-product-info__row dd {
		margin: 0;
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
	}

	@media (max-width: 768px) {
		.single-product div.product {
			grid-template-columns: 1fr;
		}

		.fw-sticky-summary .single-product div.product .summary {
			position: static;
		}

		.single-product div.product .fw-single-trust,
		.single-product div.product .fw-product-info {
			grid-column: 1;
		}

		.single-product div.product .summary .price {
			font-size: 1.25rem;
		}

		/* Quantity + Add to cart: full width stacked */
		.single-product div.product .summary .cart {
			grid-template-columns: 1fr;
			gap: 0.625em;
		}

		.single-product div.product .summary .cart .quantity {
			width: 100%;
		}

		.single-product div.product .summary .cart .quantity .qty {
			width: 100%;
		}

		.single-product div.product .summary .cart .single_add_to_cart_button {
			width: 100%;
		}

		.single-product div.product .summary .fw-single-demo-btn {
			min-height: 2.35em;
		}

		.fw-single-trust {
			flex-wrap: wrap;
			gap: 0.75em;
		}

		.single-product div.product .woocommerce-product-gallery,
		.single-product div.product .summary,
		.single-product div.product .woocommerce-tabs,
		.single-product div.product .related.products {
			grid-column: 1;
			grid-row: auto;
		}

		.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
			gap: 0.4em;
		}

		.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
			flex-basis: 68px;
			width: 68px !important;
			max-width: 68px;
		}

		.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img {
			width: 68px;
			height: 68px;
		}

		.single-product div.product .woocommerce-product-gallery,
		.single-product div.product .summary,
		.single-product div.product .woocommerce-tabs {
			padding: 1em;
		}

		.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
			top: 0.6em;
			right: 0.6em;
			width: 2rem;
			height: 2rem;
		}

		.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
			top: 0.54rem;
			left: 0.54rem;
		}

		.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::after {
			right: 0.5rem;
			bottom: 0.5rem;
		}

		.single-product div.product .onsale {
			position: absolute;
			top: 0.625em;
			left: 3em;
			z-index: 5;
			margin: 0;
		}

		.single-product div.product .woocommerce-product-rating {
			display: none;
		}

		.single-product div.product .fw-product-rating-badge {
			display: inline-flex;
			align-items: center;
			gap: 0.25em;
			position: absolute;
			top: 0.625em;
			right: 0.625em;
			z-index: 5;
			margin: 0;
			padding: 0.25em 0.5em;
			font-size: 0.75rem;
			font-weight: 700;
			line-height: 1;
			color: #111111;
			background: #f7df1e;
			border-radius: 999px;
			box-shadow: var(--fw-shadow-sm);
		}

		.single-product div.product .fw-product-rating-badge__icon {
			display: inline-flex;
			width: 0.9em;
			height: 0.9em;
		}

		.single-product div.product .fw-product-rating-badge__icon svg {
			width: 100%;
			height: 100%;
			fill: currentColor;
		}
	}

	/* ==========================================================================
	WooCommerce - Notices
	========================================================================== */

	.woocommerce-message,
	.woocommerce-info,
	.woocommerce-error {
		padding: 0.875em 1.25em;
		margin-bottom: 1.5em;
		border-radius: var(--fw-radius);
		font-size: 0.875rem;
		list-style: none;
	}

	.woocommerce-message {
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		color: var(--fw-text-primary);
	}

	.woocommerce-info {
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		color: var(--fw-text-secondary);
	}

	.woocommerce-error {
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-error);
		color: var(--fw-error);
	}

	.woocommerce-error li {
		list-style: none;
	}

	/* ==========================================================================
	WooCommerce - Widgets
	========================================================================== */

	.widget {
		margin-bottom: 2em;
	}

	.widget-title {
		font-size: 0.8125rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--fw-text-tertiary);
		margin-bottom: 1em;
		padding-bottom: 0.75em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.widget ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.widget ul li {
		margin-bottom: 0.375em;
	}

	.widget ul li a {
		font-size: 0.875rem;
		color: var(--fw-text-secondary);
	}

	.widget ul li a:hover {
		color: var(--fw-text-primary);
	}

	/* ==========================================================================
	WooCommerce - Star Rating
	========================================================================== */

	.star-rating {
		overflow: hidden;
		position: relative;
		height: 1.2em;
		line-height: 1.2;
		width: 5.3em;
		font-family: star;
		font-weight: 400;
		font-size: 0.875rem;
	}

	.star-rating::before {
		content: "\53\53\53\53\53";
		opacity: 0.2;
		float: left;
		top: 0;
		left: 0;
		position: absolute;
	}

	.star-rating span {
		overflow: hidden;
		float: left;
		top: 0;
		left: 0;
		position: absolute;
		padding-top: 1.5em;
	}

	.star-rating span::before {
		content: "\53\53\53\53\53";
		top: 0;
		position: absolute;
		left: 0;
		color: var(--fw-text-primary);
	}

	/* Review form star rating selector (p.stars) */
	.comment-form-rating label {
		display: block;
		font-size: 0.8125rem;
		font-weight: 600;
		margin-bottom: 0.375em;
		color: var(--fw-text-primary);
	}

	p.stars {
		display: flex;
		gap: 0.25em;
		margin: 0 0 1em;
		line-height: 1;
	}

	p.stars a {
		display: inline-block;
		width: 24px;
		height: 24px;
		text-indent: -9999px;
		position: relative;
		color: var(--fw-border-color);
		transition: color 0.15s;
	}

	p.stars a::before {
		content: '';
		position: absolute;
		inset: 0;
		text-indent: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		background: currentColor;
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E");
		-webkit-mask-size: contain;
		mask-size: contain;
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
	}

	p.stars a:hover ~ a {
		color: var(--fw-border-color) !important;
	}

	p.stars:hover a {
		color: #f59e0b;
	}

	p.stars a.active ~ a {
		color: var(--fw-border-color);
	}

	p.stars a.active,
	p.stars a.active ~ a.active {
		color: #f59e0b;
	}

	/* Selected state — WooCommerce adds "active" class */
	p.stars.selected a.active {
		color: #f59e0b;
	}

	p.stars.selected a.active ~ a {
		color: var(--fw-border-color);
	}

	p.stars.selected a:not(.active) {
		color: #f59e0b;
	}

	/* Review form styling */
	#review_form_wrapper {
		margin-top: 1.5em;
	}

	#review_form .comment-form p {
		margin-bottom: 0.875em;
	}

	#review_form .comment-form label {
		display: block;
		font-size: 0.8125rem;
		font-weight: 500;
		margin-bottom: 0.3em;
		color: var(--fw-text-primary);
	}

	#review_form .comment-form textarea,
	#review_form .comment-form input[type="text"],
	#review_form .comment-form input[type="email"] {
		width: 100%;
		padding: 0.625em 0.75em;
		font-size: 0.875rem;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-card);
		color: var(--fw-text-primary);
		transition: border-color var(--fw-transition);
	}

	#review_form .comment-form textarea:focus,
	#review_form .comment-form input:focus {
		outline: none;
		border-color: var(--fw-text-tertiary);
	}

	#review_form .comment-form textarea {
		min-height: 100px;
		resize: vertical;
	}

	#review_form .comment-form .form-submit .submit {
		display: inline-flex;
		align-items: center;
		padding: 0.625em 1.5em;
		font-size: 0.875rem;
		font-weight: 600;
		border: none;
		border-radius: var(--fw-radius);
		background: var(--fw-accent, #2563eb);
		color: #fff;
		cursor: pointer;
		transition: opacity var(--fw-transition);
	}

	#review_form .comment-form .form-submit .submit:hover {
		opacity: 0.88;
	}

	/* ==========================================================================
	WooCommerce - Shop table responsive
	========================================================================== */

	/* Legacy responsive table overrides removed — cart uses flex layout now.
	   Only keep for non-cart shop tables (order details etc). */
	@media (max-width: 768px) {
		table.shop_table_responsive:not(.cart) thead {
			display: none;
		}

		table.shop_table_responsive:not(.cart) tbody th {
			display: none;
		}

		table.shop_table_responsive:not(.cart) tr td {
			display: block;
			text-align: right;
			clear: both;
			padding: 0.5em 1em;
		}

		table.shop_table_responsive:not(.cart) tr td::before {
			content: attr(data-title) ": ";
			float: left;
			font-weight: 600;
		}

		table.shop_table_responsive:not(.cart) tr td.product-remove::before,
		table.shop_table_responsive:not(.cart) tr td.actions::before {
			display: none;
		}
	}

	/* ==========================================================================
	WooCommerce - Pagination
	========================================================================== */

	.woocommerce-pagination {
		padding: 2em 0;
		text-align: center;
	}

	.woocommerce-pagination ul {
		display: inline-flex;
		gap: 0.25em;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.woocommerce-pagination ul li a,
	.woocommerce-pagination ul li span {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 36px;
		height: 36px;
		padding: 0 0.5em;
		font-size: 0.875rem;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		color: var(--fw-text-secondary);
		transition: all var(--fw-transition);
	}

	.woocommerce-pagination ul li a:hover {
		border-color: var(--fw-accent);
		color: var(--fw-text-primary);
	}

	.woocommerce-pagination ul li span.current {
		background: var(--fw-accent);
		border-color: var(--fw-accent);
		color: var(--fw-accent-inverse);
	}

	/* Posts navigation */
	.posts-navigation,
	.post-navigation {
		padding: 2em 0;
		border-top: 1px solid var(--fw-border-color);
	}

	.nav-links {
		display: flex;
		justify-content: space-between;
	}

	.nav-links a {
		font-size: 0.875rem;
		font-weight: 500;
	}

	/* ==========================================================================
	Blog / Content
	========================================================================== */

	.entry-header {
		margin-bottom: 1.25em;
	}

	.entry-title {
		font-size: 1.375rem;
		margin-bottom: 0.25em;
	}

	.entry-title a {
		color: var(--fw-text-primary);
	}

	.entry-title a:hover {
		color: var(--fw-text-secondary);
	}

	.entry-meta {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
	}

	.entry-meta a {
		color: var(--fw-text-tertiary);
	}

	.entry-meta a:hover {
		color: var(--fw-text-primary);
	}

	.entry-content {
		font-size: 1rem;
		line-height: 1.75;
		color: var(--fw-text-secondary);
	}

	.entry-content h2,
	.entry-content h3,
	.entry-content h4 {
		margin-top: 1.75em;
		margin-bottom: 0.5em;
	}

	.entry-content p {
		margin-bottom: 1.25em;
	}

	.entry-content img {
		border-radius: var(--fw-radius);
	}

	.entry-content ul,
	.entry-content ol {
		margin-bottom: 1.25em;
	}

	.entry-footer {
		margin-top: 1.5em;
		padding-top: 1.5em;
		border-top: 1px solid var(--fw-border-color);
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
	}

	.entry-footer a {
		color: var(--fw-text-secondary);
	}

	.post-thumbnail {
		margin-bottom: 1.5em;
	}

	.post-thumbnail img {
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
	}

	/* ==========================================================================
	Comments
	========================================================================== */

	.comments-area {
		margin-top: 2.5em;
		padding-top: 2em;
		border-top: 1px solid var(--fw-border-color);
	}

	.comments-title {
		font-size: 1.125rem;
		font-weight: 700;
		margin: 0 0 1.25em;
	}

	/* Comment list — remove numbering and stack comments */
	.comments-area .comment-list,
	.comments-area .commentlist,
	.comments-area ol.comment-list,
	.comments-area ol.commentlist,
	.comments-area ul.comment-list,
	.comments-area .comment-list li,
	.comments-area .commentlist li,
	.comments-area .comment-list .children,
	.comments-area .commentlist .children {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.comments-area .comment-list,
	.comments-area .commentlist,
	.comments-area .comment-list > li,
	.comments-area .commentlist > li {
		list-style: none !important;
	}

	.comments-area .comment-list > li::marker,
	.comments-area .commentlist > li::marker {
		content: '';
	}

	.comments-area .comment-list,
	.comments-area .commentlist {
		display: flex;
		flex-direction: column;
		gap: 0.75em;
	}

	.comments-area .comment-list .children,
	.comments-area .commentlist .children {
		padding-left: 1.5em;
		border-left: 2px solid var(--fw-border-color);
		margin-top: 0.75em;
	}

	.comments-area .comment-list > li,
	.comments-area .commentlist > li {
		margin-bottom: 0;
	}

	/* Single comment */
	.comment-body {
		padding: 1.25em;
		margin-bottom: 0;
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	/* Comment header — avatar + name + date in one row */
	.comment-meta {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 0.5em;
		margin-bottom: 0.75em;
	}

	.comment-author {
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.comment-author img {
		width: 32px;
		height: 32px;
		border-radius: 50%;
		flex-shrink: 0;
	}

	.comment-author .fn {
		font-weight: 600;
		font-size: 0.8125rem;
		color: var(--fw-text-primary);
	}

	.comment-author .fn a {
		color: inherit;
		text-decoration: none;
	}

	/* Hide "says:" / "dedi ki:" text */
	.comment-author .says {
		display: none;
	}

	.comment-metadata {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
		margin-left: auto;
	}

	.comment-metadata a {
		color: inherit;
		text-decoration: none;
	}

	.comment-metadata a:hover {
		color: var(--fw-text-secondary);
	}

	/* Comment body text */
	.comment-content {
		font-size: 0.875rem;
		line-height: 1.6;
		color: var(--fw-text-secondary);
	}

	.comment-content p:last-child {
		margin-bottom: 0;
	}

	/* Reply link */
	.reply {
		margin-top: 0.625em;
	}

	.comment-reply-link {
		display: inline-flex;
		align-items: center;
		gap: 0.3em;
		font-size: 0.75rem;
		font-weight: 600;
		color: var(--fw-text-tertiary);
		text-decoration: none;
		padding: 0.25em 0.625em;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-card);
		transition: color var(--fw-transition), border-color var(--fw-transition);
	}

	.comment-reply-link:hover {
		color: var(--fw-text-primary);
		border-color: var(--fw-text-tertiary);
	}

	/* Comment form */
	.comment-respond {
		margin-top: 2em;
		padding: 1.5em;
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.comment-respond .comment-reply-title {
		font-size: 1rem;
		font-weight: 700;
		margin: 0 0 0.25em;
	}

	.comment-respond .comment-notes {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 1em;
	}

	.comment-respond label {
		display: block;
		font-size: 0.8125rem;
		font-weight: 500;
		margin-bottom: 0.3em;
		color: var(--fw-text-primary);
	}

	.comment-respond .comment-form-comment textarea,
	.comment-respond input[type="text"],
	.comment-respond input[type="email"],
	.comment-respond input[type="url"] {
		width: 100%;
		padding: 0.625em 0.75em;
		font-size: 0.875rem;
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		background: var(--fw-bg-card);
		color: var(--fw-text-primary);
		transition: border-color var(--fw-transition);
	}

	.comment-respond .comment-form-comment textarea:focus,
	.comment-respond input[type="text"]:focus,
	.comment-respond input[type="email"]:focus,
	.comment-respond input[type="url"]:focus {
		outline: none;
		border-color: var(--fw-text-tertiary);
	}

	.comment-respond .comment-form-comment textarea {
		min-height: 120px;
		resize: vertical;
	}

	.comment-respond .form-submit .submit {
		display: inline-flex;
		align-items: center;
		padding: 0.625em 1.5em;
		font-size: 0.875rem;
		font-weight: 600;
		border: none;
		border-radius: var(--fw-radius);
		background: var(--fw-accent, #2563eb);
		color: #fff;
		cursor: pointer;
		transition: opacity var(--fw-transition);
	}

	.comment-respond .form-submit .submit:hover {
		opacity: 0.88;
	}

	.comment-form p {
		margin-bottom: 0.875em;
	}

	/* Comments responsive */
	@media (max-width: 768px) {
		.comment-body {
			padding: 1em;
		}

		.comment-list .children {
			padding-left: 0.875em;
		}

		.comment-metadata {
			margin-left: 0;
			margin-top: 0.125em;
			width: 100%;
		}

		.comment-respond {
			padding: 1em;
		}

		.comment-respond .comment-reply-title {
			font-size: 0.9375rem;
		}
	}

	/* ==========================================================================
	Accessibility
	========================================================================== */

	.screen-reader-text {
		border: 0;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute !important;
		width: 1px;
		word-wrap: normal !important;
	}

	.screen-reader-text:focus {
		background-color: var(--fw-bg-card);
		border-radius: var(--fw-radius);
		box-shadow: var(--fw-shadow-lg);
		clip: auto !important;
		clip-path: none;
		color: var(--fw-text-primary);
		display: block;
		font-size: 0.875rem;
		font-weight: 600;
		height: auto;
		left: 5px;
		line-height: normal;
		padding: 1em 1.5em;
		text-decoration: none;
		top: 5px;
		width: auto;
		z-index: 100000;
	}

	.skip-link:focus {
		z-index: 100001;
	}

	#primary[tabindex="-1"]:focus {
		outline: 0;
	}

	/* ==========================================================================
	Alignments
	========================================================================== */

	.alignleft {
		float: left;
		margin-right: 1.5em;
		margin-bottom: 1.5em;
	}

	.alignright {
		float: right;
		margin-left: 1.5em;
		margin-bottom: 1.5em;
	}

	.aligncenter {
		clear: both;
		display: block;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 1.5em;
	}

	/* WordPress galleries */
	.gallery {
		display: grid;
		gap: 0.75em;
		margin-bottom: 1.5em;
	}

	.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
	.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
	.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
	.gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }
	.gallery-columns-6 { grid-template-columns: repeat(6, 1fr); }

	.gallery-item {
		margin: 0;
	}

	.gallery-item img {
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
	}

	.gallery-caption {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.25em;
	}

	/* ==========================================================================
	Breadcrumbs
	========================================================================== */

	.woocommerce-breadcrumb {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		padding: 1em 0;
	}

	.woocommerce-breadcrumb a {
		color: var(--fw-text-tertiary);
	}

	.woocommerce-breadcrumb a:hover {
		color: var(--fw-text-primary);
	}

	/* ==========================================================================
	Header Account Icon
	========================================================================== */

	.header-account {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: var(--fw-text-primary);
	}

	.header-account:hover {
		color: var(--fw-text-secondary);
	}

	/* ==========================================================================
	Auth Forms (Login / Register)
	========================================================================== */

	/* ==========================================================================
	Fullscreen Auth Page - Split Layout
	========================================================================== */

	/* Hide header/footer/page chrome on fullscreen auth */
	.fw-auth-fullscreen .site-header,
	.fw-auth-fullscreen .site-footer {
		display: none !important;
	}

	.fw-auth-fullscreen .entry-header,
	.fw-auth-fullscreen .entry-footer,
	.fw-auth-fullscreen .woocommerce-MyAccount-navigation {
		display: none !important;
	}

	.fw-auth-fullscreen #page {
		display: contents;
	}

	.fw-auth-fullscreen #primary {
		padding: 0;
		margin: 0;
	}

	.fw-auth-fullscreen #primary > .fw-container {
		max-width: 100%;
		padding: 0;
	}

	.fw-auth-fullscreen #primary > .fw-container > .fw-section {
		padding: 0;
	}

	.fw-auth-fullscreen .entry-content {
		margin: 0;
		padding: 0;
	}

	/* Split layout */
	.fw-auth-page {
		display: flex;
		min-height: 100vh;
	}

	/* Left branding panel */
	.fw-auth-page__brand {
		display: flex;
		width: 45%;
		background: var(--fw-primary, #4f46e5);
		color: #fff;
		position: relative;
		overflow: hidden;
	}

	.fw-auth-page__brand::before {
		content: '';
		position: absolute;
		inset: 0;
		background:
			radial-gradient(ellipse at 20% 80%, rgba(255,255,255,0.08) 0%, transparent 60%),
			radial-gradient(ellipse at 80% 20%, rgba(255,255,255,0.05) 0%, transparent 50%);
	}

	.fw-auth-page__brand-inner {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		padding: 2.5em;
		width: 100%;
		z-index: 1;
	}

	.fw-auth-page__logo img {
		height: 24px;
		width: auto;
		filter: brightness(0) invert(1);
	}

	.fw-auth-page__brand-content {
		margin: auto 0;
		padding: 3em 0;
	}

	.fw-auth-page__brand-content h1 {
		font-size: 1.75rem;
		font-weight: 700;
		line-height: 1.25;
		margin: 0 0 0.75em;
		max-width: 360px;
		color: #fff;
	}

	.fw-auth-page__brand-content > p {
		font-size: 0.9375rem;
		opacity: 0.8;
		line-height: 1.6;
		margin: 0 0 2em;
		max-width: 340px;
		color: rgba(255, 255, 255, 0.8);
	}

	.fw-auth-page__features {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: 0.75em;
	}

	.fw-auth-page__features li {
		display: flex;
		align-items: center;
		gap: 0.625em;
		font-size: 0.875rem;
		color: rgba(255, 255, 255, 0.9);
	}

	.fw-auth-page__features svg {
		width: 18px;
		height: 18px;
		flex-shrink: 0;
		color: rgba(255, 255, 255, 0.7);
	}

	.fw-auth-page__brand-footer {
		font-size: 0.75rem;
		color: rgba(255, 255, 255, 0.4);
	}

	/* Right form panel */
	.fw-auth-page__form-panel {
		flex: 1;
		display: flex;
		flex-direction: column;
		background: var(--fw-bg-primary);
		overflow-y: auto;
	}

	.fw-auth-page__topbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1.25em 2em;
		flex-shrink: 0;
	}

	.fw-auth-page__back {
		display: inline-flex;
		align-items: center;
		gap: 0.25em;
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		text-decoration: none;
		transition: color var(--fw-transition);
	}

	.fw-auth-page__back:hover {
		color: var(--fw-text-primary);
	}

	.fw-auth-page__back svg {
		width: 16px;
		height: 16px;
	}

	/* Theme toggle */
	.fw-auth-page__theme-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px;
		min-height: 40px;
		padding: 0 !important;
		margin: 0;
		border-radius: 50% !important;
		border: 2px solid var(--fw-border-color) !important;
		background: var(--fw-bg-card) !important;
		color: var(--fw-text-primary);
		cursor: pointer;
		transition: all var(--fw-transition);
		flex-shrink: 0;
		line-height: 1;
		box-sizing: border-box;
	}

	.fw-auth-page__theme-toggle:hover {
		border-color: var(--fw-text-secondary);
		background: var(--fw-bg-secondary);
	}

	.fw-auth-page__theme-toggle svg {
		width: 18px;
		height: 18px;
		flex-shrink: 0;
		position: absolute;
	}

	.fw-auth-page__theme-toggle {
		position: relative;
		overflow: hidden;
	}

	svg.fw-auth-page__icon-sun { display: block; }
	svg.fw-auth-page__icon-moon { display: none; }

	[data-theme="dark"] svg.fw-auth-page__icon-sun { display: none !important; }
	[data-theme="dark"] svg.fw-auth-page__icon-moon { display: block !important; }

	html:not([data-theme="dark"]) svg.fw-auth-page__icon-sun { display: block !important; }
	html:not([data-theme="dark"]) svg.fw-auth-page__icon-moon { display: none !important; }

	[data-theme="dark"] .fw-auth-page__theme-toggle {
		border-color: rgba(255, 255, 255, 0.15);
		color: #fff;
	}

	[data-theme="dark"] .fw-auth-page__theme-toggle:hover {
		border-color: rgba(255, 255, 255, 0.3);
		background: rgba(255, 255, 255, 0.08);
	}

	/* Form inner - centered */
	.fw-auth-page__form-inner {
		max-width: 400px;
		width: 100%;
		margin: auto;
		padding: 2em;
	}

	/* Auth form components (shared between old and new layout) */
	.fw-auth__tabs {
		display: flex;
		border-bottom: 1px solid var(--fw-border-color);
		margin-bottom: 2em;
	}

	.fw-auth__tab {
		flex: 1;
		padding: 0.75em 1em;
		font-size: 0.9375rem;
		font-weight: 500;
		color: var(--fw-text-tertiary);
		background: none;
		border: none;
		border-bottom: 2px solid transparent;
		margin-bottom: -1px;
		cursor: pointer;
		transition: all var(--fw-transition);
	}

	.fw-auth__tab:hover {
		color: var(--fw-text-secondary);
		background: none;
		border-color: transparent;
		border-bottom-color: var(--fw-border-color);
	}

	.fw-auth__tab--active {
		color: var(--fw-text-primary);
		border-bottom-color: var(--fw-accent, var(--fw-primary, #4f46e5));
	}

	.fw-auth__tab--active:hover {
		border-bottom-color: var(--fw-accent, var(--fw-primary, #4f46e5));
		color: var(--fw-text-primary);
	}

	.fw-auth__panel {
		display: none;
	}

	.fw-auth__panel--active {
		display: block;
	}

	.fw-auth__header {
		margin-bottom: 1.75em;
	}

	.fw-auth__title {
		font-size: 1.375rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin: 0 0 0.25em;
		line-height: 1.3;
	}

	.fw-auth__subtitle {
		font-size: 0.875rem;
		color: var(--fw-text-secondary);
		margin: 0;
	}

	.fw-auth__form {
		display: flex;
		flex-direction: column;
		gap: 1.25em;
	}

	.fw-auth__field {
		display: flex;
		flex-direction: column;
	}

	.fw-auth__field label {
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-primary);
		margin-bottom: 0.375em;
	}

	.fw-auth__field input {
		width: 100%;
	}

	.fw-auth__field-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 0.375em;
	}

	.fw-auth__field-header label {
		margin-bottom: 0;
	}

	.fw-auth__forgot {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		text-decoration: none;
	}

	.fw-auth__forgot:hover {
		color: var(--fw-text-primary);
	}

	/* Hide WooCommerce default show-password button (we use our own) */
	.fw-auth-page .show-password-input,
	.fw-auth-page__form-inner .show-password-input,
	.fw-auth__password-wrap .show-password-input,
	.fw-auth__form .show-password-input {
		display: none !important;
	}

	/* Password show/hide */
	.fw-auth__password-wrap {
		position: relative;
	}

	.fw-auth__password-wrap input {
		padding-right: 2.75em;
		width: 100%;
	}

	.fw-auth__password-toggle {
		position: absolute;
		right: 1px;
		top: 1px;
		bottom: 1px;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		background: transparent;
		border: none;
		border-radius: 0 var(--fw-radius, 3px) var(--fw-radius, 3px) 0;
		color: var(--fw-text-tertiary);
		cursor: pointer;
		transition: color var(--fw-transition);
		padding: 0;
	}

	.fw-auth__password-toggle:hover {
		color: var(--fw-text-primary);
	}

	.fw-auth__password-toggle svg {
		width: 16px;
		height: 16px;
	}

	.fw-auth__eye-closed { display: none; }
	.fw-auth__password-toggle.is-visible .fw-auth__eye-open { display: none; }
	.fw-auth__password-toggle.is-visible .fw-auth__eye-closed { display: block; }

	.fw-auth__remember {
		display: flex;
		align-items: center;
	}

	.fw-auth__remember label {
		display: inline-flex;
		align-items: center;
		font-size: 0.8125rem;
		font-weight: 400;
		color: var(--fw-text-secondary);
		cursor: pointer;
		margin-bottom: 0;
	}

	.fw-auth__remember input[type="checkbox"] {
		margin-right: 0.5em;
	}

	.fw-auth__submit {
		margin-top: 0.25em;
	}

	.fw-auth__btn {
		width: 100%;
		padding: 0.75em 1.5em;
		font-size: 0.9375rem;
		font-weight: 500;
	}

	.fw-auth__switch {
		text-align: center;
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
		margin-top: 1.5em;
	}

	.fw-auth__switch a {
		color: var(--fw-text-primary);
		font-weight: 500;
		text-decoration: none;
	}

	.fw-auth__switch a:hover {
		text-decoration: underline;
	}

	/* WooCommerce notices */
	.fw-auth-page__form-inner .woocommerce-error,
	.fw-auth-page__form-inner .woocommerce-message,
	.fw-auth-page__form-inner .woocommerce-info {
		margin-bottom: 1.5em;
		padding: 0.75em 1em;
		font-size: 0.8125rem;
		border-radius: var(--fw-radius);
	}

	/* Responsive: Auth page */
	@media (max-width: 900px) {
		.fw-auth-page__brand {
			width: 40%;
		}

		.fw-auth-page__brand-content h1 {
			font-size: 1.375rem;
		}
	}

	@media (max-width: 768px) {
		.fw-auth-page {
			flex-direction: column;
		}

		.fw-auth-page__brand {
			width: 100%;
			padding: 0;
		}

		.fw-auth-page__brand-inner {
			padding: 2em 1.5em;
		}

		.fw-auth-page__brand-content {
			padding: 1.5em 0;
		}

		.fw-auth-page__brand-content h1 {
			font-size: 1.25rem;
			max-width: 100%;
		}

		.fw-auth-page__brand-content > p {
			display: none;
		}

		.fw-auth-page__features {
			flex-direction: row;
			flex-wrap: wrap;
			gap: 0.5em 1.25em;
		}

		.fw-auth-page__features li {
			font-size: 0.75rem;
		}

		.fw-auth-page__brand-footer {
			display: none;
		}

		.fw-auth-page__topbar {
			padding: 1em 1.5em;
		}

		.fw-auth-page__form-inner {
			padding: 1em 1.5em 2em;
		}
	}

	@media (max-width: 480px) {
		.fw-auth-page__brand-content h1 {
			font-size: 1.125rem;
		}

		.fw-auth-page__features {
			flex-direction: column;
		}

		.fw-auth__title {
			font-size: 1.125rem;
		}
	}

	/* ==========================================================================
	My Account Navigation
	========================================================================== */

	.woocommerce-MyAccount-navigation {
		margin-bottom: 2em;
	}

	.woocommerce-MyAccount-navigation ul {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		gap: 0.125em;
		flex-wrap: wrap;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.woocommerce-MyAccount-navigation ul li a {
		display: inline-flex;
		align-items: center;
		gap: 0.4em;
		padding: 0.625em 0.875em;
		font-size: 0.8125rem;
		font-weight: 450;
		color: var(--fw-text-secondary);
		border-bottom: 2px solid transparent;
		margin-bottom: -1px;
		text-decoration: none;
		transition: color var(--fw-transition), border-color var(--fw-transition);
	}

	.woocommerce-MyAccount-navigation ul li a:hover {
		color: var(--fw-text-primary);
	}

	.woocommerce-MyAccount-navigation ul li.is-active a {
		color: var(--fw-text-primary);
		font-weight: 500;
		border-bottom-color: var(--fw-accent);
	}

	.fw-nav-icon {
		display: inline-flex;
		align-items: center;
		flex-shrink: 0;
	}

	.fw-nav-icon svg {
		width: 14px;
		height: 14px;
	}

	/* ==========================================================================
	My Account Content
	========================================================================== */

	@media (min-width: 769px) {
		.woocommerce-MyAccount-content {
			margin-top: 0;
		}
	}

	/* ==========================================================================
	Dashboard Cards
	========================================================================== */

	.fw-dashboard__welcome {
		display: flex;
		align-items: center;
		gap: 1em;
		margin-bottom: 1.5em;
	}

	.fw-dashboard__avatar img {
		width: 52px;
		height: 52px;
		border-radius: 50%;
		object-fit: cover;
	}

	.fw-dashboard__name {
		font-size: 1.125rem;
		font-weight: 400;
		color: var(--fw-text-primary);
		margin: 0;
		line-height: 1.3;
	}

	.fw-dashboard__name strong {
		font-weight: 600;
	}

	.fw-dashboard__email {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0.125em 0 0;
	}

	/* Quick Stats Bar */
	.fw-dashboard__stats {
		display: flex;
		gap: 1em;
		margin-bottom: 1.5em;
	}

	.fw-dashboard__stat {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 1em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		text-align: center;
	}

	.fw-dashboard__stat-value {
		font-size: 1.25rem;
		font-weight: 700;
		color: var(--fw-text-primary);
		line-height: 1.2;
	}

	.fw-dashboard__stat-label {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
		text-transform: uppercase;
		letter-spacing: 0.04em;
		margin-top: 0.25em;
	}

	/* Dashboard Grid */
	.fw-dashboard__grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 0.875em;
		margin-bottom: 1.5em;
	}

	.fw-dashboard__card {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		gap: 0.75em;
		padding: 1em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		text-decoration: none;
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
		position: relative;
	}

	.fw-dashboard__card:hover {
		border-color: var(--fw-accent, var(--fw-primary, #4f46e5));
		box-shadow: var(--fw-shadow-sm);
	}

	.fw-dashboard__card-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		background: var(--fw-bg-secondary);
		border-radius: var(--fw-radius);
		flex-shrink: 0;
		color: var(--fw-text-primary);
	}

	.fw-dashboard__card-content {
		flex: 1;
		min-width: 0;
	}

	.fw-dashboard__card-title {
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin: 0 0 0.125em;
	}

	.fw-dashboard__card-desc {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
		margin: 0;
		line-height: 1.4;
	}

	.fw-dashboard__card-badge {
		position: absolute;
		top: 0.625em;
		right: 0.625em;
		display: flex;
		align-items: center;
		justify-content: center;
		min-width: 20px;
		height: 20px;
		padding: 0 0.375em;
		font-size: 0.6875rem;
		font-weight: 700;
		color: #fff;
		background: var(--fw-primary, #4f46e5);
		border-radius: 10px;
		line-height: 1;
	}

	/* Recent Orders Section */
	.fw-dashboard__section {
		margin-bottom: 1.5em;
	}

	.fw-dashboard__section-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 0.75em;
	}

	.fw-dashboard__section-header h3 {
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin: 0;
	}

	.fw-dashboard__section-link {
		display: inline-flex;
		align-items: center;
		gap: 0.25em;
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		text-decoration: none;
		transition: color var(--fw-transition);
	}

	.fw-dashboard__section-link:hover {
		color: var(--fw-text-primary);
	}

	.fw-dashboard__orders {
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		overflow: hidden;
	}

	.fw-dashboard__order-row {
		display: flex;
		align-items: center;
		gap: 1em;
		padding: 0.75em 1em;
		text-decoration: none;
		transition: background-color var(--fw-transition);
	}

	.fw-dashboard__order-row:not(:last-child) {
		border-bottom: 1px solid var(--fw-border-color);
	}

	.fw-dashboard__order-row:hover {
		background: var(--fw-bg-secondary);
	}

	.fw-dashboard__order-info {
		display: flex;
		flex-direction: column;
		min-width: 120px;
	}

	.fw-dashboard__order-number {
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
	}

	.fw-dashboard__order-date {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
	}

	.fw-dashboard__order-meta {
		display: flex;
		align-items: center;
		gap: 0.75em;
		flex: 1;
	}

	.fw-dashboard__order-items {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	.fw-dashboard__order-status {
		display: inline-block;
		font-size: 0.625rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.03em;
		padding: 0.2em 0.5em;
		border-radius: 3px;
	}

	.fw-dashboard__order-status--completed {
		background: rgba(22, 163, 74, 0.1);
		color: #16a34a;
	}

	.fw-dashboard__order-status--processing {
		background: rgba(59, 130, 246, 0.1);
		color: #3b82f6;
	}

	.fw-dashboard__order-status--on-hold {
		background: rgba(245, 158, 11, 0.1);
		color: #f59e0b;
	}

	.fw-dashboard__order-status--pending {
		background: rgba(245, 158, 11, 0.1);
		color: #f59e0b;
	}

	.fw-dashboard__order-status--cancelled,
	.fw-dashboard__order-status--refunded,
	.fw-dashboard__order-status--failed {
		background: rgba(239, 68, 68, 0.1);
		color: #ef4444;
	}

	.fw-dashboard__order-total {
		font-size: 0.875rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin-left: auto;
		white-space: nowrap;
	}

	/* Browse Products CTA */
	.fw-dashboard__cta {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1em;
		padding: 1.25em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.fw-dashboard__cta h3 {
		font-size: 0.875rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin: 0 0 0.125em;
	}

	.fw-dashboard__cta p {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin: 0;
	}

	.fw-dashboard__cta .btn {
		flex-shrink: 0;
	}

	/* My Account forms (edit-account, edit-address) */
	.woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row,
	.woocommerce-MyAccount-content .woocommerce-address-fields .form-row {
		margin-bottom: 1em;
	}

	.woocommerce-MyAccount-content fieldset {
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		padding: 1.5em;
		margin: 1.5em 0;
	}

	.woocommerce-MyAccount-content fieldset legend {
		font-size: 0.875rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		padding: 0 0.5em;
	}

	/* Orders table */
	.woocommerce-orders-table {
		width: 100%;
		border-collapse: collapse;
		font-size: 0.875rem;
	}

	.woocommerce-orders-table th {
		text-align: left;
		padding: 0.75em 0.5em;
		font-size: 0.75rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--fw-text-tertiary);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.woocommerce-orders-table td {
		padding: 0.875em 0.5em;
		border-bottom: 1px solid var(--fw-border-light);
		color: var(--fw-text-secondary);
	}

	.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a {
		font-weight: 600;
		color: var(--fw-text-primary);
	}

	.woocommerce-orders-table .woocommerce-button {
		font-size: 0.75rem;
		padding: 0.375em 0.875em;
	}

	/* Responsive: My Account */
	@media (max-width: 768px) {
		.woocommerce-MyAccount-navigation ul {
			gap: 0;
			overflow-x: auto;
			flex-wrap: nowrap;
			-webkit-overflow-scrolling: touch;
			scrollbar-width: none;
		}

		.woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
			display: none;
		}

		.woocommerce-MyAccount-navigation ul li a {
			white-space: nowrap;
			padding: 0.5em 0.75em;
			font-size: 0.75rem;
		}

		.fw-dashboard__stats {
			flex-wrap: wrap;
		}

		.fw-dashboard__stat {
			flex: 1 1 calc(33% - 0.75em);
			min-width: 0;
		}

		.fw-dashboard__grid {
			grid-template-columns: repeat(2, 1fr);
		}

		.fw-dashboard__order-row {
			flex-wrap: wrap;
			gap: 0.5em;
		}

		.fw-dashboard__order-info {
			min-width: auto;
		}

		.fw-dashboard__cta {
			flex-direction: column;
			text-align: center;
		}

		.woocommerce-orders-table,
		.woocommerce-orders-table thead,
		.woocommerce-orders-table tbody,
		.woocommerce-orders-table th,
		.woocommerce-orders-table td,
		.woocommerce-orders-table tr {
			display: block;
		}

		.woocommerce-orders-table thead {
			display: none;
		}

		.woocommerce-orders-table tr {
			padding: 1em 0;
			border-bottom: 1px solid var(--fw-border-color);
		}

		.woocommerce-orders-table td {
			padding: 0.25em 0;
			border-bottom: none;
			display: flex;
			justify-content: space-between;
		}

		.woocommerce-orders-table td::before {
			content: attr(data-title);
			font-weight: 600;
			color: var(--fw-text-primary);
			font-size: 0.75rem;
		}
	}

	@media (max-width: 480px) {
		.fw-dashboard__grid {
			grid-template-columns: 1fr;
		}

		.fw-dashboard__order-meta {
			flex: auto;
			width: 100%;
		}

		.fw-dashboard__order-total {
			margin-left: 0;
		}
	}

	/* ==========================================================================
	Price filter widget
	========================================================================== */

	.widget_price_filter .price_slider {
		margin-bottom: 1.5em;
	}

	.widget_price_filter .price_slider_amount {
		text-align: right;
		line-height: 2.4;
		font-size: 0.875rem;
	}

	.widget_price_filter .price_slider_amount .button {
		float: left;
	}

	.widget_price_filter .ui-slider {
		position: relative;
	}

	.widget_price_filter .ui-slider .ui-slider-handle {
		position: absolute;
		z-index: 2;
		width: 14px;
		height: 14px;
		cursor: ew-resize;
		background: var(--fw-accent);
		border-radius: 50%;
		margin-top: -4px;
		outline: none;
	}

	.widget_price_filter .ui-slider .ui-slider-range {
		position: absolute;
		z-index: 1;
		display: block;
		background: var(--fw-accent);
	}

	.widget_price_filter .price_slider_wrapper .ui-widget-content {
		background: var(--fw-bg-tertiary);
		height: 6px;
		border-radius: 3px;
	}

	/* ==========================================================================
	Loading skeleton
	========================================================================== */

	.skeleton {
		background: var(--fw-skeleton);
		border-radius: var(--fw-radius);
		animation: skeleton-pulse 1.5s ease-in-out infinite;
	}

	@keyframes skeleton-pulse {
		0%, 100% { opacity: 1; }
		50% { opacity: 0.5; }
	}

	/* ==========================================================================
	Utility classes
	========================================================================== */

	.text-center { text-align: center; }
	.text-left { text-align: left; }
	.text-right { text-align: right; }
	.text-muted { color: var(--fw-text-tertiary); }
	.mt-0 { margin-top: 0; }
	.mb-0 { margin-bottom: 0; }
	.mb-1 { margin-bottom: 0.5em; }
	.mb-2 { margin-bottom: 1em; }
	.mb-3 { margin-bottom: 1.5em; }
	.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

	/* ==========================================================================
	Mini Cart Drawer
	========================================================================== */

	.fw-cart-drawer {
		position: fixed;
		inset: 0;
		z-index: 9999;
		pointer-events: none;
		visibility: hidden;
	}

	.fw-cart-drawer.is-open {
		pointer-events: auto;
		visibility: visible;
	}

	/* Overlay */
	.fw-cart-drawer__overlay {
		position: absolute;
		inset: 0;
		background: rgba(0, 0, 0, 0.4);
		opacity: 0;
		transition: opacity 0.3s ease;
		cursor: pointer;
	}

	.fw-cart-drawer.is-open .fw-cart-drawer__overlay {
		opacity: 1;
	}

	/* Panel */
	.fw-cart-drawer__panel {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 420px;
		max-width: 90vw;
		background: var(--fw-bg-primary);
		border-left: 1px solid var(--fw-border-color);
		display: flex;
		flex-direction: column;
		transform: translateX(100%);
		transition: transform 0.3s ease;
		box-shadow: var(--fw-shadow-lg, -4px 0 20px rgba(0,0,0,0.08));
	}

	.fw-cart-drawer.is-open .fw-cart-drawer__panel {
		transform: translateX(0);
	}

	/* Header */
	.fw-cart-drawer__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1.25em 1.5em;
		border-bottom: 1px solid var(--fw-border-color);
		flex-shrink: 0;
	}

	.fw-cart-drawer__header h3 {
		font-size: 1rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		margin: 0;
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.fw-cart-drawer__count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 20px;
		height: 20px;
		padding: 0 0.375em;
		font-size: 0.6875rem;
		font-weight: 700;
		color: #fff;
		background: var(--fw-primary, #4f46e5);
		border-radius: 10px;
	}

	.fw-cart-drawer__close {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		padding: 0;
		background: none;
		border: none;
		color: var(--fw-text-tertiary);
		cursor: pointer;
		border-radius: var(--fw-radius);
		transition: color var(--fw-transition), background var(--fw-transition);
	}

	.fw-cart-drawer__close:hover {
		color: var(--fw-text-primary);
		background: var(--fw-bg-secondary);
	}

	.fw-cart-drawer__close svg {
		width: 18px;
		height: 18px;
	}

	/* Body (WooCommerce mini-cart) */
	.fw-cart-drawer__body {
		flex: 1;
		overflow-y: auto;
		padding: 0;
	}

	/* Mini cart list styling */
	.fw-cart-drawer .woocommerce-mini-cart {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.fw-cart-drawer .woocommerce-mini-cart-item {
		display: flex;
		align-items: center;
		gap: 0.875em;
		padding: 1em 1.5em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.fw-cart-drawer .woocommerce-mini-cart-item a:not(.remove) {
		color: var(--fw-text-primary);
		font-size: 0.875rem;
		font-weight: 500;
		text-decoration: none;
	}

	.fw-cart-drawer .woocommerce-mini-cart-item img {
		width: 56px;
		height: 56px;
		object-fit: cover;
		border-radius: var(--fw-radius);
		border: 1px solid var(--fw-border-color);
		flex-shrink: 0;
	}

	.fw-cart-drawer .woocommerce-mini-cart-item .remove {
		order: 3;
		margin-left: auto;
		font-size: 0;
		width: 24px;
		height: 24px;
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--fw-text-tertiary) !important;
		text-decoration: none;
		flex-shrink: 0;
	}

	.fw-cart-drawer .woocommerce-mini-cart-item .remove::after {
		content: '×';
		font-size: 1.125rem;
		line-height: 1;
	}

	.fw-cart-drawer .woocommerce-mini-cart-item .remove:hover {
		color: var(--fw-error, #dc2626) !important;
	}

	.fw-cart-drawer .woocommerce-mini-cart-item .quantity {
		display: block;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.125em;
	}

	/* Empty cart */
	.fw-cart-drawer .woocommerce-mini-cart__empty-message {
		padding: 3em 1.5em;
		text-align: center;
		color: var(--fw-text-tertiary);
		font-size: 0.875rem;
	}

	/* Totals & buttons */
	.fw-cart-drawer .woocommerce-mini-cart__total {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1em 1.5em;
		border-top: 1px solid var(--fw-border-color);
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--fw-text-primary);
	}

	.fw-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount {
		font-size: 1.125rem;
		font-weight: 700;
	}

	.fw-cart-drawer .woocommerce-mini-cart__buttons {
		display: flex;
		flex-direction: column;
		gap: 0.5em;
		padding: 0 1.5em 1.5em;
	}

	.fw-cart-drawer .woocommerce-mini-cart__buttons a {
		display: block;
		text-align: center;
		padding: 0.75em 1em;
		font-size: 0.875rem;
		font-weight: 500;
		border-radius: var(--fw-radius);
		text-decoration: none;
		transition: all var(--fw-transition);
	}

	.fw-cart-drawer .woocommerce-mini-cart__buttons .wc-forward:first-child {
		background: var(--fw-bg-secondary);
		color: var(--fw-text-primary);
		border: 1px solid var(--fw-border-color);
	}

	.fw-cart-drawer .woocommerce-mini-cart__buttons .wc-forward:first-child:hover {
		background: var(--fw-bg-tertiary, var(--fw-bg-secondary));
	}

	.fw-cart-drawer .woocommerce-mini-cart__buttons .checkout {
		background: var(--fw-text-primary);
		color: var(--fw-bg-primary);
		border: 1px solid var(--fw-text-primary);
	}

	.fw-cart-drawer .woocommerce-mini-cart__buttons .checkout:hover {
		opacity: 0.9;
	}

	/* ==========================================================================
	WooCommerce Products Grid (Shop, Category, Tag, Related, Upsells)
	Now uses .products-grid via filter, same card styles as front-page.
	========================================================================== */

	.woocommerce .products-grid {
		padding: 1em 0 3em;
	}

	/* Shop with sidebar: ensure content area doesn't get squeezed */
	.shop-layout .shop-content {
		overflow: hidden;
	}

	/* Related & Upsells section headings */
	.woocommerce .related > h2,
	.woocommerce .upsells > h2 {
		font-size: 1.25rem;
		font-weight: 700;
		margin-bottom: 1em;
	}

	/* ==========================================================================
	WP Admin Bar adjustment
	========================================================================== */

	.admin-bar .site-header {
		top: 32px;
	}

	.admin-bar .mobile-menu {
		top: calc(var(--fw-header-height) + 32px);
	}

	@media (max-width: 782px) {
		.admin-bar .site-header {
			top: 46px;
		}

		.admin-bar .mobile-menu {
			top: calc(var(--fw-header-height) + 46px);
		}
	}

	/* ==========================================================================
	Blog — Home / Archive
	========================================================================== */

	.blog-hero {
		padding: 3em 0 2em;
		text-align: center;
		border-bottom: 1px solid var(--fw-border-color);
		background: var(--fw-bg-secondary);
	}

	.blog-hero__title {
		font-size: 1.75rem;
		font-weight: 700;
		margin: 0 0 0.375em;
	}

	.blog-hero__desc {
		font-size: 0.9375rem;
		color: var(--fw-text-tertiary);
		margin: 0;
		max-width: 480px;
		margin-inline: auto;
	}

	/* Blog Layout: Grid + Sidebar */
	.blog-layout {
		display: grid;
		grid-template-columns: 1fr 300px;
		gap: 2.5em;
		padding: 2.5em 0 3em;
		align-items: start;
	}

	/* Blog Cards Grid */
	.blog-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1.25em;
	}

	.blog-card {
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		overflow: hidden;
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition), transform var(--fw-transition);
	}

	.blog-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
		transform: translateY(-2px);
	}

	.blog-card__image {
		display: block;
		aspect-ratio: 16/9;
		overflow: hidden;
	}

	.blog-card__image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.3s ease;
	}

	.blog-card:hover .blog-card__image img {
		transform: scale(1.03);
	}

	.blog-card__body {
		padding: 1em 1.125em 1.125em;
	}

	.blog-card__meta {
		display: flex;
		align-items: center;
		gap: 0.75em;
		margin-bottom: 0.5em;
		font-size: 0.6875rem;
	}

	.blog-card__cat {
		font-weight: 600;
		color: var(--fw-accent);
		text-transform: uppercase;
		letter-spacing: 0.03em;
	}

	.blog-card__reading-time {
		display: inline-flex;
		align-items: center;
		gap: 0.25em;
		color: var(--fw-text-tertiary);
	}

	.blog-card__title {
		font-size: 0.9375rem;
		font-weight: 600;
		line-height: 1.4;
		margin: 0 0 0.375em;
	}

	.blog-card__title a {
		color: var(--fw-text-primary);
	}

	.blog-card__title a:hover {
		color: var(--fw-text-secondary);
	}

	.blog-card__excerpt {
		font-size: 0.8125rem;
		line-height: 1.5;
		color: var(--fw-text-tertiary);
		margin: 0 0 0.75em;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.blog-card__footer {
		display: flex;
		align-items: center;
		justify-content: space-between;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	.blog-card__author {
		display: flex;
		align-items: center;
		gap: 0.5em;
	}

	.blog-card__avatar {
		width: 24px;
		height: 24px;
		border-radius: 50%;
	}

	.blog-card__date {
		white-space: nowrap;
	}

	/* Blog Sidebar */
	.blog-sidebar {
		display: flex;
		flex-direction: column;
		gap: 1.5em;
		position: sticky;
		top: calc(var(--fw-header-height) + 1.5em);
	}

	.blog-widget {
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		padding: 1.25em;
	}

	.blog-widget--highlight {
		background: var(--fw-bg-secondary);
		border-color: var(--fw-border-color);
	}

	.blog-widget__title {
		font-size: 0.8125rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		margin: 0 0 0.875em;
		padding-bottom: 0.625em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.blog-widget .search-form {
		display: flex;
		gap: 0.5em;
	}

	.blog-widget .search-form .search-field {
		flex: 1;
		font-size: 0.8125rem;
		padding: 0.5em 0.75em;
	}

	.blog-widget .search-form .search-submit {
		font-size: 0.75rem;
		padding: 0.5em 0.875em;
	}

	/* Widget: Categories */
	.blog-widget__cats {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.blog-widget__cats li {
		margin: 0;
	}

	.blog-widget__cats a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.5em 0;
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
		border-bottom: 1px solid var(--fw-border-light);
	}

	.blog-widget__cats li:last-child a {
		border-bottom: 0;
	}

	.blog-widget__cats a:hover {
		color: var(--fw-text-primary);
	}

	.blog-widget__count {
		font-size: 0.6875rem;
		background: var(--fw-bg-tertiary);
		padding: 0.125em 0.5em;
		border-radius: 999px;
		color: var(--fw-text-tertiary);
	}

	/* Widget: Recent Posts */
	.blog-widget__recent {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.blog-widget__recent-item {
		display: flex;
		gap: 0.625em;
		padding: 0.5em 0;
		border-bottom: 1px solid var(--fw-border-light);
	}

	.blog-widget__recent-item:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.blog-widget__recent-thumb {
		flex-shrink: 0;
		width: 52px;
		height: 52px;
		border-radius: var(--fw-radius);
		overflow: hidden;
	}

	.blog-widget__recent-thumb img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.blog-widget__recent-title {
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-text-primary);
		line-height: 1.4;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.blog-widget__recent-item time {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
	}

	/* Widget: Tags */
	.blog-widget__tags {
		display: flex;
		flex-wrap: wrap;
		gap: 0.375em;
	}

	.blog-widget__tag {
		font-size: 0.6875rem;
		padding: 0.25em 0.625em;
		background: var(--fw-bg-tertiary);
		border-radius: 999px;
		color: var(--fw-text-secondary);
		transition: background var(--fw-transition), color var(--fw-transition);
	}

	.blog-widget__tag:hover {
		background: var(--fw-text-primary);
		color: var(--fw-bg-primary);
	}

	/* Widget: Newsletter */
	.blog-widget__newsletter input {
		width: 100%;
		font-size: 0.8125rem;
		padding: 0.5em 0.75em;
		margin-bottom: 0.5em;
	}

	.blog-widget p {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 0.75em;
	}

	/* Blog Pagination */
	.blog-pagination {
		padding: 1em 0 3em;
		border-top: 1px solid var(--fw-border-color);
	}

	.blog-pagination ul {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0.25em;
		list-style: none;
		margin: 0;
		padding: 1em 0 0;
	}

	.blog-pagination li a,
	.blog-pagination li span {
		display: inline-flex;
		align-items: center;
		gap: 0.375em;
		min-width: 36px;
		height: 36px;
		justify-content: center;
		padding: 0 0.5em;
		font-size: 0.8125rem;
		border-radius: var(--fw-radius);
		color: var(--fw-text-secondary);
		border: 1px solid var(--fw-border-color);
		transition: all var(--fw-transition);
	}

	.blog-pagination li a:hover {
		border-color: var(--fw-text-primary);
		color: var(--fw-text-primary);
	}

	.blog-pagination li span.current {
		background: var(--fw-text-primary);
		color: var(--fw-bg-primary);
		border-color: var(--fw-text-primary);
	}

	/* Blog Responsive */
	@media (max-width: 1024px) {
		.blog-layout {
			grid-template-columns: 1fr 260px;
			gap: 2em;
		}
	}

	@media (max-width: 768px) {
		.blog-layout {
			grid-template-columns: 1fr;
			gap: 2em;
		}

		.blog-sidebar {
			position: static;
		}

		.blog-grid {
			grid-template-columns: repeat(2, 1fr);
		}

		.blog-hero__title {
			font-size: 1.5rem;
		}
	}

	@media (max-width: 480px) {
		.blog-grid {
			grid-template-columns: 1fr;
		}

		.blog-hero {
			padding: 2em 0 1.5em;
		}

		.blog-layout {
			padding: 1.5em 0 2em;
		}
	}

	/* ==========================================================================
	Single Post — Enhanced
	========================================================================== */

	/* Breadcrumb */
	.single-breadcrumb {
		padding: 1em 0;
		border-bottom: 1px solid var(--fw-border-color);
		background: var(--fw-bg-secondary);
	}

	.single-breadcrumb__list {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		list-style: none;
		margin: 0;
		padding: 0;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	.single-breadcrumb__list li {
		display: flex;
		align-items: center;
	}

	.single-breadcrumb__list li::after {
		content: '/';
		margin: 0 0.5em;
		color: var(--fw-text-tertiary);
		opacity: 0.5;
	}

	.single-breadcrumb__list li:last-child::after {
		display: none;
	}

	.single-breadcrumb__list a {
		color: var(--fw-text-tertiary);
	}

	.single-breadcrumb__list a:hover {
		color: var(--fw-text-primary);
	}

	.single-breadcrumb__list li:last-child span {
		color: var(--fw-text-secondary);
	}

	/* Post Header */
	.single-post__header {
		padding: 2.5em 0 1.5em;
		text-align: center;
	}

	.single-post__cats {
		display: flex;
		justify-content: center;
		gap: 0.5em;
		margin-bottom: 0.875em;
	}

	.single-post__cat {
		font-size: 0.6875rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--fw-accent);
		background: var(--fw-bg-tertiary);
		padding: 0.25em 0.75em;
		border-radius: 999px;
	}

	.single-post__title {
		font-size: 2rem;
		font-weight: 800;
		line-height: 1.25;
		margin: 0 0 0.5em;
	}

	.single-post__subtitle {
		font-size: 1.0625rem;
		color: var(--fw-text-tertiary);
		line-height: 1.6;
		margin: 0 0 1.5em;
		max-width: 640px;
		margin-inline: auto;
	}

	.single-post__meta {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 1em;
		padding: 1em 0;
		border-top: 1px solid var(--fw-border-color);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.single-post__author-mini {
		display: flex;
		align-items: center;
		gap: 0.625em;
	}

	.single-post__avatar {
		width: 32px;
		height: 32px;
		border-radius: 50%;
	}

	.single-post__author-name {
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--fw-text-primary);
	}

	.single-post__meta-row {
		display: flex;
		align-items: center;
		gap: 0.375em;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	.single-post__sep {
		font-size: 0.5em;
	}

	/* Share Buttons */
	.single-post__share {
		display: flex;
		align-items: center;
		gap: 0.375em;
	}

	.single-post__share-label {
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin-right: 0.25em;
	}

	.single-post__share-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		border-radius: 50%;
		color: var(--fw-text-tertiary);
		background: var(--fw-bg-tertiary);
		border: none;
		cursor: pointer;
		transition: all var(--fw-transition);
	}

	.single-post__share-btn:hover {
		color: var(--fw-bg-primary);
		background: var(--fw-text-primary);
	}

	/* Featured Image */
	.single-post__featured-image {
		margin: 0 0 2em;
		border-radius: var(--fw-radius);
		overflow: hidden;
		border: 1px solid var(--fw-border-color);
	}

	.single-post__featured-image img {
		width: 100%;
		height: auto;
		display: block;
	}

	/* Content */
	.single-post__content {
		padding-bottom: 2em;
	}

	/* Tags */
	.single-post__tags {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5em;
		padding: 1.5em 0;
		border-top: 1px solid var(--fw-border-color);
	}

	.single-post__tags svg {
		color: var(--fw-text-tertiary);
	}

	.single-post__tags a {
		font-size: 0.75rem;
		padding: 0.25em 0.75em;
		background: var(--fw-bg-tertiary);
		border-radius: 999px;
		color: var(--fw-text-secondary);
		transition: all var(--fw-transition);
	}

	.single-post__tags a:hover {
		background: var(--fw-text-primary);
		color: var(--fw-bg-primary);
	}

	/* Author Box */
	.single-post__author-box {
		display: flex;
		gap: 1.125em;
		padding: 1.5em;
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		margin: 1.5em 0;
	}

	.single-post__author-box-avatar img {
		width: 56px;
		height: 56px;
		border-radius: 50%;
	}

	.single-post__author-box-label {
		font-size: 0.6875rem;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--fw-text-tertiary);
	}

	.single-post__author-box-name {
		display: block;
		font-size: 1rem;
		font-weight: 700;
		color: var(--fw-text-primary);
		margin: 0.125em 0 0.375em;
	}

	.single-post__author-box-bio {
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
		line-height: 1.5;
		margin: 0;
	}

	/* Post Navigation */
	.single-post__nav {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1em;
		padding: 1.5em 0;
		border-top: 1px solid var(--fw-border-color);
	}

	.single-post__nav-link {
		display: block;
		padding: 1em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		transition: border-color var(--fw-transition);
	}

	.single-post__nav-link:hover {
		border-color: var(--fw-text-tertiary);
	}

	.single-post__nav-link--next {
		text-align: right;
	}

	.single-post__nav-dir {
		display: flex;
		align-items: center;
		gap: 0.25em;
		font-size: 0.6875rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--fw-text-tertiary);
		margin-bottom: 0.25em;
	}

	.single-post__nav-link--next .single-post__nav-dir {
		justify-content: flex-end;
	}

	.single-post__nav-title {
		font-size: 0.875rem;
		font-weight: 500;
		color: var(--fw-text-primary);
		display: -webkit-box;
		-webkit-line-clamp: 1;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	/* Related Posts */
	.single-related {
		padding: 3em 0;
		background: var(--fw-bg-secondary);
		border-top: 1px solid var(--fw-border-color);
	}

	.single-related__title {
		font-size: 1.25rem;
		font-weight: 700;
		margin: 0 0 1.25em;
		text-align: center;
	}

	.single-related__grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25em;
	}

	/* Single Post Responsive */
	@media (max-width: 768px) {
		.single-post__title {
			font-size: 1.5rem;
		}

		.single-post__header {
			padding: 1.5em 0 1em;
		}

		.single-post__meta {
			flex-direction: column;
			align-items: flex-start;
		}

		.single-post__nav {
			grid-template-columns: 1fr;
		}

		.single-post__nav-link--next {
			text-align: left;
		}

		.single-post__nav-link--next .single-post__nav-dir {
			justify-content: flex-start;
		}

		.single-related__grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 480px) {
		.single-post__title {
			font-size: 1.25rem;
		}

		.single-post__author-box {
			flex-direction: column;
			align-items: center;
			text-align: center;
		}

		.single-related__grid {
			grid-template-columns: 1fr;
		}

		.single-post__share-label {
			display: none;
		}
	}

	/* ==========================================================================
	FAQ Page
	========================================================================== */

	/* Shortcode pages (FAQ, Contact, About) — full-width hero, contained content */
	.fw-shortcode-page .faq-list,
	.fw-shortcode-page .faq-no-results,
	.fw-shortcode-page .faq-cta {
		max-width: 720px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 1.25em;
		padding-right: 1.25em;
	}

	.fw-shortcode-page .about-values__grid,
	.fw-shortcode-page .about-stats__grid,
	.fw-shortcode-page .about-section,
	.fw-shortcode-page .about-cta__inner {
		max-width: 960px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 1.25em;
		padding-right: 1.25em;
	}

	.faq-hero {
		padding: 3em 1.25em 2em;
		text-align: center;
		background: var(--fw-bg-secondary);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.faq-hero__title {
		font-size: 1.75rem;
		font-weight: 700;
		margin: 0 0 0.375em;
	}

	.faq-hero__desc {
		font-size: 0.9375rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 1.5em;
		max-width: 480px;
		margin-inline: auto;
	}

	/* FAQ Search */
	.faq-search {
		position: relative;
		max-width: 420px;
		margin-inline: auto;
	}

	.faq-search svg {
		position: absolute;
		left: 0.875em;
		top: 50%;
		transform: translateY(-50%);
		color: var(--fw-text-tertiary);
		pointer-events: none;
	}

	.faq-search input {
		width: 100%;
		padding: 0.75em 1em 0.75em 2.75em;
		font-size: 0.875rem;
		border: 1px solid var(--fw-border-color);
		border-radius: 999px;
		background: var(--fw-bg-card);
		color: var(--fw-text-primary);
	}

	.faq-search input:focus {
		outline: none;
		border-color: var(--fw-text-tertiary);
		box-shadow: 0 0 0 3px rgba(0,0,0,0.05);
	}

	/* FAQ List */
	.faq-list {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.faq-item {
		border-bottom: 1px solid var(--fw-border-color);
	}

	.faq-item:first-child {
		border-top: 1px solid var(--fw-border-color);
	}

	.faq-item__question {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 1.125em 0;
		background: none;
		border: none;
		cursor: pointer;
		text-align: left;
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--fw-text-primary);
		gap: 1em;
		transition: color var(--fw-transition);
	}

	.faq-item__question:hover {
		color: var(--fw-text-secondary);
	}

	.faq-item__icon {
		flex-shrink: 0;
		transition: transform 0.25s ease;
		color: var(--fw-text-tertiary);
	}

	.faq-item__question[aria-expanded="true"] .faq-item__icon {
		transform: rotate(180deg);
	}

	.faq-item__answer {
		overflow: hidden;
	}

	.faq-item__answer-inner {
		padding: 0 0 1.25em;
		font-size: 0.875rem;
		line-height: 1.7;
		color: var(--fw-text-secondary);
	}

	.faq-item__answer-inner p:last-child {
		margin-bottom: 0;
	}

	.faq-no-results {
		text-align: center;
		color: var(--fw-text-tertiary);
		padding: 2em 0;
		font-size: 0.9375rem;
	}

	/* FAQ CTA */
	.faq-cta {
		text-align: center;
		padding: 2.5em 1.5em;
		margin-top: 2em;
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.faq-cta__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		border-radius: 50%;
		background: var(--fw-bg-tertiary);
		color: var(--fw-text-primary);
		margin-bottom: 1em;
	}

	.faq-cta h3 {
		font-size: 1.125rem;
		margin: 0 0 0.375em;
	}

	.faq-cta p {
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 1.25em;
		max-width: 380px;
		margin-inline: auto;
	}

	/* FAQ Responsive */
	@media (max-width: 768px) {
		.faq-hero {
			padding: 2em 1em 1.5em;
		}

		.faq-hero__title {
			font-size: 1.375rem;
		}

		.faq-hero__desc {
			font-size: 0.8125rem;
			margin-bottom: 1.25em;
		}

		.faq-item__question {
			font-size: 0.875rem;
			padding: 1em 0;
		}

		.faq-item__answer-inner {
			font-size: 0.8125rem;
			padding-bottom: 1em;
		}

		.faq-search input {
			font-size: 0.8125rem;
			padding: 0.625em 0.875em 0.625em 2.5em;
		}
	}

	@media (max-width: 480px) {
		.faq-hero {
			padding: 1.5em 0.75em 1.25em;
		}

		.faq-hero__title {
			font-size: 1.25rem;
		}

		.faq-cta {
			padding: 1.5em 1em;
			margin-left: 0;
			margin-right: 0;
		}

		.fw-shortcode-page .faq-list,
		.fw-shortcode-page .faq-no-results,
		.fw-shortcode-page .faq-cta {
			padding-left: 0.75em;
			padding-right: 0.75em;
		}
	}

	/* ==========================================================================
	Contact Page
	========================================================================== */

	.contact-hero {
		padding: 3em 0 2em;
		text-align: center;
		background: var(--fw-bg-secondary);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.contact-hero__title {
		font-size: 1.75rem;
		font-weight: 700;
		margin: 0 0 0.375em;
	}

	.contact-hero__desc {
		font-size: 0.9375rem;
		color: var(--fw-text-tertiary);
		margin: 0;
		max-width: 480px;
		margin-inline: auto;
	}

	/* Contact Info Cards */
	.contact-cards {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25em;
		margin-bottom: 2.5em;
	}

	.contact-card {
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		padding: 1.5em;
		text-align: center;
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition);
	}

	.contact-card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
	}

	.contact-card__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		background: var(--fw-bg-tertiary);
		border-radius: 12px;
		color: var(--fw-text-primary);
		margin-bottom: 0.875em;
	}

	.contact-card h3 {
		font-size: 0.9375rem;
		font-weight: 600;
		margin: 0 0 0.25em;
	}

	.contact-card p {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 0.75em;
		line-height: 1.5;
	}

	.contact-card__link {
		display: inline-flex;
		align-items: center;
		gap: 0.375em;
		font-size: 0.8125rem;
		font-weight: 500;
		color: var(--fw-accent);
	}

	.contact-card__link svg {
		transition: transform var(--fw-transition);
	}

	.contact-card__link:hover svg {
		transform: translateX(3px);
	}

	.contact-card__status {
		display: inline-flex;
		align-items: center;
		gap: 0.375em;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	.contact-card__dot {
		width: 6px;
		height: 6px;
		border-radius: 50%;
		background: var(--fw-success);
		display: inline-block;
	}

	/* Live Chat CTA */
	.contact-livechat-section {
		max-width: 640px;
		margin-inline: auto;
	}

	.contact-livechat {
		text-align: center;
		padding: 2.5em 2em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.contact-livechat__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 64px;
		height: 64px;
		background: var(--fw-bg-tertiary);
		border-radius: 50%;
		color: var(--fw-text-primary);
		margin-bottom: 1.25em;
	}

	.contact-livechat h2 {
		font-size: 1.25rem;
		font-weight: 700;
		margin: 0 0 0.5em;
	}

	.contact-livechat > p {
		font-size: 0.875rem;
		color: var(--fw-text-tertiary);
		line-height: 1.6;
		margin: 0 0 1.5em;
		max-width: 440px;
		margin-inline: auto;
	}

	.contact-livechat__features {
		display: flex;
		flex-direction: column;
		gap: 0.625em;
		align-items: center;
	}

	.contact-livechat__feature {
		display: inline-flex;
		align-items: center;
		gap: 0.5em;
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
	}

	.contact-livechat__feature svg {
		color: var(--fw-success);
		flex-shrink: 0;
	}

	.contact-extra-content {
		max-width: 640px;
		margin: 2em auto 0;
	}

	/* Contact Responsive */
	@media (max-width: 768px) {
		.contact-cards {
			grid-template-columns: 1fr;
		}

		.contact-hero {
			padding: 2em 0 1.5em;
		}

		.contact-hero__title {
			font-size: 1.5rem;
		}
	}

	@media (max-width: 480px) {
		.contact-hero {
			padding: 1.5em 0 1.25em;
		}
	}

	/* ==========================================================================
	About Page
	========================================================================== */

	.about-hero {
		padding: 3.5em 0 2.5em;
		text-align: center;
		background: var(--fw-bg-secondary);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.about-hero__kicker {
		display: inline-block;
		font-size: 0.6875rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		color: var(--fw-accent);
		margin-bottom: 0.625em;
	}

	.about-hero__title {
		font-size: 2rem;
		font-weight: 800;
		margin: 0 0 0.5em;
		line-height: 1.2;
	}

	.about-hero__desc {
		font-size: 1.0625rem;
		color: var(--fw-text-tertiary);
		margin: 0;
		max-width: 520px;
		margin-inline: auto;
		line-height: 1.6;
	}

	/* Content Sections */
	.about-section {
		padding: 2.5em 0;
	}

	.about-section--alt {
		background: var(--fw-bg-secondary);
		border-top: 1px solid var(--fw-border-color);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.about-section__title {
		font-size: 1.375rem;
		font-weight: 700;
		margin: 0 0 0.75em;
		text-align: center;
	}

	.about-section__body {
		font-size: 1rem;
		line-height: 1.75;
		color: var(--fw-text-secondary);
	}

	.about-section__body p:last-child {
		margin-bottom: 0;
	}

	/* Stats */
	.about-stats {
		padding: 2.5em 0;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.about-stats__grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
		gap: 1.5em;
		text-align: center;
	}

	.about-stats__item {
		padding: 1.25em 1em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.about-stats__value {
		display: block;
		font-size: 1.75rem;
		font-weight: 800;
		color: var(--fw-text-primary);
		line-height: 1.2;
	}

	.about-stats__label {
		display: block;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
		margin-top: 0.25em;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		font-weight: 500;
	}

	/* Values / Features */
	.about-values {
		padding: 3em 0;
		background: var(--fw-bg-secondary);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.about-values__title {
		font-size: 1.375rem;
		font-weight: 700;
		text-align: center;
		margin: 0 0 1.5em;
	}

	.about-values__grid {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1.25em;
	}

	.about-values__card {
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		padding: 1.5em;
		text-align: center;
		transition: border-color var(--fw-transition), box-shadow var(--fw-transition), transform var(--fw-transition);
	}

	.about-values__card:hover {
		border-color: var(--fw-text-tertiary);
		box-shadow: var(--fw-shadow-sm);
		transform: translateY(-2px);
	}

	.about-values__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		background: var(--fw-bg-tertiary);
		border-radius: 12px;
		color: var(--fw-text-primary);
		margin-bottom: 0.875em;
	}

	.about-values__card h3 {
		font-size: 0.9375rem;
		font-weight: 600;
		margin: 0 0 0.375em;
	}

	.about-values__card p {
		font-size: 0.8125rem;
		color: var(--fw-text-tertiary);
		margin: 0;
		line-height: 1.55;
	}

	/* About CTA */
	.about-cta {
		padding: 3em 0;
	}

	.about-cta__inner {
		text-align: center;
		padding: 2.5em 2em;
		background: var(--fw-bg-secondary);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
	}

	.about-cta__inner h2 {
		font-size: 1.375rem;
		font-weight: 700;
		margin: 0 0 0.375em;
	}

	.about-cta__inner p {
		font-size: 0.9375rem;
		color: var(--fw-text-tertiary);
		margin: 0 0 1.5em;
	}

	.about-cta__btns {
		display: flex;
		justify-content: center;
		gap: 0.75em;
		flex-wrap: wrap;
	}

	/* About Responsive */
	@media (max-width: 768px) {
		.about-hero {
			padding: 2.5em 0 2em;
		}

		.about-hero__title {
			font-size: 1.5rem;
		}

		.about-hero__desc {
			font-size: 0.9375rem;
		}

		.about-section {
			padding: 1.75em 0;
		}

		.about-section__title {
			font-size: 1.125rem;
			margin-bottom: 0.5em;
		}

		.about-section__body {
			font-size: 0.875rem;
			line-height: 1.6;
		}

		.about-stats {
			padding: 1.5em 0;
		}

		.about-stats__grid {
			gap: 0.75em;
		}

		.about-stats__item {
			padding: 1em 0.75em;
		}

		.about-stats__value {
			font-size: 1.5rem;
		}

		.about-values__grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 480px) {
		.about-hero {
			padding: 2em 0 1.5em;
		}

		.about-hero__title {
			font-size: 1.25rem;
		}

		.about-section {
			padding: 1.25em 0;
		}

		.about-section__title {
			font-size: 1rem;
		}

		.about-section__body {
			font-size: 0.8125rem;
		}

		.about-stats {
			padding: 1.25em 0;
		}

		.about-stats__value {
			font-size: 1.25rem;
		}

		.about-stats__label {
			font-size: 0.6875rem;
		}

		.about-values {
			padding: 1.5em 0;
		}

		.about-values__title {
			font-size: 1rem;
			margin-bottom: 0.75em;
		}

		.about-values__grid {
			grid-template-columns: repeat(2, 1fr);
			gap: 0.75em;
		}

		.about-values__card {
			padding: 1em 0.75em;
		}

		.about-values__icon {
			width: 36px;
			height: 36px;
			margin-bottom: 0.625em;
		}

		.about-values__icon svg {
			width: 18px;
			height: 18px;
		}

		.about-values__card h3 {
			font-size: 0.8125rem;
			margin-bottom: 0.25em;
		}

		.about-values__card p {
			font-size: 0.6875rem;
			line-height: 1.4;
		}

		.about-cta__inner {
			padding: 1.5em 1.25em;
		}

		.about-stats__grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	/* ==========================================================================
	Breadcrumb (theme-wide)
	========================================================================== */

	.fw-breadcrumb {
		padding: 0.75em 0;
		background: var(--fw-bg-secondary);
		border-bottom: 1px solid var(--fw-border-color);
	}

	.fw-breadcrumb__list {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		list-style: none;
		margin: 0;
		padding: 0;
		font-size: 0.75rem;
		color: var(--fw-text-tertiary);
	}

	.fw-breadcrumb__list li {
		display: flex;
		align-items: center;
	}

	.fw-breadcrumb__list li::after {
		content: '/';
		margin: 0 0.5em;
		opacity: 0.5;
	}

	.fw-breadcrumb__list li:last-child::after {
		display: none;
	}

	.fw-breadcrumb__list a {
		color: var(--fw-text-tertiary);
	}

	.fw-breadcrumb__list a:hover {
		color: var(--fw-text-primary);
	}

	.fw-breadcrumb__list li:last-child span {
		color: var(--fw-text-secondary);
	}

	/* ==========================================================================
	Back to Top
	========================================================================== */

	.back-to-top {
		position: fixed;
		bottom: 2em;
		left: 2em;
		z-index: 999;
		width: 42px;
		height: 42px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: 50%;
		box-shadow: var(--fw-shadow-md);
		cursor: pointer;
		opacity: 0;
		visibility: hidden;
		transform: translateY(10px);
		transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease, background 0.15s ease;
		padding: 0;
	}

	.back-to-top__arrow {
		font-size: 1.125rem;
		line-height: 1;
		color: var(--fw-text-primary);
		display: block;
	}

	.back-to-top.is-visible {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.back-to-top:hover {
		background: var(--fw-text-primary);
		border-color: var(--fw-text-primary);
	}

	.back-to-top:hover .back-to-top__arrow {
		color: var(--fw-bg-primary);
	}

	@media (max-width: 768px) {
		.back-to-top {
			bottom: 1.25em;
			left: 1.25em;
			width: 38px;
			height: 38px;
		}
	}

	/* ==========================================================================
	Toast Notifications
	========================================================================== */

	.fw-toast-container {
		position: fixed;
		top: calc(var(--fw-header-height) + 1em);
		right: 1.25em;
		z-index: 10001;
		display: flex;
		flex-direction: column;
		gap: 0.5em;
		pointer-events: none;
	}

	.fw-toast {
		display: flex;
		align-items: center;
		gap: 0.5em;
		padding: 0.75em 1.125em;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		box-shadow: var(--fw-shadow-md);
		font-size: 0.8125rem;
		color: var(--fw-text-primary);
		pointer-events: auto;
		opacity: 0;
		transform: translateX(20px);
		transition: opacity 0.3s ease, transform 0.3s ease;
	}

	.fw-toast.is-visible {
		opacity: 1;
		transform: translateX(0);
	}

	.fw-toast--success svg {
		color: var(--fw-success);
	}

	.fw-toast--error svg {
		color: var(--fw-error);
	}

	.fw-toast--info svg {
		color: var(--fw-text-tertiary);
	}

	@media (max-width: 480px) {
		.fw-toast-container {
			right: 0.75em;
			left: 0.75em;
		}

		.fw-toast {
			transform: translateY(-10px);
		}

		.fw-toast.is-visible {
			transform: translateY(0);
		}
	}

	/* ==========================================================================
	Shop Layout (Sidebar + Products)
	========================================================================== */

	/* Wider container for shop pages */
	.woocommerce.archive .fw-container,
	.woocommerce.tax-product_cat .fw-container {
		max-width: 1400px;
	}

	.shop-layout {
		display: grid;
		grid-template-columns: 260px 1fr;
		gap: 2em;
		align-items: start;
		padding-top: 2em;
	}

	.shop-content {
		min-width: 0;
	}

	/* Shop page: 3 columns when sidebar is present */
	.shop-layout .products-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	/* Filters Sidebar */
	.shop-filters {
		position: sticky;
		top: calc(var(--fw-header-height) + 2em);
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		padding: 1.25em;
		order: -1;
	}

	.shop-filters__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 1em;
		padding-bottom: 0.75em;
		border-bottom: 1px solid var(--fw-border-color);
	}

	.shop-filters__header h3 {
		display: flex;
		align-items: center;
		gap: 0.375em;
		font-size: 0.8125rem;
		font-weight: 700;
		margin: 0;
	}

	.shop-filters__clear {
		font-size: 0.6875rem;
		color: var(--fw-error);
		font-weight: 500;
	}

	.shop-filters__group {
		padding: 0.75em 0;
		border-bottom: 1px solid var(--fw-border-light);
	}

	.shop-filters__group:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.shop-filters__label {
		font-size: 0.6875rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		margin: 0 0 0.5em;
		color: var(--fw-text-tertiary);
	}

	/* Category list */
	.shop-filters__cats {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.shop-filters__cats li {
		margin: 0;
	}

	.shop-filters__cats a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.35em 0.5em;
		font-size: 0.8125rem;
		color: var(--fw-text-secondary);
		border-radius: var(--fw-radius);
		transition: all var(--fw-transition);
	}

	.shop-filters__cats a:hover,
	.shop-filters__cats a.is-active {
		background: var(--fw-bg-tertiary);
		color: var(--fw-text-primary);
		font-weight: 500;
	}

	.shop-filters__cats a span {
		font-size: 0.6875rem;
		color: var(--fw-text-tertiary);
	}

	/* Price inputs */
	.shop-filters__price-inputs {
		display: flex;
		align-items: center;
		gap: 0.375em;
		margin-bottom: 0.5em;
	}

	.shop-filters__price-inputs input {
		width: 100%;
		font-size: 0.75rem;
		padding: 0.4em 0.5em;
		text-align: center;
	}

	.shop-filters__price-inputs span {
		color: var(--fw-text-tertiary);
		flex-shrink: 0;
		font-size: 0.75rem;
	}

	/* Rating list */
	.shop-filters__ratings {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.shop-filters__ratings li {
		margin: 0;
	}

	.shop-filters__ratings a {
		display: flex;
		align-items: center;
		gap: 0.5em;
		padding: 0.35em 0.5em;
		font-size: 0.75rem;
		color: var(--fw-text-secondary);
		border-radius: var(--fw-radius);
		transition: all var(--fw-transition);
	}

	.shop-filters__ratings a:hover,
	.shop-filters__ratings a.is-active {
		background: var(--fw-bg-tertiary);
	}

	.shop-filters__stars {
		display: inline-flex;
		gap: 1px;
		color: #f59e0b;
	}

	.shop-filters__stars svg[fill="none"] {
		color: var(--fw-border-color);
	}

	/* Filter toggle (mobile) */
	.shop-filter-toggle {
		display: none;
		align-items: center;
		gap: 0.375em;
		padding: 0.5em 0.875em;
		font-size: 0.8125rem;
		font-weight: 500;
		background: var(--fw-bg-card);
		border: 1px solid var(--fw-border-color);
		border-radius: var(--fw-radius);
		color: var(--fw-text-primary);
		cursor: pointer;
		line-height: 1;
	}

	.shop-filter-toggle.is-active {
		border-color: var(--fw-accent, #2563eb);
	}

	.shop-filter-toggle__count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 1.25rem;
		height: 1.25rem;
		padding: 0 0.35rem;
		border-radius: 999px;
		font-size: 0.6875rem;
		font-weight: 700;
		background: var(--fw-accent, #2563eb);
		color: #fff;
	}

	/* Tablet */
	@media (max-width: 1024px) {
		.shop-layout {
			grid-template-columns: 220px 1fr;
			gap: 1.5em;
		}

		.shop-layout .products-grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	/* Mobile */
	@media (max-width: 768px) {
		.shop-layout {
			grid-template-columns: 1fr;
			padding-top: 1em;
		}

		.shop-layout .products-grid {
			grid-template-columns: repeat(2, 1fr);
			gap: 0.75em;
		}

		.shop-filter-toggle {
			display: inline-flex;
			order: 2;
			margin-left: auto;
		}

		.shop-filters {
			display: none;
			position: fixed;
			left: 0.75em;
			right: 0.75em;
			bottom: calc(56px + env(safe-area-inset-bottom, 0px) + 0.5em);
			z-index: 10001;
			max-height: calc(100dvh - var(--fw-header-height) - 96px);
			overflow-y: auto;
			border-radius: 14px;
			box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
		}

		.shop-filters.is-open {
			display: block;
		}

		body.fw-filter-open {
			overflow: hidden;
		}

		body.fw-filter-open::after {
			content: '';
			position: fixed;
			inset: 0;
			z-index: 10000;
			background: rgba(0, 0, 0, 0.45);
		}

		/* Mobile shop toolbar: stack filter + count + ordering */
		.fw-shop-toolbar {
			display: grid;
			grid-template-columns: minmax(0, 1fr) auto;
			align-items: center;
			gap: 0.625em;
			padding: 0.875em 0;
		}

		.fw-shop-toolbar .woocommerce-result-count {
			order: 1;
			margin: 0;
		}

		.fw-shop-toolbar .woocommerce-ordering {
			order: 3;
			grid-column: 1 / -1;
			width: 100%;
		}

		.fw-shop-toolbar .woocommerce-ordering select {
			width: 100%;
		}

		/* Mobile product card adjustments */
		.product-card-body {
			padding: 0.625em;
		}

		.product-card-title {
			font-size: 0.8125rem;
			height: calc(0.8125rem * 1.4 * 2);
		}

		.product-card-excerpt {
			display: none;
		}

		.product-card-stats {
			display: none;
		}

		.product-card-footer {
			grid-template-columns: 1fr auto;
			align-items: end;
			gap: 0.375em;
			min-height: 3.25em;
			padding: 0.5em 0.625em 0;
		}

		.product-card-price {
			grid-template-rows: auto 1em;
			min-height: 2.3em;
			column-gap: 0.3em;
			row-gap: 0.1em;
		}

		.product-card-price .price-current {
			font-size: 0.875rem;
		}

		.product-card-price .price-original {
			font-size: 0.625rem;
		}

		.product-card-action .btn {
			min-width: 5em;
			min-height: 2em;
			padding: 0.3em 0.625em;
			font-size: 0.75rem;
		}

		.product-card-action.has-demo .btn {
			min-width: 4.15em;
			padding: 0.28em 0.5em;
		}

		.product-card-category {
			font-size: 0.5625rem;
		}

		.product-card-meta {
			margin-bottom: 0.25em;
		}
	}

	/* ==========================================================================
	Print
	========================================================================== */

	@media print {
		.site-header,
		.site-footer,
		.main-navigation,
		.header-actions,
		.mobile-menu,
		.dark-mode-toggle {
			display: none !important;
		}

		body {
			background: #fff;
			color: #000;
			font-size: 12pt;
		}

		a {
			color: #000;
		}

		img {
			max-width: 100% !important;
		}

		.fw-newsletter-bar,
		.fw-exit-popup {
			display: none !important;
		}
	}

/* SSL Badge — Checkout */
.fw-checkout-ssl {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.75em 1em;
	margin-bottom: 1em;
	border-radius: var(--fw-radius);
	background: rgba(22, 163, 74, 0.08);
	border: 1px solid rgba(22, 163, 74, 0.2);
	color: #16a34a;
	font-size: 0.8125rem;
	font-weight: 500;
}

[data-theme="dark"] .fw-checkout-ssl {
	background: rgba(22, 163, 74, 0.12);
	border-color: rgba(74, 222, 128, 0.2);
	color: #4ade80;
}

.fw-checkout-ssl svg {
	flex-shrink: 0;
}

/* ==========================================================================
   Mobile Bottom Navigation Bar
   ========================================================================== */

/* Desktop: bottom bar hidden */
.fw-bottom-bar {
	display: none;
}

/* Mobile & Tablet: bottom bar visible */
@media (max-width: 768px) {
	.fw-bottom-bar {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 9999;
		display: flex;
		align-items: stretch;
		background: var(--fw-bg-card);
		border-top: 1px solid var(--fw-border-color);
		box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}

	.fw-bottom-bar__item {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0.2em;
		padding: 0.5em 0;
		color: var(--fw-text-tertiary);
		text-decoration: none;
		font-size: 0.625rem;
		font-weight: 500;
		letter-spacing: 0.01em;
		transition: color 0.15s;
		-webkit-tap-highlight-color: transparent;
		position: relative;
	}

	.fw-bottom-bar__item svg {
		flex-shrink: 0;
	}

	.fw-bottom-bar__item.is-active {
		color: var(--fw-text-primary);
	}

	.fw-bottom-bar__item.is-active::before {
		content: '';
		position: absolute;
		top: 0;
		left: 25%;
		right: 25%;
		height: 2px;
		background: var(--fw-accent, #2563eb);
		border-radius: 0 0 2px 2px;
	}

	.fw-bottom-bar__item:active {
		color: var(--fw-text-primary);
	}

	/* Cart badge */
	.fw-bottom-bar__cart-wrap {
		position: relative;
		display: inline-flex;
	}

	.fw-bottom-bar__badge {
		position: absolute;
		top: -5px;
		right: -8px;
		min-width: 16px;
		height: 16px;
		padding: 0 4px;
		font-size: 0.5625rem;
		font-weight: 700;
		line-height: 16px;
		text-align: center;
		color: #fff;
		background: var(--fw-accent, #2563eb);
		border-radius: 999px;
	}

	/* Add bottom padding to body so content isn't hidden behind the bar */
	body {
		padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
	}

	/* Hide back-to-top when bottom bar is present */
	.back-to-top {
		display: none !important;
	}

	/* Adjust toast position above bottom bar */
	.fw-toast-container {
		bottom: calc(60px + env(safe-area-inset-bottom, 0px));
		top: auto;
	}
}

/* ==========================================================================
   Exit-Intent Popup
   ========================================================================== */

.fw-exit-popup {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	visibility: hidden;
	opacity: 0;
	transition: visibility 0s 0.3s, opacity 0.3s;
}

.fw-exit-popup.is-open {
	visibility: visible;
	opacity: 1;
	transition: visibility 0s, opacity 0.3s;
}

.fw-exit-popup__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	cursor: pointer;
}

.fw-exit-popup__panel {
	position: relative;
	z-index: 1;
	width: 90%;
	max-width: 440px;
	background: var(--fw-bg-card);
	border: 1px solid var(--fw-border-color);
	border-radius: 12px;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.2);
	transform: scale(0.92) translateY(20px);
	transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	overflow: hidden;
}

.fw-exit-popup.is-open .fw-exit-popup__panel {
	transform: scale(1) translateY(0);
}

.fw-exit-popup__close {
	position: absolute;
	top: 0.75em;
	right: 0.75em;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: none;
	background: var(--fw-bg-secondary);
	color: var(--fw-text-tertiary);
	border-radius: 50%;
	cursor: pointer;
	transition: background var(--fw-transition), color var(--fw-transition);
}

.fw-exit-popup__close:hover {
	background: var(--fw-border-color);
	color: var(--fw-text-primary);
}

.fw-exit-popup__body {
	padding: 2.5em 2em 2em;
	text-align: center;
}

.fw-exit-popup__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);
	color: #fff;
	margin-bottom: 1.25em;
}

.fw-exit-popup__title {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 0.5em;
	color: var(--fw-text-primary);
}

.fw-exit-popup__desc {
	font-size: 0.9375rem;
	color: var(--fw-text-secondary);
	line-height: 1.5;
	margin: 0 0 1.5em;
}

.fw-exit-popup__coupon {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.625em 1em;
	background: var(--fw-bg-secondary);
	border: 2px dashed var(--fw-border-color);
	border-radius: 8px;
	margin-bottom: 1.5em;
}

.fw-exit-popup__coupon code {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--fw-accent, #2563eb);
	background: none;
	padding: 0;
}

.fw-exit-popup__copy {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	padding: 0.25em 0.625em;
	border: 1px solid var(--fw-border-color);
	border-radius: var(--fw-radius);
	background: var(--fw-bg-card);
	color: var(--fw-text-secondary);
	font-size: 0.75rem;
	cursor: pointer;
	transition: background var(--fw-transition), color var(--fw-transition);
}

.fw-exit-popup__copy:hover {
	background: var(--fw-bg-secondary);
	color: var(--fw-text-primary);
}

.fw-exit-popup__copy.is-copied span {
	color: #16a34a;
}

.fw-exit-popup__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.75em 2em;
	border-radius: var(--fw-radius);
	background: var(--fw-accent, #2563eb);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	transition: opacity var(--fw-transition), transform var(--fw-transition);
}

.fw-exit-popup__cta:hover {
	opacity: 0.88;
	transform: translateX(2px);
	color: #fff;
}

.fw-exit-popup__footer {
	margin: 1em 0 0;
	font-size: 0.75rem;
	color: var(--fw-text-tertiary);
}

@media (max-width: 480px) {
	.fw-exit-popup__body {
		padding: 2em 1.25em 1.5em;
	}

	.fw-exit-popup__title {
		font-size: 1.25rem;
	}

	.fw-exit-popup__coupon code {
		font-size: 1.1rem;
	}
}
