/* ==========================================================================
   Fabric & Attitude — theme styles
   Built from the Fabric & Attitude PSD design system (desktop 1440 / mobile 390).
   ========================================================================== */

/* 1. Fonts ---------------------------------------------------------------- */
@font-face { font-family: "FA Sans"; src: url("../fonts/dejavusans.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "FA Sans"; src: url("../fonts/dejavusans-bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "FA Serif"; src: url("../fonts/dejavuserif-bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* 2. Tokens --------------------------------------------------------------- */
:root {
	--fa-cream: #f5f0de;
	--fa-paper: #fffcf5;
	--fa-navy: #173d4d;
	--fa-navy-dark: #102d39;
	--fa-rust: #a84e2a;
	--fa-rust-dark: #8c3f20;
	--fa-blue: #62818a;
	--fa-muted: #596b6c;
	--fa-muted-strong: #4c5d5e; /* secondary text on tinted panels (keeps 4.5:1) */
	--fa-border: #dad9ca;
	--fa-sand: #e8e1ca;
	--fa-panel: #e9e3d2;
	--fa-stripe: #eae5d6;
	--fa-success: #e6ebe0;
	--fa-error: #f1dfd4;
	--fa-error-text: #8c3f20;
	--fa-badge: #e5d5c1;
	--fa-disabled: #dfded3;
	--fa-on-dark: #f5f0de;

	--fa-sans: "FA Sans", "DejaVu Sans", "Verdana", system-ui, sans-serif;
	--fa-serif: "FA Serif", "DejaVu Serif", Georgia, "Times New Roman", serif;

	--fa-max: 1296px;
	--fa-gutter: 72px;
	--fa-radius: 3px;
	--fa-radius-lg: 4px;
	--fa-control: 52px;
	--fa-input: 50px;
	--fa-header-h: 114px;
}

/* 3. Base ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
	margin: 0;
	background: var(--fa-cream);
	color: var(--fa-navy);
	font-family: var(--fa-sans);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.fa-lock { overflow: hidden; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--fa-rust); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--fa-rust-dark); }
p { margin: 0 0 1em; }
strong, b { font-weight: 700; }
hr { border: 0; border-top: 1px solid var(--fa-border); margin: 32px 0; }
h1, h2, h3, h4, h5, h6 { font-family: var(--fa-serif); font-weight: 700; color: var(--fa-navy); line-height: 1.15; margin: 0 0 0.5em; letter-spacing: -0.005em; }
h1 { font-size: 52px; line-height: 1.1; }
h2 { font-size: 39px; }
h3 { font-size: 24px; }
h4 { font-size: 20px; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--fa-rust); outline-offset: 3px; }
::selection { background: var(--fa-navy); color: var(--fa-cream); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; margin: 0; z-index: 1000; top: 8px; left: 8px;
	background: var(--fa-navy); color: var(--fa-cream); padding: 12px 18px; font-weight: 700; text-decoration: none;
}

/* 4. Layout helpers ------------------------------------------------------- */
.fa-wrap { width: 100%; max-width: calc(var(--fa-max) + var(--fa-gutter) * 2); margin: 0 auto; padding-left: var(--fa-gutter); padding-right: var(--fa-gutter); }
.fa-main { padding-bottom: 72px; }
.fa-main--flush, .fa-main:has(> .fa-newsletter:last-child) { padding-bottom: 0; }
.fa-main:not(.fa-main--flush) > .fa-newsletter { margin-top: 72px; }
.fa-eyebrow { margin: 0 0 14px; font-family: var(--fa-sans); font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fa-rust); }
.fa-lead { font-size: 18px; color: var(--fa-muted); margin: 22px 0 0; max-width: 720px; }
.fa-muted { color: var(--fa-muted); }
.fa-small { font-size: 12px; color: var(--fa-muted); }
.fa-page-header { padding-top: 30px; padding-bottom: 44px; }
.fa-page-header h1 { margin: 0; }
.fa-page-header .fa-lead { margin-top: 26px; }
.fa-rule { border: 0; border-top: 1px solid var(--fa-border); margin: 0; }

/* 5. Buttons -------------------------------------------------------------- */
.fa-btn,
.button,
button.button,
input.button,
input[type="submit"],
.wp-element-button,
.wp-block-button__link,
.woocommerce-Button,
#place_order {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: var(--fa-control); padding: 0 32px;
	background: var(--fa-rust); color: var(--fa-paper);
	border: 1px solid var(--fa-rust); border-radius: var(--fa-radius);
	font-family: var(--fa-sans); font-size: 15px; font-weight: 700; line-height: 1.2; letter-spacing: 0.01em;
	text-align: center; text-decoration: none; cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	-webkit-appearance: none; appearance: none;
}
.fa-btn:hover, .button:hover, button.button:hover, input[type="submit"]:hover, .wp-element-button:hover, .wp-block-button__link:hover, .woocommerce-Button:hover, #place_order:hover {
	background: var(--fa-rust-dark); border-color: var(--fa-rust-dark); color: var(--fa-paper);
}
.fa-btn--secondary,
.button.fa-btn--secondary,
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: var(--fa-paper); color: var(--fa-navy); border-color: var(--fa-border);
}
.fa-btn--secondary:hover,
.button.fa-btn--secondary:hover,
.is-style-outline .wp-block-button__link:hover {
	background: var(--fa-navy); color: var(--fa-paper); border-color: var(--fa-navy);
}
.fa-btn--block { width: 100%; }
.fa-btn--wide { min-width: 270px; }
.fa-btn[disabled], .button[disabled], .button.disabled, .button:disabled, button:disabled.button, .single_add_to_cart_button.disabled {
	background: var(--fa-disabled) !important; border-color: var(--fa-disabled) !important; color: var(--fa-muted-strong) !important;
	cursor: not-allowed; font-weight: 400;
}
.fa-link { font-size: 14px; color: var(--fa-rust); text-decoration: none; }
.fa-link:hover { text-decoration: underline; }
.fa-arrow::after { content: " →"; }
.fa-ext::after { content: " ↗"; }

/* 6. Forms ---------------------------------------------------------------- */
label, .fa-label { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 700; color: var(--fa-navy); }
label .required, .required { color: var(--fa-rust); text-decoration: none; border: 0; }
/* Checkout and address forms mark optional fields instead of required ones (as designed). */
.woocommerce-checkout .form-row label .required, .woocommerce-address-fields label .required, .woocommerce-EditAccountForm label .required { display: none; }
.woocommerce-terms-and-conditions-wrapper .required { display: inline !important; }
label .optional { font-weight: 700; color: var(--fa-navy); }
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="date"], select, textarea, .input-text {
	display: block; width: 100%; min-height: var(--fa-input); padding: 12px 13px;
	background: var(--fa-paper); color: var(--fa-navy);
	border: 1px solid var(--fa-border); border-radius: var(--fa-radius);
	font-family: var(--fa-sans); font-size: 15px; line-height: 1.4;
	box-shadow: inset 0 0 0 0 var(--fa-navy);
	transition: box-shadow 0.12s ease, border-color 0.12s ease;
	-webkit-appearance: none; appearance: none;
}
textarea { min-height: 150px; resize: vertical; }
select {
	padding-right: 40px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23173d4d' stroke-width='1.8'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 15px center;
}
::placeholder { color: var(--fa-muted); opacity: 1; }
input:focus, select:focus, textarea:focus, .input-text:focus {
	outline: none; border-color: var(--fa-border); box-shadow: inset 0 2px 0 0 var(--fa-navy);
}
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--fa-navy); outline-offset: 1px; }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; margin: 0 8px 0 0; accent-color: var(--fa-navy); vertical-align: -3px; }
.fa-field { margin-bottom: 18px; }
.fa-field-help, .description { display: block; margin-top: 8px; font-size: 12px; color: var(--fa-muted); }
.fa-check { display: flex; align-items: flex-start; gap: 0; font-weight: 400; font-size: 14px; }
.fa-check input { margin-top: 2px; }

/* WooCommerce form rows */
.form-row { margin: 0 0 18px; padding: 0; }
.form-row label { margin-bottom: 8px; }
.form-row label.checkbox, .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce-form__label-for-checkbox { display: flex; align-items: center; font-weight: 400; font-size: 14px; cursor: pointer; }
.form-row-first, .form-row-last { width: calc(50% - 11px); float: left; }
.form-row-last { float: right; }
.form-row-wide, .form-row.notes { clear: both; }
.woocommerce-billing-fields__field-wrapper::after, .woocommerce-shipping-fields__field-wrapper::after,
.woocommerce-address-fields__field-wrapper::after, .fa-clear::after { content: ""; display: table; clear: both; }
.woocommerce-input-wrapper { display: block; }
.form-row.woocommerce-invalid input.input-text, .form-row.woocommerce-invalid select,
.form-row.woocommerce-invalid .select2-selection { border-color: var(--fa-rust) !important; }
.form-row .checkout-inline-error-message, .woocommerce-error-inline, .form-row .woocommerce-input-wrapper + .checkout-inline-error-message { color: var(--fa-error-text); font-size: 12px; margin: 8px 0 0; }
.form-row.woocommerce-validated input.input-text { border-color: var(--fa-border); }
.password-input { position: relative; display: block; }
.show-password-input {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
	width: 40px; height: 40px; background: none; border: 0; cursor: pointer; color: var(--fa-muted);
}
.show-password-input::after { content: "Show"; font-size: 12px; font-family: var(--fa-sans); }
.show-password-input.display-password::after { content: "Hide"; }
.woocommerce-password-strength { margin-top: 8px; padding: 8px 12px; font-size: 12px; border-radius: var(--fa-radius); background: var(--fa-error); }
.woocommerce-password-strength.strong, .woocommerce-password-strength.good { background: var(--fa-success); }
.woocommerce-password-hint { display: block; margin-top: 6px; font-size: 12px; color: var(--fa-muted); }

/* select2 / selectWoo */
.select2-container { width: 100% !important; font-family: var(--fa-sans); }
.select2-container .select2-selection--single {
	height: var(--fa-input); background: var(--fa-paper); border: 1px solid var(--fa-border); border-radius: var(--fa-radius);
}
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 48px; padding-left: 13px; padding-right: 40px; color: var(--fa-navy); font-size: 15px; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 48px; right: 10px; }
.select2-container--focus .select2-selection--single, .select2-container--open .select2-selection--single { box-shadow: inset 0 2px 0 0 var(--fa-navy); }
.select2-dropdown { background: var(--fa-paper); border-color: var(--fa-border); border-radius: var(--fa-radius); color: var(--fa-navy); }
.select2-results__option { padding: 10px 13px; font-size: 15px; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--fa-navy); color: var(--fa-paper); }
.select2-search--dropdown .select2-search__field { min-height: 40px; }

/* 7. Notices -------------------------------------------------------------- */
.woocommerce-notices-wrapper:empty { display: none; }
.fa-notice,
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments,
.wc-block-components-notice-banner {
	display: block; margin: 0 0 18px; padding: 18px 16px; list-style: none;
	background: var(--fa-success); color: var(--fa-navy);
	border: 0; border-radius: var(--fa-radius); font-size: 14px; line-height: 1.5;
}
.woocommerce-error, .fa-notice--error { background: var(--fa-error); }
.woocommerce-error li { margin: 0; }
.woocommerce-error li + li { margin-top: 6px; }
.woocommerce-message::before { content: "✓ "; }
.woocommerce-message::after, .woocommerce-info::after { content: ""; display: table; clear: both; }
.woocommerce-message .button, .woocommerce-info .button {
	float: right; margin: -10px 0 -10px 16px; min-height: 40px; padding: 0 18px; font-size: 13px;
	background: var(--fa-paper); color: var(--fa-navy); border-color: var(--fa-border);
}
.woocommerce-message .button:hover, .woocommerce-info .button:hover { background: var(--fa-navy); color: var(--fa-paper); border-color: var(--fa-navy); }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a { color: var(--fa-navy); font-weight: 700; }
.woocommerce-store-notice, p.demo_store {
	position: fixed; bottom: 0; left: 0; right: 0; z-index: 90; margin: 0; padding: 14px 20px;
	background: var(--fa-navy); color: var(--fa-cream); font-size: 14px; text-align: center;
}
.woocommerce-store-notice a { color: var(--fa-cream); font-weight: 700; margin-left: 12px; }

/* 8. Badges --------------------------------------------------------------- */
.fa-badge {
	display: inline-flex; align-items: center; min-width: 83px; height: 26px; padding: 0 8px;
	background: var(--fa-cream); color: var(--fa-navy); border-radius: 2px;
	font-size: 10px; font-weight: 700; letter-spacing: 0.01em; line-height: 1;
}
.fa-badge--sale { background: var(--fa-badge); color: var(--fa-rust-dark); }
.fa-badge--soldout { background: var(--fa-navy); color: var(--fa-paper); }
.fa-badges { position: absolute; top: 10px; left: 10px; z-index: 2; display: flex; gap: 6px; flex-wrap: wrap; pointer-events: none; }

/* 9. Announcement + header ------------------------------------------------ */
.fa-announce { background: var(--fa-navy); color: var(--fa-paper); }
.fa-announce__inner { min-height: 30px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding-top: 6px; padding-bottom: 6px; }
.fa-announce a { color: inherit; }

.fa-header { position: sticky; top: 0; z-index: 60; background: var(--fa-cream); transition: background-color 0.2s ease, box-shadow 0.2s ease; }
.admin-bar .fa-header { top: 32px; }
.fa-header__bar { display: flex; align-items: center; gap: 24px; min-height: var(--fa-header-h); border-bottom: 1px solid var(--fa-border); transition: min-height 0.2s ease; }
.fa-brand { display: flex; align-items: center; gap: 22px; color: var(--fa-navy); text-decoration: none; flex: 0 0 auto; margin-right: auto; }
.fa-brand:hover { color: var(--fa-navy); }
.fa-brand__logo { width: 90px; height: auto; transition: width 0.2s ease; }
.fa-brand .custom-logo { width: 90px; height: auto; }
.fa-brand__name { font-family: var(--fa-sans); font-size: 21px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; line-height: 1.15; transition: font-size 0.2s ease; }
.fa-nav { flex: 0 1 auto; }
.fa-nav ul { display: flex; align-items: center; gap: 6px 48px; list-style: none; margin: 0; padding: 0; }
.fa-nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--fa-navy); font-size: 15px; text-decoration: none; }
.fa-nav a:hover, .fa-nav .current-menu-item > a, .fa-nav .current-menu-ancestor > a, .fa-nav .current_page_item > a { color: var(--fa-rust); }
.fa-nav .sub-menu { display: none; }
.fa-tools { display: flex; align-items: center; gap: 4px; margin-left: 64px; flex: 0 0 auto; }
.fa-tool {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 6px;
	background: none; border: 0; color: var(--fa-navy); font-family: var(--fa-sans); font-size: 14px; cursor: pointer; text-decoration: none; white-space: nowrap;
}
.fa-tool:hover { color: var(--fa-rust); }
.fa-tool--menu { display: none; font-weight: 700; font-size: 16px; }
.fa-tool--menu .fa-burger { font-size: 18px; line-height: 1; }

/* Sticky state */
.fa-header.is-stuck { background: var(--fa-paper); box-shadow: 0 1px 0 var(--fa-border); }
.fa-header.is-stuck .fa-header__bar { min-height: 76px; border-bottom-color: transparent; }
.fa-header.is-stuck .fa-brand__logo, .fa-header.is-stuck .custom-logo { width: 61px; }
.fa-header.is-stuck .fa-brand__name { font-size: 13px; }

/* Search panel */
.fa-search-panel { border-bottom: 1px solid var(--fa-border); background: var(--fa-cream); }
.fa-header.is-stuck .fa-search-panel { background: var(--fa-paper); }
.fa-search-panel[hidden] { display: none; }
.fa-search-panel__inner { padding-top: 20px; padding-bottom: 24px; }
.fa-searchform { display: flex; gap: 12px; align-items: stretch; max-width: 760px; }
.fa-searchform input[type="search"] { flex: 1 1 auto; }
.fa-searchform .fa-btn { flex: 0 0 auto; }
.fa-searchform--wide, .fa-searchform--wide .fa-searchform { max-width: none; }

/* Drawers (menu, bag, filters) */
.fa-overlay { position: fixed; inset: 0; z-index: 80; background: rgba(16, 45, 57, 0.42); opacity: 0; transition: opacity 0.2s ease; }
.fa-overlay.is-open { opacity: 1; }
.fa-overlay[hidden] { display: none; }
.fa-drawer {
	position: fixed; top: 0; bottom: 0; z-index: 90; width: min(420px, 100%);
	display: flex; flex-direction: column;
	background: var(--fa-paper); color: var(--fa-navy); box-shadow: 0 0 0 1px var(--fa-border);
	transition: transform 0.25s ease; visibility: hidden;
}
.fa-drawer--right { right: 0; transform: translateX(100%); }
.fa-drawer--left { left: 0; transform: translateX(-100%); }
.fa-drawer.is-open { transform: none; visibility: visible; }
.fa-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--fa-border); }
.fa-drawer__title { margin: 0; font-family: var(--fa-sans); font-size: 14px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.fa-drawer__close { min-height: 44px; padding: 0 4px; background: none; border: 0; color: var(--fa-rust); font-family: var(--fa-sans); font-size: 13px; cursor: pointer; }
.fa-drawer__close::after { content: " ×"; }
.fa-drawer__body { flex: 1 1 auto; overflow-y: auto; padding: 20px; }
.fa-drawer__foot { padding: 20px; border-top: 1px solid var(--fa-border); }

/* Mobile menu */
.fa-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.fa-mobile-nav a, .fa-mobile-nav button.fa-mobile-search {
	display: block; width: 100%; padding: 9px 0; background: none; border: 0; text-align: left;
	font-family: var(--fa-serif); font-size: 18px; font-weight: 700; color: var(--fa-navy); text-decoration: none; cursor: pointer;
}
.fa-mobile-nav a:hover, .fa-mobile-nav button.fa-mobile-search:hover { color: var(--fa-rust); }
.fa-mobile-nav .sub-menu a { font-size: 16px; padding-left: 14px; }
.fa-mobile-nav .fa-searchform { margin: 0 0 12px; }

/* Mini cart */
.fa-minicart .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.fa-minicart .woocommerce-mini-cart-item {
	position: relative; display: grid; grid-template-columns: 90px 1fr; gap: 6px 16px; padding: 0 28px 20px 0; margin-bottom: 20px; border-bottom: 1px solid var(--fa-border);
}
.fa-minicart .woocommerce-mini-cart-item img { width: 90px; height: 110px; object-fit: cover; background: var(--fa-cream); grid-row: span 3; }
.fa-minicart .woocommerce-mini-cart-item .fa-mc-name { font-size: 15px; font-weight: 700; color: var(--fa-navy); text-decoration: none; line-height: 1.3; }
.fa-minicart .woocommerce-mini-cart-item .variation, .fa-minicart .fa-mc-meta { margin: 0; font-size: 12px; color: var(--fa-muted); }
.fa-minicart .woocommerce-mini-cart-item dl.variation { display: flex; flex-wrap: wrap; gap: 0 4px; }
.fa-minicart .woocommerce-mini-cart-item dl.variation dt { display: none; }
.fa-minicart .woocommerce-mini-cart-item dl.variation dd { margin: 0; }
.fa-minicart .woocommerce-mini-cart-item dl.variation dd p { margin: 0; display: inline; }
.fa-minicart .woocommerce-mini-cart-item dl.variation dd:not(:last-of-type)::after { content: " /"; }
.fa-minicart .fa-mc-price { font-size: 15px; font-weight: 700; }
.fa-minicart .remove_from_cart_button {
	position: absolute; top: -10px; right: -10px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
	color: var(--fa-muted); text-decoration: none; font-size: 20px; line-height: 1;
}
.fa-minicart .remove_from_cart_button:hover { color: var(--fa-rust); }
.fa-minicart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 0 0 20px; font-size: 14px; }
.fa-minicart .woocommerce-mini-cart__total strong { font-weight: 400; }
.fa-minicart .woocommerce-mini-cart__total .amount { font-weight: 700; }
.fa-minicart .woocommerce-mini-cart__buttons { display: flex; flex-direction: column-reverse; gap: 15px; margin: 0; }
.fa-minicart .woocommerce-mini-cart__buttons .button { width: 100%; }
.fa-minicart .woocommerce-mini-cart__buttons .button:not(.checkout) { background: var(--fa-paper); color: var(--fa-navy); border-color: var(--fa-border); }
.fa-minicart .woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--fa-navy); color: var(--fa-paper); border-color: var(--fa-navy); }
.fa-minicart .woocommerce-mini-cart__empty-message { margin: 8px 0 20px; color: var(--fa-muted); }
.fa-minicart .blockUI.blockOverlay { background: var(--fa-paper) !important; }

/* 10. Footer -------------------------------------------------------------- */
.fa-footer { background: var(--fa-navy); color: var(--fa-on-dark); }
.fa-footer a { color: var(--fa-on-dark); text-decoration: none; }
.fa-footer a:hover { color: #fff; text-decoration: underline; }
.fa-footer__grid { display: grid; grid-template-columns: minmax(0, 558px) repeat(3, minmax(0, 1fr)); gap: 32px 0; padding-top: 36px; padding-bottom: 36px; }
.fa-footer__brand { display: grid; grid-template-columns: 73px 1fr; column-gap: 20px; align-content: start; grid-column: 1; grid-row: 1; }
.fa-footer__col { grid-row: 1 / span 2; }
.fa-footer__brand .fa-footer__logo { width: 73px; height: auto; grid-row: span 2; }
.fa-footer__name { margin: 9px 0 6px; font-size: 15px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; color: #fffcf5; }
.fa-footer__tag { margin: 0; font-size: 13px; }
.fa-footer__line { grid-column: 1; grid-row: 2; align-self: end; margin: 0; font-size: 15px; }
.fa-footer__col h2 { margin: 11px 0 26px; font-family: var(--fa-sans); font-size: 13px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; color: #fffcf5; }
.fa-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.fa-footer__col a { font-size: 14px; display: inline-block; }
.fa-footer__legal { padding-top: 0; padding-bottom: 36px; font-size: 12px; margin: 0; }
.fa-footer__legal p { margin: 0; }

/* 11. Home ---------------------------------------------------------------- */
.fa-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 628px); gap: 48px; align-items: start; padding-top: 30px; padding-bottom: 50px; }
.fa-hero__copy { padding-top: 42px; }
.fa-hero__title { margin: 22px 0 0; font-size: clamp(52px, 5.4vw, 78px); line-height: 1.02; letter-spacing: -0.01em; white-space: pre-line; }
.fa-hero__lead { margin: 44px 0 50px; font-size: 22px; line-height: 1.42; color: var(--fa-muted); max-width: 470px; white-space: pre-line; }
.fa-hero__media { aspect-ratio: 628 / 610; overflow: hidden; background: var(--fa-sand); }
.fa-hero__media img { width: 100%; height: 100%; object-fit: cover; }

.fa-strip { background: var(--fa-navy); color: var(--fa-cream); }
.fa-strip__inner { min-height: 70px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 15px; font-weight: 700; letter-spacing: 0.01em; padding-top: 14px; padding-bottom: 14px; }

.fa-section { padding-top: 50px; }
.fa-section__title { margin: 0 0 12px; font-size: 41px; }
.fa-section__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin-bottom: 26px; }
.fa-section__head .fa-eyebrow { margin: 0; }
.fa-section__intro { margin-bottom: 26px; }

.fa-collections { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.fa-collection { display: block; color: var(--fa-navy); text-decoration: none; }
.fa-collection__media { display: block; aspect-ratio: 416 / 360; overflow: hidden; background: var(--fa-sand); margin-bottom: 16px; }
.fa-collection__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.fa-collection:hover .fa-collection__media img { transform: scale(1.03); }
.fa-collection__name { display: block; font-size: 21px; font-weight: 700; line-height: 1.3; }
.fa-collection__cta { display: inline-block; margin-top: 8px; font-size: 14px; color: var(--fa-rust); }
.fa-collection:hover .fa-collection__cta { text-decoration: underline; }

.fa-story-band { display: grid; grid-template-columns: minmax(0, 590px) minmax(0, 1fr); gap: 78px; align-items: center; padding-top: 50px; padding-bottom: 40px; }
.fa-story-band__media { aspect-ratio: 590 / 410; overflow: hidden; background: var(--fa-sand); }
.fa-story-band__media img { width: 100%; height: 100%; object-fit: cover; }
.fa-story-band__title { margin: 0; font-size: 41px; line-height: 1.43; white-space: pre-line; }
.fa-story-band__text { margin: 26px 0 30px; max-width: 520px; font-size: 17px; color: var(--fa-muted); }
.fa-story-band .fa-btn { min-width: 220px; }

/* Newsletter band */
.fa-newsletter { background: var(--fa-sand); }
.fa-newsletter__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 548px); gap: 32px 48px; align-items: start; padding-top: 28px; padding-bottom: 64px; }
.fa-newsletter__title { margin: 0 0 12px; font-size: 35px; }
.fa-newsletter__text { margin: 0; font-size: 15px; color: var(--fa-muted-strong); }
.fa-newsletter__form { padding-top: 27px; }
.fa-newsletter__row { display: flex; }
.fa-newsletter__row input[type="email"] { border-top-right-radius: 0; border-bottom-right-radius: 0; min-height: var(--fa-control); font-size: 14px; }
.fa-newsletter__row .fa-btn { flex: 0 0 auto; min-width: 112px; padding: 0 14px; border-top-left-radius: 0; border-bottom-left-radius: 0; font-size: 13px; }
.fa-newsletter__legal { margin: 12px 0 0; font-size: 11px; color: var(--fa-muted-strong); }
.fa-newsletter__legal a { color: inherit; }
.fa-newsletter__msg { margin: 12px 0 0; font-size: 13px; font-weight: 700; }
.fa-newsletter__msg--error { color: var(--fa-error-text); }
.fa-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* 12. Product grid + cards ------------------------------------------------ */
ul.products, .fa-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 46px 24px; list-style: none; margin: 0; padding: 0; }
ul.products.columns-4, .fa-products--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
ul.products.columns-4 { gap: 38px 24px; }
ul.products::before, ul.products::after { display: none; }
ul.products li.product, .fa-card { position: relative; margin: 0; padding: 0; width: auto; float: none; }
.fa-card__media { position: relative; display: block; aspect-ratio: 416 / 490; overflow: hidden; background: #e9e5da; }
.columns-4 .fa-card__media { aspect-ratio: 306 / 361; }
.fa-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.fa-card__media img.fa-card__alt { position: absolute; inset: 0; opacity: 0; transition: opacity 0.3s ease; }
.fa-card:hover .fa-card__media img.fa-card__alt { opacity: 1; }
.fa-card__action { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 3; opacity: 0; transform: translateY(6px); transition: opacity 0.18s ease, transform 0.18s ease; }
.fa-card:hover .fa-card__action, .fa-card:focus-within .fa-card__action { opacity: 1; transform: none; }
.fa-card__action .button { width: 100%; }
.fa-card__action .added_to_cart, .fa-product__summary .added_to_cart { display: none; }
.fa-card__body { padding-top: 14px; }
.fa-card__title { display: block; margin: 0; font-family: var(--fa-sans); font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--fa-navy); text-decoration: none; }
.fa-card__title:hover { color: var(--fa-rust); }
.fa-card__title::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card clickable */
.fa-card .price { display: block; margin-top: 6px; font-size: 16px; color: var(--fa-navy); }
.price del { color: var(--fa-muted); margin-right: 6px; }
.price ins { text-decoration: none; color: var(--fa-rust); font-weight: 700; }
.fa-card .star-rating { margin-top: 6px; }
@media (hover: none) { .fa-card__action { display: none; } } /* Touch: the whole card opens the product, as in the mobile design. */

/* Shop header + toolbar */
.fa-archive-banner { aspect-ratio: 1296 / 340; overflow: hidden; background: var(--fa-sand); margin: 0 0 45px; }
.fa-archive-banner img { width: 100%; height: 100%; object-fit: cover; }
.fa-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-bottom: 26px; }
.fa-toolbar__btn {
	display: inline-flex; align-items: center; justify-content: center; min-width: 200px; min-height: var(--fa-control); padding: 0 20px;
	background: var(--fa-paper); color: var(--fa-navy); border: 1px solid var(--fa-border); border-radius: var(--fa-radius);
	font-family: var(--fa-sans); font-size: 15px; font-weight: 700; cursor: pointer; text-decoration: none;
}
.fa-toolbar__btn:hover { border-color: var(--fa-navy); color: var(--fa-navy); }
.woocommerce-ordering { position: relative; margin: 0; }
.woocommerce-ordering .fa-sort-label { position: absolute; left: 0; top: 0; bottom: 0; display: flex; align-items: center; padding-left: 20px; pointer-events: none; font-size: 15px; font-weight: 700; color: var(--fa-navy); margin: 0; }
.woocommerce-ordering select.orderby {
	min-width: 250px; min-height: var(--fa-control); padding-left: 68px; font-weight: 700; font-size: 15px;
}
.woocommerce-result-count, .fa-count { width: 100%; margin: 0 0 30px; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fa-muted); }
.fa-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: -6px 0 24px; padding: 0; list-style: none; }
.fa-active-filters a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; background: var(--fa-paper); border: 1px solid var(--fa-border); border-radius: 2px; color: var(--fa-navy); font-size: 13px; text-decoration: none; }
.fa-active-filters a::after { content: "×"; font-size: 16px; color: var(--fa-rust); }
.fa-active-filters a.fa-clear-all { border-color: transparent; background: none; color: var(--fa-rust); }
.fa-active-filters a.fa-clear-all::after { content: none; }

/* Filters drawer */
.fa-filter-group { margin: 0 0 28px; padding: 0; border: 0; }
.fa-filter-group legend, .fa-filter-group h3 { margin: 0 0 12px; padding: 0; font-family: var(--fa-sans); font-size: 13px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.fa-filter-options { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.fa-filter-options a {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
	background: var(--fa-paper); border: 1px solid var(--fa-border); border-radius: 2px; color: var(--fa-navy); font-size: 14px; font-weight: 700; text-decoration: none;
}
.fa-filter-options a:hover { border-color: var(--fa-navy); }
.fa-filter-options a.is-active { background: var(--fa-navy); border-color: var(--fa-navy); color: var(--fa-paper); }
.fa-filter-options .fa-swatch-dot { width: 18px; height: 18px; border-radius: 2px; border: 1px solid rgba(23, 61, 77, 0.25); }
.fa-filter-options .fa-count-n { font-weight: 400; opacity: 0.75; }

/* Pagination */
.woocommerce-pagination, .fa-pagination { margin-top: 58px; }
.woocommerce-pagination ul.page-numbers, .fa-pagination ul.page-numbers, .nav-links { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0; padding: 0; }
.page-numbers a.page-numbers, .page-numbers span.page-numbers, .nav-links .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 52px; min-height: var(--fa-control); padding: 0 18px;
	background: var(--fa-paper); color: var(--fa-navy); border: 1px solid var(--fa-border); border-radius: var(--fa-radius);
	font-size: 15px; font-weight: 700; text-decoration: none;
}
.page-numbers span.current, .nav-links .current { background: var(--fa-rust); border-color: var(--fa-rust); color: var(--fa-paper); }
.page-numbers a.page-numbers:hover, .nav-links a.page-numbers:hover { border-color: var(--fa-navy); }
.page-numbers .next, .page-numbers .prev { padding: 0 27px; }
.page-numbers .dots { border-color: transparent; background: none; }

/* 13. Single product ------------------------------------------------------ */
.woocommerce-breadcrumb, .fa-breadcrumb { margin: 0; padding: 30px 0 26px; font-size: 12px; color: var(--fa-muted); }
.woocommerce-breadcrumb a, .fa-breadcrumb a { color: var(--fa-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover, .fa-breadcrumb a:hover { color: var(--fa-rust); text-decoration: underline; }
.fa-product { display: grid; grid-template-columns: minmax(0, 700px) minmax(0, 528px); justify-content: space-between; gap: 40px; align-items: start; }
.fa-product__gallery { position: relative; min-width: 0; }
.fa-product__gallery .fa-badges { top: 12px; left: 12px; z-index: 9; }
.woocommerce-product-gallery { position: relative; margin: 0; opacity: 1 !important; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image { background: #e9e5da; }
.woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 700 / 760; object-fit: cover; }
.woocommerce-product-gallery .flex-viewport { margin-bottom: 14px; }
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:not(:first-child) { display: none; }
.woocommerce-product-gallery .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; margin: 0; padding: 0; }
.woocommerce-product-gallery .flex-control-thumbs li { width: 90px; }
.woocommerce-product-gallery .flex-control-thumbs img { width: 90px; height: 96px; object-fit: cover; cursor: pointer; opacity: 0.72; border: 1px solid transparent; transition: opacity 0.15s ease; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; border-color: var(--fa-navy); }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 12px; right: 12px; z-index: 9; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
	background: var(--fa-paper); border-radius: 50%; color: var(--fa-navy); text-decoration: none; font-size: 0;
}
.woocommerce-product-gallery__trigger::before { content: ""; width: 16px; height: 16px; border: 2px solid currentColor; border-radius: 50%; transform: translate(-2px, -2px); }
.woocommerce-product-gallery__trigger::after { content: ""; position: absolute; width: 2px; height: 7px; background: currentColor; transform: translate(6px, 6px) rotate(-45deg); }
.woocommerce-product-gallery__trigger span { display: none; }

.fa-product__summary { min-width: 0; padding-top: 0; }
.fa-product__summary .fa-eyebrow { font-size: 10px; margin-bottom: 18px; }
.fa-product__summary .product_title { margin: 0; font-size: 43px; line-height: 1.26; }
.fa-product__summary > .price, .fa-product__summary p.price { margin: 18px 0 0; font-size: 27px; font-weight: 700; color: var(--fa-navy); }
.fa-product__summary > .price ins, .fa-product__summary p.price ins { color: var(--fa-rust); }
.fa-product__summary .woocommerce-product-details__short-description { margin-top: 16px; font-size: 16px; color: var(--fa-muted); }
.fa-product__summary .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
.fa-product__summary .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin-top: 12px; font-size: 13px; }
.fa-product__summary .stock { margin: 12px 0 0; font-size: 14px; }
.fa-product__summary .stock.out-of-stock { color: var(--fa-error-text); font-weight: 700; }
.fa-product__summary form.cart { margin: 30px 0 0; }
.fa-product__summary .variations { width: 100%; border-collapse: collapse; margin: 0; }
.fa-product__summary .variations tr { display: block; margin-bottom: 26px; }
.fa-product__summary .variations th, .fa-product__summary .variations td { display: block; padding: 0; text-align: left; }
.fa-product__summary .variations th.label label { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; font-size: 13px; text-transform: uppercase; letter-spacing: 0.01em; }
.fa-product__summary .variations .fa-selected-label { text-transform: none; }
.fa-product__summary .variations .fa-selected-label::before { content: "/ "; }
.fa-product__summary .variations .fa-selected-label:empty::before { content: none; }
.fa-product__summary .reset_variations { display: inline-block; margin-top: 10px; font-size: 12px; color: var(--fa-muted); }
.fa-product__summary .woocommerce-variation-description, .fa-product__summary .woocommerce-variation-availability { font-size: 14px; color: var(--fa-muted); }
.fa-product__summary .woocommerce-variation-price { display: none; } /* price is in the main price + button */
.fa-variation-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.fa-size-guide-link { font-size: 13px; font-weight: 400; text-transform: none; color: var(--fa-rust); text-decoration: none; letter-spacing: 0; }
.fa-size-guide-link:hover { text-decoration: underline; }

/* Swatches */
.fa-swatches { display: flex; flex-wrap: wrap; gap: 14px 10px; }
.fa-swatch {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	min-width: 88px; min-height: 46px; padding: 0 18px;
	background: var(--fa-paper); color: var(--fa-navy); border: 1px solid var(--fa-border); border-radius: 2px;
	font-family: var(--fa-sans); font-size: 14px; font-weight: 700; cursor: pointer; justify-content: flex-start;
}
.fa-swatch:hover { border-color: var(--fa-navy); }
.fa-swatch[aria-pressed="true"] { background: var(--fa-navy); color: var(--fa-paper); border-color: var(--fa-navy); }
.fa-swatch[disabled], .fa-swatch.is-unavailable { opacity: 0.4; cursor: not-allowed; background-image: linear-gradient(to top right, transparent calc(50% - 1px), var(--fa-muted) 50%, transparent calc(50% + 1px)); }
.fa-swatch--color { min-width: 42px; width: 42px; height: 42px; min-height: 42px; padding: 0; border-color: transparent; box-shadow: inset 0 0 0 1px rgba(23, 61, 77, 0.12); }
.fa-swatch--color:hover { border-color: var(--fa-navy); }
.fa-swatch--color[aria-pressed="true"] { background: inherit; border: 1px solid var(--fa-navy); box-shadow: inset 0 0 0 3px var(--fa-paper), inset 0 0 0 4px rgba(23, 61, 77, 0.12); color: inherit; }
.fa-swatch--color.is-unavailable { opacity: 0.35; }
.fa-variation-select.fa-has-swatches { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* Quantity + add to cart */
.fa-qty-label { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: 0.01em; text-transform: uppercase; }
.quantity { display: inline-flex; align-items: stretch; height: 46px; background: var(--fa-paper); border: 1px solid var(--fa-border); border-radius: 2px; }
.quantity .qty { width: 46px; min-height: 0; height: 100%; padding: 0; text-align: center; border: 0; background: transparent; font-size: 16px; -moz-appearance: textfield; box-shadow: none !important; }
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fa-qty-btn { width: 46px; background: none; border: 0; color: var(--fa-navy); font-size: 18px; cursor: pointer; font-family: var(--fa-sans); }
.fa-qty-btn:hover { color: var(--fa-rust); }
.fa-qty-btn:disabled { color: var(--fa-border); cursor: default; }
.quantity.hidden, .quantity input[type="hidden"] + .fa-qty-btn { display: none; }
.fa-product__summary .woocommerce-variation-add-to-cart, .fa-product__summary form.cart:not(.variations_form) { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.fa-product__summary .single_add_to_cart_button { width: 100%; margin-top: 19px; font-size: 15px; }
.fa-product__summary form.cart .quantity { margin: 0; }
.fa-product__note { margin: 24px 0 0; font-size: 14px; color: var(--fa-muted); }
.fa-product__links { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.fa-product__links a { font-size: 14px; color: var(--fa-rust); text-decoration: none; }
.fa-product__links a:hover { text-decoration: underline; }
.fa-product__summary .product_meta { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--fa-border); font-size: 12px; color: var(--fa-muted); display: grid; gap: 4px; }
.fa-product__summary .product_meta a { color: var(--fa-muted); }

/* Details tabs */
.fa-details { margin-top: 80px; padding-top: 26px; border-top: 1px solid var(--fa-border); }
.fa-tabs__list { display: flex; flex-wrap: wrap; align-items: center; margin: 0 0 22px; padding: 0; list-style: none; }
.fa-tabs__list li { display: flex; align-items: center; }
.fa-tabs__list li + li::before { content: "/"; margin: 0 8px; font-weight: 700; color: var(--fa-navy); }
.fa-tab {
	min-height: 44px; padding: 0; background: none; border: 0; cursor: pointer;
	font-family: var(--fa-sans); font-size: 18px; font-weight: 700; color: var(--fa-muted);
	border-bottom: 2px solid transparent;
}
.fa-tab[aria-selected="true"] { color: var(--fa-navy); border-bottom-color: var(--fa-navy); }
.fa-tab:hover { color: var(--fa-navy); }
.fa-tabpanel { max-width: 900px; }
.fa-tabpanel[hidden] { display: none; }
.fa-tabpanel > h2:first-child, .fa-tabpanel .fa-tab-title { font-size: 35px; margin: 0 0 22px; }
.fa-tabpanel p, .fa-tabpanel li { font-size: 17px; color: var(--fa-muted); }
.fa-tabpanel .fa-care { font-size: 15px; }
.fa-tabpanel table.shop_attributes { width: 100%; border-collapse: collapse; margin-top: 18px; }
.fa-tabpanel table.shop_attributes th, .fa-tabpanel table.shop_attributes td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(--fa-border); font-size: 15px; }
.fa-tabpanel table.shop_attributes td p { margin: 0; font-size: 15px; }
.fa-related { margin-top: 64px; }
.fa-related > h2 { font-size: 38px; margin: 0 0 42px; }

/* Reviews (if enabled) */
#reviews .commentlist { list-style: none; margin: 0 0 24px; padding: 0; }
#reviews .comment_container { padding: 18px 0; border-bottom: 1px solid var(--fa-border); }
#reviews .avatar { display: none; }
.star-rating { position: relative; display: inline-block; width: 5.4em; height: 1.1em; font-size: 14px; line-height: 1; overflow: hidden; color: var(--fa-rust); }
.star-rating::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--fa-border); letter-spacing: 0.08em; }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; letter-spacing: 0.08em; }
p.stars a { color: var(--fa-rust); text-decoration: none; margin-right: 4px; }

/* 14. Cart ---------------------------------------------------------------- */
.fa-cart { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 443px); gap: 48px 72px; align-items: start; }
.fa-cart__items { list-style: none; margin: 0 0 42px; padding: 0; }
.fa-cart-item { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 0 30px; padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--fa-border); }
.fa-cart-item:last-child { border-bottom: 0; margin-bottom: 0; }
.fa-cart-item__media img { width: 180px; height: 210px; object-fit: cover; background: #e9e5da; }
.fa-cart-item__name { display: block; margin: 6px 0 0; font-size: 24px; font-weight: 700; line-height: 1.3; color: var(--fa-navy); text-decoration: none; }
.fa-cart-item__name:hover { color: var(--fa-rust); }
.fa-cart-item__meta { margin: 14px 0 0; font-size: 14px; color: var(--fa-muted); }
.fa-cart-item__meta dl.variation { margin: 0; display: flex; flex-wrap: wrap; gap: 0 4px; }
.fa-cart-item__meta dl.variation dt { display: none; }
.fa-cart-item__meta dl.variation dd { margin: 0; }
.fa-cart-item__meta dl.variation dd p { margin: 0; display: inline; }
.fa-cart-item__meta dl.variation dd:not(:last-of-type)::after { content: " /"; }
.fa-cart-item__price { margin: 14px 0 0; font-size: 17px; font-weight: 700; }
.fa-cart-item__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 16px; }
.fa-cart-item__controls .quantity { height: 40px; }
.fa-cart-item__controls .quantity .qty, .fa-cart-item__controls .fa-qty-btn { width: 40px; font-size: 15px; }
.fa-cart-item .product-remove { display: inline; }
.fa-cart-item .product-remove > a { display: inline-flex; align-items: center; min-height: 40px; font-size: 13px; color: var(--fa-rust); text-decoration: none; }
.fa-cart-item .product-remove > a:hover { text-decoration: underline; }
.fa-cart-item .backorder_notification { font-size: 13px; color: var(--fa-muted); margin: 8px 0 0; }
.fa-cart__coupon { max-width: 580px; margin-bottom: 30px; }
.fa-cart__coupon label { margin-bottom: 12px; }
.fa-cart__coupon input { margin-bottom: 19px; }
.fa-cart__actions-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.fa-cart .cart_totals, .fa-summary {
	background: var(--fa-panel); border-radius: var(--fa-radius-lg); padding: 24px 22px 30px;
}
.fa-cart .cart_totals > h2, .fa-summary__title { margin: 0 0 30px; font-size: 22px; }
.fa-totals { width: 100%; border-collapse: collapse; }
.fa-totals th, .fa-totals td { padding: 0 0 18px; text-align: left; vertical-align: top; font-weight: 400; font-size: 14px; color: var(--fa-navy); }
.fa-totals td { text-align: right; font-size: 13px; color: var(--fa-muted-strong); }
.fa-totals td .amount { color: var(--fa-navy); }
.fa-totals .order-total th, .fa-totals .order-total td { padding-top: 22px; border-top: 1px solid var(--fa-border); vertical-align: baseline; }
.fa-totals .order-total th { font-size: 12px; }
.fa-totals .order-total td, .fa-totals .order-total td .amount { font-size: 18px; font-weight: 700; color: var(--fa-navy); }
.fa-totals .order-total td small, .fa-totals .includes_tax { display: block; font-size: 11px; font-weight: 400; color: var(--fa-muted-strong); }
.fa-totals .woocommerce-remove-coupon { font-size: 12px; margin-left: 4px; }
.fa-totals .shipped_via { display: none; }
.fa-totals ul#shipping_method { list-style: none; margin: 0; padding: 0; }
.fa-totals .woocommerce-shipping-destination, .fa-totals .woocommerce-shipping-calculator { display: none; }
.fa-cart .wc-proceed-to-checkout { padding: 0; margin-top: 2px; }
.fa-cart .wc-proceed-to-checkout .checkout-button { width: 100%; }
.fa-summary__note { margin: 20px 0 0; font-size: 11px; color: var(--fa-muted-strong); }
.fa-cart-empty { display: grid; grid-template-columns: minmax(0, 550px) minmax(0, 1fr); gap: 48px 138px; align-items: center; }
.fa-cart-empty__media { aspect-ratio: 550 / 410; overflow: hidden; background: var(--fa-sand); }
.fa-cart-empty__media img { width: 100%; height: 100%; object-fit: cover; }
.fa-cart-empty__title { margin: 0 0 66px; font-size: 25px; }
.fa-cart-empty .fa-btn { min-width: 250px; }
.wc-empty-cart-message { display: none; }

/* 15. Checkout ------------------------------------------------------------ */
.fa-checkout { display: grid; grid-template-columns: minmax(0, 740px) minmax(0, 443px); justify-content: space-between; gap: 40px 72px; align-items: start; }
.fa-checkout__main { min-width: 0; grid-row: 1; }
.fa-checkout__aside { min-width: 0; position: sticky; top: 110px; grid-row: 1; grid-column: 2; }
.admin-bar .fa-checkout__aside { top: 142px; }
.fa-steps { margin: 0 0 34px; font-size: 12px; font-weight: 700; }
.fa-checkout h3, .fa-checkout__section-title, .woocommerce-billing-fields > h3, .woocommerce-shipping-fields > h3, .woocommerce-additional-fields > h3 {
	margin: 0 0 22px; font-size: 24px;
}
.fa-checkout__section { margin-bottom: 36px; }
.fa-checkout .fa-login-hint { margin: -6px 0 30px; font-size: 13px; }
.fa-checkout .fa-login-hint a { color: var(--fa-rust); text-decoration: none; }
.fa-checkout .fa-login-hint a:hover { text-decoration: underline; }
.woocommerce-form-login-toggle .woocommerce-info, .woocommerce-form-coupon-toggle .woocommerce-info { background: none; padding: 0; margin: 0 0 18px; font-size: 13px; display: block; }
.woocommerce-form-login-toggle .woocommerce-info::before, .woocommerce-form-coupon-toggle .woocommerce-info::before { content: none; }
.woocommerce-form-login-toggle a, .woocommerce-form-coupon-toggle a { color: var(--fa-rust) !important; font-weight: 400 !important; }
form.checkout_coupon, .woocommerce-checkout form.woocommerce-form-login.login { max-width: 740px; margin: 0 0 30px; padding: 22px; background: var(--fa-paper); border: 1px solid var(--fa-border); border-radius: var(--fa-radius-lg); }
form.checkout_coupon .form-row-first { width: calc(100% - 180px); }
form.checkout_coupon .form-row-last { width: 160px; }
form.checkout_coupon .button { width: 100%; }
#ship-to-different-address { margin: 0 0 18px; font-family: var(--fa-sans); font-size: 14px; font-weight: 400; }
#ship-to-different-address label { display: flex; align-items: center; font-weight: 400; cursor: pointer; margin: 0; }
.woocommerce-shipping-fields .shipping_address { margin-top: 22px; }
.woocommerce-additional-fields { margin-top: 18px; }
.woocommerce-additional-fields > h3 { font-size: 20px; }
.fa-delivery { margin: 0 0 36px; }
.fa-delivery ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fa-delivery ul#shipping_method li { margin: 0; padding: 18px 16px; background: var(--fa-success); border-radius: var(--fa-radius); font-size: 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.fa-delivery ul#shipping_method li label { margin: 0; font-weight: 400; font-size: 14px; display: inline; cursor: pointer; }
.fa-delivery ul#shipping_method li input { margin-right: 8px; }
.fa-delivery .fa-delivery__note { margin: 10px 0 0; font-size: 13px; color: var(--fa-muted); }
.fa-delivery .woocommerce-shipping-contents { display: block; margin-top: 6px; font-size: 12px; color: var(--fa-muted); }
.fa-delivery__empty { padding: 18px 16px; background: var(--fa-success); border-radius: var(--fa-radius); font-size: 14px; }
#payment { margin: 0; background: none; }
#payment ul.payment_methods { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 12px; }
#payment ul.payment_methods li.wc_payment_method { margin: 0; background: var(--fa-paper); border: 1px solid var(--fa-border); border-radius: var(--fa-radius); }
#payment ul.payment_methods li > input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; }
#payment ul.payment_methods li > label { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: 56px; margin: 0; padding: 14px 16px; font-size: 15px; font-weight: 700; cursor: pointer; }
#payment ul.payment_methods li > label::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--fa-navy); flex: 0 0 auto; }
#payment ul.payment_methods li > input:checked + label::before { background: var(--fa-navy); box-shadow: inset 0 0 0 2px var(--fa-paper); }
#payment ul.payment_methods li > input:focus-visible + label { outline: 2px solid var(--fa-rust); outline-offset: 2px; }
#payment ul.payment_methods li:only-child > label::before { display: none; }
#payment ul.payment_methods li img { max-height: 24px; width: auto; display: inline-block; margin: 0; }
#payment .payment_box { margin: 0; padding: 4px 16px 18px; background: transparent; font-size: 14px; color: var(--fa-muted); }
#payment .payment_box::before { content: none; }
#payment .payment_box p:last-child { margin-bottom: 0; }
#payment .payment_box fieldset { border: 0; margin: 0; padding: 0; }
#payment .place-order { margin: 0; padding: 0; }
#payment #place_order { width: 100%; margin-top: 8px; }
.woocommerce-terms-and-conditions-wrapper { margin: 0 0 22px; font-size: 12px; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin: 0 0 12px; font-size: 12px; color: var(--fa-muted); }
.woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.woocommerce-terms-and-conditions-wrapper label { font-size: 12px; }
.woocommerce-terms-and-conditions { max-height: 220px; overflow: auto; padding: 16px; margin-bottom: 12px; background: var(--fa-paper); border: 1px solid var(--fa-border); font-size: 13px; }
.fa-checkout__review-note { margin: 0 0 22px; }
.fa-checkout__aside .fa-summary { padding-bottom: 32px; }
.fa-checkout__aside .fa-summary__title { margin-bottom: 28px; }
.fa-summary-toggle { display: none; }
.fa-review-items { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 16px; }
.fa-review-item__name { margin: 0; font-size: 14px; }
.fa-review-item__meta { margin: 6px 0 0; font-size: 12px; color: var(--fa-muted-strong); }
.fa-review-item__meta dl.variation { margin: 0; display: flex; flex-wrap: wrap; gap: 0 4px; }
.fa-review-item__meta dl.variation dt { display: none; }
.fa-review-item__meta dl.variation dd { margin: 0; }
.fa-review-item__meta dl.variation dd p { margin: 0; display: inline; }
.fa-review-item__meta dl.variation dd:not(:last-of-type)::after { content: " /"; }
.blockUI.blockOverlay { background: var(--fa-cream) !important; opacity: 0.6 !important; }
.woocommerce-checkout .blockUI.blockOverlay::before, .processing .blockUI.blockOverlay::before { content: none; }

/* Thank you */
.fa-thanks__notice { margin-bottom: 40px; }
.fa-next { margin: 0 0 40px; }
.fa-next__title { margin: 0 0 20px; font-size: 25px; }
.fa-next ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 30px; }
.fa-next li h3 { margin: 0 0 10px; font-family: var(--fa-sans); font-size: 18px; }
.fa-next li p { margin: 0; color: var(--fa-muted); }
.fa-thanks__summary { max-width: 700px; }
.fa-thanks__extra { margin-top: 40px; }
.fa-thanks__actions { margin: 30px 0 0; display: grid; gap: 22px; justify-items: start; }
.fa-thanks__actions .fa-btn { min-width: 250px; }
.woocommerce-customer-details { margin-top: 40px; }
.woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.woocommerce-customer-details h2, .woocommerce-order-downloads h2 { font-size: 22px; }
.woocommerce-customer-details address { font-style: normal; color: var(--fa-muted); line-height: 1.6; padding: 0; border: 0; }
.woocommerce-customer-details--phone, .woocommerce-customer-details--email { margin: 8px 0 0; }
.woocommerce-order-overview { display: none; }

/* 16. Account ------------------------------------------------------------- */
.fa-account { display: grid; grid-template-columns: 328px minmax(0, 1fr); gap: 32px 0; align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 700; color: var(--fa-navy); text-decoration: none; }
.woocommerce-MyAccount-navigation a:hover, .woocommerce-MyAccount-navigation .is-active a { color: var(--fa-rust); }
.woocommerce-MyAccount-content { min-width: 0; max-width: 968px; }
.woocommerce-MyAccount-content > p:first-child:not(.fa-lead) { margin-top: 0; }
.fa-account__title { margin: 0 0 30px; font-size: 27px; }
.fa-account__intro { margin: 0 0 40px; font-size: 17px; color: var(--fa-muted); }
.fa-facts { list-style: none; margin: 0 0 40px; padding: 0; display: grid; gap: 34px; }
.fa-facts dt { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: var(--fa-rust); }
.fa-facts dd { margin: 0; font-size: 18px; }
.fa-facts dd a { color: var(--fa-navy); }
.fa-orders { list-style: none; margin: 0; padding: 0; display: grid; gap: 40px; }
.fa-order-card h3 { margin: 0 0 10px; font-family: var(--fa-sans); font-size: 20px; }
.fa-order-card p { margin: 0 0 20px; font-size: 14px; color: var(--fa-muted); }
.fa-order-card .fa-btn { min-width: 180px; }
.fa-order-card__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.woocommerce-pagination--without-numbers { display: flex; gap: 12px; margin-top: 40px; }
.fa-addresses { display: grid; gap: 50px; }
.fa-address h2 { margin: 0 0 18px; font-size: 27px; }
.fa-address address { margin: 0 0 22px; font-style: normal; font-size: 17px; line-height: 1.38; color: var(--fa-muted); }
.fa-address .fa-btn { min-width: 180px; }
.woocommerce-MyAccount-content form { max-width: 650px; }
.woocommerce-MyAccount-content fieldset { margin: 30px 0; padding: 0; border: 0; }
.woocommerce-MyAccount-content fieldset legend { margin-bottom: 18px; font-family: var(--fa-serif); font-size: 22px; font-weight: 700; }
.woocommerce-EditAccountForm .form-row-first, .woocommerce-EditAccountForm .form-row-last { width: 100%; float: none; }
.woocommerce-MyAccount-content .woocommerce-address-fields > h3, .woocommerce-MyAccount-content form > h2 { font-size: 27px; }
.fa-order-meta { margin-bottom: 30px; }
.fa-order-line { margin: 0 0 40px; }
.fa-order-line h3 { margin: 0 0 12px; font-family: var(--fa-sans); font-size: 21px; }
.fa-order-line p { margin: 0; font-size: 16px; color: var(--fa-muted); }
.fa-order-line + .fa-order-line { margin-top: -20px; }
.fa-order-detail .fa-summary { max-width: 650px; }
.fa-order-detail__note { margin: 36px 0 0; color: var(--fa-muted); }
.woocommerce-OrderUpdates { list-style: none; padding: 0; margin: 0 0 24px; }

/* Login / register */
.fa-auth { display: grid; grid-template-columns: repeat(2, minmax(0, 570px)); justify-content: space-between; gap: 48px; }
.fa-auth__col h2 { margin: 0 0 30px; font-size: 29px; }
.fa-auth .woocommerce-form-login__rememberme { margin: -4px 0 32px; font-size: 13px; color: var(--fa-muted); }
#customer_login .woocommerce-form-login__submit, #customer_login .woocommerce-form-register__submit { width: 100%; }
#customer_login label .required { display: none; }
#customer_login .lost_password a, #customer_login .fa-switch a { color: var(--fa-rust); text-decoration: none; }
#customer_login .lost_password { margin: 26px 0 0; font-size: 13px; }
#customer_login .woocommerce-form-login__rememberme { margin: -4px 0 32px; font-size: 13px; color: var(--fa-muted); }
.fa-single-form { max-width: 570px; }
.fa-auth .lost_password { margin: 26px 0 0; font-size: 13px; }
.fa-auth .lost_password a, .fa-auth .fa-switch a { color: var(--fa-rust); text-decoration: none; }
.fa-auth .lost_password a:hover, .fa-auth .fa-switch a:hover { text-decoration: underline; }
.fa-auth .woocommerce-privacy-policy-text p, .fa-auth .fa-pw-help { font-size: 12px; color: var(--fa-muted); margin: -8px 0 10px; }
.fa-auth .woocommerce-privacy-policy-text { margin-bottom: 24px; }
.fa-auth .fa-switch { margin: 26px 0 0; font-size: 13px; }
.fa-auth form { max-width: none; }
.woocommerce-ResetPassword, .woocommerce-form-login.fa-single-form { max-width: 570px; }
.woocommerce-ResetPassword .form-row-first, .woocommerce-ResetPassword .form-row-last { width: 100%; float: none; }

/* 17. Content pages ------------------------------------------------------- */
.fa-prose { max-width: none; }
.fa-prose > p, .fa-prose > ul, .fa-prose > ol, .fa-prose > h2, .fa-prose > h3, .fa-prose > h4, .fa-prose > blockquote { max-width: 1000px; }
.fa-prose > p.is-style-fa-notice, .fa-prose > p.fa-notice { max-width: none; }
.fa-prose > *:first-child { margin-top: 0; }
.fa-prose h2 { margin: 44px 0 26px; font-size: 29px; }
.fa-prose h3 { margin: 32px 0 16px; font-size: 22px; }
.fa-prose p, .fa-prose li { font-size: 17px; color: var(--fa-muted); line-height: 1.42; }
.fa-prose ul, .fa-prose ol { padding-left: 1.2em; margin: 0 0 1em; }
.fa-prose a:not(.wp-block-button__link):not(.fa-btn) { color: var(--fa-rust); }
.fa-prose strong { color: var(--fa-navy); }
.fa-prose .is-style-fa-notice, .fa-prose .fa-notice { margin: 0 0 36px; padding: 18px 16px; background: var(--fa-success); border-radius: var(--fa-radius); font-size: 14px; color: var(--fa-navy); max-width: none; }
.fa-prose figure { margin: 0 0 1.5em; }
.fa-prose hr, .fa-prose .wp-block-separator { border: 0; border-top: 1px solid var(--fa-border); margin: 36px 0 30px; opacity: 1; max-width: none; }
.fa-prose .wp-block-buttons { margin: 0 0 1em; display: flex; flex-wrap: wrap; gap: 12px; }
.fa-prose .wp-block-button__link { min-width: 260px; }
.fa-prose .wp-block-image img { width: 100%; height: auto; }
.fa-prose .fa-story-image img { aspect-ratio: 650 / 510; object-fit: cover; }

/* Tables (size guide etc.) */
.fa-prose table, .wp-block-table table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14px; }
.wp-block-table { margin: 0 0 56px; overflow-x: auto; }
.fa-prose table thead th, .wp-block-table thead th { background: var(--fa-navy); color: var(--fa-paper); font-weight: 700; text-align: left; padding: 17px 15px; border: 0; }
.fa-prose table td, .fa-prose table th, .wp-block-table td, .wp-block-table th { padding: 17px 15px; text-align: left; border: 0; color: var(--fa-navy); }
.fa-prose table tbody tr, .wp-block-table tbody tr { background: var(--fa-paper); }
.fa-prose table tbody tr:nth-child(even), .wp-block-table tbody tr:nth-child(even) { background: var(--fa-stripe); }
.wp-block-table thead { border: 0; }
.wp-block-table figcaption { font-size: 12px; color: var(--fa-muted); margin-top: 10px; }

/* FAQ accordion (core Details block) */
.fa-prose details, .wp-block-details { margin: 0; padding: 0; border-top: 1px solid var(--fa-border); }
.fa-prose details:last-of-type, .wp-block-details:last-of-type { border-bottom: 1px solid var(--fa-border); margin-bottom: 30px; }
.fa-prose details + details, .wp-block-details + .wp-block-details { margin-top: 0; }
.fa-prose summary, .wp-block-details summary {
	display: flex; align-items: center; gap: 10px; min-height: 87px; padding: 20px 0; cursor: pointer; list-style: none;
	font-family: var(--fa-sans); font-size: 21px; font-weight: 700; color: var(--fa-navy);
}
.fa-prose summary::-webkit-details-marker, .wp-block-details summary::-webkit-details-marker { display: none; }
.fa-prose summary::before, .wp-block-details summary::before { content: "+"; width: 16px; flex: 0 0 auto; text-align: center; }
.fa-prose details[open] summary::before, .wp-block-details[open] summary::before { content: "−"; }
.fa-prose summary:hover, .wp-block-details summary:hover { color: var(--fa-rust); }
.fa-prose details > *:not(summary), .wp-block-details > *:not(summary) { margin: -6px 0 34px; font-size: 16px; }

/* Story layout */
.fa-prose .wp-block-columns { display: flex; gap: 98px; margin: 0 0 44px; align-items: flex-start; }
.fa-prose .wp-block-column { flex: 1 1 0; min-width: 0; }
.fa-prose .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
.fa-prose .wp-block-column h2 { margin-top: 30px; font-size: 39px; line-height: 1.33; }
.fa-prose .wp-block-column p { font-size: 17px; }
.fa-prose .fa-steps-list h3, .fa-prose h3.fa-step { margin: 0 0 18px; font-size: 25px; }
.fa-prose .fa-steps-list p { margin-bottom: 32px; }

/* Contact */
.fa-contact { max-width: 760px; }
.fa-contact .fa-btn { min-width: 260px; margin-top: 12px; }
.fa-contact__legal { margin: 24px 0 0; font-size: 12px; color: var(--fa-muted); }
.fa-contact__note { margin: 40px 0 0; font-size: 12px; color: var(--fa-muted); }
.fa-contact__after { margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--fa-border); }
.fa-contact__after .fa-btn { min-width: 260px; }

/* Search / 404 recovery */
.fa-recovery-form { max-width: 760px; margin-bottom: 40px; }
.fa-recovery-form .fa-label { margin-bottom: 12px; }
.fa-recovery-form .fa-btn { margin-top: 0; }
.fa-recovery-title { margin: 66px 0 26px; font-size: 25px; }
.fa-search-field { margin-bottom: 32px; }
.fa-search-field .fa-label { margin-bottom: 12px; }
.fa-posts { display: grid; gap: 36px; max-width: 900px; }
.fa-post h2 { font-size: 29px; margin: 0 0 10px; }
.fa-post h2 a { color: var(--fa-navy); text-decoration: none; }
.fa-post h2 a:hover { color: var(--fa-rust); }
.fa-post p { color: var(--fa-muted); }

/* WP core block alignment helpers */
.alignwide { max-width: none; }
.alignleft { float: left; margin: 0 24px 16px 0; }
.alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { margin-left: auto; margin-right: auto; }
.has-text-align-center { text-align: center; }
.wp-caption-text, figcaption { font-size: 13px; color: var(--fa-muted); }

/* 18. Responsive ---------------------------------------------------------- */
@media (max-width: 1240px) {
	:root { --fa-gutter: 40px; }
	.fa-nav ul { gap: 6px 28px; }
	.fa-tools { margin-left: 28px; }
	.fa-brand__name { font-size: 18px; }
	.fa-footer__grid { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
}

@media (max-width: 1080px) {
	.fa-nav, .fa-tool--search-text, .fa-tool--account { display: none; }
	.fa-tool--menu { display: inline-flex; }
	.fa-tools { margin-left: 0; }
	.fa-hero__title { font-size: 62px; }
	.fa-product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.fa-checkout { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 40px; }
	.fa-cart { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 40px; }
	.fa-account { grid-template-columns: 220px minmax(0, 1fr); }
	.fa-cart-empty { gap: 48px; }
	.fa-story-band { gap: 48px; }
}

@media (max-width: 860px) {
	:root { --fa-gutter: 28px; }
	ul.products, .fa-products, ul.products.columns-4, .fa-products--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 14px; }
	.fa-collections { grid-template-columns: 1fr; gap: 30px; }
	.fa-hero { grid-template-columns: 1fr; gap: 26px; }
	.fa-hero__media { aspect-ratio: 350 / 400; }
	.fa-story-band { grid-template-columns: 1fr; gap: 26px; }
	.fa-story-band__title { line-height: 1.43; }
	.fa-newsletter__inner { grid-template-columns: 1fr; gap: 0; padding-top: 28px; padding-bottom: 40px; }
	.fa-product { grid-template-columns: 1fr; gap: 26px; }
	.fa-cart, .fa-checkout { grid-template-columns: 1fr; }
	.fa-checkout__aside { position: static; grid-row: auto; grid-column: auto; order: 2; }
	.fa-checkout__main { grid-row: auto; order: 1; }
	.fa-cart-empty { grid-template-columns: 1fr; gap: 24px; }
	.fa-cart-empty__title { margin-bottom: 30px; }
	.fa-account { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0 22px; border-bottom: 1px solid var(--fa-border); padding-bottom: 8px; }
	.woocommerce-MyAccount-navigation a { font-size: 15px; }
	.fa-auth { grid-template-columns: 1fr; gap: 56px; }
	.fa-prose .wp-block-columns { flex-direction: column; gap: 26px; }
	.fa-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fa-footer__brand { grid-column: 1 / -1; }
	.fa-footer__col { grid-row: auto; }
	.fa-footer__line { grid-column: 1 / -1; grid-row: auto; order: 9; font-size: 12px; }
	.woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	:root { --fa-gutter: 20px; --fa-header-h: 92px; }
	body { font-size: 15px; }
	h1 { font-size: 34px; line-height: 1.33; }
	.fa-page-header { padding-top: 28px; padding-bottom: 32px; }
	.fa-page-header .fa-lead, .fa-lead { font-size: 16px; margin-top: 18px; }
	.fa-announce__inner { justify-content: flex-start; text-align: left; }
	.fa-brand { gap: 20px; }
	.fa-brand__logo, .fa-brand .custom-logo { width: 69px; }
	.fa-brand__name { font-size: 16px; max-width: 120px; line-height: 1.43; }
	.fa-header__bar { gap: 12px; }
	.fa-tools { gap: 0; margin-right: -6px; }
	.fa-tool { font-size: 16px; font-weight: 700; }
	.fa-tool--menu { order: -1; min-width: 44px; }
	.fa-tool--menu .fa-burger { font-size: 20px; }
	.fa-tool__text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.fa-header.is-stuck .fa-header__bar { min-height: 76px; }
	.fa-header.is-stuck .fa-brand__name { max-width: none; }

	.fa-hero { padding-top: 26px; }
	.fa-hero__copy { padding-top: 0; }
	.fa-hero__title { margin-top: 16px; font-size: 45px; line-height: 1.15; }
	.fa-hero__lead { margin: 30px 0 26px; font-size: 17px; white-space: normal; }
	.fa-hero .fa-btn { width: 100%; }
	.fa-strip__inner { justify-content: flex-start; text-align: left; min-height: 110px; padding-top: 22px; padding-bottom: 22px; align-items: flex-start; }
	.fa-section { padding-top: 40px; }
	.fa-section__title { font-size: 29px; line-height: 1.45; }
	.fa-section__head { margin-bottom: 26px; }
	.fa-collection__media { aspect-ratio: 350 / 280; }
	.fa-story-band__title { font-size: 30px; }
	.fa-story-band .fa-btn { min-width: 220px; }
	.fa-newsletter__title { font-size: 28px; line-height: 1.43; }
	.fa-newsletter__form { padding-top: 30px; }

	ul.products, .fa-products, ul.products.columns-4, .fa-products--4 { gap: 40px 14px; }
	.fa-card__media, .columns-4 .fa-card__media { aspect-ratio: 168 / 198; }
	.fa-card__title { font-size: 13px; }
	.fa-card .price { font-size: 13px; margin-top: 4px; }
	.fa-badge { min-width: 83px; }
	.fa-toolbar { gap: 14px; flex-wrap: nowrap; }
	.fa-toolbar__btn, .woocommerce-ordering, .woocommerce-ordering select.orderby { min-width: 0; flex: 1 1 0; width: 100%; }
	.fa-toolbar > * { flex: 1 1 0; min-width: 0; }
	.woocommerce-ordering select.orderby { padding-left: 54px; padding-right: 30px; font-size: 14px; background-position: right 10px center; text-overflow: ellipsis; }
	.woocommerce-ordering .fa-sort-label { padding-left: 12px; font-size: 14px; }
	.fa-archive-banner { aspect-ratio: 350 / 260; margin-bottom: 30px; }
	.woocommerce-pagination, .fa-pagination { margin-top: 40px; }

	.woocommerce-breadcrumb, .fa-breadcrumb { padding: 26px 0 24px; }
	.woocommerce-product-gallery__image img { aspect-ratio: 350 / 410; }
	.woocommerce-product-gallery .flex-control-thumbs { gap: 12px; }
	.woocommerce-product-gallery .flex-control-thumbs li, .woocommerce-product-gallery .flex-control-thumbs img { width: 64px; height: 74px; }
	.fa-product__summary .product_title { font-size: 34px; line-height: 1.3; }
	.fa-product__summary .fa-eyebrow { margin-bottom: 14px; }
	.fa-swatch { min-width: 60px; padding: 0 14px; }
	.fa-details { margin-top: 56px; }
	.fa-tab { font-size: 13px; }
	.fa-tabs__list li + li::before { margin: 0 6px; }
	.fa-tabpanel > h2:first-child, .fa-tabpanel .fa-tab-title { font-size: 27px; line-height: 1.4; }
	.fa-related > h2 { font-size: 28px; line-height: 1.45; margin-bottom: 30px; }
	.fa-related ul.products li:nth-child(n+3) { display: none; }

	.fa-cart-item { grid-template-columns: 110px minmax(0, 1fr); gap: 0 16px; }
	.fa-cart-item__media img { width: 110px; height: 140px; }
	.fa-cart-item__name { font-size: 17px; margin-top: 0; }
	.fa-cart-item__price { font-size: 15px; }
	.fa-cart .cart_totals, .fa-summary { padding: 22px 22px 26px; }
	.fa-checkout h3, .fa-checkout__section-title, .woocommerce-billing-fields > h3 { font-size: 24px; }
	.form-row-first, .form-row-last { width: 100%; float: none; }
	form.checkout_coupon .form-row-first, form.checkout_coupon .form-row-last { width: 100%; }
	.fa-summary-toggle {
		display: flex; width: 100%; align-items: center; justify-content: space-between; min-height: 56px; margin: 0 0 24px; padding: 0 16px;
		background: var(--fa-panel); border: 0; border-radius: var(--fa-radius-lg); font-family: var(--fa-sans); font-size: 14px; font-weight: 700; color: var(--fa-navy); cursor: pointer;
	}
	.fa-summary-toggle .fa-summary-toggle__total { font-size: 16px; }
	.fa-summary-toggle[aria-expanded="true"] .fa-summary-toggle__label::after { content: " ▴"; }
	.fa-summary-toggle[aria-expanded="false"] .fa-summary-toggle__label::after { content: " ▾"; }
	.fa-checkout__aside { order: 0; }
	.fa-checkout__aside.is-collapsed .fa-summary { display: none; }

	.fa-account__title { font-size: 24px; }
	.fa-auth__col h2 { font-size: 27px; }
	.fa-prose h2 { font-size: 25px; margin: 36px 0 20px; }
	.fa-prose p, .fa-prose li { font-size: 16px; }
	.fa-prose summary, .wp-block-details summary { font-size: 17px; min-height: 72px; }
	.fa-prose .wp-block-column h2 { font-size: 29px; }
	.wp-block-table td, .wp-block-table th, .fa-prose table td, .fa-prose table th { padding: 15px 12px; }
	.fa-contact .fa-btn, .fa-prose .wp-block-button__link, .fa-btn--wide { width: 100%; min-width: 0; }
	.fa-recovery-title { margin-top: 48px; }
	.fa-related ul.products, .fa-recovery ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fa-recovery ul.products li:nth-child(n+3) { display: none; }

	.fa-footer__grid { padding-top: 36px; gap: 36px 24px; }
	.fa-footer__brand { grid-template-columns: 73px 1fr; }
	.fa-footer__col h2 { margin: 0 0 22px; }
	.fa-footer__col ul { gap: 14px; }
	.fa-footer__col a { font-size: 13px; }
	.fa-footer__col--3 { grid-column: 1 / -1; }
	.fa-footer__col--3 ul { display: flex; flex-wrap: wrap; gap: 8px 16px; }
	.fa-footer__legal { padding-bottom: 40px; }
}

@media (max-width: 360px) {
	ul.products, .fa-products { grid-template-columns: 1fr 1fr; }
	.fa-brand__name { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

@media print {
	.fa-announce, .fa-header, .fa-footer, .fa-newsletter, .fa-drawer, .fa-overlay { display: none !important; }
	body { background: #fff; }
}

/* 19. Async states -------------------------------------------------------- */
.button.loading, .fa-btn.loading { position: relative; color: transparent !important; pointer-events: none; }
.button.loading::after, .fa-btn.loading::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px;
	border: 2px solid rgba(255, 252, 245, 0.45); border-top-color: var(--fa-paper); border-radius: 50%;
	animation: fa-spin 0.7s linear infinite;
}
.fa-btn--secondary.loading::after, .button.fa-btn--secondary.loading::after { border-color: rgba(23, 61, 77, 0.25); border-top-color: var(--fa-navy); }
@keyframes fa-spin { to { transform: rotate(360deg); } }
.fa-form-notice { margin: 24px 0 -10px; }
.fa-form-notice ul { margin: 0; }
