/*
 * The Find Yard — component CSS.
 * Companion to docs/component-inventory.md — one class family per row
 * in that table. Load order: tokens.css, then this file.
 */

/* ===== Ticker strip (docs/component-inventory.md §1) ===== */
.fy-ticker {
	background: var(--fy-ink);
	color: var(--fy-paper);
	overflow: hidden;
	white-space: nowrap;
	border-bottom: 2px solid var(--fy-ochre);
}
.fy-ticker__track {
	display: inline-block;
	padding: 8px 0;
	animation: fy-ticker-scroll 26s linear infinite;
}
.fy-ticker__track > * {
	font-family: var(--fy-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	padding-inline: 20px;
}
@keyframes fy-ticker-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.fy-ticker__track { animation: none; }
}

/* ===== Bento grid (docs/component-inventory.md §1) ===== */
.fy-bento {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
}
.fy-bento .span-1 { grid-column: span 1; }
.fy-bento .span-2 { grid-column: span 2; }
.fy-bento .span-3 { grid-column: span 3; }
@media (max-width: 700px) {
	.fy-bento { grid-template-columns: repeat(2, 1fr); }
	.fy-bento .span-1,
	.fy-bento .span-2,
	.fy-bento .span-3 { grid-column: span 1; }
}

/* ===== Stamp badge (docs/component-inventory.md §3) ===== */
.fy-stamp {
	display: inline-block;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 4px 9px;
	background: var(--fy-stamp-red);
	color: var(--fy-paper);
	transform: rotate(-4deg);
}
.fy-stamp--gold { background: var(--fy-ochre); color: var(--fy-ochre-ink); transform: rotate(3deg); }
.fy-stamp--neutral { background: var(--fy-ink); color: var(--fy-paper); transform: none; }

/* ===== Condition badge ===== */
.fy-condition {
	display: inline-block;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	font-size: 0.62rem;
	text-transform: uppercase;
	background: var(--fy-ink);
	color: var(--fy-paper);
	padding: 4px 9px;
}

/* ===== Deal-type disclosure chip ===== */
.fy-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 2px solid var(--fy-line);
	padding: 6px 11px;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	font-size: 0.68rem;
	text-transform: uppercase;
	color: var(--fy-ink);
	text-decoration: none;
	white-space: nowrap;
}
.fy-chip--deal { border-style: dashed; border-color: var(--fy-petrol); color: var(--fy-petrol); }
.fy-chip--active { background: var(--fy-ink); color: var(--fy-paper); }

/* ===== Product tile ===== */
.fy-product-tile { border: var(--fy-border); background: var(--fy-paper); position: relative; }
.fy-product-tile > a { color: var(--fy-ink); text-decoration: none; display: block; }
.fy-product-tile__media { aspect-ratio: 1/0.85; overflow: hidden; background: var(--fy-line-soft); }
.fy-product-tile__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fy-product-tile .fy-stamp { position: absolute; top: 8px; right: -6px; }
.fy-product-tile .fy-stamp--gold { left: -6px; right: auto; }
.fy-product-tile__body { padding: 10px 11px; }
.fy-product-tile__title { font-family: var(--fy-font-body); font-weight: 600; font-size: 0.78rem; }
.fy-product-tile__price { font-family: var(--fy-font-mono); font-weight: 600; font-size: 0.85rem; margin-top: 5px; }
.fy-product-tile__price .was { text-decoration: line-through; color: var(--fy-sub); margin-right: 5px; font-weight: 500; }
.fy-product-tile.is-sold { opacity: 0.55; }

/* ===== External-deal row ===== */
.fy-deal-row {
	border: 2px dashed var(--fy-petrol);
	background: var(--fy-card);
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 11px;
	color: var(--fy-ink);
	text-decoration: none;
}
.fy-deal-row__media { width: 44px; height: 44px; flex: none; background: var(--fy-petrol); opacity: 0.8; overflow: hidden; }
.fy-deal-row__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fy-deal-row__title { font-family: var(--fy-font-heading); font-weight: 800; font-size: 0.74rem; text-transform: uppercase; }
.fy-deal-row__meta { font-family: var(--fy-font-mono); font-size: 0.66rem; color: var(--fy-petrol); }

/* ===== Ad slot (docs/component-inventory.md §8) ===== */
.fy-ad-slot {
	width: 100%;
	margin-block: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.fy-ad-slot__label {
	font-family: var(--fy-font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--fy-sub);
}
.fy-ad-slot__box {
	width: 100%;
	max-width: 100%;
	background: var(--fy-card);
	border: 1px dashed var(--fy-line-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Fixed aspect-ratio per size, reserved before the ad network script
   runs — this is the CLS-safety mechanism, not decoration. */
.fy-ad-slot--leaderboard .fy-ad-slot__box { aspect-ratio: 728/90; max-width: 728px; }
.fy-ad-slot--mobile-banner .fy-ad-slot__box { aspect-ratio: 320/50; max-width: 320px; }
.fy-ad-slot--rectangle .fy-ad-slot__box { aspect-ratio: 300/250; max-width: 300px; }
.fy-ad-slot--large-rectangle .fy-ad-slot__box { aspect-ratio: 336/280; max-width: 336px; }
.fy-ad-slot--half-page .fy-ad-slot__box { aspect-ratio: 300/600; max-width: 300px; }
.fy-ad-slot--skyscraper .fy-ad-slot__box { aspect-ratio: 160/600; max-width: 160px; }
.fy-ad-slot--billboard .fy-ad-slot__box { aspect-ratio: 970/250; max-width: 970px; }
.fy-ad-slot--skyscraper { display: none; }
@media (min-width: 1200px) {
	.fy-ad-slot--skyscraper { display: flex; }
}

/* ===== Header restyle (hooks-based, not a header.php override —
   see inc/header-ticker.php doc comment). Astra's own selectors,
   reskinned to ink/paper/ochre; structural markup stays Astra's. ===== */
.site-header,
.ast-primary-header-bar,
.main-header-bar {
	background-color: var(--fy-ink) !important;
	border-color: var(--fy-ink) !important;
}
.site-header .site-title a,
.site-header .site-description {
	color: var(--fy-paper) !important;
	font-family: var(--fy-font-display);
	text-transform: uppercase;
}
.main-header-bar-navigation .main-navigation ul li a {
	color: var(--fy-paper) !important;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 0.82rem;
}
.main-header-bar-navigation .main-navigation ul li a:hover {
	color: var(--fy-ochre) !important;
}
.ast-header-woo-cart a,
.ast-search-icon a {
	color: var(--fy-paper) !important;
}

/* ===== Homepage: hero ===== */
.fy-hero {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 32px;
	align-items: center;
	padding-block: 40px;
}
@media (max-width: 860px) {
	.fy-hero { grid-template-columns: 1fr; }
}
.fy-hero__title {
	font-family: var(--fy-font-display);
	text-transform: uppercase;
	font-size: clamp(1.9rem, 4.5vw, 3rem);
	line-height: 1.02;
	margin: 0;
}
.fy-hero__lede { max-width: 48ch; margin-top: 16px; color: var(--fy-sub); }
.fy-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.fy-hero__trust { font-family: var(--fy-font-mono); font-size: 0.76rem; color: var(--fy-sub); margin-top: 14px; }
.fy-hero__art {
	aspect-ratio: 4/3;
	background: repeating-linear-gradient(45deg, var(--fy-line-soft), var(--fy-line-soft) 2px, transparent 2px, transparent 14px);
	border: var(--fy-border);
}

.fy-btn {
	display: inline-block;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	font-size: 0.85rem;
	text-transform: uppercase;
	padding: 14px 22px;
	border: 2px solid var(--fy-line);
	text-decoration: none;
}
.fy-btn--fill { background: var(--fy-ink); color: var(--fy-paper); }
.fy-btn--ghost { background: transparent; color: var(--fy-ink); }
.fy-btn--fill:hover { background: var(--fy-ochre); color: var(--fy-ochre-ink); border-color: var(--fy-ochre); }

/* ===== Homepage: discovery strip ===== */
.fy-discovery-strip {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding-block: 16px;
	border-top: 1px solid var(--fy-line-soft);
	border-bottom: 1px solid var(--fy-line-soft);
}

/* ===== Section wrapper ===== */
.fy-section { padding-block: 32px; }
.fy-band {
	background: var(--fy-line-soft);
	margin-inline: calc(50% - 50vw);
	padding-inline: calc(50vw - 50%);
}
.fy-band > * { max-width: 1160px; margin-inline: auto; padding-inline: 20px; }
.fy-section__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; gap: 12px; flex-wrap: wrap; }
.fy-section__head h2 { font-family: var(--fy-font-heading); font-weight: 800; text-transform: uppercase; font-size: 1.15rem; margin: 0; }
.fy-section__head a { font-family: var(--fy-font-mono); font-size: 0.72rem; text-transform: uppercase; }
.fy-section__note { font-size: 0.84rem; color: var(--fy-sub); margin-bottom: 14px; }

/* ===== Category tile ===== */
.fy-category-tile {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 4px;
	aspect-ratio: 3/1.4;
	padding: 14px;
	background: var(--fy-petrol);
	color: var(--fy-paper);
	text-decoration: none;
	border: var(--fy-border);
}
.fy-category-tile__name { font-family: var(--fy-font-display); text-transform: uppercase; font-size: 1.1rem; }
.fy-category-tile__count { font-family: var(--fy-font-mono); font-size: 0.7rem; opacity: 0.85; }

/* ===== Trust row ===== */
.fy-trust-row { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-around; border-top: 2px solid var(--fy-line); border-bottom: 2px solid var(--fy-line); }
.fy-trust-row__item { display: flex; align-items: center; gap: 8px; font-family: var(--fy-font-heading); font-weight: 700; font-size: 0.82rem; text-transform: uppercase; }
.fy-trust-row__icon { font-size: 1.1rem; }

/* ===== Guide card ===== */
.fy-guide-card { display: block; border: var(--fy-border); padding: 14px; text-decoration: none; color: var(--fy-ink); background: var(--fy-card); }
.fy-guide-card__title { display: block; font-family: var(--fy-font-heading); font-weight: 800; text-transform: uppercase; font-size: 0.88rem; margin-bottom: 6px; }
.fy-guide-card__excerpt { display: block; font-size: 0.82rem; color: var(--fy-sub); }

/* ===== Newsletter ===== */
.fy-newsletter { text-align: center; padding-block: 40px; border-top: 3px solid var(--fy-ochre); }
.fy-newsletter h2 { font-family: var(--fy-font-display); text-transform: uppercase; font-size: 1.4rem; }
.fy-newsletter p { color: var(--fy-sub); margin-top: 8px; }
.fy-newsletter__form { display: flex; justify-content: center; gap: 0; max-width: 420px; margin: 18px auto 0; }
.fy-newsletter__form input { flex: 1; border: 2px solid var(--fy-line); border-right: none; padding: 12px 14px; font-family: var(--fy-font-body); }
.fy-newsletter__form button { border: 2px solid var(--fy-line); background: var(--fy-ink); color: var(--fy-paper); font-family: var(--fy-font-heading); font-weight: 800; text-transform: uppercase; padding: 12px 18px; }
.fy-newsletter__note { font-size: 0.72rem; margin-top: 10px; }

.fy-content { max-width: 1160px; margin: 0 auto; padding-inline: 20px; }

/* ===== Mobile bottom nav (docs/decisions.md "Mobile navigation") ===== */
.fy-bottom-nav {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--fy-z-bottom-nav);
	display: flex;
	background: var(--fy-ink);
	border-top: 2px solid var(--fy-ochre);
	padding-bottom: env(safe-area-inset-bottom, 0px);
}
.fy-bottom-nav__item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	padding-block: 8px 6px;
	min-height: 44px;
	color: var(--fy-paper);
	opacity: 0.75;
	text-decoration: none;
}
.fy-bottom-nav__item.is-active { opacity: 1; color: var(--fy-ochre); }
/* Placeholder glyphs until FY-ICON-001 (see docs/asset-requests.md)
   ships a real stamp-style icon set to swap in as background-image. */
.fy-bottom-nav__icon { display: block; font-size: 1.1rem; line-height: 1; }
.fy-bottom-nav__item[data-icon="home"] .fy-bottom-nav__icon::before { content: "⌂"; }
.fy-bottom-nav__item[data-icon="shop"] .fy-bottom-nav__icon::before { content: "▤"; }
.fy-bottom-nav__item[data-icon="search"] .fy-bottom-nav__icon::before { content: "⚲"; }
.fy-bottom-nav__item[data-icon="deal"] .fy-bottom-nav__icon::before { content: "◆"; }
.fy-bottom-nav__item[data-icon="account"] .fy-bottom-nav__icon::before { content: "●"; }
.fy-bottom-nav__label { font-family: var(--fy-font-heading); font-weight: 700; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.02em; }
@media (min-width: 860px) {
	.fy-bottom-nav { display: none; }
}

/* ===== Shop archive (restyles WooCommerce's own markup — no template
   override, see inc/shop-hooks.php doc comment) ===== */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 14px;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}
ul.products li.product {
	border: var(--fy-border);
	background: var(--fy-card);
	padding: 0 !important;
	position: relative;
	margin: 0 !important;
	width: auto !important;
}
ul.products li.product img { display: block; width: 100%; aspect-ratio: 1/0.85; object-fit: cover; }
ul.products li.product a { text-decoration: none; color: var(--fy-ink); }
ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--fy-font-body);
	font-weight: 600;
	font-size: 0.8rem;
	padding: 10px 11px 0;
	margin: 0;
}
ul.products li.product .price {
	font-family: var(--fy-font-mono);
	font-weight: 600;
	padding: 4px 11px 10px;
	display: block;
}
ul.products li.product .price del { color: var(--fy-sub); font-weight: 500; opacity: 1; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .button {
	margin: 0 11px 11px;
	display: inline-block;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 0.72rem;
	background: var(--fy-ink);
	color: var(--fy-paper) !important;
	padding: 9px 14px;
	border: 2px solid var(--fy-ink);
}
ul.products li.product .button:hover { background: var(--fy-ochre); border-color: var(--fy-ochre); color: var(--fy-ochre-ink) !important; }
/* WooCommerce's default badge is `.onsale`, but Astra replaces it with
   its own "on-card" markup (`.ast-onsale-card`) — style both so this
   survives either code path. */
ul.products li.product .onsale,
ul.products li.product .ast-onsale-card {
	background: var(--fy-ochre) !important;
	color: var(--fy-ochre-ink) !important;
	font-family: var(--fy-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 0.62rem;
	border-radius: 0 !important;
	position: absolute;
	top: 8px;
	right: 8px;
	left: auto !important;
	transform: rotate(3deg);
	min-height: auto;
	min-width: auto;
	line-height: 1.4;
	padding: 4px 9px;
}
ul.products li.product.outofstock { opacity: 0.55; }
.fy-stamp--loop { position: absolute; top: 8px; left: 8px; z-index: 1; }
.fy-ad-tile { border: none !important; background: transparent !important; grid-column: span 2; }
@media (max-width: 700px) { .fy-ad-tile { grid-column: span 1; } }

.woocommerce-result-count,
.woocommerce-ordering select {
	font-family: var(--fy-font-mono);
	font-size: 0.78rem;
}

.woocommerce-products-header__title.page-title,
.ast-archive-title,
.single-product .product_title {
	font-family: var(--fy-font-display) !important;
	text-transform: uppercase;
	letter-spacing: -0.01em;
}
.ast-breadcrumbs, nav.woocommerce-breadcrumb {
	font-family: var(--fy-font-mono);
	font-size: 0.76rem;
}

/* ===== Single product ===== */
.fy-stamp--single { display: inline-block; margin-bottom: 8px; }
.fy-stock-note {
	font-family: var(--fy-font-mono);
	font-size: 0.8rem;
	color: var(--fy-petrol);
	margin: 6px 0;
}
.fy-stock-note--sold { color: var(--fy-stamp-red); font-weight: 600; }
.single-product .summary .price { font-family: var(--fy-font-mono); font-weight: 600; }
.single-product .single_add_to_cart_button {
	font-family: var(--fy-font-heading) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	background: var(--fy-ink) !important;
	border: 2px solid var(--fy-ink) !important;
	border-radius: 0 !important;
}
.single-product .single_add_to_cart_button:hover { background: var(--fy-ochre) !important; color: var(--fy-ochre-ink) !important; border-color: var(--fy-ochre) !important; }

/* ===== Product category archive ===== */
.fy-category-band {
	background: var(--fy-petrol);
	color: var(--fy-paper);
	padding: 28px 24px;
	margin-bottom: 24px;
}
.fy-category-band__title.woocommerce-products-header__title.page-title {
	color: var(--fy-paper) !important;
	margin: 0 0 6px;
}
.fy-category-band__count { font-family: var(--fy-font-mono); font-size: 0.78rem; opacity: 0.85; margin: 0; }
.fy-category-band__intro { font-size: 0.9rem; margin-top: 10px; max-width: 60ch; opacity: 0.95; }

/* ===== Cart (classic shortcode fallback — see WooCommerce Blocks
   rules further down for what this install actually renders) ===== */
.woocommerce-cart table.shop_table {
	border: var(--fy-border);
	border-collapse: collapse;
}
.woocommerce-cart table.shop_table th {
	font-family: var(--fy-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 0.72rem;
	background: var(--fy-ink);
	color: var(--fy-paper);
}
.woocommerce-cart table.shop_table td { border-color: var(--fy-line-soft); font-family: var(--fy-font-body); }
.woocommerce-cart .product-price, .woocommerce-cart .product-subtotal { font-family: var(--fy-font-mono); }
.woocommerce-cart .cart-collaterals .cart_totals { border: var(--fy-border); background: var(--fy-card); padding: 16px; }
.woocommerce-cart .cart_totals h2 { font-family: var(--fy-font-display); text-transform: uppercase; font-size: 1.1rem; }
.woocommerce-cart .cart_totals .order-total .amount { font-family: var(--fy-font-mono); font-weight: 700; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-checkout #place_order,
.woocommerce a.button.wc-forward {
	font-family: var(--fy-font-heading) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	background: var(--fy-ink) !important;
	border: 2px solid var(--fy-ink) !important;
	border-radius: 0 !important;
	color: var(--fy-paper) !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-checkout #place_order:hover,
.woocommerce a.button.wc-forward:hover {
	background: var(--fy-ochre) !important;
	border-color: var(--fy-ochre) !important;
	color: var(--fy-ochre-ink) !important;
}

/* WooCommerce Blocks cart/checkout — this install renders the block
   versions, not the classic shortcode markup above (confirmed live:
   .wp-block-woocommerce-cart / wc-block-* classes, not table.shop_table).
   Keeping both rule sets: harmless if Leon ever switches back to the
   classic shortcode pages, essential for what's actually rendering now. */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--fy-font-body); }
.wc-block-cart-item__product-name a,
.wc-block-components-product-name { font-family: var(--fy-font-body); font-weight: 600; color: var(--fy-ink); }
.wc-block-components-formatted-money-amount,
.wc-block-components-totals-item__value,
.wc-block-components-product-price { font-family: var(--fy-font-mono); }
.wc-block-cart__totals-title,
.wc-block-components-totals-item__label { font-family: var(--fy-font-heading); font-weight: 800; text-transform: uppercase; font-size: 0.82rem; }
.wc-block-cart-items, .wc-block-components-panel { border-color: var(--fy-line-soft) !important; }
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__totals { border: var(--fy-border); background: var(--fy-card); padding: 4px 16px; }
.wc-block-components-button,
.wc-block-components-checkout-place-order-button {
	font-family: var(--fy-font-heading) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	border-radius: 0 !important;
}
.wc-block-components-button.wp-element-button,
.wc-block-cart__submit-button .wc-block-components-button {
	background: var(--fy-ink) !important;
	border: 2px solid var(--fy-ink) !important;
}
.wc-block-components-button.wp-element-button:hover {
	background: var(--fy-ochre) !important;
	color: var(--fy-ochre-ink) !important;
	border-color: var(--fy-ochre) !important;
}
.wc-block-components-text-input input,
.wc-block-components-combobox input,
.wc-block-components-radio-control input {
	border-color: var(--fy-line-soft) !important;
	border-radius: 0 !important;
}
.wc-block-components-title { font-family: var(--fy-font-display); text-transform: uppercase; }

/* ===== Checkout (classic shortcode fallback) ===== */
.woocommerce-checkout form.checkout .col2-set,
.woocommerce-checkout #order_review {
	font-family: var(--fy-font-body);
}
.woocommerce-checkout h3 {
	font-family: var(--fy-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 1rem;
}
.woocommerce-checkout label { font-weight: 600; }
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
	border: 2px solid var(--fy-line-soft) !important;
	border-radius: 0 !important;
	font-family: var(--fy-font-body);
}
.woocommerce-checkout #order_review {
	border: var(--fy-border);
	background: var(--fy-card);
	padding: 16px;
}
.woocommerce-checkout #order_review table.shop_table { border: none; }

/* ===== My Account (login/register + dashboard) ===== */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	border: var(--fy-border);
	background: var(--fy-ink);
	padding: 0;
	list-style: none;
	margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid rgba(255,255,255,0.15); }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 16px;
	color: var(--fy-paper);
	font-family: var(--fy-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.78rem;
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--fy-ochre); color: var(--fy-ochre-ink); }
.woocommerce-account .woocommerce-MyAccount-content { font-family: var(--fy-font-body); }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th {
	font-family: var(--fy-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 0.7rem;
	background: var(--fy-ink);
	color: var(--fy-paper);
}
.woocommerce-form-login, .woocommerce-form-register {
	border: var(--fy-border);
	background: var(--fy-card);
	padding: 20px;
}
.woocommerce-form-login h2, .woocommerce-form-register h2, .woocommerce-form-coupon h3 {
	font-family: var(--fy-font-display);
	text-transform: uppercase;
	font-size: 1.1rem;
}
.woocommerce-form-login .button, .woocommerce-form-register .button {
	font-family: var(--fy-font-heading) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	background: var(--fy-ink) !important;
	border: 2px solid var(--fy-ink) !important;
	border-radius: 0 !important;
	color: var(--fy-paper) !important;
}
.woocommerce-form-login .button:hover, .woocommerce-form-register .button:hover {
	background: var(--fy-ochre) !important;
	border-color: var(--fy-ochre) !important;
	color: var(--fy-ochre-ink) !important;
}
.woocommerce-account .u-columns { display: flex; gap: 24px; flex-wrap: wrap; }
.woocommerce-account .u-columns > div { flex: 1; min-width: 260px; }

/* ===== 404 ===== */
.fy-404 { text-align: center; padding-block: 48px; }
.fy-404__stamp {
	display: inline-block;
	font-family: var(--fy-font-display);
	font-size: 3rem;
	background: var(--fy-stamp-red);
	color: var(--fy-paper);
	padding: 10px 24px;
	transform: rotate(-4deg);
	margin-bottom: 20px;
}
.fy-404__title { font-family: var(--fy-font-display); text-transform: uppercase; font-size: clamp(1.6rem, 4vw, 2.4rem); }
.fy-404__lede { max-width: 52ch; margin: 14px auto 0; color: var(--fy-sub); }
.fy-404__search { display: flex; justify-content: center; max-width: 420px; margin: 28px auto 0; border: var(--fy-border); }
.fy-404__search input { flex: 1; border: none; padding: 12px 14px; font-family: var(--fy-font-body); }
.fy-404__search button { border: none; border-left: 2px solid var(--fy-line); background: var(--fy-ink); color: var(--fy-paper); font-family: var(--fy-font-heading); font-weight: 800; text-transform: uppercase; padding: 12px 18px; }
.fy-404__links { margin-top: 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; align-items: center; }
.fy-404__links-label { font-family: var(--fy-font-mono); font-size: 0.76rem; color: var(--fy-sub); text-transform: uppercase; margin-right: 4px; }

/* ===== Blog / Find Guides + search results (Astra's own archive/single
   templates, restyled via CSS — no template override) ===== */
.entry-title, .page-title.entry-title { font-family: var(--fy-font-display) !important; text-transform: uppercase; letter-spacing: -0.01em; }
.entry-meta, .ast-blog-single .entry-meta { font-family: var(--fy-font-mono); font-size: 0.76rem; color: var(--fy-sub); }
.entry-content { font-family: var(--fy-font-body); }
.entry-content a { color: var(--fy-petrol); text-decoration-color: var(--fy-ochre); }
.ast-pagination a, .nav-links a, .page-numbers {
	font-family: var(--fy-font-heading);
	font-weight: 800;
	border: 2px solid var(--fy-line);
	padding: 6px 12px;
	text-decoration: none;
}
.page-numbers.current { background: var(--fy-ink); color: var(--fy-paper); }
.search-no-results .fy-content, .error-404 .fy-content { text-align: left; }
