/*
 * Aegis WP compatibility layer — wallet-theme rebuild 2026-09-16.
 * Styles for elements the static Aegis reference does not ship:
 * menu rendering, mobile drawer, prose enhancement, pagination,
 * WooCommerce shells, forms, skip-link.
 */
/* ============================================================
   0. Admin bar offset (logged-in WordPress toolbar overlaps the
   sticky header — shift it down by 32px / 46px on mobile).
   ============================================================ */
body.admin-bar header.sticky {
	top: 32px;
}
@media (max-width: 782px) {
	body.admin-bar header.sticky {
		top: 46px;
	}
}
/* ============================================================
   1. Navigation (desktop + mobile)
   ============================================================ */
.wal-aegis-nav,
.wal-aegis-nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.wal-aegis-nav {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.wal-aegis-nav > li {
	position: relative;
}
.wal-aegis-nav a {
	display: inline-flex;
	align-items: center;
	font-size: 0.875rem;
	font-weight: 500;
	color: #3f3f46; /* zinc-700 */
	transition: color 0.15s ease;
	text-decoration: none;
}
.wal-aegis-nav a:hover,
.wal-aegis-nav a:focus-visible {
	color: #09090b; /* zinc-950 */
}
.wal-aegis-nav li.current-menu-item > a,
.wal-aegis-nav li.current_page_item > a,
.wal-aegis-nav li.current-menu-ancestor > a {
	color: #dd7400; /* amber-600 */
}
/* Desktop: dropdown caret on any parent item (auto via menu-item-has-children) */
.wal-aegis-nav > li.menu-item-has-children > a::after {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	margin-left: 0.4rem;
	border-right: 1.2px solid currentColor;
	border-bottom: 1.2px solid currentColor;
	transform: rotate(45deg) translateY(-1px);
	transition: transform 0.15s ease;
	opacity: 0.75;
}
.wal-aegis-nav > li.menu-item-has-children:hover > a::after,
.wal-aegis-nav > li.menu-item-has-children:focus-within > a::after {
	transform: rotate(225deg) translateY(-2px);
	opacity: 1;
}
/* Bridge: invisible hover hit-area covering gap between li and sub-menu */
.wal-aegis-nav > li.menu-item-has-children::before {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 0.75rem;
	z-index: 100;
}
/* Desktop dropdown (About family: Case Studies / Certifications) */
.wal-aegis-nav .sub-menu {
	position: absolute;
	top: calc(100% + 0.75rem);
	left: 50%;
	transform: translateX(-50%);
	min-width: 200px;
	padding: 0.5rem;
	background: #ffffff;
	border: 1px solid #f4f4f5; /* zinc-100 */
	border-radius: 12px;
	box-shadow: 0 12px 32px -8px rgba(9, 9, 11, 0.14);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s ease, visibility 0.15s ease;
	z-index: 100;
}
.wal-aegis-nav > li:hover > .sub-menu,
.wal-aegis-nav > li.wal-sub-active > .sub-menu,
.wal-aegis-nav > li > .sub-menu:focus-within {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.wal-aegis-nav .sub-menu a {
	display: flex;
	width: 100%;
	padding: 0.6rem 0.75rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #3f3f46; /* zinc-700 */
	border-radius: 8px;
	white-space: nowrap;
}
.wal-aegis-nav .sub-menu a:hover {
	background: #fafafa; /* zinc-50 */
	color: #dd7400; /* amber-600 */
}
.wal-aegis-nav .sub-menu li.current-menu-item > a {
	background: #fff7ed; /* amber-50 */
	color: #dd7400;
}

/* Mobile drawer */
.wal-mobile-nav,
.wal-mobile-nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.wal-mobile-nav {
	display: flex;
	flex-direction: column;
}
.wal-mobile-nav > li + li {
	border-top: 1px solid #f4f4f5; /* zinc-100 */
}
.wal-mobile-nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.85rem 0;
	font-size: 1rem;
	font-weight: 500;
	color: #18181b; /* zinc-900 */
	text-decoration: none;
}
.wal-mobile-nav a:hover {
	color: #dd7400; /* amber-600 */
}
/* Mobile: collapsible submenus, auto-adapting to any depth.
   Toggle buttons are injected by aegis-wp.js for every li.menu-item-has-children. */
.wal-mobile-nav li.menu-item-has-children {
	position: relative;
}
.wal-mobile-nav li.menu-item-has-children > a {
	padding-right: 2.75rem; /* room for the toggle button */
}
.wal-mobile-nav .sub-menu {
	display: none;
	margin: 0 0 0.6rem 0;
	padding-left: 1rem;
	border-left: 1px solid #f4f4f5; /* zinc-100 */
}
.wal-mobile-nav li.wal-sub-open > .sub-menu {
	display: block;
}
.wal-mobile-nav li.wal-sub-open > a {
	color: #dd7400; /* amber-600 */
}
.wal-mobile-nav .wal-sub-toggle {
	position: absolute;
	top: 0.3rem;
	right: 0;
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 8px;
	background: none;
	color: #52525b; /* zinc-500 */
	cursor: pointer;
	transition: color 0.15s ease, background 0.15s ease;
}
.wal-mobile-nav .wal-sub-toggle:hover,
.wal-mobile-nav .wal-sub-toggle:focus-visible {
	color: #dd7400; /* amber-600 */
	background: #fafafa; /* zinc-50 */
}
.wal-mobile-nav .wal-sub-toggle svg {
	width: 1rem;
	height: 1rem;
	transition: transform 0.2s ease;
}
.wal-mobile-nav li.wal-sub-open > .wal-sub-toggle svg {
	transform: rotate(180deg);
}
.wal-mobile-nav .sub-menu a {
	font-size: 0.9rem;
	font-weight: 400;
	color: #52525b; /* zinc-600 */
	padding: 0.55rem 0;
}

/* ============================================================
   2. Skip link / screen reader
   ============================================================ */
.skip-link,
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.skip-link:focus {
	position: fixed !important;
	top: 8px;
	left: 8px;
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0.5rem 1rem;
	overflow: visible;
	clip: auto;
	white-space: normal;
	background: #09090b;
	color: #fcbb00;
	font-size: 0.875rem;
	font-weight: 600;
	border-radius: 2px;
}

/* ============================================================
   3. Prose (article body) — complements .prose-blog base
   ============================================================ */
.prose-blog h2 {
	margin: 3rem 0 1.25rem;
	font-size: 1.625rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
	color: #18181b; /* zinc-900 */
}
.prose-blog h3 {
	margin: 2.5rem 0 1rem;
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	line-height: 1.35;
	color: #18181b;
}
.prose-blog h4 {
	margin: 2rem 0 0.75rem;
	font-size: 1.0625rem;
	font-weight: 600;
	color: #18181b;
}
.prose-blog p {
	margin: 1.25rem 0;
}
.prose-blog p + p {
	margin-top: 1rem;
}
.prose-blog hr {
	margin: 2.5rem 0;
	border: 0;
	border-top: 1px solid #e4e4e7;
}
.prose-blog blockquote {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	border-left: 3px solid #dd7400;
	background: #fafafa;
	border-radius: 0 6px 6px 0;
}
.prose-blog blockquote p {
	margin: 0;
	font-size: 0.9375rem;
	color: #52525b;
}
.prose-blog img {
	margin: 1.5rem 0;
	border-radius: 6px;
}
.prose-blog a {
	color: #dd7400; /* amber-600 */
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(221, 116, 0, 0.35);
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.prose-blog a:hover {
	color: #b75000; /* amber-700 */
	text-decoration-color: currentColor;
}
.prose-blog ul,
.prose-blog ol {
	margin: 1rem 0 1rem 1.25rem;
	padding-left: 0.25rem;
}
.prose-blog ul {
	list-style: disc;
}
.prose-blog ol {
	list-style: decimal;
}
.prose-blog li {
	margin: 0.375rem 0;
	padding-left: 0.25rem;
}
.prose-blog li::marker {
	color: #dd7400;
}
.prose-blog strong {
	color: #18181b;
	font-weight: 600;
}
.prose-blog img {
	margin: 1.5rem 0;
	border-radius: 2px;
	width: 100%;
	height: auto;
}
.prose-blog figure {
	margin: 1.5rem 0;
}
.prose-blog figcaption {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	color: #a1a1aa; /* zinc-400 */
	text-align: center;
}
.prose-blog blockquote {
	margin: 1.5rem 0;
	border-left: 3px solid #fcbb00; /* amber-400 */
	padding: 0.25rem 0 0.25rem 1.25rem;
	font-style: normal;
	color: #52525b; /* zinc-600 */
}
.prose-blog blockquote p {
	margin: 0.25rem 0;
}
.prose-blog table {
	width: 100%;
	margin: 1.5rem 0;
	border-collapse: collapse;
	font-size: 0.9375rem;
}
.prose-blog th {
	text-align: left;
	font-weight: 600;
	color: #18181b;
	background: #fafafa; /* zinc-50 */
	border: 1px solid #e4e4e7; /* zinc-200 */
	padding: 0.625rem 0.875rem;
}
.prose-blog td {
	border: 1px solid #e4e4e7;
	padding: 0.625rem 0.875rem;
	color: #3f3f46; /* zinc-700 */
}
.prose-blog tbody tr:nth-child(even) {
	background: #fafafa;
}
.prose-blog code {
	font-size: 0.875em;
	background: #f4f4f5;
	border-radius: 2px;
	padding: 0.15em 0.35em;
}
.prose-blog pre {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	background: #09090b;
	color: #f4f4f5;
	border-radius: 2px;
	overflow-x: auto;
	font-size: 0.875rem;
	line-height: 1.7;
}
.prose-blog pre code {
	background: transparent;
	padding: 0;
	color: inherit;
}
.prose-blog hr {
	margin: 2rem 0;
	border: 0;
	border-top: 1px solid #e4e4e7;
}

/* ============================================================
   4. Pagination
   ============================================================ */
.wal-pagination,
.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 2.5rem;
}
.wal-pagination .page-numbers,
.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.75rem;
	border: 1px solid #e4e4e7;
	border-radius: 2px;
	font-size: 0.875rem;
	font-weight: 500;
	color: #3f3f46;
	background: #ffffff;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.wal-pagination .page-numbers:hover,
.nav-links .page-numbers:hover {
	border-color: #09090b;
	color: #09090b;
}
.wal-pagination .page-numbers.current,
.nav-links .page-numbers.current {
	background: #09090b;
	border-color: #09090b;
	color: #ffffff;
}

/* ============================================================
   5. WooCommerce shells (cart / checkout / my-account / forms)
   ============================================================ */
.woocommerce {
	width: 100%;
}
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
	margin: 1rem 0 1.5rem;
	padding: 0.875rem 1.125rem;
	border-radius: 2px;
	font-size: 0.9375rem;
	line-height: 1.6;
}
.woocommerce .woocommerce-message {
	background: #f0fdf4;
	border: 1px solid #b4e8c9;
	color: #14532d;
}
.woocommerce .woocommerce-info {
	background: #fef9e7;
	border: 1px solid #fde68a;
	color: #78350f;
}
.woocommerce .woocommerce-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #7f1d1d;
}
.woocommerce .woocommerce-message a,
.woocommerce .woocommerce-info a,
.woocommerce .woocommerce-error a {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	border-radius: 2px;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1.2;
	background: #09090b;
	color: #ffffff;
	border: 1px solid #09090b;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: #27272a; /* zinc-800 */
	color: #ffffff;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: #fcbb00; /* amber-400 */
	color: #09090b;
	border-color: #fcbb00;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: #f99c00; /* amber-500 */
}
.woocommerce .woocommerce-breadcrumb {
	display: none;
}
.woocommerce h2 {
	margin: 2rem 0 1rem;
	font-size: 1.5rem;
	font-weight: 700;
	color: #18181b;
}
/* Dark CTA h2 must stay white regardless of WooCommerce resets */
.bg-zinc-950 h2,
.woocommerce .bg-zinc-950 h2,
section.bg-zinc-950 h2 {
	color: #fff !important;
}
/* The cert block is light even when nested inside the dark homepage section. */
.bg-zinc-950 .wal-cert-block__title {
	color: #18181b !important;
}
.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	margin: 1rem 0;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 0.75rem 0.875rem;
	border: 1px solid #e4e4e7;
	text-align: left;
}
.woocommerce table.shop_table th {
	background: #fafafa;
	font-weight: 600;
	color: #18181b;
}
.woocommerce table.shop_table img {
	max-width: 64px;
	height: auto;
	border-radius: 2px;
}
.woocommerce form .form-row {
	margin: 0 0 1rem;
}
.woocommerce form .form-row label {
	display: block;
	margin-bottom: 0.375rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #3f3f46;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce form .form-row .input-text,
.woocommerce .select2-container .select2-selection--single {
	width: 100%;
	border: 1px solid #d4d4d8; /* zinc-300 */
	border-radius: 2px;
	background: #ffffff;
	padding: 0.625rem 0.875rem;
	font-size: 0.9375rem;
	color: #18181b;
	line-height: 1.5;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
	outline: none;
	border-color: #f99c00;
	box-shadow: 0 0 0 1px #f99c00;
}
.woocommerce form .form-row .required {
	color: #e40014;
}
.woocommerce form .form-row.woocommerce-invalid label {
	color: #e40014;
}
.woocommerce form .form-row.woocommerce-invalid .input-text {
	border-color: #e40014;
}
.woocommerce ul.woocommerce-error {
	list-style: none;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
}
.woocommerce .checkout.woocommerce-checkout {
	display: grid;
	gap: 2rem;
}
@media (min-width: 48rem) {
	.woocommerce .checkout.woocommerce-checkout {
		grid-template-columns: 1.6fr 1fr;
		align-items: start;
	}
}
.woocommerce #customer_details .col-1,
.woocommerce #customer_details .col-2 {
	margin-bottom: 1.5rem;
}
.woocommerce #payment {
	background: #fafafa;
	border: 1px solid #e4e4e7;
	border-radius: 2px;
	padding: 1rem 1.25rem;
}
.woocommerce #payment .payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce #payment .payment_methods li {
	padding: 0.5rem 0;
}
.woocommerce #payment .payment_methods li + li {
	border-top: 1px solid #e4e4e7;
}
.woocommerce #payment .payment_methods label {
	font-weight: 500;
	color: #18181b;
}
.woocommerce label[for="terms"] {
	display: inline;
}

/* ============================================================
   6. Forms (generic WP: search, comments) + wpcf7 leftovers
   ============================================================ */
.wal-search-form {
	display: flex;
	gap: 0.5rem;
	width: 100%;
}
.wal-search-form .search-field {
	flex: 1 1 auto;
	border: 1px solid #d4d4d8;
	border-radius: 2px;
	background: #ffffff;
	padding: 0.625rem 0.875rem;
	font-size: 0.9375rem;
	color: #18181b;
}
.wal-search-form .search-field:focus {
	outline: none;
	border-color: #f99c00;
	box-shadow: 0 0 0 1px #f99c00;
}
.wal-search-form .search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.625rem 1.25rem;
	border-radius: 2px;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: #09090b;
	color: #ffffff;
	border: 1px solid #09090b;
	cursor: pointer;
}
.wal-search-form .search-submit:hover {
	background: #27272a;
}

/* ============================================================
   7. Accessibility / focus / motion
   ============================================================ */
:focus-visible {
	outline: 2px solid #f99c00; /* amber-500 */
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* ============================================================
   8. Editorial pages (page.php shell)
   ============================================================ */
.wal-page-content .alignleft {
	float: left;
	margin: 0.5rem 1.25rem 1rem 0;
}
.wal-page-content .alignright {
	float: right;
	margin: 0.5rem 0 1rem 1.25rem;
}
.wal-page-content .aligncenter {
	display: block;
	margin: 1.5rem auto;
}
.wal-page-content .wp-caption {
	max-width: 100%;
}
.wal-page-content .wp-caption-text {
	font-size: 0.8125rem;
	color: #a1a1aa;
	text-align: center;
	margin-top: 0.375rem;
}
.wal-page-content ::selection {
	background: #fde68a; /* amber-100 */
	color: #18181b;
}

/* ============================================================
   9. Gap-fill layer: classes used by templates but missing
      from aegis.css (Aegis-tailwind v4 compile output).
      Kept 1:1 with Aegis zinc/amber tokens & breakpoint order.
   ============================================================ */

/* -- component hooks -------------------------------------------------- */
.wal-main {
	display: block;
}
.wal-mobile-menu {
	padding: 0 1rem 1.25rem;
}
.aegis-gallery {
	display: block;
}
.aegis-gallery-thumb {
	cursor: pointer;
	background: none;
	padding: 0;
}
.aegis-gallery-thumb img {
	transition: opacity 0.15s ease;
}
.aegis-gallery-thumb:hover img {
	opacity: 0.85;
}

/* -- base utilities --------------------------------------------------- */
.gap-px {
	gap: 1px;
}
.max-w-xl {
	max-width: 36rem; /* tw container-xl */
}
.w-48 {
	width: calc(var(--spacing) * 48);
}
.whitespace-nowrap {
	white-space: nowrap;
}
.z-40 {
	z-index: 40;
}
.underline {
	text-decoration-line: underline;
}
.decoration-2 {
	text-decoration-thickness: 2px;
}
.decoration-amber-400 {
	text-decoration-color: var(--color-amber-400);
}
.underline-offset-2 {
	text-underline-offset: 2px;
}
.underline-offset-4 {
	text-underline-offset: 4px;
}
.border-b-2 {
	border-bottom-style: var(--tw-border-style);
	border-bottom-width: 2px;
}
:where(.divide-zinc-100 > :not(:last-child)) {
	border-color: var(--color-zinc-100);
}
.mb-6 {
	margin-bottom: calc(var(--spacing) * 6);
}
.pt-6 {
	padding-top: calc(var(--spacing) * 6);
}
.pb-14 {
	padding-bottom: calc(var(--spacing) * 14);
}
.text-amber-300 {
	color: var(--color-amber-300);
}
.text-amber-900 {
	color: #78350f; /* tw amber-900 (brand extends amber-50/700 card) */
}
.text-emerald-800 {
	color: #065f46; /* tw emerald-800 */
}
.text-red-800 {
	color: #991b1b; /* tw red-800 */
}

/* -- hover variants (@media hover:hover, same as aegis.css) ----------- */
@media (hover: hover) {
	.hover\:text-zinc-900:hover {
		color: var(--color-zinc-900);
	}
	.hover\:underline:hover {
		text-decoration-line: underline;
	}
}

/* -- sm: 40rem -------------------------------------------------------- */
@media (min-width: 40rem) {
	.sm\:text-3xl {
		font-size: var(--text-3xl);
		line-height: var(--tw-leading, var(--text-3xl--line-height));
	}
}

/* -- lg: 64rem -------------------------------------------------------- */
@media (min-width: 64rem) {
	.lg\:col-span-1 {
		grid-column: span 1 / span 1;
	}
	.lg\:grid-cols-5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
	.lg\:grid-cols-\[1fr_2fr\] {
		grid-template-columns: 1fr 2fr;
	}
}

/* -- xl: 80rem (desktop nav visibility: header uses hidden xl:block) -- */
@media (min-width: 80rem) {
	.xl\:block {
		display: block;
	}
}
/* ============================================================
   BRAND V2 LAYER — merged into the aegis load chain 2026-09-16.
   Restores the `tp-*` component set (hero/split/section/process/
   faq/proof) and the RFQ form styling that mu-plugin topedc-core
   expected to load from assets/css/brand-v2.css (that file was
   renamed to .bak and the dependency handle `wallet-main` no
   longer exists, so the layer silently dropped out of the page).
   Variable block below is self-contained (mapped from old-main):
   ============================================================ */
:root {
	/* brand v2 palette — anodized bronze hardware mark */
	--c-accent:      #8A5A2B;
	--c-accent-ink:  #6B441F;
	--c-accent-soft: #F2EADD;
	--c-bronze-line: #CDB593;
	--c-ink:         #111111;
	--c-ink-70:      #3A3A37;
	--c-ink-50:      #5C5C57;
	--c-line:        #D9D9D5;
	--c-muted:       #777777;
	--c-paper:       #FAFAF8;

	/* v2 rhythm */
	--sp-1: 8px;
	--sp-2: 16px;
	--sp-3: 24px;
	--sp-4: 40px;
	--sp-5: 64px;
	--sp-6: 96px;
	--sp-7: 128px;
	--gutter: clamp(20px, 4vw, 40px);
	--container-wide: 1520px;

	--rule: 1px solid var(--c-line);
	--radius: 4px;
	--transition: .22s cubic-bezier(.4, 0, .2, 1);

	/* type roles — fall back to aegis system fonts */
	--f-sans: var(--default-font-family, ui-sans-serif, system-ui, "Segoe UI", sans-serif);
	--f-mono: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
	--fs-h1: clamp(34px, 5vw, 58px);
	--fs-h2: clamp(26px, 3.2vw, 40px);
	--fs-h3: 21px;
	--fs-body: 16px;
	--fs-button: 15px;
}
/* ============================================================
   TOP EDC Wallet — BRAND V2 LAYER
   Loaded after main.css. Overrides tokens, adds the v2 component set.
   Language: hairline rules, mono spec labels, bronze hardware mark.
   Anti-patterns deliberately avoided: gradients, glass, heavy shadows,
   rounded "AI card" stacks, tech-blue.
   ============================================================ */

:root {
	/* --- v2 palette: anodized bronze hardware mark --- */
	--c-accent:      #8A5A2B;
	--c-accent-ink:  #6B441F;
	--c-accent-soft: #F2EADD;
	--c-bronze-line: #CDB593;
	--c-ink-70:      #3A3A37;
	--c-ink-50:      #5C5C57;
	--c-paper:       #FAFAF8;

	/* --- v2 rhythm --- */
	--sp-1: 8px;
	--sp-2: 16px;
	--sp-3: 24px;
	--sp-4: 40px;
	--sp-5: 64px;
	--sp-6: 96px;
	--sp-7: 128px;

	--rule: 1px solid var(--c-line);
	--radius: 4px;
}

/* ============================================================
   1. TYPE ROLES
   ============================================================ */
.tp-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--f-mono); font-size: 12px; font-weight: 500;
	letter-spacing: .16em; text-transform: uppercase; color: var(--c-accent-ink);
	margin: 0 0 18px;
}
.tp-eyebrow::before {
	content: ""; width: 28px; height: 1px; background: var(--c-accent); display: inline-block;
}
.tp-display { font-size: var(--fs-h1); line-height: 1.06; font-weight: 800; letter-spacing: -.035em; margin: 0 0 20px; }
.tp-h2 { font-size: var(--fs-h2); line-height: 1.12; font-weight: 800; letter-spacing: -.03em; margin: 0 0 14px; }
.tp-lead { font-size: clamp(17px, 1.4vw, 19px); line-height: 1.6; color: var(--c-ink-70); max-width: 62ch; margin: 0 0 28px; }
.tp-body { font-size: var(--fs-body); line-height: 1.75; color: var(--c-ink-70); }
.tp-mono { font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }

/* ============================================================
   2. SECTION SHELL
   ============================================================ */
.tp-section { padding: var(--sp-7) 0; border-top: var(--rule); }
.tp-section:first-child { border-top: 0; }
.tp-section--tight { padding: var(--sp-6) 0; }
.tp-section--ink { background: var(--c-ink); color: #fff; border-top: 0; }
.tp-section--ink .tp-h2, .tp-section--ink h2 { color: #fff; }
.tp-section--ink .tp-lead, .tp-section--ink p { color: #C9C9C4; }
.tp-section--paper { background: var(--c-paper); }
.tp-section-head { max-width: 780px; margin-bottom: var(--sp-5); }
.tp-section-head .tp-h2 { margin-bottom: 12px; }

/* ============================================================
   3. HERO — editorial, not a landing-page banner
   ============================================================ */
.tp-hero { border-bottom: var(--rule); background: var(--c-paper); }
.tp-hero-inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--sp-6); align-items: center; padding: var(--sp-7) var(--gutter); max-width: var(--container-wide); margin: 0 auto; }
.tp-hero-copy { max-width: 640px; }
.tp-hero .tp-display { font-size: clamp(38px, 4.6vw, 64px); }
.tp-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.tp-hero-meta { display: flex; flex-wrap: wrap; gap: 28px; margin-top: var(--sp-5); padding-top: var(--sp-3); border-top: var(--rule); }
.tp-hero-meta div { min-width: 130px; }
.tp-hero-meta dt { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 4px; }
.tp-hero-meta dd { margin: 0; font-size: 15px; font-weight: 600; color: var(--c-ink); }
.tp-hero-visual { position: relative; }
.tp-hero--short { padding: var(--sp-6) 0 var(--sp-6); }
.tp-hero--short .container { max-width: var(--container-wide); }
.tp-hero--short .tp-display { font-size: clamp(34px, 4vw, 52px); max-width: 24ch; }
@media (max-width: 960px) {
	.tp-hero-inner { grid-template-columns: 1fr; gap: var(--sp-4); padding: var(--sp-5) var(--gutter); }
}

/* ============================================================
   4. IMAGE PLACEHOLDER — technical-drawing frame, never a grey box
   ============================================================ */
.tp-ph {
	position: relative; overflow: hidden; background: #EDEDE9;
	border: 1px solid var(--c-line); border-radius: var(--radius);
	aspect-ratio: 4 / 3; width: 100%;
}
.tp-ph::before {
	content: ""; position: absolute; inset: 0;
	background-image:
		linear-gradient(135deg, rgba(17,17,17,.045) 25%, transparent 25%, transparent 50%, rgba(17,17,17,.045) 50%, rgba(17,17,17,.045) 75%, transparent 75%, transparent);
	background-size: 14px 14px;
}
.tp-ph::after {
	content: attr(data-label);
	position: absolute; left: 14px; bottom: 12px;
	font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
	color: var(--c-muted); background: rgba(250,250,248,.9); padding: 4px 8px; border: 1px solid var(--c-line);
}
.tp-ph--wide { aspect-ratio: 16 / 9; }
.tp-ph--tall { aspect-ratio: 3 / 4; }
.tp-ph--square { aspect-ratio: 1 / 1; }
.tp-ph--product { aspect-ratio: 1 / 1; }

.tp-ph.tp-ph--image { background:#EDEDE9; padding:0; display:block; overflow:hidden; position:relative; }
.tp-ph.tp-ph--image::before { display:none !important; }
.tp-ph.tp-ph--image::after { display:none !important; }
.tp-ph.tp-ph--image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; margin:0; max-width:none; }
.tp-figcaption { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); margin-top: 10px; }

/* ============================================================
   5. SPLIT — label left / content right, the workhorse section
   ============================================================ */
.tp-split { display: grid; grid-template-columns: 260px 1fr; gap: var(--sp-6); align-items: start; }
.tp-split-aside { position: sticky; top: 100px; }
.tp-split-aside .tp-mono { display: block; margin-bottom: 8px; }
.tp-split-aside h3 { font-size: 15px; font-weight: 700; margin: 0; letter-spacing: -.01em; }
.tp-split-body > *:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.tp-split { grid-template-columns: 1fr; gap: var(--sp-3); }
	.tp-split-aside { position: static; }
}

/* ============================================================
   6. LINE GRID — product families. Hairline tiles, not stacked cards.
   ============================================================ */
.tp-lines { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); border-top: var(--rule); border-left: var(--rule); }
.tp-line {
	border-right: var(--rule); border-bottom: var(--rule);
	padding: var(--sp-4) var(--sp-3) var(--sp-3);
	background: #fff; display: flex; flex-direction: column; gap: 14px;
	transition: background var(--transition);
}
.tp-line:hover { background: var(--c-accent-soft); }
.tp-line-figure { position: relative; }
.tp-line-count { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.tp-line h3 { font-size: 19px; font-weight: 700; letter-spacing: -.02em; margin: 0; }
.tp-line h3 a { color: inherit; }
.tp-line p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--c-ink-50); }
.tp-line-more { margin-top: auto; font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent-ink); }
.tp-line:hover .tp-line-more::after { transform: translateX(4px); }
.tp-line-more::after { content: " →"; display: inline-block; transition: transform var(--transition); }

/* ============================================================
   7. PROCESS — OEM journey, numbered, horizontal on desktop
   ============================================================ */
.tp-process { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 2px solid var(--c-ink); }
.tp-step { padding: var(--sp-3) var(--sp-2) var(--sp-3) 0; border-right: var(--rule); position: relative; }
.tp-step:last-child { border-right: 0; }
.tp-step:not(:first-child) { padding-left: var(--sp-2); }
.tp-step-num { font-family: var(--f-mono); font-size: 12px; letter-spacing: .14em; color: var(--c-accent); font-weight: 600; margin-bottom: 10px; display: block; }
.tp-step h3 { font-size: 16px; font-weight: 700; margin: 0 0 8px; letter-spacing: -.01em; }
.tp-step p { font-size: 14px; line-height: 1.6; color: var(--c-ink-50); margin: 0; }
.tp-process--3 { grid-template-columns: repeat(3, 1fr); }
.tp-process--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) {
	.tp-process, .tp-process--3, .tp-process--4 { grid-template-columns: 1fr; border-top: 0; }
	.tp-step { border-right: 0; border-bottom: var(--rule); padding-left: 0 !important; padding-bottom: var(--sp-3); }
}

/* ============================================================
   8. SPEC TABLE — mono labels, hairline rows
   ============================================================ */
.tp-spec { width: 100%; border-collapse: collapse; font-size: 15px; }
.tp-spec th, .tp-spec td { text-align: left; padding: 14px 0; border-bottom: var(--rule); vertical-align: top; }
.tp-spec th { width: 34%; font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); font-weight: 500; padding-right: 20px; }
.tp-spec td { color: var(--c-ink); }
.tp-spec tr:last-child th, .tp-spec tr:last-child td { border-bottom: 0; }
.tp-spec thead th {
	font-size: 13px; letter-spacing: .04em; color: var(--c-ink); font-weight: 700;
	padding-bottom: 16px; border-bottom: 2px solid var(--c-ink); text-transform: none;
}
.tp-spec thead th:first-child { color: var(--c-muted); }
@media (max-width: 720px) {
	.tp-spec thead { display: none; }
	.tp-spec tbody tr { display: block; border-bottom: var(--rule); padding: 12px 0; }
	.tp-spec tbody th, .tp-spec tbody td { display: block; width: 100%; border: 0; padding: 4px 0; }
}

/* ============================================================
   9. PROOF BAND — numbers, no testimonial carousels
   ============================================================ */
.tp-proof { display: grid; grid-template-columns: repeat(4, 1fr); border-top: var(--rule); border-bottom: var(--rule); }
.tp-proof > div { padding: var(--sp-4) var(--sp-2); border-right: var(--rule); }
.tp-proof > div:last-child { border-right: 0; }
.tp-proof-num { font-size: clamp(30px, 3vw, 44px); font-weight: 800; letter-spacing: -.03em; line-height: 1; margin-bottom: 10px; }
.tp-proof-label { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
@media (max-width: 800px) {
	.tp-proof { grid-template-columns: repeat(2, 1fr); }
	.tp-proof > div:nth-child(2n) { border-right: 0; }
	.tp-proof > div:nth-child(-n+2) { border-bottom: var(--rule); }
}

/* ============================================================
   10. CTA BAND — one decision per band
   ============================================================ */
.tp-cta-band { background: var(--c-ink); color: #fff; padding: var(--sp-6) 0; }
.tp-cta-band-inner { display: grid; grid-template-columns: 1fr auto; gap: var(--sp-4); align-items: center; }
.tp-cta-band h2 { color: #fff; font-size: clamp(26px, 2.6vw, 36px); margin: 0 0 10px; letter-spacing: -.03em; }
.tp-cta-band p { color: #BFBFB9; margin: 0; max-width: 60ch; }
.tp-cta-band-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 860px) {
	.tp-cta-band-inner { grid-template-columns: 1fr; }
}

/* ============================================================
   11. BUTTONS — square, inked, bronze accent only on hover
   ============================================================ */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: var(--radius); font-weight: 600; font-size: var(--fs-button); padding: 13px 22px; border: 1px solid transparent; cursor: pointer; transition: all var(--transition); }
.btn-primary { background: #f59e0b; color: #1c1917; border-color: #f59e0b; }
.btn-primary:hover { background: #fbbf24; border-color: #fbbf24; color: #1c1917; }
.btn-ghost { background: transparent; color: var(--c-ink); border-color: var(--c-line); }
.btn-ghost:hover { border-color: var(--c-ink); background: #fff; color: var(--c-ink); }
.btn-onink { background: #fff; color: var(--c-ink); border-color: #fff; }
.btn-onink:hover { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }
.btn-onink-ghost { background: transparent; color: #fff; border-color: #4A4A46; }
.btn-onink-ghost:hover { border-color: #fff; }
.tp-btn-lg { padding: 16px 30px; font-size: 16px; }

/* ============================================================
   12. RFQ FORM — three-scenario switch, B2B field density
   ============================================================ */
.tp-rfq { max-width: 860px; }
.tp-rfq-scenario { border: 0; padding: 0; margin: 0 0 var(--sp-4); }
.tp-rfq-scenario legend { padding: 0; margin-bottom: 14px; }
.tp-rfq-switch { display: grid; grid-template-columns: repeat(3, 1fr); border: var(--rule); border-radius: var(--radius); overflow: hidden; }
.tp-rfq-opt { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-right: var(--rule); cursor: pointer; background: #fff; transition: background var(--transition); position: relative; }
.tp-rfq-opt:last-child { border-right: 0; }
.tp-rfq-opt input { position: absolute; opacity: 0; pointer-events: none; }
.tp-rfq-opt-key { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; color: var(--c-muted); }
.tp-rfq-opt-label { font-size: 14px; font-weight: 600; line-height: 1.35; }
.tp-rfq-opt:hover { background: var(--c-paper); }
.tp-rfq-opt.is-active { background: #f59e0b; }
.tp-rfq-opt.is-active .tp-rfq-opt-label,
.tp-rfq-opt.is-active .tp-rfq-opt-key { color: #1c1917; }
.tp-rfq-opt.is-active .tp-rfq-opt-key { color: #713f12; }
@media (max-width: 720px) {
	.tp-rfq-switch { grid-template-columns: 1fr; }
	.tp-rfq-opt { border-right: 0; border-bottom: var(--rule); }
}

.tp-rfq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 720px) { .tp-rfq-grid { grid-template-columns: 1fr; gap: 16px; } }

.tp-field { display: flex; flex-direction: column; gap: 7px; margin: 0 0 18px; }
.tp-field label { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); font-weight: 500; }
.tp-field abbr { color: var(--c-accent); text-decoration: none; }
.tp-field input[type="text"], .tp-field input[type="email"], .tp-field input[type="tel"], .tp-field select, .tp-field textarea {
	width: 100%; padding: 12px 14px; font-family: var(--f-sans); font-size: 15px; color: var(--c-ink);
	background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius);
	transition: border-color var(--transition), box-shadow var(--transition);
}
.tp-field input:focus, .tp-field select:focus, .tp-field textarea:focus {
	outline: none; border-color: var(--c-accent); box-shadow: 0 0 0 3px rgba(138,90,43,.12);
}
.tp-field textarea { resize: vertical; min-height: 120px; line-height: 1.6; }
.tp-field-file input[type="file"] {
	width: 100%; padding: 14px; font-size: 14px; background: var(--c-paper);
	border: 1px dashed var(--c-line); border-radius: var(--radius); cursor: pointer;
}
.tp-hint { display: block; font-size: 11.5px; color: var(--c-muted); margin-top: 4px; letter-spacing: .04em; text-transform: none; }
.tp-filelist { display: block; margin-top: 8px; color: var(--c-accent-ink); font-size: 12px; }
.tp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tp-rfq-foot { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: var(--sp-3); padding-top: var(--sp-3); border-top: var(--rule); }

.tp-alert { padding: 14px 18px; border-radius: var(--radius); margin-bottom: var(--sp-3); font-size: 15px; }
.tp-alert-ok { background: var(--c-accent-soft); border: 1px solid var(--c-bronze-line); color: var(--c-accent-ink); }
.tp-alert-err { background: #FBECEA; border: 1px solid #E3B7B0; color: #8A3325; }

/* ============================================================
   13. PRICE — inquiry mode
   ============================================================ */
.topedc-price-on-request {
	display: inline-block; font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em;
	text-transform: uppercase; color: var(--c-accent-ink);
	border: 1px solid var(--c-bronze-line); background: var(--c-accent-soft);
	padding: 5px 10px; border-radius: var(--radius);
}

/* ============================================================
   14. MOBILE STICKY CTA
   ============================================================ */
.tp-sticky-cta { display: none; }
@media (max-width: 900px) {
	.tp-sticky-cta {
		display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		background: rgba(250,250,248,.96); backdrop-filter: blur(8px);
		border-top: var(--rule);
	}
	.tp-sticky-cta-btn, .tp-sticky-cta-alt {
		flex: 1; text-align: center; padding: 14px 12px; border-radius: var(--radius);
		font-weight: 600; font-size: 15px; border: 1px solid transparent;
	}
	.tp-sticky-cta-btn { flex: 2; background: var(--c-ink); color: #fff; }
	.tp-sticky-cta-alt { background: transparent; color: var(--c-ink); border-color: var(--c-line); }
	body { padding-bottom: 72px; }
}

/* ============================================================
   15. EDITORIAL AIDS
   ============================================================ */
.tp-note { border-left: 2px solid var(--c-accent); padding: 4px 0 4px 20px; margin: var(--sp-3) 0; color: var(--c-ink-70); font-size: 15.5px; }
.tp-cols-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-4); }
.tp-cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }
@media (max-width: 860px) { .tp-cols-2, .tp-cols-3 { grid-template-columns: 1fr; gap: var(--sp-3); } }

.tp-faq { border-top: var(--rule); }
.tp-faq-item { border-bottom: var(--rule); }
.tp-faq-q { font-size: 17px; font-weight: 700; margin: 0; padding: 14px 0; letter-spacing: -.015em; cursor: pointer; }
.tp-faq-a { margin: 0; padding: 0 0 14px; color: var(--c-ink-70); line-height: 1.7; }

/* Kill WooCommerce's default "out of stock"/cart noise leftovers */
.tp-page-rfq .woocommerce-message,
.tp-page-rfq .woocommerce-error { display: none; }

/* Accessibility */
.tp-ph:focus-within, .tp-line:focus-within { outline: 2px solid var(--c-accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ============================================================
   WIDTH SAFETY — brand-v2 layer merged, plus overflow guards
   (fixes 11px horizontal scroll on /request-a-quote/ and
   /request-samples/ at 375–767px caused by grid items being
   stretched by their min-content).
   ============================================================ */
.lg\:col-span-2,
.lg\:col-span-1 {
	min-width: 0;
}
.tp-rfq,
.tp-rfq * {
	min-width: 0;
}
.tp-rfq-opt-label {
	overflow-wrap: anywhere;
}
@media (max-width: 767px) {
	.grid.gap-10.lg\:grid-cols-3 {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Manufacturing sub-pages — layout utilities (P1 rebuild)
   Scoped to .prose-blog so they only affect article content.
   ============================================================ */
.prose-blog .grid {
	display: grid;
}
.prose-blog .grid-cols-1 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
}
.prose-blog .gap-4 {
	gap: 1rem;
}
.prose-blog .my-6 {
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
}
.prose-blog .p-4 {
	padding: 1rem;
}
.prose-blog .rounded {
	border-radius: 0.5rem;
}
.prose-blog .border {
	border: 1px solid #e4e4e7; /* zinc-200 */
}
.prose-blog .text-2xl {
	font-size: 1.5rem;
	line-height: 2rem;
}
.prose-blog .font-bold {
	font-weight: 700;
}
.prose-blog .text-sm {
	font-size: 0.875rem;
	line-height: 1.375rem;
}
.prose-blog .overflow-x-auto {
	overflow-x: auto;
}
.prose-blog .p-4 p:first-child {
	margin-top: 0;
}
.prose-blog .p-4 p:last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.prose-blog .md\:grid-cols-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.prose-blog .md\:grid-cols-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Evidence module */
.prose-blog figure.mfg-evidence {
	margin: 0;
}
.prose-blog figure.mfg-evidence img {
	margin: 0;
	border-radius: 6px;
	width: 100%;
	height: auto;
	display: block;
}
.prose-blog figure.mfg-evidence figcaption {
	text-align: left;
	margin-top: 0.375rem;
}

/* ================================================================
   Knowledge Center — added 2026-09-17
   ================================================================ */
/* ================================================================
   Knowledge Center — Styles
   Industrial · Editorial · Technical · Premium · B2B · Clean
   ================================================================ */

/* ---------- Base container ---------- */
.kc-container {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 32px;
	padding-right: 32px;
}

/* ---------- Typography ---------- */
.kc-h1 {
	font-size: 56px;
	line-height: 1.05;
	font-weight: 600;
	letter-spacing: -0.03em;
	color: #171717;
	margin: 0;
}
.kc-h2 {
	font-size: 36px;
	line-height: 1.15;
	font-weight: 600;
	color: #171717;
	margin: 0;
}
.kc-h3 {
	font-size: 20px;
	line-height: 1.35;
	font-weight: 600;
	color: #171717;
	margin: 0;
}
.kc-section-lead {
	font-size: 16px;
	line-height: 1.7;
	color: #5f6368;
	margin-top: 12px;
	max-width: 760px;
}

/* ---------- Section spacing ---------- */
.kc-section {
	padding-top: 80px;
	padding-bottom: 80px;
}
.kc-section-large {
	padding-top: 96px;
	padding-bottom: 96px;
}
.kc-section-compact {
	padding-top: 72px;
	padding-bottom: 72px;
}

/* ---------- Background ---------- */
.kc-bg-soft {
	background: #f6f6f4;
}

/* ================================================================
   SECTION 1 — HERO
   ================================================================ */
.kc-hero {
	padding-top: 72px;
	padding-bottom: 80px;
	background: #ffffff;
	text-align: left;
}
.kc-hero .kc-container {
	max-width: 760px; /* reading width for hero text */
	padding-left: 32px;
	padding-right: 32px;
}
.kc-subtitle {
	font-size: 20px;
	line-height: 1.45;
	font-weight: 500;
	color: #171717;
	margin-top: 16px;
	max-width: 600px;
}
.kc-supporting {
	font-size: 16px;
	line-height: 1.7;
	color: #5f6368;
	margin-top: 12px;
	max-width: 600px;
}

/* ---------- Search ---------- */
.kc-search {
	margin-top: 32px;
	display: flex;
	gap: 0;
	max-width: 760px;
}
.kc-search input[type="search"] {
	flex: 1;
	height: 56px;
	padding: 0 20px;
	font-size: 16px;
	border: 1px solid #e4e4e1;
	border-right: none;
	border-radius: 10px 0 0 10px;
	background: #fff;
	color: #171717;
	outline: none;
	transition: border-color .2s ease;
}
.kc-search input[type="search"]::placeholder {
	color: #858585;
}
.kc-search input[type="search"]:focus {
	border-color: #dd7400;
}
.kc-search button {
	height: 56px;
	padding: 0 24px;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border: none;
	border-radius: 0 10px 10px 0;
	background: #dd7400;
	color: #fff;
	cursor: pointer;
	transition: background .2s ease;
}
.kc-search button:hover {
	background: #c86800;
}

/* ================================================================
   SECTION 2 — START HERE
   ================================================================ */
.kc-start-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 36px;
}
.kc-start-card {
	padding: 32px;
	min-height: 220px;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 10px;
	transition: border-color .2s ease, transform .2s ease;
	display: flex;
	flex-direction: column;
}
.kc-start-card:hover {
	border-color: #dd7400;
	transform: translateY(-2px);
}
.kc-start-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #dd7400;
}
.kc-start-card h3 {
	margin-top: 12px;
	font-size: 20px;
	font-weight: 600;
	color: #171717;
}
.kc-start-card p {
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.6;
	color: #5f6368;
	flex: 1;
}
.kc-start-card a {
	margin-top: 16px;
	font-size: 14px;
	font-weight: 500;
	color: #dd7400;
	text-decoration: none;
}
.kc-start-card a:hover {
	text-decoration: underline;
}

/* ================================================================
   SECTION 3 — EXPLORE BY TOPIC
   ================================================================ */
.kc-topic-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 36px;
}
.kc-topic-card {
	padding: 26px;
	min-height: 150px;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 10px;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	transition: border-color .2s ease, transform .2s ease;
}
.kc-topic-card:hover {
	border-color: #dd7400;
	transform: translateY(-2px);
}
.kc-topic-card h3 {
	font-size: 18px;
	font-weight: 600;
	color: #171717;
	margin: 0;
}
.kc-topic-card p {
	margin-top: 6px;
	font-size: 14px;
	line-height: 1.6;
	color: #5f6368;
	flex: 1;
}
.kc-topic-meta {
	margin-top: 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 13px;
	color: #858585;
}
.kc-topic-meta span:last-child {
	color: #dd7400;
	font-weight: 500;
}

/* ================================================================
   SECTION 4 — FEATURED BUYING GUIDES
   ================================================================ */
.kc-featured-hero {
	display: flex;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 10px;
	overflow: hidden;
	min-height: 360px;
	text-decoration: none;
	color: inherit;
	margin-top: 36px;
	transition: border-color .2s ease, transform .2s ease;
}
.kc-featured-hero:hover {
	border-color: #dd7400;
	transform: translateY(-2px);
}
.kc-featured-img {
	width: 42%;
	flex-shrink: 0;
	background: #f6f6f4;
}
.kc-featured-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kc-featured-content {
	width: 58%;
	padding: 36px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.kc-tag {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #dd7400;
}
.kc-featured-content h3 {
	margin-top: 12px;
	font-size: 24px;
	font-weight: 600;
	color: #171717;
	line-height: 1.3;
}
.kc-featured-content p {
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.7;
	color: #5f6368;
}
.kc-link {
	margin-top: 16px;
	font-size: 14px;
	font-weight: 500;
	color: #dd7400;
	text-decoration: none;
}
.kc-arrow {
	transition: transform .2s ease;
}
.kc-featured-hero:hover .kc-arrow,
.kc-card:hover .kc-arrow,
.kc-latest-card:hover .kc-arrow {
	transform: translateX(4px);
}

/* ================================================================
   ARTICLE CARD — Shared component
   ================================================================ */
.kc-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 36px;
}
.knowledge-card,
.kc-latest-card {
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 10px;
	padding: 26px;
	min-height: 210px;
	display: flex;
	flex-direction: column;
	transition: border-color .2s ease, transform .2s ease;
}
.knowledge-card:hover,
.kc-latest-card:hover {
	border-color: #dd7400;
	transform: translateY(-2px);
}
.knowledge-card .kc-title {
	margin-top: 10px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: #171717;
}
.knowledge-card .kc-title a {
	color: inherit;
	text-decoration: none;
}
.knowledge-card .kc-title a:hover {
	color: #dd7400;
}
.knowledge-card .kc-excerpt {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.6;
	color: #5f6368;
	flex: 1;
}
.knowledge-card .kc-link,
.kc-latest-card .kc-link {
	margin-top: 14px;
	font-size: 14px;
	font-weight: 500;
	color: #dd7400;
	text-decoration: none;
}

/* ================================================================
   SECTION LINK
   ================================================================ */
.kc-section-link {
	display: inline-block;
	margin-top: 28px;
	font-size: 14px;
	font-weight: 500;
	color: #dd7400;
	text-decoration: none;
}
.kc-section-link:hover {
	text-decoration: underline;
}

/* ================================================================
   LATEST ARTICLES
   ================================================================ */
.kc-latest-card {
	text-decoration: none;
	color: inherit;
	padding: 0;
	overflow: hidden;
}
.kc-latest-img {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #f6f6f4;
	overflow: hidden;
}
.kc-latest-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kc-latest-body {
	padding: 22px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.kc-latest-body h3 {
	margin-top: 8px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: #171717;
}
.kc-latest-body p {
	margin-top: 6px;
	font-size: 14px;
	line-height: 1.6;
	color: #5f6368;
	flex: 1;
}

/* ================================================================
   EDITORIAL PRINCIPLES
   ================================================================ */
.kc-editorial-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 36px;
}
.kc-editorial-card {
	padding: 32px;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 10px;
}
.kc-editorial-num {
	font-size: 28px;
	font-weight: 700;
	color: #dd7400;
	line-height: 1;
}
.kc-editorial-card h3 {
	margin-top: 14px;
	font-size: 18px;
	font-weight: 600;
	color: #171717;
}
.kc-editorial-card p {
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.65;
	color: #5f6368;
}

/* ================================================================
   BROWSE ALL TOPICS
   ================================================================ */
.kc-browse-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}
.kc-browse-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 500;
	color: #171717;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 8px;
	text-decoration: none;
	transition: border-color .2s ease, color .2s ease;
}
.kc-browse-pill:hover {
	border-color: #dd7400;
	color: #dd7400;
}
.kc-browse-pill span {
	color: #858585;
	transition: color .2s ease;
}
.kc-browse-pill:hover span {
	color: #dd7400;
}

/* ================================================================
   FINAL CTA
   ================================================================ */
.kc-cta {
	padding-top: 56px;
	padding-bottom: 56px;
	background: #ffffff;
	border-top: 1px solid #e4e4e1;
}
.kc-cta-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	text-align: center;
}
.kc-cta-inner p {
	font-size: 20px;
	font-weight: 500;
	color: #171717;
	margin: 0;
}
.kc-cta-btns {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	justify-content: center;
}
.kc-btn-primary,
.kc-btn-secondary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 24px;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-radius: 8px;
	text-decoration: none;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.kc-btn-primary {
	background: #dd7400;
	color: #fff;
	border: 1px solid #dd7400;
}
.kc-btn-primary:hover {
	background: #c86800;
	border-color: #c86800;
}
.kc-btn-secondary {
	background: #fff;
	color: #171717;
	border: 1px solid #e4e4e1;
}
.kc-btn-secondary:hover {
	border-color: #dd7400;
	color: #dd7400;
}

/* ================================================================
   MARGINS
   ================================================================ */
.kc-mt {
	margin-top: 48px;
}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1024px) {
	.kc-container {
		max-width: 960px;
		padding-left: 24px;
		padding-right: 24px;
	}
	.kc-section {
		padding-top: 64px;
		padding-bottom: 64px;
	}
	.kc-section-large {
		padding-top: 80px;
		padding-bottom: 80px;
	}
	.kc-h1 {
		font-size: 46px;
	}
	.kc-h2 {
		font-size: 32px;
	}
	.kc-start-grid,
	.kc-topic-grid,
	.kc-card-grid,
	.kc-editorial-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.kc-featured-hero {
		flex-direction: column;
		min-height: auto;
	}
	.kc-featured-img,
	.kc-featured-content {
		width: 100%;
	}
	.kc-featured-img {
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 640px) {
	.kc-container {
		padding-left: 18px;
		padding-right: 18px;
	}
	.kc-section {
		padding-top: 52px;
		padding-bottom: 52px;
	}
	.kc-section-large {
		padding-top: 64px;
		padding-bottom: 64px;
	}
	.kc-h1 {
		font-size: 36px;
		line-height: 1.1;
	}
	.kc-h2 {
		font-size: 28px;
	}
	.kc-start-grid,
	.kc-topic-grid,
	.kc-card-grid,
	.kc-editorial-grid {
		grid-template-columns: 1fr;
	}
	.kc-search {
		flex-direction: column;
		gap: 0;
	}
	.kc-search input[type="search"] {
		border-right: 1px solid #e4e4e1;
		border-radius: 10px 10px 0 0;
		border-bottom: none;
	}
	.kc-search button {
		border-radius: 0 0 10px 10px;
	}
	.kc-featured-hero {
		min-height: auto;
	}
	.kc-browse-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}
	.kc-browse-pill {
		justify-content: center;
		width: 100%;
	}
	.kc-hero {
		padding-top: 48px;
		padding-bottom: 56px;
	}
}

/* ================================================================
   KNOWLEDGE TOPIC ARCHIVE — Category pages
   ================================================================ */

.wal-topic-archive {
	padding-top: 32px;
	padding-bottom: 80px;
}

/* Breadcrumb */
.wal-topic-breadcrumb {
	font-size: 13px;
	color: #858585;
	margin-bottom: 28px;
}
.wal-topic-breadcrumb a {
	color: #858585;
	text-decoration: none;
	transition: color .2s ease;
}
.wal-topic-breadcrumb a:hover {
	color: #dd7400;
}
.wal-topic-breadcrumb span {
	margin: 0 8px;
	color: #c0c0c0;
}
.wal-breadcrumb-current {
	color: #171717;
	font-weight: 500;
}

/* Topic Introduction */
.wal-topic-intro {
	max-width: 720px;
	margin-bottom: 48px;
}
.wal-topic-intro .kc-tag {
	margin-bottom: 12px;
}
.wal-topic-intro h1 {
	margin-bottom: 14px;
}
.wal-topic-desc {
	font-size: 16px;
	line-height: 1.7;
	color: #5f6368;
	margin-bottom: 24px;
}
.wal-topic-search {
	max-width: 480px;
}

/* Section label */
.wal-section-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #858585;
	margin-top: 56px;
	margin-bottom: 8px;
}
.wal-section-label:first-of-type {
	margin-top: 0;
}

/* Placeholder image */
.wal-placeholder-img {
	background: #f6f6f4;
}

/* Article Grid */
.wal-article-grid {
	margin-top: 20px;
}
.wal-article-card {
	text-decoration: none;
	color: inherit;
	padding: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 10px;
	transition: border-color .2s ease, transform .2s ease;
}
.wal-article-card:hover {
	border-color: #dd7400;
	transform: translateY(-2px);
}
.wal-article-card .kc-latest-img {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #f6f6f4;
	overflow: hidden;
}
.wal-article-card .kc-latest-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s ease;
}
.wal-article-card:hover .kc-latest-img img {
	transform: scale(1.03);
}
.wal-article-card .kc-latest-body {
	padding: 22px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.wal-article-card .kc-latest-body h3 {
	margin-top: 8px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: #171717;
}
.wal-article-card .kc-latest-body h3 a {
	color: inherit;
	text-decoration: none;
}
.wal-article-card .kc-latest-body h3 a:hover {
	color: #dd7400;
}
.wal-article-card .kc-latest-body p {
	margin-top: 6px;
	font-size: 14px;
	line-height: 1.6;
	color: #5f6368;
	flex: 1;
}

/* Article Meta */
.wal-article-meta {
	margin-top: 12px;
	font-size: 12px;
	color: #858585;
	display: flex;
	align-items: center;
	gap: 6px;
}

/* Pagination */
.wal-pagination {
	margin-top: 48px;
	display: flex;
	justify-content: center;
}
.wal-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	font-size: 14px;
	font-weight: 500;
	color: #171717;
	background: #fff;
	border: 1px solid #e4e4e1;
	border-radius: 8px;
	text-decoration: none;
	margin: 0 4px;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.wal-pagination .page-numbers:hover {
	border-color: #dd7400;
	color: #dd7400;
}
.wal-pagination .page-numbers.current {
	background: #dd7400;
	border-color: #dd7400;
	color: #fff;
	font-weight: 600;
}
.wal-pagination .page-numbers.dots {
	border: none;
	background: transparent;
}

/* Related Topics */
.wal-related-section {
	margin-top: 72px;
	padding-top: 48px;
	border-top: 1px solid #e4e4e1;
}
.wal-section-title {
	margin-bottom: 8px;
}
.wal-related-list {
	margin-top: 20px;
}

/* Empty state */
.wal-empty {
	padding: 60px 0;
	text-align: center;
	color: #858585;
	font-size: 16px;
}

/* ================================================================
   KNOWLEDGE ARCHIVE — Responsive
   ================================================================ */

@media (max-width: 1024px) {
	.wal-topic-archive {
		padding-top: 24px;
		padding-bottom: 64px;
	}
	.wal-topic-intro {
		max-width: 100%;
	}
	.wal-article-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.wal-topic-archive {
		padding-top: 20px;
		padding-bottom: 48px;
	}
	.wal-topic-breadcrumb {
		font-size: 12px;
		margin-bottom: 20px;
	}
	.wal-topic-desc {
		font-size: 15px;
	}
	.wal-article-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.wal-article-card .kc-latest-body {
		padding: 18px;
	}
	.wal-article-card .kc-latest-body h3 {
		font-size: 16px;
	}
	.wal-related-section {
		margin-top: 56px;
		padding-top: 36px;
	}
	.wal-related-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}
	.kc-browse-pill {
		justify-content: center;
		width: 100%;
	}
}

/* ================================================================
   TRUST & CERTIFICATIONS BLOCK — reusable for homepage + category pages
   ================================================================ */

.wal-cert-block {
	background: #fafafa;
	border-top: 1px solid #e4e4e7;
	border-bottom: 1px solid #e4e4e7;
	padding: 3rem 0;
}
.wal-cert-block--full {
	padding: 4rem 0;
}

.wal-cert-block__header {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 2rem;
}
.wal-cert-block__eyebrow {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #d97706;
	margin-bottom: 0.5rem;
}
.wal-cert-block__title {
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.025em;
	color: #18181b;
	margin: 0 0 0.75rem;
	line-height: 1.25;
}
@media (min-width: 640px) {
	.wal-cert-block__title {
		font-size: 1.875rem;
	}
}
.wal-cert-block__desc {
	font-size: 1rem;
	line-height: 1.625;
	color: #52525b;
	margin: 0;
}

.wal-cert-block__badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-bottom: 2rem;
}
.wal-badge {
	display: inline-flex;
	align-items: center;
	border-radius: 0.125rem;
	background: #fff;
	border: 1px solid #e4e4e7;
	padding: 0.5rem 1rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #71717a;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.wal-cert-block__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	max-width: 900px;
	margin: 0 auto 2rem;
}
.wal-cert-block--full .wal-cert-block__grid {
	grid-template-columns: repeat(3, 1fr);
	max-width: 960px;
}
.wal-cert-block__thumb {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	color: inherit;
	transition: transform 0.2s ease;
}
.wal-cert-block__thumb:hover {
	transform: translateY(-3px);
}
.wal-cert-block__thumb img {
	width: 100%;
	aspect-ratio: 0.706 / 1;
	object-fit: cover;
	object-position: center;
	border-radius: 0.5rem;
	border: 1px solid #e4e4e7;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
	transition: box-shadow 0.2s ease;
	background: #fff;
}
.wal-cert-block__thumb:hover img {
	box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
.wal-cert-block__label {
	font-size: 0.875rem;
	font-weight: 600;
	color: #27272a;
	text-align: center;
}


.wal-cert-block__footer {
	text-align: center;
}
.wal-cert-block__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #d97706;
	text-decoration: none;
	transition: color 0.2s ease;
}
.wal-cert-block__link:hover {
	color: #b45309;
}
.wal-cert-block__arrow {
	transition: transform 0.2s ease;
}
.wal-cert-block__link:hover .wal-cert-block__arrow {
	transform: translateX(3px);
}

@media (max-width: 1023px) {
	.wal-cert-block__grid,
	.wal-cert-block--full .wal-cert-block__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 1rem;
	}
}
@media (max-width: 767px) {
	.wal-cert-block__grid,
	.wal-cert-block--full .wal-cert-block__grid {
		grid-template-columns: repeat(2, 1fr);
		max-width: 400px;
		gap: 0.75rem;
	}
	.wal-cert-block {
		padding: 2rem 0;
	}
	.wal-cert-block--full {
		padding: 2.5rem 0;
	}
}

/* ================================================================
   CTA ↔ FOOTER DIVIDER  — homepage seamless dark zone
   ================================================================ */

.wal-cta-footer-divider {
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.50) 20%, rgba(255,255,255,0.50) 80%, transparent 100%);
	margin: 0;
}
/* Force breathing room between CTA and footer */
.bg-zinc-950 + .bg-zinc-950 .wal-cta-footer-divider,
section.bg-zinc-950 + div .wal-cta-footer-divider {
	margin-top: 20px;
	margin-bottom: 20px;
}


/* Four-column spec table override */
.tp-spec-4col { table-layout: fixed; }
.tp-spec-4col th,
.tp-spec-4col td { width: auto; padding: 14px 16px; border: 1px solid #e4e1da; vertical-align: top; }
.tp-spec-4col thead th { background: #faf9f6; border-bottom: 2px solid #1b1a17; font-weight: 700; text-transform: none; font-size: 13px; letter-spacing: .04em; white-space: nowrap; }
.tp-spec-4col tbody th { background: #fff; font-weight: 600; font-family: inherit; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); }
.tp-spec-4col tr:nth-child(even) td,
.tp-spec-4col tr:nth-child(even) th { background: #faf9f6; }
.tp-spec-4col tr:last-child th,
.tp-spec-4col tr:last-child td { border-bottom: 1px solid #e4e1da; }

/* ============================================================
   1b. Second-level fly-out for product-line submenus (2026-09-21)
   ============================================================ */
.wal-aegis-nav .sub-menu li {
	position: relative;
}
.wal-aegis-nav .sub-menu .sub-menu {
	top: -0.6rem;
	left: calc(100% + 0.5rem);
	transform: none;
}
.wal-aegis-nav .sub-menu li:hover > .sub-menu,
.wal-aegis-nav .sub-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
/* ============================================================
   Ridge-style filter bar (product category archives) 2026-09-21
   ============================================================ */
#topedc-filters {
	position: relative;
	z-index: 40;
}

.topedc-fg-toggle {
	cursor: pointer;
	user-select: none;
}

.topedc-fg-toggle svg {
	transition: transform 0.15s ease;
}

.topedc-fg-menu {
	max-height: 320px;
	overflow-y: auto;
}

.topedc-fg-menu.v-hidden,
.v-hidden {
	display: none;
}

.topedc-swatch {
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.topedc-swatch:hover {
	transform: scale(1.08);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

@media (max-width: 767px) {
	#topedc-filters .flex-wrap {
		gap: 0.75rem 1.25rem;
	}

	#topedc-filters .topedc-fg {
		width: 100%;
	}

	.topedc-fg-menu {
		left: 0;
		right: 0;
		width: 100%;
		min-width: 0;
		border-left: none;
		border-right: none;
		border-radius: 0;
		box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
	}
}
/* ============================================================
   10. Regression fix 2026-09-29: page.php shell container
   Must override Tailwind aegis.css `.container` (breakpoint
   max-width 40rem+ / no margin auto) that left-aligned content.
   Theme design: 1400px centered, matching main.css --container.
   ============================================================ */
.container.wal-page {
	width: 100%;
	max-width: var(--container, 1400px);
	margin-left: auto;
	margin-right: auto;
}
/* ============================================================
   Custom Wallets 容器层级修复 (page-id-12/24/25/26) — 2026-09-29
   根因：page.php 外壳 .container.wal-page max-width:1400px +
   wp-custom-css .wal-page padding 40px*2 -> 整个 CW 树被锁进
   单一 1320px 内容区，elementor-container 1320 把本应 1520px
   的 tp-hero-inner 及卡片/流程/CTA 全部压回，宽窄层级失效。
   修复：仅解除 CW 四页的 wal-page 容器锁与强制 gutter，由组件
   自带 var(--gutter) 呼吸接管；FAQ/RFQ 明确为 880/860 居中窄
   层级。作用域严格限定 body.page-id-12/24/25/26，不触及其他页。
   ============================================================ */
body.page-id-12 .container.wal-page,
body.page-id-24 .container.wal-page,
body.page-id-25 .container.wal-page,
body.page-id-26 .container.wal-page { max-width: none; }

body.page-id-12 .wal-page,
body.page-id-24 .wal-page,
body.page-id-25 .wal-page,
body.page-id-26 .wal-page { padding-left: 0 !important; padding-right: 0 !important; }

body.page-id-12 .tp-section,
body.page-id-24 .tp-section,
body.page-id-25 .tp-section,
body.page-id-26 .tp-section { padding-left: var(--gutter); padding-right: var(--gutter); }

body.page-id-12 .tp-faq,
body.page-id-24 .tp-faq,
body.page-id-25 .tp-faq,
body.page-id-26 .tp-faq { max-width: 880px; margin-left: auto; margin-right: auto; }

body.page-id-12 .tp-rfq,
body.page-id-24 .tp-rfq,
body.page-id-25 .tp-rfq,
body.page-id-26 .tp-rfq { max-width: 860px; margin-left: auto; margin-right: auto; }

/* ============================================================
   Full-bleed breakout primitive (Phase 4-A / Option A) — 2026-09-29
   General, reusable layout primitive: lets full-width sections
   (.tp-hero, .tp-cta-band) break out of the content shell when
   they are rendered inside .wal-page-content (e.g. Elementor).
   - Desktop: spans the viewport; inner .tp-hero-inner keeps its
     1520px (--container-wide) centered design.
   - Content shell (.wal-page, 1400px) is untouched — normal body
     content keeps its 1400px shell.
   - No page-id, no slug, no per-page rule — reusable on any page.
   ============================================================ */
.wal-page-content .tp-hero,
.wal-page-content .tp-cta-band {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Required companion of the breakout: prevent the 100vw rule from
   creating a horizontal scrollbar (100vw includes the scrollbar).
   `clip` does not create a scroll container, so position:sticky
   inside main keeps working. Inert on pages without overflow. */
main { overflow-x: clip; }

/* ---- Visual theme alignment: generic page template H1 (page title) ---- */
h1.wal-page-title { font-size: var(--fs-h1); line-height: 1.06; font-weight: 800; letter-spacing: -0.035em; color: #18181b; margin: 0 0 8px; }

/* ---- Full-bleed page-type: title handled by the Elementor hero, suppress the generic template H1 ---- */
body.page-id-12 .wal-page-title { display: none; }

/* ---- Full-bleed page-type (24/25/26): title handled by the Elementor hero, suppress the generic template H1 (duplicate-H1 + orphan-title fix) ---- */
body.page-id-24 .wal-page-title,
body.page-id-25 .wal-page-title,
body.page-id-26 .wal-page-title { display: none; }

/* ---- Font unification: activate self-hosted theme fonts (Manrope variable + IBM Plex Mono) ----
   fonts.css was never enqueued; Tailwind preflight was supplying ui-sans-serif to html/body.
   Registering @font-face + body rule here (aegis-wp.css is the last-loaded theme stylesheet). */
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('../fonts/manrope-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'IBM Plex Mono';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/ibmplexmono-400-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'IBM Plex Mono';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/ibmplexmono-500-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'IBM Plex Mono';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/ibmplexmono-600-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body {
	font-family: 'Manrope', var(--f-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Elementor Kit defaults to Roboto for headings; unify all Elementor headings to theme Manrope. */
.elementor-heading-title {
	font-family: 'Manrope', var(--f-sans);
}

/* Elementor Kit defaults global typography variables to Roboto; override them to the
   theme Manrope so every Elementor heading/text falls back to Manrope (root-cause fix
   for the Roboto leak; loaded after elementor post CSS, same specificity, wins by order). */
.elementor-kit-558 {
	--e-global-typography-primary-font-family: 'Manrope';
	--e-global-typography-secondary-font-family: 'Manrope';
	--e-global-typography-text-font-family: 'Manrope';
	--e-global-typography-accent-font-family: 'Manrope';
}

/* High-specificity override: every Elementor heading uses theme Manrope regardless of
   Elementor kit/post CSS load order (kit CSS loads AFTER aegis-wp.css, so same-specificity
   rules there win; this rule outranks by specificity instead of order). */
body .elementor .elementor-widget-heading .elementor-heading-title {
	font-family: 'Manrope', var(--f-sans);
}

/* Unify Elementor Kit global palette to the theme tokens (zinc grays + amber accent)
   instead of Elementor defaults (#6ec1e4 primary / #61ce70 accent / #7a7a7a text).
   Headings/text without an explicit color on any page then follow the theme palette. */
body.elementor-kit-558 {
	--e-global-color-primary: #18181b;
	--e-global-color-secondary: #52525b;
	--e-global-color-text: #3f3f46;
	--e-global-color-accent: #f59e0b;
	--e-global-typography-primary-font-family: 'Manrope';
	--e-global-typography-secondary-font-family: 'Manrope';
	--e-global-typography-text-font-family: 'Manrope';
	--e-global-typography-accent-font-family: 'Manrope';
}


/* Dark sections (.tp-dark): force readable light text on near-black backgrounds */
body .elementor-section.tp-dark .elementor-widget-heading .elementor-heading-title{color:#fafafa;}
body .elementor-section.tp-dark .elementor-widget-text-editor{color:#d4d4d8;}
body .elementor-section.tp-dark .elementor-widget-heading .elementor-heading-title a{color:#fafafa;}

/* Dark hero/CTA sections: readable light text on near-black backgrounds (element-id selectors) */
body.page-id-15 .elementor-element-00008 .elementor-heading-title,body.page-id-15 .elementor-element-0008a .elementor-heading-title,body.page-id-12 .elementor-element-0004e .elementor-heading-title,body.page-id-24 .elementor-element-0007c .elementor-heading-title,body.page-id-24 .elementor-element-000ae .elementor-heading-title,body.page-id-25 .elementor-element-00042 .elementor-heading-title,body.page-id-25 .elementor-element-00074 .elementor-heading-title,body.page-id-26 .elementor-element-00008 .elementor-heading-title,body.page-id-26 .elementor-element-0003a .elementor-heading-title,body.page-id-352 .elementor-element-c1de899 .elementor-heading-title{color:#fafafa;}
body.page-id-15 .elementor-element-00008 .elementor-widget-text-editor,body.page-id-15 .elementor-element-0008a .elementor-widget-text-editor,body.page-id-12 .elementor-element-0004e .elementor-widget-text-editor,body.page-id-24 .elementor-element-0007c .elementor-widget-text-editor,body.page-id-24 .elementor-element-000ae .elementor-widget-text-editor,body.page-id-25 .elementor-element-00042 .elementor-widget-text-editor,body.page-id-25 .elementor-element-00074 .elementor-widget-text-editor,body.page-id-26 .elementor-element-00008 .elementor-widget-text-editor,body.page-id-26 .elementor-element-0003a .elementor-widget-text-editor,body.page-id-352 .elementor-element-c1de899 .elementor-widget-text-editor{color:#d4d4d8;}

/* About card grids: equal height + hover affordance */.about-card{transition:box-shadow .25s ease,transform .25s ease,height .25s ease;height:100%;box-sizing:border-box;}
@media(hover:hover){.about-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.07);transform:translateY(-2px);}}

/* About hero: enlarge factory image column (was ~25%, too small) */
@media(min-width:768px){body .elementor-element-00008 .elementor-col-55{flex:0 0 auto;width:58%;}body .elementor-element-00008 .elementor-col-45{flex:0 0 auto;width:42%;}body .elementor-element-00008 figure img{width:100%;height:auto;}}

/* cw(12) hero buttons: elementor text_color not emitted to generated CSS, so text fell back to default white -> enforce intended dark text */
body.page-id-12 .elementor-element-00003 .elementor-button{color:#1c1917;}
body.page-id-12 .elementor-element-00004 .elementor-button{color:#18181b;}

/* ---- Elementor button text-color fallback (generated CSS often drops text_color -> default white fuses on light bg) ---- */
/* default: dark text (amber primary buttons + ghost buttons on light sections) */
.elementor-widget-button .elementor-button{color:#1c1917;}
/* dark CTA sections: buttons fall back to light text for readability on near-black */
body.page-id-15 .elementor-element-00008 .elementor-button,body.page-id-15 .elementor-element-0008a .elementor-button,body.page-id-12 .elementor-element-0004e .elementor-button,body.page-id-24 .elementor-element-0007c .elementor-button,body.page-id-24 .elementor-element-000ae .elementor-button,body.page-id-25 .elementor-element-00042 .elementor-button,body.page-id-25 .elementor-element-00074 .elementor-button,body.page-id-26 .elementor-element-00008 .elementor-button,body.page-id-26 .elementor-element-0003a .elementor-button,body.page-id-352 .elementor-element-c1de899 .elementor-button{color:#fafafa;}
/* amber primary buttons keep brand dark text even inside dark sections */
body.page-id-352 .elementor-element-edb295b .elementor-button{color:#1c1917;}

/* case-studies(352) secondary CTA: true ghost outline button — elementor_data omitted transparent bg (falls back to accent), and post-352.css set dark text (#1a1a1a) that would fuse on dark bg. Enforce outline + light text. */
body.page-id-352 .elementor-element-c1de899 .elementor-widget-button.elementor-element-64cf97a .elementor-button{background-color:rgba(0,0,0,0);color:#fafafa;border-color:#52525b;}
/* ---- custom-wallets(12) visual anchors & interaction polish ---- */
/* H2 section titles get a brand anchor line */
body.page-id-12 .elementor-element-00020 .elementor-heading-title,body.page-id-12 .elementor-element-00027 .elementor-heading-title,body.page-id-12 .elementor-element-0002f .elementor-heading-title,body.page-id-12 .elementor-element-00035 .elementor-heading-title,body.page-id-12 .elementor-element-0003b .elementor-heading-title,body.page-id-12 .elementor-element-00041 .elementor-heading-title,body.page-id-12 .elementor-element-00047 .elementor-heading-title,body.page-id-12 .elementor-element-00057 .elementor-heading-title{padding-top:14px;}
body.page-id-12 .elementor-element-00020 .elementor-heading-title::before,body.page-id-12 .elementor-element-00027 .elementor-heading-title::before,body.page-id-12 .elementor-element-0002f .elementor-heading-title::before,body.page-id-12 .elementor-element-00035 .elementor-heading-title::before,body.page-id-12 .elementor-element-0003b .elementor-heading-title::before,body.page-id-12 .elementor-element-00041 .elementor-heading-title::before,body.page-id-12 .elementor-element-00047 .elementor-heading-title::before,body.page-id-12 .elementor-element-00057 .elementor-heading-title::before{content:"";display:block;width:38px;height:3px;border-radius:2px;background:#f59e0b;margin-bottom:16px;}
/* FAQ accordion hover / open states */
body.page-id-12 .elementor-element-00045 details{transition:border-color .2s,box-shadow .2s;}
body.page-id-12 .elementor-element-00045 details:hover{border-color:#f59e0b;}
body.page-id-12 .elementor-element-00045 summary{cursor:pointer;transition:color .2s;}
body.page-id-12 .elementor-element-00045 summary:hover{color:#b45309;}
body.page-id-12 .elementor-element-00045 details[open]{border-color:#f59e0b;box-shadow:0 2px 12px rgba(0,0,0,.06);}
body.page-id-12 .elementor-element-00045 details[open] summary{color:#b45309;}
body.page-id-12 .elementor-element-00045 summary span{display:inline-block;transition:transform .25s;}
body.page-id-12 .elementor-element-00045 details[open] summary span{transform:rotate(45deg);}
/* elementor buttons hover uniformity (page scope) */
body.page-id-12 .elementor-button{transition:filter .2s,transform .2s;}
body.page-id-12 .elementor-button:hover{filter:brightness(.95);}
/* in-text links hover brand amber (exclude buttons) */
body.page-id-12 .elementor-widget-text-editor a:not(.elementor-button):hover,body.page-id-12 .elementor-widget-heading a:not(.elementor-button):hover{color:#b45309;}
/* bottom dark CTA breathing room */
body.page-id-12 .elementor-element-0004e .elementor-container{padding:0 20px;}
/* next-step cards hover */
body.page-id-12 .elementor-element-00055 a{transition:transform .2s,box-shadow .2s,border-color .2s;}
body.page-id-12 .elementor-element-00055 a:hover{border-color:#f59e0b;box-shadow:0 3px 12px rgba(0,0,0,.07);transform:translateY(-2px);}




/* ============================================================
   manufacturing(13) — Elementor conversion (2026-09-30, v3)
   Full-bleed via template $wal_elem_mode branch; geometry follows
   original PHP/Tailwind template 1:1 (max-w-7xl=1280, rounded-sm,
   aspect-[4/3], zinc-600 body, amber-600 accents).
   Title/body sections are separate top-sections (original structure:
   heading block + grid below), never col(100)+col(33) in one row.
   ============================================================ */

/* --- hero + CTA dark sections --- */
body.page-id-13 .p13-hero,
body.page-id-13 .p13-cta{display:flex;align-items:center;}
body.page-id-13 .p13-hero{min-height:46vh;}

/* dark-section heading/body fallback */
body.page-id-13 .p13-hero .elementor-heading-title,
body.page-id-13 .p13-cta .elementor-heading-title{color:#fafafa;}
body.page-id-13 .p13-hero .elementor-widget-text-editor,
body.page-id-13 .p13-cta .elementor-widget-text-editor{color:#d4d4d8;}

/* buttons: original template specs - rounded-sm px-5 py-3 text-sm font-semibold uppercase tracking-wide */
body.page-id-13 .p13-hero .elementor-button,
body.page-id-13 .p13-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-13 .p13-hero .elementor-widget-button:first-of-type .elementor-button,
body.page-id-13 .p13-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-13 .p13-hero .elementor-widget-button:first-of-type .elementor-button:hover,
body.page-id-13 .p13-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-13 .p13-hero .elementor-widget-button:last-of-type .elementor-button,
body.page-id-13 .p13-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-13 .p13-hero .elementor-widget-button:last-of-type .elementor-button:hover,
body.page-id-13 .p13-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}

/* --- sticky section nav (mfg-tabs): border-b zinc-200, py-3 px-4 text-sm --- */
.mfg-tabs{position:sticky;top:0;z-index:40;display:flex;gap:2px;overflow-x:auto;background:#fff;border-bottom:1px solid #e4e4e7;margin:0;padding:0;}
body.admin-bar .mfg-tabs{top:32px;}
.mfg-tab{white-space:nowrap;padding:12px 16px;font-size:14px;font-weight:600;color:#52525b;text-decoration:none;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.mfg-tab:hover{color:#18181b;border-bottom-color:#d4d4d8;}
.mfg-tab-active{color:#18181b;border-bottom-color:#f59e0b;}

/* --- decision / step / packaging cards: rounded-sm border-zinc-200 bg-white; row sections -> one card per col -> height:100% = row equal height (original grid) --- */
body.page-id-13 .p13-s1-row .elementor-inner-section,
body.page-id-13 .p13-s3-row .elementor-inner-section,
body.page-id-13 .p13-s5-row .elementor-inner-section{border:1px solid #e4e4e7;border-radius:2px;background:#fff;overflow:hidden;height:100%;}

/* card inner padding p-6 */
body.page-id-13 .p13-s1-row .elementor-inner-section .elementor-widget-wrap,
body.page-id-13 .p13-s3-row .elementor-inner-section .elementor-widget-wrap,
body.page-id-13 .p13-s5-row .elementor-inner-section .elementor-widget-wrap{padding:24px;}

/* step cards: image flush to top, aspect-[4/3] cover (original template) */
body.page-id-13 .p13-s3-row .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-13 .p13-s3-row .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}

/* --- stats (icon-box): rounded-sm border, centered; number text-3xl font-bold amber-600 --- */
body.page-id-13 .p13-s2-row .elementor-widget-icon-box{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-13 .p13-s2-row .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-13 .p13-s2-row .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}

/* --- finishing table (border-zinc-300 header / divide-zinc-200 rows) --- */
.mfg-table-wrap{overflow-x:auto;background:#fff;margin-top:28px;}
.mfg-table{width:100%;min-width:640px;border-collapse:collapse;font-size:14px;text-align:left;}
.mfg-table th{background:#f4f4f5;padding:12px 16px;font-weight:600;color:#18181b;border-bottom:1px solid #d4d4d8;font-size:14px;}
.mfg-table td{padding:12px 16px;color:#52525b;border-bottom:1px solid #e4e4e7;}
.mfg-table tbody tr:last-child td{border-bottom:none;}
.mfg-table .tf{font-weight:600;color:#18181b;}

/* --- FAQ accordion (details-like: rounded-sm border, summary px-6 py-4 text-sm) --- */
body.page-id-13 .p13-s6-faq .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-13 .p13-s6-faq .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-13 .p13-s6-faq .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-13 .p13-s6-faq .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}

/* --- CTA grid-pattern backdrop (original bg-zinc-950 + grid overlay) --- */
body.page-id-13 .p13-cta{position:relative;}
body.page-id-13 .p13-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);
  background-size:48px 48px;}

/* --- card grid columns: lock equal widths (Elementor 4.2.4 flex-basis unreliable) --- */
@media (min-width:768px){
  body.page-id-13 .p13-s1-row > .elementor-container > .elementor-column,
  body.page-id-13 .p13-s3-row > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}
  body.page-id-13 .p13-s2-row > .elementor-container > .elementor-column,
  body.page-id-13 .p13-s5-row > .elementor-container > .elementor-column{flex:0 0 25%;max-width:25%;}
  /* dual-column sections: 62/38 (CTA), 38/62 (factory-to-product) */
  body.page-id-13 .p13-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
  body.page-id-13 .p13-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
  body.page-id-13 .p13-s7-s9 > .elementor-container > .elementor-column:first-child{flex:0 0 38%;max-width:38%;}
  body.page-id-13 .p13-s7-s9 > .elementor-container > .elementor-column:last-child{flex:0 0 62%;max-width:62%;}
}

/* --- CTA: keep normal two-col (text 62 / buttons 38); buttons stack vertically inside col --- */
body.page-id-13 .p13-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-13 .p13-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (max-width:767px){
  body.page-id-13 .p13-cta .elementor-widget-button{width:100%;}
  body.page-id-13 .p13-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}
}

/* --- section rhythm: column gaps match original grid gaps --- */
body.page-id-13 .p13-s1-row{--e-column-gap:16px;}
body.page-id-13 .p13-s2-row{--e-column-gap:16px;}
body.page-id-13 .p13-s3-row{--e-column-gap:24px;}
body.page-id-13 .p13-s5-row{--e-column-gap:24px;}

/* --- stat fade-in (light, optional) --- */
body.page-id-13 .p13-s2-row .elementor-widget-icon-box{animation:walStatIn .6s ease both;}
@keyframes walStatIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* --- mobile buttons full width --- */
@media (max-width:767px){
  body.page-id-13 .p13-hero .elementor-widget-button,
  body.page-id-13 .p13-cta .elementor-widget-button{width:100%;}
  body.page-id-13 .p13-hero .elementor-widget-button .elementor-button,
  body.page-id-13 .p13-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}
  body.page-id-13 .p13-hero .elementor-widget-button,
  body.page-id-13 .p13-cta .elementor-widget-button{margin-bottom:10px;}
}

/* ============================================================
   Global container width — unify all Elementor boxed sections to
   1280px (matches original PHP max-w-7xl across the site).
   ============================================================ */
.elementor-section-boxed > .elementor-container{max-width:1280px;}
@media (max-width:1024px){.elementor-section-boxed > .elementor-container{max-width:1024px;}}
@media (max-width:767px){.elementor-section-boxed > .elementor-container{max-width:767px;}}

/* ===== Manufacturing sub-pages: process/materials/quality-control/packaging/oem-odm/prototyping (Elementor) ===== */
body.page-id-28 .p28-tabs .mfg-tabs{border-top:1px solid #e4e4e7;}
body.page-id-28 .p28-hero,body.page-id-28 .p28-cta{display:flex;align-items:center;}
body.page-id-28 .p28-hero > .elementor-container{width:100%;}
body.page-id-28 .p28-hero{min-height:46vh;}
body.page-id-28 .p28-hero .elementor-heading-title,body.page-id-28 .p28-cta .elementor-heading-title{color:#fafafa;}
body.page-id-28 .p28-hero .elementor-widget-text-editor,body.page-id-28 .p28-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-28 .p28-hero .elementor-button,body.page-id-28 .p28-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-28 .p28-hero .elementor-widget-button:first-of-type .elementor-button,body.page-id-28 .p28-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-28 .p28-hero .elementor-widget-button:first-of-type .elementor-button:hover,body.page-id-28 .p28-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-28 .p28-hero .elementor-widget-button:last-of-type .elementor-button,body.page-id-28 .p28-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-28 .p28-hero .elementor-widget-button:last-of-type .elementor-button:hover,body.page-id-28 .p28-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}
body.page-id-28 [class*="p28-b"][class*="-card"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px;height:100%;}
body.page-id-28 [class*="p28-b"][class*="-card"] .elementor-heading-title{margin-bottom:8px;}
body.page-id-28 [class*="p28-b"][class*="-card"] .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-28 [class*="p28-b"][class*="-card"] .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}
body.page-id-28 [class*="p28-b"][class*="-stat"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-28 [class*="p28-b"][class*="-stat"] .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-28 [class*="p28-b"][class*="-stat"] .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}
body.page-id-28 .p28-badge{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:9999px;background:#fef3c7;color:#b45309;font-weight:700;font-size:18px;margin-bottom:8px;}
body.page-id-28 [class*="p28-b"][class*="-faq"] .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-28 [class*="p28-b"][class*="-faq"] .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-28 [class*="p28-b"][class*="-faq"] .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-28 [class*="p28-b"][class*="-faq"] .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}
body.page-id-28 .p28-cta{position:relative;}
body.page-id-28 .p28-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:48px 48px;}
body.page-id-28 .p28-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-28 .p28-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (min-width:1025px){body.page-id-28 .p28-b0-row0 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b2-row0 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b2-row1 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b3-row0 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b4-row0 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b5-row0 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b7-row0 > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}}
@media (min-width:1025px){body.page-id-28 .p28-b0-row1 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b4-row1 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b6-row0 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b6-row1 > .elementor-container > .elementor-column,
body.page-id-28 .p28-b8-row0 > .elementor-container > .elementor-column{flex:0 0 50%;max-width:50%;}}
body.page-id-28 .p28-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
body.page-id-28 .p28-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
@media (max-width:767px){body.page-id-28 .p28-hero .elementor-widget-button,body.page-id-28 .p28-cta .elementor-widget-button{width:100%;margin-bottom:10px;}body.page-id-28 .p28-hero .elementor-widget-button .elementor-button,body.page-id-28 .p28-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}}

body.page-id-29 .p29-tabs .mfg-tabs{border-top:1px solid #e4e4e7;}
body.page-id-29 .p29-hero,body.page-id-29 .p29-cta{display:flex;align-items:center;}
body.page-id-29 .p29-hero > .elementor-container{width:100%;}
body.page-id-29 .p29-hero{min-height:46vh;}
body.page-id-29 .p29-hero .elementor-heading-title,body.page-id-29 .p29-cta .elementor-heading-title{color:#fafafa;}
body.page-id-29 .p29-hero .elementor-widget-text-editor,body.page-id-29 .p29-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-29 .p29-hero .elementor-button,body.page-id-29 .p29-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-29 .p29-hero .elementor-widget-button:first-of-type .elementor-button,body.page-id-29 .p29-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-29 .p29-hero .elementor-widget-button:first-of-type .elementor-button:hover,body.page-id-29 .p29-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-29 .p29-hero .elementor-widget-button:last-of-type .elementor-button,body.page-id-29 .p29-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-29 .p29-hero .elementor-widget-button:last-of-type .elementor-button:hover,body.page-id-29 .p29-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}
body.page-id-29 [class*="p29-b"][class*="-card"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px;height:100%;}
body.page-id-29 [class*="p29-b"][class*="-card"] .elementor-heading-title{margin-bottom:8px;}
body.page-id-29 [class*="p29-b"][class*="-card"] .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-29 [class*="p29-b"][class*="-card"] .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}
body.page-id-29 [class*="p29-b"][class*="-stat"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-29 [class*="p29-b"][class*="-stat"] .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-29 [class*="p29-b"][class*="-stat"] .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}
body.page-id-29 .p29-badge{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:9999px;background:#fef3c7;color:#b45309;font-weight:700;font-size:18px;margin-bottom:8px;}
body.page-id-29 [class*="p29-b"][class*="-faq"] .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-29 [class*="p29-b"][class*="-faq"] .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-29 [class*="p29-b"][class*="-faq"] .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-29 [class*="p29-b"][class*="-faq"] .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}
body.page-id-29 .p29-cta{position:relative;}
body.page-id-29 .p29-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:48px 48px;}
body.page-id-29 .p29-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-29 .p29-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (min-width:1025px){body.page-id-29 .p29-b1-row0 > .elementor-container > .elementor-column,
body.page-id-29 .p29-b6-row0 > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}}
@media (min-width:1025px){body.page-id-29 .p29-b3-row0 > .elementor-container > .elementor-column{flex:0 0 20%;max-width:20%;}}
@media (min-width:1025px){body.page-id-29 .p29-b5-row0 > .elementor-container > .elementor-column,
body.page-id-29 .p29-b5-row1 > .elementor-container > .elementor-column{flex:0 0 50%;max-width:50%;}}
body.page-id-29 .p29-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
body.page-id-29 .p29-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
@media (max-width:767px){body.page-id-29 .p29-hero .elementor-widget-button,body.page-id-29 .p29-cta .elementor-widget-button{width:100%;margin-bottom:10px;}body.page-id-29 .p29-hero .elementor-widget-button .elementor-button,body.page-id-29 .p29-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}}

body.page-id-30 .p30-tabs .mfg-tabs{border-top:1px solid #e4e4e7;}
body.page-id-30 .p30-hero,body.page-id-30 .p30-cta{display:flex;align-items:center;}
body.page-id-30 .p30-hero > .elementor-container{width:100%;}
body.page-id-30 .p30-hero{min-height:46vh;}
body.page-id-30 .p30-hero .elementor-heading-title,body.page-id-30 .p30-cta .elementor-heading-title{color:#fafafa;}
body.page-id-30 .p30-hero .elementor-widget-text-editor,body.page-id-30 .p30-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-30 .p30-hero .elementor-button,body.page-id-30 .p30-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-30 .p30-hero .elementor-widget-button:first-of-type .elementor-button,body.page-id-30 .p30-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-30 .p30-hero .elementor-widget-button:first-of-type .elementor-button:hover,body.page-id-30 .p30-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-30 .p30-hero .elementor-widget-button:last-of-type .elementor-button,body.page-id-30 .p30-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-30 .p30-hero .elementor-widget-button:last-of-type .elementor-button:hover,body.page-id-30 .p30-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}
body.page-id-30 [class*="p30-b"][class*="-card"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px;height:100%;}
body.page-id-30 [class*="p30-b"][class*="-card"] .elementor-heading-title{margin-bottom:8px;}
body.page-id-30 [class*="p30-b"][class*="-card"] .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-30 [class*="p30-b"][class*="-card"] .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}
body.page-id-30 [class*="p30-b"][class*="-stat"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-30 [class*="p30-b"][class*="-stat"] .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-30 [class*="p30-b"][class*="-stat"] .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}
body.page-id-30 .p30-badge{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:9999px;background:#fef3c7;color:#b45309;font-weight:700;font-size:18px;margin-bottom:8px;}
body.page-id-30 [class*="p30-b"][class*="-faq"] .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-30 [class*="p30-b"][class*="-faq"] .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-30 [class*="p30-b"][class*="-faq"] .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-30 [class*="p30-b"][class*="-faq"] .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}
body.page-id-30 .p30-cta{position:relative;}
body.page-id-30 .p30-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:48px 48px;}
body.page-id-30 .p30-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-30 .p30-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (min-width:1025px){body.page-id-30 .p30-b0-row0 > .elementor-container > .elementor-column,
body.page-id-30 .p30-b1-row0 > .elementor-container > .elementor-column,
body.page-id-30 .p30-b1-row1 > .elementor-container > .elementor-column,
body.page-id-30 .p30-b2-row0 > .elementor-container > .elementor-column,
body.page-id-30 .p30-b2-row1 > .elementor-container > .elementor-column,
body.page-id-30 .p30-b4-row0 > .elementor-container > .elementor-column,
body.page-id-30 .p30-b5-row0 > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}}
@media (min-width:1025px){body.page-id-30 .p30-b0-row1 > .elementor-container > .elementor-column{flex:0 0 50%;max-width:50%;}}
@media (min-width:1025px){body.page-id-30 .p30-b3-row0 > .elementor-container > .elementor-column{flex:0 0 25%;max-width:25%;}}
body.page-id-30 .p30-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
body.page-id-30 .p30-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
@media (max-width:767px){body.page-id-30 .p30-hero .elementor-widget-button,body.page-id-30 .p30-cta .elementor-widget-button{width:100%;margin-bottom:10px;}body.page-id-30 .p30-hero .elementor-widget-button .elementor-button,body.page-id-30 .p30-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}}

body.page-id-31 .p31-tabs .mfg-tabs{border-top:1px solid #e4e4e7;}
body.page-id-31 .p31-hero,body.page-id-31 .p31-cta{display:flex;align-items:center;}
body.page-id-31 .p31-hero > .elementor-container{width:100%;}
body.page-id-31 .p31-hero{min-height:46vh;}
body.page-id-31 .p31-hero .elementor-heading-title,body.page-id-31 .p31-cta .elementor-heading-title{color:#fafafa;}
body.page-id-31 .p31-hero .elementor-widget-text-editor,body.page-id-31 .p31-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-31 .p31-hero .elementor-button,body.page-id-31 .p31-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-31 .p31-hero .elementor-widget-button:first-of-type .elementor-button,body.page-id-31 .p31-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-31 .p31-hero .elementor-widget-button:first-of-type .elementor-button:hover,body.page-id-31 .p31-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-31 .p31-hero .elementor-widget-button:last-of-type .elementor-button,body.page-id-31 .p31-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-31 .p31-hero .elementor-widget-button:last-of-type .elementor-button:hover,body.page-id-31 .p31-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}
body.page-id-31 [class*="p31-b"][class*="-card"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px;height:100%;}
body.page-id-31 [class*="p31-b"][class*="-card"] .elementor-heading-title{margin-bottom:8px;}
body.page-id-31 [class*="p31-b"][class*="-card"] .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-31 [class*="p31-b"][class*="-card"] .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}
body.page-id-31 [class*="p31-b"][class*="-stat"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-31 [class*="p31-b"][class*="-stat"] .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-31 [class*="p31-b"][class*="-stat"] .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}
body.page-id-31 .p31-badge{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:9999px;background:#fef3c7;color:#b45309;font-weight:700;font-size:18px;margin-bottom:8px;}
body.page-id-31 [class*="p31-b"][class*="-faq"] .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-31 [class*="p31-b"][class*="-faq"] .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-31 [class*="p31-b"][class*="-faq"] .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-31 [class*="p31-b"][class*="-faq"] .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}
body.page-id-31 .p31-cta{position:relative;}
body.page-id-31 .p31-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:48px 48px;}
body.page-id-31 .p31-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-31 .p31-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (min-width:1025px){body.page-id-31 .p31-b1-row0 > .elementor-container > .elementor-column,
body.page-id-31 .p31-b1-row1 > .elementor-container > .elementor-column,
body.page-id-31 .p31-b3-row0 > .elementor-container > .elementor-column,
body.page-id-31 .p31-b3-row1 > .elementor-container > .elementor-column{flex:0 0 50%;max-width:50%;}}
@media (min-width:1025px){body.page-id-31 .p31-b2-row0 > .elementor-container > .elementor-column,
body.page-id-31 .p31-b2-row1 > .elementor-container > .elementor-column,
body.page-id-31 .p31-b4-row0 > .elementor-container > .elementor-column,
body.page-id-31 .p31-b4-row1 > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}}
body.page-id-31 .p31-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
body.page-id-31 .p31-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
@media (max-width:767px){body.page-id-31 .p31-hero .elementor-widget-button,body.page-id-31 .p31-cta .elementor-widget-button{width:100%;margin-bottom:10px;}body.page-id-31 .p31-hero .elementor-widget-button .elementor-button,body.page-id-31 .p31-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}}

body.page-id-177 .p177-tabs .mfg-tabs{border-top:1px solid #e4e4e7;}
body.page-id-177 .p177-hero,body.page-id-177 .p177-cta{display:flex;align-items:center;}
body.page-id-177 .p177-hero > .elementor-container{width:100%;}
body.page-id-177 .p177-hero{min-height:46vh;}
body.page-id-177 .p177-hero .elementor-heading-title,body.page-id-177 .p177-cta .elementor-heading-title{color:#fafafa;}
body.page-id-177 .p177-hero .elementor-widget-text-editor,body.page-id-177 .p177-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-177 .p177-hero .elementor-button,body.page-id-177 .p177-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-177 .p177-hero .elementor-widget-button:first-of-type .elementor-button,body.page-id-177 .p177-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-177 .p177-hero .elementor-widget-button:first-of-type .elementor-button:hover,body.page-id-177 .p177-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-177 .p177-hero .elementor-widget-button:last-of-type .elementor-button,body.page-id-177 .p177-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-177 .p177-hero .elementor-widget-button:last-of-type .elementor-button:hover,body.page-id-177 .p177-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}
body.page-id-177 [class*="p177-b"][class*="-card"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px;height:100%;}
body.page-id-177 [class*="p177-b"][class*="-card"] .elementor-heading-title{margin-bottom:8px;}
body.page-id-177 [class*="p177-b"][class*="-card"] .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-177 [class*="p177-b"][class*="-card"] .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}
body.page-id-177 [class*="p177-b"][class*="-stat"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-177 [class*="p177-b"][class*="-stat"] .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-177 [class*="p177-b"][class*="-stat"] .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}
body.page-id-177 .p177-badge{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:9999px;background:#fef3c7;color:#b45309;font-weight:700;font-size:18px;margin-bottom:8px;}
body.page-id-177 [class*="p177-b"][class*="-faq"] .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-177 [class*="p177-b"][class*="-faq"] .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-177 [class*="p177-b"][class*="-faq"] .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-177 [class*="p177-b"][class*="-faq"] .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}
body.page-id-177 .p177-cta{position:relative;}
body.page-id-177 .p177-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:48px 48px;}
body.page-id-177 .p177-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-177 .p177-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (min-width:1025px){body.page-id-177 .p177-b2-row0 > .elementor-container > .elementor-column,
body.page-id-177 .p177-b2-row1 > .elementor-container > .elementor-column,
body.page-id-177 .p177-b6-row0 > .elementor-container > .elementor-column{flex:0 0 25%;max-width:25%;}}
@media (min-width:1025px){body.page-id-177 .p177-b3-row0 > .elementor-container > .elementor-column,
body.page-id-177 .p177-b3-row1 > .elementor-container > .elementor-column,
body.page-id-177 .p177-b4-row0 > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}}
@media (min-width:1025px){body.page-id-177 .p177-b5-row0 > .elementor-container > .elementor-column,
body.page-id-177 .p177-b5-row1 > .elementor-container > .elementor-column,
body.page-id-177 .p177-b7-row0 > .elementor-container > .elementor-column{flex:0 0 50%;max-width:50%;}}
body.page-id-177 .p177-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
body.page-id-177 .p177-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
@media (max-width:767px){body.page-id-177 .p177-hero .elementor-widget-button,body.page-id-177 .p177-cta .elementor-widget-button{width:100%;margin-bottom:10px;}body.page-id-177 .p177-hero .elementor-widget-button .elementor-button,body.page-id-177 .p177-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}}

body.page-id-503 .p503-tabs .mfg-tabs{border-top:1px solid #e4e4e7;}
body.page-id-503 .p503-hero,body.page-id-503 .p503-cta{display:flex;align-items:center;}
body.page-id-503 .p503-hero > .elementor-container{width:100%;}
body.page-id-503 .p503-hero{min-height:46vh;}
body.page-id-503 .p503-hero .elementor-heading-title,body.page-id-503 .p503-cta .elementor-heading-title{color:#fafafa;}
body.page-id-503 .p503-hero .elementor-widget-text-editor,body.page-id-503 .p503-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-503 .p503-hero .elementor-button,body.page-id-503 .p503-cta .elementor-button{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:12px 20px;border-radius:2px;}
body.page-id-503 .p503-hero .elementor-widget-button:first-of-type .elementor-button,body.page-id-503 .p503-cta .elementor-widget-button:first-of-type .elementor-button{background:#f59e0b;color:#18181b;}
body.page-id-503 .p503-hero .elementor-widget-button:first-of-type .elementor-button:hover,body.page-id-503 .p503-cta .elementor-widget-button:first-of-type .elementor-button:hover{background:#fbbf24;color:#18181b;}
body.page-id-503 .p503-hero .elementor-widget-button:last-of-type .elementor-button,body.page-id-503 .p503-cta .elementor-widget-button:last-of-type .elementor-button{background:transparent;border:1px solid #52525b;color:#f4f4f5;}
body.page-id-503 .p503-hero .elementor-widget-button:last-of-type .elementor-button:hover,body.page-id-503 .p503-cta .elementor-widget-button:last-of-type .elementor-button:hover{border-color:#fbbf24;color:#fcd34d;}
body.page-id-503 [class*="p503-b"][class*="-card"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px;height:100%;}
body.page-id-503 [class*="p503-b"][class*="-card"] .elementor-heading-title{margin-bottom:8px;}
body.page-id-503 [class*="p503-b"][class*="-card"] .elementor-widget-image{margin:-24px -24px 16px -24px !important;width:calc(100% + 48px);max-width:calc(100% + 48px);border-radius:0;}
body.page-id-503 [class*="p503-b"][class*="-card"] .elementor-widget-image img{aspect-ratio:4/3;object-fit:cover;width:100%;}
body.page-id-503 [class*="p503-b"][class*="-stat"]{border:1px solid #e4e4e7;border-radius:2px;background:#fff;padding:24px 16px;text-align:center;height:100%;}
body.page-id-503 [class*="p503-b"][class*="-stat"] .elementor-icon-box-title{font-size:30px;font-weight:700;color:#b45309;line-height:1.1;margin-bottom:4px;}
body.page-id-503 [class*="p503-b"][class*="-stat"] .elementor-icon-box-description{font-size:14px;font-weight:500;color:#52525b;}
body.page-id-503 .p503-badge{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:9999px;background:#fef3c7;color:#b45309;font-weight:700;font-size:18px;margin-bottom:8px;}
body.page-id-503 [class*="p503-b"][class*="-faq"] .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-503 [class*="p503-b"][class*="-faq"] .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-503 [class*="p503-b"][class*="-faq"] .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-503 [class*="p503-b"][class*="-faq"] .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}
body.page-id-503 .p503-cta{position:relative;}
body.page-id-503 .p503-cta::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:48px 48px;}
body.page-id-503 .p503-cta .elementor-widget-button{margin-bottom:12px;}
body.page-id-503 .p503-cta .elementor-widget-button:last-child{margin-bottom:0;}
@media (min-width:1025px){body.page-id-503 .p503-b1-row0 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b2-row0 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b3-row0 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b3-row1 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b3-row2 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b4-row0 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b4-row1 > .elementor-container > .elementor-column{flex:0 0 33.333%;max-width:33.333%;}}
@media (min-width:1025px){body.page-id-503 .p503-b5-row0 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b5-row1 > .elementor-container > .elementor-column{flex:0 0 50%;max-width:50%;}}
@media (min-width:1025px){body.page-id-503 .p503-b6-row0 > .elementor-container > .elementor-column,
body.page-id-503 .p503-b7-row0 > .elementor-container > .elementor-column{flex:0 0 25%;max-width:25%;}}
body.page-id-503 .p503-cta > .elementor-container > .elementor-column:first-child{flex:0 0 62%;max-width:62%;}
body.page-id-503 .p503-cta > .elementor-container > .elementor-column:last-child{flex:0 0 38%;max-width:38%;}
@media (max-width:767px){body.page-id-503 .p503-hero .elementor-widget-button,body.page-id-503 .p503-cta .elementor-widget-button{width:100%;margin-bottom:10px;}body.page-id-503 .p503-hero .elementor-widget-button .elementor-button,body.page-id-503 .p503-cta .elementor-widget-button .elementor-button{width:100%;justify-content:center;}}

/* ================= /contact/ (page 16) ================= */
/* S1 hero */
body.page-id-16 .p16-hero{display:flex;align-items:center;}
body.page-id-16 .p16-hero > .elementor-container{width:100%;}
body.page-id-16 .p16-hero .elementor-heading-title{color:#fafafa;}
body.page-id-16 .p16-hero .elementor-widget-text-editor{color:#d4d4d8;}
.p16-hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px;}
.p16-hero-tags span{border:1px solid rgba(245,158,11,.45);color:#fbbf24;font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px;letter-spacing:.02em;}

/* S2 two-column contact + form */
body.page-id-16 .p16-contact-row > .elementor-container{width:100%;}
body.page-id-16 .p16-contact-row > .elementor-container > .elementor-column:first-of-type{flex:0 0 40%;max-width:40%;}
body.page-id-16 .p16-contact-row > .elementor-container > .elementor-column:last-of-type{flex:0 0 60%;max-width:60%;}
body.page-id-16 .p16-info-card{background:#f7f8fa;border:1px solid #e4e4e7;border-radius:12px;padding:32px;}
body.page-id-16 .p16-form-card{background:#ffffff;border:1px solid #e4e4e7;border-radius:12px;padding:32px;box-shadow:0 2px 14px rgba(0,0,0,.05);}
.p16-info-list{list-style:none;margin:0;padding:0;}
.p16-info-list li{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-bottom:1px solid #e4e4e7;}
.p16-info-list li:last-child{border-bottom:none;}
.p16-info-k{font-weight:700;color:#18181b;font-size:14px;}
.p16-info-v{color:#18181b;font-size:15px;font-weight:600;}
.p16-info-d{color:#71717a;font-size:13px;}
.p16-tz-note{padding:14px 16px;border-left:3px solid #f59e0b;background:#f4f4f5;color:#3f3f46;font-size:14px;line-height:1.6;border-radius:0 8px 8px 0;}
.p16-tz-note strong{color:#18181b;}

/* form two-column layout (tp-rfq shared form, fields untouched) */
body.page-id-16 .tp-rfq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
body.page-id-16 .tp-rfq-grid .tp-field{margin:0 0 16px;}
body.page-id-16 .tp-rfq-foot{margin-top:8px;}

/* S3 why cards */
body.page-id-16 .p16-why-row > .elementor-container{width:100%;}
body.page-id-16 .p16-why-row .elementor-column{flex:0 0 25%;max-width:25%;background:#fff;border:1px solid #e4e4e7;border-radius:10px;padding:24px 22px;}
body.page-id-16 .p16-why-row .elementor-icon-box-title{font-size:18px;font-weight:700;color:#18181b;margin-top:0;}
body.page-id-16 .p16-why-row .elementor-icon-box-description{font-size:14px;line-height:1.6;color:#52525b;}
body.page-id-16 .p16-why-row .elementor-icon{color:#f59e0b;}

/* S4 steps cards */
body.page-id-16 .p16-steps-row > .elementor-container{width:100%;}
body.page-id-16 .p16-steps-row .elementor-column{flex:0 0 25%;max-width:25%;background:#fff;border:1px solid #e4e4e7;border-radius:10px;padding:24px 22px;}
.p16-step-no{color:#f59e0b;font-size:26px;font-weight:800;letter-spacing:-.01em;margin:0 0 8px;}
body.page-id-16 .p16-steps-row h3{font-size:18px;font-weight:700;color:#18181b;}

/* S5 FAQ */
body.page-id-16 .p16-faq .elementor-accordion-item{border:1px solid #e4e4e7 !important;border-radius:2px;margin-bottom:16px;background:#fff;overflow:hidden;}
body.page-id-16 .p16-faq .elementor-accordion .elementor-tab-title{color:#18181b;font-weight:600;padding:16px 24px;}
body.page-id-16 .p16-faq .elementor-accordion .elementor-tab-title.elementor-active{color:#b45309;}
body.page-id-16 .p16-faq .elementor-accordion .elementor-tab-content{border-top:1px solid #f4f4f5;color:#52525b;padding:12px 24px 16px;}

/* S6 bottom CTA */
body.page-id-16 .p16-cta{display:flex;align-items:center;text-align:center;}
body.page-id-16 .p16-cta > .elementor-container{width:100%;}
body.page-id-16 .p16-cta .elementor-heading-title{color:#fafafa;}
body.page-id-16 .p16-cta .elementor-widget-text-editor{color:#d4d4d8;}
body.page-id-16 .p16-cta .elementor-button{background:#f59e0b;color:#18181b;font-weight:700;text-transform:uppercase;letter-spacing:.02em;border-radius:2px;padding:14px 32px;}
body.page-id-16 .p16-cta .elementor-button:hover{background:#fbbf24;color:#18181b;}

/* responsive */
@media (max-width:1024px){
  body.page-id-16 .p16-why-row .elementor-column,body.page-id-16 .p16-steps-row .elementor-column{flex:0 0 50%;max-width:50%;}
}
@media (max-width:767px){
  body.page-id-16 .p16-contact-row > .elementor-container > .elementor-column:first-of-type,
  body.page-id-16 .p16-contact-row > .elementor-container > .elementor-column:last-of-type{flex:0 0 100%;max-width:100%;}
  body.page-id-16 .p16-why-row .elementor-column,body.page-id-16 .p16-steps-row .elementor-column{flex:0 0 100%;max-width:100%;}
  body.page-id-16 .p16-info-card,body.page-id-16 .p16-form-card{padding:24px;}
  body.page-id-16 .tp-rfq-grid{grid-template-columns:1fr;}
  body.page-id-16 .p16-hero-tags{gap:8px;}
  body.page-id-16 .p16-hero-tags span{font-size:12px;padding:5px 12px;}
}

/* ===== tp-rfq file input: hide native browser chrome (locale text) =====
   .tp-file-btn/.tp-file-status already provide English UI. The transparent
   overlay input keeps the picker clickable across the whole wrapper. */
.tp-file-wrapper { position: relative; }
.tp-file-wrapper > input[type="file"] {
    position: absolute; inset: 0; width: 100%; height: 100%;
    opacity: 0; cursor: pointer; z-index: 1;
}
.tp-file-wrapper .tp-file-btn { pointer-events: none; }

/* ===== Content media hierarchy (large / medium / thumbnails / icons) ===== */
.wal-media { margin: 2rem 0; overflow: hidden; border: 1px solid #e4e4e7; border-radius: 1rem; background: #fff; }
.wal-media img { display: block; width: 100%; height: auto; object-fit: cover; }
.wal-media-lg img { aspect-ratio: 16 / 9; }
.wal-media-md { max-width: 640px; margin: 2rem auto; }
.wal-media-md img { aspect-ratio: 4 / 3; }
.wal-media-caption { padding: 0.65rem 0.85rem; font-size: 0.8rem; color: #71717a; }

.wal-media-grid { display: grid; gap: 1rem; margin: 1.75rem 0; }
.wal-media-grid--4 { grid-template-columns: repeat(2, 1fr); }
.wal-media-card { margin: 0; overflow: hidden; border: 1px solid #e4e4e7; border-radius: 0.9rem; background: #fff; transition: transform .35s ease, box-shadow .35s ease; }
.wal-media-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -20px rgba(11,18,32,.28); }
.wal-media-card img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }

.wal-benefit-list { list-style: none; padding-left: 0; }
.wal-benefit-list li { display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 0.65rem; }
.wal-benefit-icon { display: inline-flex; flex: none; width: 20px; height: 20px; margin-top: 2px; align-items: center; justify-content: center; border-radius: 999px; background: #f59e0b; color: #fff; font-size: 12px; }

@media (min-width: 640px) {
  .wal-media-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ===== Reference redesign tokens (warm light) ===== */
.font-display { font-family: Georgia, "Times New Roman", ui-serif, serif; letter-spacing: -0.01em; }
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }
.wal-grid-pattern {
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 48px 48px;
}
.wal-card-hover { transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s cubic-bezier(.22,1,.36,1); }
.wal-card-hover:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -16px rgba(11,18,32,.22); }
.wal-img-zoom img { transition: transform .8s cubic-bezier(.22,1,.36,1); }
.wal-img-zoom:hover img { transform: scale(1.06); }

/* ===== Manufacturing enrichment blocks ===== */
.wal-key-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 18px 0 26px; }
.wal-key-stat { border: 1px solid #e4e4e7; border-radius: 0.9rem; background: #fff; padding: 16px 18px; }
.wal-key-stat b { display: block; font-size: 1.6rem; color: #18181b; }
.wal-key-stat span { display: block; margin-top: 4px; font-size: 0.78rem; color: #71717a; }

.wal-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 18px 0; }
.wal-info-card { margin: 0; overflow: hidden; border: 1px solid #e4e4e7; border-radius: 0.9rem; background: #fff; }
.wal-info-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.wal-info-card figcaption { padding: 10px 12px; font-size: 0.8rem; color: #52525b; }

.wal-industry-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 26px; }
.wal-industry-chips span { border: 1px solid #e4e4e7; background: #fafafa; color: #3f3f46; border-radius: 999px; padding: 6px 12px; font-size: 0.78rem; }

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

/* ===== Hero glassmorphism — real photo + frosted text card (site-wide) ===== */
section[class*="min-h-"] { isolation: isolate; }
section[class*="min-h-"] > img.absolute.inset-0 { opacity: .72 !important; }
section[class*="min-h-"] > div.absolute.inset-0.bg-gradient-to-r {
  background: linear-gradient(90deg, rgba(9,9,11,.62) 0%, rgba(9,9,11,.30) 48%, rgba(9,9,11,.08) 100%) !important;
}
/* Hero container carries its own glass panel (.wal-glass, text column) when the
   exploded-view layout is in use — in that case the container must stay at the
   site content width instead of becoming the 760px frosted card itself. */
section[class*="min-h-"] > div.relative.mx-auto.w-full.max-w-7xl:not(:has(.wal-glass)) {
  max-width: min(760px, calc(100% - 32px)) !important;
  margin: 0 auto 0 max(16px, calc((100vw - 1280px) / 2)) !important;
  padding: clamp(24px, 4vw, 40px) !important;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background-color: rgba(9,9,11,.42);
  background-image: linear-gradient(135deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.02) 100%);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 28px 70px rgba(0,0,0,.35);
}

/* Elementor-built page heroes (single-column hero sections). */
.elementor .elementor-section[class*="-hero"] { isolation: isolate; }
.elementor .elementor-section[class*="-hero"] > .elementor-background-overlay {
  opacity: .22 !important;
  background-color: rgba(9,9,11,.55) !important;
}
.elementor .elementor-section[class*="-hero"] .elementor-container > .elementor-column > .elementor-widget-wrap {
  max-width: min(760px, 100%) !important;
  margin: 0 auto 0 0 !important;
  padding: clamp(24px, 4vw, 40px) !important;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background-color: rgba(9,9,11,.42);
  background-image: linear-gradient(135deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.02) 100%);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 28px 70px rgba(0,0,0,.35);
}

/* Contact hero has a dark fill rather than a photo; give it the same factory photo treatment. */
body.page-id-16 .p16-hero {
  background-image: linear-gradient(90deg, rgba(9,9,11,.66) 0%, rgba(9,9,11,.32) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-overview-1.webp') !important;
  background-position: center !important;
  background-size: cover !important;
}

/* ===== Additional page heroes: custom-wallets family + about + glossary ===== */
.elementor-12 > .elementor-section.elementor-top-section:first-of-type,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type {
  min-height: 52vh;
  display: flex;
  align-items: center;
  padding: 64px 32px;
  background-color: #09090b;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
.elementor-12 > .elementor-section.elementor-top-section:first-of-type {
  background-image: linear-gradient(90deg, rgba(9,9,11,.62) 0%, rgba(9,9,11,.30) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-laser-engraving-1.webp') !important;
}
.elementor-15 > .elementor-section.elementor-top-section:first-of-type {
  background-image: linear-gradient(90deg, rgba(9,9,11,.62) 0%, rgba(9,9,11,.30) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-overview-1.webp') !important;
}
.elementor-24 > .elementor-section.elementor-top-section:first-of-type {
  background-image: linear-gradient(90deg, rgba(9,9,11,.62) 0%, rgba(9,9,11,.30) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-leather-workshop-1.webp') !important;
}
.elementor-25 > .elementor-section.elementor-top-section:first-of-type {
  background-image: linear-gradient(90deg, rgba(9,9,11,.62) 0%, rgba(9,9,11,.30) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-cnc-machining-1.webp') !important;
}
.elementor-26 > .elementor-section.elementor-top-section:first-of-type {
  background-image: linear-gradient(90deg, rgba(9,9,11,.62) 0%, rgba(9,9,11,.30) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-packaging-2.webp') !important;
}

.elementor-12 > .elementor-section.elementor-top-section:first-of-type > .elementor-container,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type > .elementor-container,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type > .elementor-container,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type > .elementor-container,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type > .elementor-container {
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
}

.elementor-12 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:nth-child(2),
.elementor-15 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:nth-child(2),
.elementor-24 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:nth-child(2),
.elementor-25 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:nth-child(2),
.elementor-26 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:nth-child(2) {
  display: none !important;
}

.elementor-12 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}

.elementor-12 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap {
  max-width: min(760px, 100%) !important;
  margin: 0 auto 0 0 !important;
  padding: clamp(24px, 4vw, 40px) !important;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background-color: rgba(9,9,11,.42);
  background-image: linear-gradient(135deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.02) 100%);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 28px 70px rgba(0,0,0,.35);
}

.elementor-12 > .elementor-section.elementor-top-section:first-of-type .elementor-heading-title,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type .elementor-heading-title,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type .elementor-heading-title,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type .elementor-heading-title,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type .elementor-heading-title {
  color: #fafafa !important;
}
.elementor-12 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor,
.elementor-12 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor p,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor p,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor p,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor p,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor p {
  color: #d4d4d8 !important;
}
.elementor-12 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor a,
.elementor-15 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor a,
.elementor-24 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor a,
.elementor-25 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor a,
.elementor-26 > .elementor-section.elementor-top-section:first-of-type .elementor-widget-text-editor a {
  color: #fbbf24 !important;
}

/* Custom-wallets hero uses light-coloured Elementor buttons; restyle them for the dark glass card. */
.elementor-12 .elementor-element.elementor-element-00003 .elementor-button,
.elementor-12 .elementor-element.elementor-element-00004 .elementor-button {
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .025em;
  padding: 12px 20px;
  border-radius: 2px;
}
.elementor-12 .elementor-element.elementor-element-00003 .elementor-button {
  background: #f59e0b !important;
  color: #18181b !important;
  border: 1px solid #f59e0b !important;
}
.elementor-12 .elementor-element.elementor-element-00004 .elementor-button {
  background: transparent !important;
  color: #fafafa !important;
  border: 1px solid #52525b !important;
}

/* Glossary hero: keep the search UI, but give the intro the same photo + frosted panel. */
body.page-id-351 .glossary-content .wrap > .hero {
  margin: 0 calc(50% - 50vw) !important;
  min-height: 46vh;
  display: flex;
  align-items: center;
  background-color: #09090b;
  background-image: linear-gradient(90deg, rgba(9,9,11,.66) 0%, rgba(9,9,11,.32) 48%, rgba(9,9,11,.08) 100%),
    url('https://topedcwallet.com/wp-content/uploads/2026/09/factory-overview-1.webp') !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
body.page-id-351 .glossary-content .wrap > .hero .hero-in {
  width: min(760px, calc(100% - 32px));
  max-width: 760px;
  margin-left: max(16px, calc((100vw - 1280px) / 2));
  margin-right: auto;
  padding: clamp(24px, 4vw, 40px) !important;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background-color: rgba(9,9,11,.42);
  background-image: linear-gradient(135deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.02) 100%);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 28px 70px rgba(0,0,0,.35);
}

/* -------------------------------------------------------------------------
 * Article tables — desktop stays a normal table, mobile becomes cards.
 * The matching JS writes each td's column header into data-label.
 * ---------------------------------------------------------------------- */
.prose-blog figure.wp-block-table {
  display: block;
  width: 100%;
  max-width: 100%;
}

@media (max-width: 639px) {
  .prose-blog figure.wp-block-table {
    overflow: visible;
    border: 0;
  }

  .prose-blog table.wal-card-table {
    display: block;
    width: 100%;
    border: 0;
  }

  .prose-blog table.wal-card-table thead {
    display: none;
  }

  .prose-blog table.wal-card-table tbody {
    display: block;
  }

  .prose-blog table.wal-card-table tr {
    display: block;
    margin: 0 0 12px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(9, 9, 11, 0.04);
  }

  .prose-blog table.wal-card-table td {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 8px 0;
    text-align: right;
    border: 0;
    border-bottom: 1px solid #f1f1f3;
  }

  .prose-blog table.wal-card-table td:last-child {
    border-bottom: 0;
  }

  .prose-blog table.wal-card-table td::before {
    content: attr(data-label);
    flex: 0 0 auto;
    text-align: left;
    font-size: 0.8rem;
    font-weight: 600;
    color: #18181b;
  }

  .prose-blog table.wal-card-table td:not([data-label])::before {
    display: none;
  }
}

/* ===== RFID hub page (2026-10-16) ===== */
.wal-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 16px 0 32px; }
.wal-product-card { display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 1px solid var(--c-line); border-radius: 4px; background: #fff; }
.wal-product-card img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 3px; }
.wal-product-card span { font-size: 14px; font-weight: 600; color: var(--c-ink); line-height: 1.35; }
.wal-compare-table { width: 100%; border-collapse: collapse; margin: 16px 0 32px; font-size: 14px; }
.wal-compare-table th, .wal-compare-table td { border: 1px solid var(--c-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.wal-compare-table th { background: var(--c-ink); color: #fff; font-size: 13px; letter-spacing: .02em; }
.wal-compare-table tr:nth-child(even) td { background: #fafaf8; }
@media (max-width: 900px) { .wal-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .wal-product-grid { grid-template-columns: 1fr; } }
