/* ==========================================================================
   HCT components — scoped to NEW content only.
   Legacy pages inherit the global button/input rules from style.css.
   All values come from assets/css/variables.css.
   ========================================================================== */

.hct-foundation .wp-block-button__link {
	background: var(--hct-primary);
	color: var(--hct-white);
	border-radius: var(--hct-radius);
	min-height: var(--hct-button-height);
	padding: var(--hct-space-2xs) var(--hct-space-md);
	font-size: var(--hct-fs-sm);
	font-weight: var(--hct-fw-semibold);
	line-height: var(--hct-lh-heading);
	text-decoration: none;
}

.hct-foundation .wp-block-button__link:hover,
.hct-foundation .wp-block-button__link:focus-visible {
	background: var(--hct-primary-hover);
	color: var(--hct-white);
}

.hct-foundation :is(input, select, textarea) {
	border: var(--hct-border-width) solid var(--hct-border);
	border-radius: var(--hct-radius-input);
	min-height: var(--hct-input-height);
	color: var(--hct-text);
}

/* --------------------------------------------------------------------------
   Accessibility utility.
   Shared by every new template part, so it lives with the components rather
   than in one module. The class is namespaced, so it cannot reach legacy
   Elementor markup that never carries it.
   -------------------------------------------------------------------------- */
.hct-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* --------------------------------------------------------------------------
   Buttons.
   The site sells through RFQ, so there is deliberately no purchase, price or
   stock button in the system: one primary action, one quiet alternative.
   The focus ring is not declared here — the global :focus-visible rule in
   style.css already draws it from --hct-primary, which .hct-foundation has
   re-mapped to the brand navy.
   -------------------------------------------------------------------------- */
.hct-foundation .hct-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--hct-space-2xs);
	min-height: var(--hct-button-height);
	padding: var(--hct-space-2xs) var(--hct-space-md);
	border: var(--hct-border-width) solid transparent;
	border-radius: var(--hct-radius);
	font-size: var(--hct-fs-sm);
	font-weight: var(--hct-fw-semibold);
	line-height: var(--hct-lh-heading);
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.hct-foundation .hct-button--primary {
	background: var(--hct-accent);
	border-color: var(--hct-accent);
	color: var(--hct-white);
}

.hct-foundation .hct-button--primary:hover,
.hct-foundation .hct-button--primary:focus-visible {
	background: var(--hct-accent-hover);
	border-color: var(--hct-accent-hover);
	color: var(--hct-white);
}

.hct-foundation .hct-button--ghost {
	background: var(--hct-background);
	border-color: var(--hct-border);
	color: var(--hct-primary);
}

.hct-foundation .hct-button--ghost:hover,
.hct-foundation .hct-button--ghost:focus-visible {
	background: var(--hct-surface);
	border-color: var(--hct-primary);
	color: var(--hct-primary-hover);
}

.hct-foundation .hct-button--large {
	min-height: calc(var(--hct-button-height) + var(--hct-space-2xs));
	padding-inline: var(--hct-space-lg);
	font-size: var(--hct-fs-body);
}

/* The icon follows the label size, so one rule serves every button scale. */
.hct-foundation .hct-button__icon {
	flex: none;
	width: 1.15em;
	height: 1.15em;
}

/* --------------------------------------------------------------------------
   Inline text link and de-emphasis, used inside dense technical tables where
   the default body link colour would compete with the data.
   -------------------------------------------------------------------------- */
.hct-foundation .hct-link {
	color: var(--hct-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	word-break: break-word;
}

.hct-foundation .hct-link:hover,
.hct-foundation .hct-link:focus-visible {
	color: var(--hct-primary-hover);
}

.hct-foundation .hct-muted {
	color: var(--hct-muted);
}
