/*
 * Fyrax — presentational helpers that theme.json cannot express.
 * Keep this small; prefer theme.json for anything it can do.
 */

/* Smooth anchor scrolling, account for a sticky header. */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 6rem;
}

/* Sticky, hairline-bordered header.
   NOTE: no backdrop-filter/transform here — those establish a containing block
   for position:fixed descendants, which would trap the mobile nav overlay inside
   the header instead of letting it fill the viewport. Use a solid-ish bg. */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--wp--preset--color--line);
	background-color: rgba(255, 255, 255, 0.96) !important;
}

/* ---------- Responsive header / navigation ----------
 * Works regardless of how the header is assembled (file template or Site
 * Editor) because it targets the WordPress Navigation block's own classes.
 * Strategy: raise the collapse breakpoint to 900px (WP's is a fixed 600px) so
 * the long menu never overflows the bar, and force the open menu to a real
 * full-screen dark overlay (no cramped inner scrollbar). */

/* Toggle tap targets. */
.site-header .wp-block-navigation__responsive-container-open svg,
.site-header .wp-block-navigation__responsive-container-close svg {
	width: 1.9rem;
	height: 1.9rem;
}
.site-header .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--ink); }

/* Open overlay: genuine full-screen panel, dark, with large readable links. */
.wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	inset: 0 !important;
	z-index: 1000 !important;
	width: auto !important;
	height: auto !important;
	background-color: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--base) !important;
	padding: clamp(1.5rem, 6vw, 3rem) !important;
	overflow-y: auto;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	width: 100%;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
}
/* Centre the menu list. The list is a COLUMN flex, so horizontal alignment is
   align-items (the block's items-justified-right sets it to flex-end). */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
	align-items: center !important;
	text-align: center;
	width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open a,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--base) !important;
	font-size: 1.3rem;
}

/* Collapse to the hamburger up to 900px (WP only does ≤600 by default), and
   hide the closed inline menu + the redundant header CTA in that range. */
@media (max-width: 900px) {
	.site-header .wp-block-navigation__responsive-container-open { display: flex !important; }
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.site-header .wp-block-buttons { display: none !important; }
}
@media (max-width: 600px) {
	.site-header { padding-left: var(--wp--preset--spacing--40) !important; padding-right: var(--wp--preset--spacing--40) !important; }
	.site-header .wp-block-site-title { font-size: var(--wp--preset--font-size--medium); }
	.site-header .wp-block-site-logo img { width: 34px; }
}

/* Mono "eyebrow" label used above section headings. */
.fyrax-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--wp--preset--color--accent-press);
}

/* Signature: stacked hairlines that read as print layers — the recurring
   structural motif. The first 56px is cyan, like the active slice. */
.fyrax-rule {
	position: relative;
	height: 9px;
	border: 0;
	background-image: repeating-linear-gradient(to bottom, var(--wp--preset--color--line) 0 1px, transparent 1px 4px);
}
.fyrax-rule::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 56px;
	height: 9px;
	background-image: repeating-linear-gradient(to bottom, var(--wp--preset--color--accent) 0 1px, transparent 1px 4px);
}

/* Card hover lift for service / gallery / product tiles. */
.fyrax-card {
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
	border: 1px solid var(--wp--preset--color--line);
}
.fyrax-card:hover {
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--accent);
	box-shadow: var(--wp--preset--shadow--lift);
}

/* Equal-height cards: every card row (Verfahren, Maschinenpark/equipment,
   Resin-Workflow) aligns to the tallest card no matter how much copy each holds.
   The flex column row already stretches the columns to equal height — these
   rules make each card fill its column so all cards in a row match in size. */
.wp-block-column:has(> .fyrax-card),
.wp-block-column:has(> .fyrax-slot),
.fyrax-grid-bg .wp-block-columns .wp-block-column {
	display: flex;
}
.wp-block-column > .fyrax-card,
.wp-block-column > .fyrax-slot,
.fyrax-grid-bg .wp-block-column > .wp-block-group {
	flex: 1 1 auto;
	width: 100%;
}

/* Machine-card spec tables: left-aligned label/value rows (override the centered
   dark band), tidy row dividers, monospace values. Replaces the centered
   checkmark lists where the arrow marker floated far from the text. */
.fyrax-spec {
	margin: var(--wp--preset--spacing--30) 0 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.75rem;
	line-height: 1.45;
	text-align: left;
}
.fyrax-spec > div {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.3rem 0.9rem;
	align-items: start;
	padding: 0.34rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.fyrax-spec > div:last-child {
	border-bottom: 0;
}
.fyrax-spec dt {
	margin: 0;
	color: #9aa3b2;
	white-space: nowrap;
}
.fyrax-spec dd {
	margin: 0;
	color: var(--wp--preset--color--base);
}

/* ---------- Trust bar ---------- */
.fyrax-trust__item { margin: 0; text-align: center; display: flex; flex-direction: column; gap: 0.15rem; }
.fyrax-trust__title { font-weight: 700; color: var(--wp--preset--color--ink); }
.fyrax-trust__sub { font-size: 0.8125rem; color: #6b7280; }
@media (max-width: 781px) {
	.fyrax-trustbar { flex-wrap: wrap; }
	.fyrax-trustbar .wp-block-column { flex-basis: 45% !important; }
}

/* ---------- FAQ accordion (native <details>) ---------- */
.fyrax-faq__item { border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: 0.9rem 1.1rem; margin-bottom: 0.6rem; background: var(--wp--preset--color--base); }
.fyrax-faq__item summary { cursor: pointer; font-weight: 600; list-style: none; padding-right: 1.5rem; position: relative; }
.fyrax-faq__item summary::-webkit-details-marker { display: none; }
.fyrax-faq__item summary::after { content: "+"; position: absolute; right: 0; top: 0; color: var(--wp--preset--color--accent); font-weight: 700; font-size: 1.2em; line-height: 1; }
.fyrax-faq__item[open] summary::after { content: "\2013"; }
.fyrax-faq__item p { margin: 0.7rem 0 0; color: var(--wp--preset--color--graphite); }

/* ---------- Testimonials ---------- */
.fyrax-quote-by { color: #6b7280; margin-top: 0.8rem; }

/* ---------- Footer trust row ---------- */
.fyrax-footer-trust .fyrax-ftrust { margin: 0; display: flex; flex-direction: column; gap: 0.1rem; }
.fyrax-footer-trust .fyrax-ftrust__t { font-weight: 700; color: var(--wp--preset--color--surface); }
.fyrax-footer-trust .fyrax-ftrust__s { font-size: 0.8125rem; color: #9aa3b2; }
@media (max-width: 781px) {
	.fyrax-footer-trust { flex-wrap: wrap; }
	.fyrax-footer-trust .wp-block-column { flex-basis: 45% !important; }
}

/* Faint, even engineering grid for dark hero/CTA sections (no fade). */
.fyrax-grid-bg {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 44px 44px;
}

/* Light "graph-paper" variant — same engineering grid on light bands (the
   /print-anfrage form sits on this, echoing the hero's math-paper texture). */
.fyrax-grid-bg--light {
	background-image:
		linear-gradient(rgba(11, 14, 20, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(11, 14, 20, 0.045) 1px, transparent 1px);
	background-size: 32px 32px;
}

/* Dark engineering grid for content bands (e.g. the /print-anfrage "Ablauf"
   steps) that keep their content left-aligned — same texture as the hero grid
   but WITHOUT the hero's text/column centering (that lives on .fyrax-grid-bg). */
.fyrax-grid-bg--dark {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 44px 44px;
}
.fyrax-grid-bg--dark .has-steel-color { color: #9aa3b2 !important; }

/* Image placeholder slot (3D-Druck resin workflow) — a dark, hairline-framed
   box that reads as an empty image well until a real photo replaces it. */
.fyrax-slot {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 200px;
	border: 1px solid var(--wp--preset--color--graphite);
	transition: border-color 0.18s ease, transform 0.18s ease;
}
.fyrax-slot:hover {
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-3px);
}

/* Lift low-contrast steel text on the dark hero/CTA bands for readability. */
.fyrax-grid-bg .has-steel-color { color: #9aa3b2 !important; }

/* Center the dark hero / CTA bands (home hero, /print-anfrage hero, CTA) so the
   eyebrow → headline → intro → actions read as one balanced, focal statement.
   The constrained inner group keeps the centred copy from over-stretching. */
.fyrax-grid-bg {
	text-align: center;
}
.fyrax-grid-bg > .wp-block-group {
	margin-left: auto;
	margin-right: auto;
}
.fyrax-grid-bg .wp-block-buttons {
	justify-content: center;
}
/* Hero stat row: keep the three stats evenly centred (instead of edge-to-edge)
   and let them wrap cleanly on small screens. */
.fyrax-grid-bg .wp-block-group.alignwide {
	justify-content: center;
	gap: var(--wp--preset--spacing--70);
}

/* Center the light section headers (eyebrow + heading) that sit directly in a
   full-width section band — services, "Ablauf", gallery. Targeting DIRECT
   children of .alignfull deliberately excludes card internals, the hero (nested
   + already centred), and the product-grid header (a flex row with its action
   button), so those keep their intended alignment. */
.wp-block-group.alignfull > .fyrax-eyebrow,
.wp-block-group.alignfull > h2.wp-block-heading {
	text-align: center;
}

/* Service-card actions as restrained ghost buttons, so the cyan hero CTA stays
   the single bold accent (spend boldness in one place). */
.fyrax-card .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--ink) !important;
	border: 1px solid var(--wp--preset--color--line);
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.fyrax-card .wp-block-button__link:hover,
.fyrax-card .wp-block-button__link:focus {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--ink) !important;
}

/* Numbered "how it works" step marker. */
.fyrax-step-num {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--accent-press);
	font-weight: 700;
}

/* Buttons keep crisp 2px corners and a mono label (set in theme.json);
   add an outline variant for secondary actions on dark backgrounds. */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid currentColor;
	background: transparent;
}

/* ============================================================
   WooCommerce shop — product cards as technical spec tiles.
   Styles both the classic archive loop (.woocommerce ul.products
   li.product) and the block product grid (.wc-block-grid__product)
   so the home-page grid and the /shop archive read identically.
   ============================================================ */

/* Price reads as a technical spec (mono). */
.woocommerce .price,
.wc-block-components-product-price,
.wc-block-grid__product-price {
	font-family: var(--wp--preset--font-family--mono);
}
.woocommerce .price small.woocommerce-price-suffix,
.fyrax-grundpreis {
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--steel);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

/* Archive toolbar: breadcrumb, result count and sorting as quiet mono data. */
.woocommerce-breadcrumb,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering select {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--steel);
	letter-spacing: 0.03em;
}
.woocommerce .woocommerce-ordering select {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	padding: 0.5em 2em 0.5em 0.75em;
	background-color: var(--wp--preset--color--base);
}

/* Archive grid: even, responsive, graceful even with a near-empty catalog
   (auto-fill keeps a single product at card width instead of stretching it). */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

/* The card shell (both markups). */
.woocommerce ul.products li.product,
.wc-block-grid__product {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	overflow: hidden;
	text-align: left;
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.woocommerce ul.products li.product:hover,
.wc-block-grid__product:hover {
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--accent);
	box-shadow: var(--wp--preset--shadow--lift);
}

/* Image: fixed 4:3, cover-cropped on the surface field. The classic loop wraps
   the image in the same <a> as the title, so it is the image carrier here. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
.wc-block-grid__product-image {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
}
.woocommerce ul.products li.product img,
.wc-block-grid__product-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--wp--preset--color--surface);
	border-radius: 0;
	margin: 0;
}
/* Signature: a cyan "active slice" wipes across the image top on hover —
   the same print-layer accent used by .fyrax-rule and the hero. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link::after,
.wc-block-grid__product-image::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}
.woocommerce ul.products li.product:hover > a.woocommerce-LoopProduct-link::after,
.wc-block-grid__product:hover .wc-block-grid__product-image::after {
	transform: scaleX(1);
}

/* Title: brand body face, clamped to two lines so long marketplace titles
   never break the grid; reserve two lines so every card aligns. */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title {
	margin: 0;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.35;
	color: var(--wp--preset--color--ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

/* Price block. */
.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40) 0;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--ink);
}

/* Action: the one confident cyan button — pushed to the card foot so cards with
   1- vs 2-line titles still line up. */
.woocommerce ul.products li.product .button,
.wc-block-grid__product .wp-block-button__link,
.wc-block-grid__product .wc-block-grid__product-add-to-cart a {
	display: block;
	margin: var(--wp--preset--spacing--40);
	margin-top: auto;
	padding: 0.8em 1em;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	text-align: center;
	text-decoration: none;
	border: 0;
	border-radius: 2px;
	transition: background 0.15s ease;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus,
.wc-block-grid__product .wp-block-button__link:hover,
.wc-block-grid__product .wp-block-button__link:focus {
	background: var(--wp--preset--color--accent-press);
	color: var(--wp--preset--color--ink);
}

/* "Sale" flag as a small mono pill. */
.woocommerce ul.products li.product .onsale,
.wc-block-grid__product .wc-block-grid__product-onsale {
	position: absolute;
	top: var(--wp--preset--spacing--30);
	left: var(--wp--preset--spacing--30);
	z-index: 1;
	margin: 0;
	min-height: 0;
	min-width: 0;
	padding: 0.25em 0.6em;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-radius: 2px;
}

/* Single product: brand the add-to-cart as the one confident cyan action, and
   keep the price in the technical mono face. */
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product form.cart button.button {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border: 0;
	border-radius: 2px;
	padding: 0.9em 1.6em;
	transition: background 0.15s ease;
}
.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce div.product .single_add_to_cart_button:focus {
	background: var(--wp--preset--color--accent-press);
	color: var(--wp--preset--color--ink);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--ink);
}

/* Shop filter sidebar — category list + price/active filters as quiet,
   technical controls beside the product grid. */
.fyrax-shop-sidebar h3 {
	margin: 0 0 var(--wp--preset--spacing--30);
}
.fyrax-shop-sidebar ul,
.fyrax-shop-sidebar .wc-block-product-categories-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.fyrax-shop-sidebar .wc-block-product-categories-list-item {
	margin: 0 0 0.45rem;
	line-height: 1.4;
}
.fyrax-shop-sidebar .wc-block-product-categories-list-item > a {
	text-decoration: none;
	color: var(--wp--preset--color--ink);
	font-size: 0.95rem;
}
.fyrax-shop-sidebar .wc-block-product-categories-list-item > a:hover {
	color: var(--wp--preset--color--accent-press);
}
.fyrax-shop-sidebar .wc-block-product-categories-list-item-count {
	color: var(--wp--preset--color--steel);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
}
.fyrax-shop-sidebar .wc-block-price-filter__button,
.fyrax-shop-sidebar .wp-block-woocommerce-price-filter button {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	border: 0;
	border-radius: 2px;
	font-family: var(--wp--preset--font-family--mono);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: var(--wp--preset--font-size--x-small);
}

/* Cart / checkout / account — tables, account nav and inputs in the brand
   language (the block cart/checkout already inherit theme.json button styles). */
.woocommerce table.shop_table {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
}
.woocommerce table.shop_table th {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--steel);
}
/* My Account navigation — modern icon tiles instead of a plain list. */
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.woocommerce-MyAccount-navigation li {
	margin: 0;
}
.woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.7em 0.9em;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
	font-size: 0.95rem;
	font-weight: 500;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.woocommerce-MyAccount-navigation li a::before {
	content: "";
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--fyrax-ico, none) center / contain no-repeat;
	mask: var(--fyrax-ico, none) center / contain no-repeat;
}
.woocommerce-MyAccount-navigation li a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-press);
	transform: translateX(2px);
}
.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}
.woocommerce-MyAccount-navigation-link--dashboard a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--orders a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M8 6h11M8 12h11M8 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--downloads a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M5 21h14'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-address a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--payment-methods a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='3' y='6' width='18' height='12' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-account a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--customer-logout a { --fyrax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h4v16h-4M10 8l-4 4 4 4M6 12h12'/%3E%3C/svg%3E"); }

/* My Account — orders table: status badge, mono numbers, cyan actions. */
.woocommerce-orders-table td,
.woocommerce-orders-table th {
	padding: 0.85em 1em;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.woocommerce-orders-table__cell-order-number a {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
}
.woocommerce-orders-table__cell-order-status {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.woocommerce-orders-table .button,
.woocommerce-MyAccount-content .button {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border: 0;
	border-radius: 2px;
	padding: 0.55em 1em;
}
.woocommerce-orders-table .button:hover,
.woocommerce-MyAccount-content .button:hover {
	background: var(--wp--preset--color--accent-press);
	color: var(--wp--preset--color--ink);
}

/* My Account — Downloads as modern rows with a clear cyan download action. */
.woocommerce-MyAccount-downloads td,
.woocommerce-MyAccount-downloads th {
	padding: 0.85em 1em;
	border-bottom: 1px solid var(--wp--preset--color--line);
	vertical-align: middle;
}
.woocommerce-MyAccount-downloads .download-file a,
.woocommerce-MyAccount-downloads .woocommerce-MyAccount-downloads-file a,
.woocommerce-MyAccount-downloads a.button {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-decoration: none;
	border-radius: 2px;
	padding: 0.6em 1.1em;
	transition: background 0.15s ease, transform 0.15s ease;
}
.woocommerce-MyAccount-downloads .download-file a::before,
.woocommerce-MyAccount-downloads a.button::before {
	content: "";
	width: 15px;
	height: 15px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-MyAccount-downloads .download-file a:hover,
.woocommerce-MyAccount-downloads a.button:hover {
	background: var(--wp--preset--color--accent-press);
	transform: translateY(-1px);
}

/* My Account — dashboard intro readability. */
.woocommerce-MyAccount-content > .woocommerce-message,
.woocommerce-MyAccount-content p {
	line-height: 1.6;
}
.woocommerce form .input-text,
.woocommerce-account form .input-text {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	padding: 0.6em 0.8em;
}
.woocommerce form .input-text:focus {
	border-color: var(--wp--preset--color--accent);
	outline: 2px solid var(--wp--preset--color--accent-soft);
}

/* Single product: tabs as a clean underlined nav (not the default pills) and
   hairline-framed gallery thumbnails. */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--50);
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: 0 0 0 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0.6em 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--steel);
	border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--wp--preset--color--ink);
	border-bottom-color: var(--wp--preset--color--accent);
}
.woocommerce div.product .woocommerce-product-gallery__image img {
	border-radius: 4px;
}
.woocommerce div.product .flex-control-thumbs li img {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	transition: border-color 0.15s ease;
}
.woocommerce div.product .flex-control-thumbs li img.flex-active,
.woocommerce div.product .flex-control-thumbs li img:hover {
	border-color: var(--wp--preset--color--accent);
}

/* List block: "Checkmark (Signal)" style. */
.wp-block-list.is-style-checkmark {
	list-style: none;
	padding-left: 0;
}
.wp-block-list.is-style-checkmark li {
	position: relative;
	padding-left: 1.6em;
}
.wp-block-list.is-style-checkmark li::before {
	content: "→";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--accent-press);
	font-weight: 700;
}

/* Image block: "Hairline frame" style. */
.wp-block-image.is-style-hairline img {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
}

/* Reduced-motion respect. */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.fyrax-card,
	.fyrax-slot,
	.woocommerce ul.products li.product,
	.wc-block-grid__product,
	.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link::after,
	.wc-block-grid__product-image::after { transition: none; }
	.woocommerce ul.products li.product:hover,
	.wc-block-grid__product:hover,
	.fyrax-slot:hover { transform: none; }
}
