/* ==========================================================================
   Techmatter AE 2026 — global styles
   Colours: #0B5199 (primary) · #606060 (grey) · #ffffff · #222222 (dark) · body #FEFEFE
   Fonts:   DM Sans (body) · Poppins (headings)
   ========================================================================== */

/* Fonts ------------------------------------------------------------------ */
@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DM_Sans/DMSans-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DM_Sans/DMSans-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DM_Sans/DMSans-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Poppins";
	src: url("../fonts/Poppins/Poppins-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Poppins";
	src: url("../fonts/Poppins/Poppins-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Poppins";
	src: url("../fonts/Poppins/Poppins-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* Tokens ----------------------------------------------------------------- */
:root {
	--tech-ae-primary: #0B5199;
	--tech-ae-grey: #606060;
	--tech-ae-white: #ffffff;
	--tech-ae-dark: #222222;
	--tech-ae-bg: #FEFEFE;

	/* Tints of the theme colours (borders, soft fills). */
	--tech-ae-border: rgba(34, 34, 34, .12);
	--tech-ae-border-strong: rgba(34, 34, 34, .22);
	--tech-ae-soft: rgba(11, 81, 153, .06);
	--tech-ae-focus: rgba(11, 81, 153, .22);

	--tech-ae-font: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--tech-ae-font-head: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--tech-ae-container: 1400px;
	--tech-ae-gutter: 16px;
	--tech-ae-radius: 8px;
	--tech-ae-radius-lg: 14px;
	--tech-ae-ease: .2s ease;
}

@media (min-width: 768px) {
	:root {
		--tech-ae-gutter: 24px;
	}
}

/* Base ------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--tech-ae-bg);
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
	/* "clip", not "hidden": keeps the sticky header working. */
}

body.tech-ae-lock {
	overflow: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 .6em;
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font-head);
	font-weight: 600;
	line-height: 1.25;
}

h1 {
	font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.6rem);
}

h2 {
	font-size: clamp(1.4rem, 1.15rem + 1vw, 2rem);
}

h3 {
	font-size: clamp(1.2rem, 1.05rem + .5vw, 1.45rem);
}

h4 {
	font-size: 1.15rem;
}

h5,
h6 {
	font-size: 1rem;
}

p {
	margin: 0 0 1em;
}

a {
	color: var(--tech-ae-primary);
	text-decoration: none;
	transition: color var(--tech-ae-ease);
}

a:hover {
	color: var(--tech-ae-dark);
}

img,
svg,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
	vertical-align: middle;
}

hr {
	height: 1px;
	margin: 2em 0;
	border: 0;
	background: var(--tech-ae-border);
}

ul,
ol {
	padding-left: 1.25em;
}

:focus-visible {
	outline: 2px solid var(--tech-ae-primary);
	outline-offset: 2px;
}

/* Form fields: no outline / focus ring / shadow, and textareas can't be resized.
   !important so WooCommerce, Contact Form 7 and browser defaults can't bring them back. */
input,
select,
textarea {
	box-shadow: none !important;
}

input:focus,
input:focus-visible,
select:focus,
select:focus-visible,
textarea:focus,
textarea:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

textarea {
	resize: none;
}

::selection {
	background: var(--tech-ae-primary);
	color: var(--tech-ae-white);
}

.tech-ae-icon {
	flex-shrink: 0;
}

.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;
}

.tech-ae-skip:focus {
	z-index: 1000;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	padding: 10px 16px;
	clip: auto;
	background: var(--tech-ae-white);
	color: var(--tech-ae-primary);
	border-radius: var(--tech-ae-radius);
}

/* Layout ----------------------------------------------------------------- */
.tech-ae-container {
	width: 100%;
	max-width: calc(var(--tech-ae-container) + var(--tech-ae-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--tech-ae-gutter);
}

.tech-ae-container--narrow {
	max-width: calc(860px + var(--tech-ae-gutter) * 2);
}

.tech-ae-section {
	padding-block: 40px 64px;
}

@media (min-width: 992px) {
	.tech-ae-section {
		padding-block: 56px 88px;
	}
}

.tech-ae-notice {
	padding: 14px 18px;
	border-left: 4px solid var(--tech-ae-primary);
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-soft);
}

/* Buttons ---------------------------------------------------------------- */
.tech-ae-btn,
.wpcf7-submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 10px 22px;
	border: 2px solid var(--tech-ae-primary);
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-primary);
	color: var(--tech-ae-white);
	font-family: var(--tech-ae-font);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	transition: background var(--tech-ae-ease), border-color var(--tech-ae-ease), color var(--tech-ae-ease), transform var(--tech-ae-ease);
}

.tech-ae-btn:hover,
.wpcf7-submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	border-color: var(--tech-ae-dark);
	background: var(--tech-ae-dark);
	color: var(--tech-ae-white);
}

.tech-ae-btn:active,
.wpcf7-submit:active {
	transform: translateY(1px);
}

.tech-ae-btn--outline {
	background: transparent;
	color: var(--tech-ae-primary);
}

.tech-ae-btn--outline:hover {
	border-color: var(--tech-ae-primary);
	background: var(--tech-ae-primary);
}

.tech-ae-btn--block {
	width: 100%;
}

.tech-ae-btn--lg {
	min-height: 52px;
	padding-inline: 30px;
	font-size: 16px;
}

.tech-ae-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
}

.tech-ae-link .tech-ae-icon {
	transition: transform var(--tech-ae-ease);
}

.tech-ae-link:hover .tech-ae-icon {
	transform: translateX(3px);
}

/* Page header ------------------------------------------------------------ */
.tech-ae-page-head {
	padding-block: 36px;
	border-bottom: 1px solid var(--tech-ae-border);
	background: var(--tech-ae-soft);
}

.tech-ae-page-head__title {
	margin: 0;
}

.tech-ae-page-head__meta {
	margin: 0 0 8px;
	color: var(--tech-ae-grey);
	font-size: 14px;
}

.tech-ae-page-head__desc {
	margin-top: 10px;
	color: var(--tech-ae-grey);
}

.tech-ae-page-head__desc p:last-child {
	margin: 0;
}

/* Entry content ---------------------------------------------------------- */
.tech-ae-entry__thumb {
	margin: 0 0 28px;
}

.tech-ae-entry__thumb img {
	width: 100%;
	border-radius: var(--tech-ae-radius-lg);
}

.tech-ae-entry__content>*:last-child {
	margin-bottom: 0;
}

.tech-ae-entry__content img {
	border-radius: var(--tech-ae-radius);
}

.tech-ae-entry__content blockquote {
	margin: 1.5em 0;
	padding: 16px 22px;
	border-left: 4px solid var(--tech-ae-primary);
	background: var(--tech-ae-soft);
	border-radius: 0 var(--tech-ae-radius) var(--tech-ae-radius) 0;
}

.tech-ae-entry__content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5em;
}

.tech-ae-entry__content th,
.tech-ae-entry__content td {
	padding: 10px 12px;
	border: 1px solid var(--tech-ae-border);
	text-align: left;
}

.tech-ae-empty {
	max-width: 560px;
	margin-inline: auto;
	text-align: center;
}

/* Pagination (blog + WooCommerce) */
.pagination,
.woocommerce nav.woocommerce-pagination {
	margin-top: 40px;
	text-align: center;
}

.pagination .nav-links,
.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.pagination .page-numbers,
.woocommerce nav.woocommerce-pagination ul li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--tech-ae-border);
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-white);
	color: var(--tech-ae-dark);
	font-weight: 500;
}

.pagination .page-numbers.current,
.pagination a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
	border-color: var(--tech-ae-primary);
	background: var(--tech-ae-primary);
	color: var(--tech-ae-white);
}

/* ==========================================================================
   404
   ========================================================================== */
.tech-ae-404 {
	padding-block: 48px 72px;
}

.tech-ae-404__box {
	max-width: 720px;
	margin-inline: auto;
	padding: 36px 20px;
	border: 1px solid var(--tech-ae-border);
	border-radius: var(--tech-ae-radius-lg);
	background: var(--tech-ae-white);
	text-align: center;
}

.tech-ae-404__code {
	margin: 0 0 4px;
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font-head);
	font-size: clamp(5rem, 3rem + 10vw, 9.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.04em;
}

.tech-ae-404__code span {
	color: var(--tech-ae-primary);
}

.tech-ae-404__title {
	margin-bottom: 10px;
	font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem);
}

.tech-ae-404__text {
	max-width: 520px;
	margin: 0 auto 26px;
	color: var(--tech-ae-grey);
}

.tech-ae-404__search {
	max-width: 560px;
	margin: 0 auto 26px;
	text-align: left;
}

.tech-ae-404__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

@media (min-width: 576px) {
	.tech-ae-404__box {
		padding: 52px 40px;
	}

	.tech-ae-404__actions {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
	}
}

@media (min-width: 992px) {
	.tech-ae-404 {
		padding-block: 80px 110px;
	}
}

/* ==========================================================================
   Contact Form 7 — .contact-page-form and .get-a-quote-form
   ========================================================================== */
.contact-page-form,
.get-a-quote-form {
	width: 100%;
	padding: 25px;
	border: 1px solid var(--tech-ae-border);
	border-radius: var(--tech-ae-radius-lg);
	background: var(--tech-ae-white);
}

.get-a-quote-form__head {
	margin-bottom: 22px;
}

.get-a-quote-form__title {
	margin: 0 0 6px;
	font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem);
}

.get-a-quote-form__subtitle {
	margin: 0;
	color: var(--tech-ae-grey);
	font-size: 15px;
}

.contact-page-form__grid,
.get-a-quote-form__grid {
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr;
}

.contact-page-form__field,
.get-a-quote-form__field {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}

.contact-page-form__label,
.get-a-quote-form__label {
	margin-bottom: 7px;
	color: var(--tech-ae-dark);
	font-size: 14px;
	font-weight: 600;
}

.contact-page-form__req,
.get-a-quote-form__req {
	color: var(--tech-ae-primary);
}

.contact-page-form .wpcf7-form-control-wrap,
.get-a-quote-form .wpcf7-form-control-wrap {
	display: block;
}

.contact-page-form__input,
.get-a-quote-form__input,
.contact-page-form__textarea {
	display: block;
	width: 100%;
	min-height: 25px;
	padding: 12px 15px;
	border: 1px solid var(--tech-ae-border-strong);
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-white);
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font);
	font-size: 16px;
	/* 16px stops iOS zooming into the field. */
	line-height: 1.4;
	transition: border-color var(--tech-ae-ease);
	-webkit-appearance: none;
	appearance: none;
}

/* 6 lines tall, whatever rows the form sets (6 × line height + padding + border). */
.contact-page-form__textarea {
	height: calc(6 * 1.4em + 26px);
	min-height: 0;
	resize: none;
}

.contact-page-form__input::placeholder,
.get-a-quote-form__input::placeholder,
.contact-page-form__textarea::placeholder {
	color: var(--tech-ae-grey);
	opacity: .75;
}

/* Part number (filled from ?part-no=…) */
.get-a-quote-form__input--part {
	border-color: var(--tech-ae-primary);
	background: var(--tech-ae-soft);
	color: var(--tech-ae-primary);
	font-weight: 700;
	letter-spacing: .02em;
}

.contact-page-form__actions,
.get-a-quote-form__actions {
	margin-top: 22px;
}

.contact-page-form__submit,
.get-a-quote-form__submit {
	width: 100%;
	min-height: 52px;
	font-size: 16px;
}

.contact-page-form__note,
.get-a-quote-form__note {
	margin: 12px 0 0;
	color: var(--tech-ae-grey);
	font-size: 13px;
	text-align: center;
}

/* Turnstile (moved above the button by inc/tech-ae-turnstile.php) */
.contact-page-form .cf-turnstile,
.get-a-quote-form .cf-turnstile {
	margin-top: 20px;
}

/* CF7 states */
.contact-page-form .wpcf7-not-valid,
.get-a-quote-form .wpcf7-not-valid {
	border-color: var(--tech-ae-dark);
}

.contact-page-form .wpcf7-not-valid-tip,
.get-a-quote-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: var(--tech-ae-dark);
	font-size: 13px;
	font-weight: 500;
}

.contact-page-form .wpcf7-not-valid-tip::before,
.get-a-quote-form .wpcf7-not-valid-tip::before {
	content: "! ";
	color: var(--tech-ae-primary);
	font-weight: 700;
}

.wpcf7 .wpcf7-spinner {
	display: block;
	margin: 12px auto 0;
	background-color: var(--tech-ae-primary);
}

.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--tech-ae-border-strong);
	border-left-width: 4px;
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-white);
	font-size: 15px;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--tech-ae-primary);
	background: var(--tech-ae-soft);
	color: var(--tech-ae-primary);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	border-color: var(--tech-ae-dark);
	color: var(--tech-ae-dark);
}

@media (min-width: 640px) {

	.contact-page-form,
	.get-a-quote-form {
		padding: 34px 32px;
	}

	.contact-page-form__grid,
	.get-a-quote-form__grid {
		gap: 20px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.contact-page-form__field--full,
	.get-a-quote-form__field--full {
		grid-column: 1 / -1;
	}

	.contact-page-form__submit,
	.get-a-quote-form__submit {
		width: auto;
		min-width: 220px;
	}

	.contact-page-form__note,
	.get-a-quote-form__note {
		text-align: left;
	}
}

@media (min-width: 992px) {

	.contact-page-form,
	.get-a-quote-form {
		padding: 25px;
	}
}

/* ==========================================================================
   Contact Form 7 — .request-a-quote-form (Request a Quote page)
   Two numbered sections: 1 Your details · 2 What do you need? Mobile first.
   ========================================================================== */
.request-a-quote-form {
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--tech-ae-border);
	border-radius: var(--tech-ae-radius-lg);
	background: var(--tech-ae-white);
}

/* Body sections */
.request-a-quote-form__body {
	padding: 22px 20px 24px;
}

.request-a-quote-form__section+.request-a-quote-form__section {
	margin-top: 26px;
	padding-top: 24px;
	border-top: 1px dashed var(--tech-ae-border-strong);
}

.request-a-quote-form__legend {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font-head);
	font-size: 16px;
	font-weight: 600;
}

.request-a-quote-form__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--tech-ae-primary);
	color: var(--tech-ae-white);
	font-size: 13px;
	font-weight: 700;
}

.request-a-quote-form__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: 1fr;
}

.request-a-quote-form__field {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}

.request-a-quote-form__label {
	margin-bottom: 7px;
	color: var(--tech-ae-dark);
	font-size: 14px;
	font-weight: 600;
}

.request-a-quote-form__req {
	color: var(--tech-ae-primary);
}

.request-a-quote-form .wpcf7-form-control-wrap {
	display: block;
}

.request-a-quote-form__input,
.request-a-quote-form__textarea {
	display: block;
	width: 100%;
	min-height: 50px;
	padding: 12px 15px;
	border: 1px solid var(--tech-ae-border-strong);
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-white);
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font);
	font-size: 16px;
	/* 16px stops iOS zooming into the field. */
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
}

/* 6 lines tall, whatever rows the form sets (6 × line height + padding + border). */
.request-a-quote-form__textarea {
	height: calc(6 * 1.4em + 26px);
	min-height: 0;
	resize: none;
}

.request-a-quote-form__input::placeholder,
.request-a-quote-form__textarea::placeholder {
	color: var(--tech-ae-grey);
	opacity: .75;
}

/* Part number (filled from ?part-no=… on product "Get a Quote" buttons) */
.request-a-quote-form__input--part {
	border-color: var(--tech-ae-primary);
	background: var(--tech-ae-soft);
	color: var(--tech-ae-primary);
	font-weight: 700;
	letter-spacing: .02em;
}

/* Submit row */
.request-a-quote-form__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid var(--tech-ae-border);
}

.request-a-quote-form__submit {
	width: 100%;
	min-height: 52px;
	font-size: 16px;
}

.request-a-quote-form .cf-turnstile {
	margin-top: 20px;
}

.request-a-quote-form .wpcf7-spinner {
	margin: 0 auto;
}

/* CF7 states */
.request-a-quote-form .wpcf7-not-valid {
	border-color: var(--tech-ae-dark);
}

.request-a-quote-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: var(--tech-ae-dark);
	font-size: 13px;
	font-weight: 500;
}

.request-a-quote-form .wpcf7-not-valid-tip::before {
	content: "! ";
	color: var(--tech-ae-primary);
	font-weight: 700;
}

.request-a-quote-form~.wpcf7-response-output,
.request-a-quote-form .wpcf7-response-output {
	margin: 16px 0 0;
}

/* Also hidden by CF7's own stylesheet; repeated so it never shows as an empty box. */
.wpcf7 .hidden-fields-container {
	display: none;
}

.wpcf7 form.init .wpcf7-response-output {
	display: none;
}

@media (min-width: 640px) {
	.request-a-quote-form__body {
		padding: 28px 32px 32px;
	}

	.request-a-quote-form__grid {
		gap: 18px 20px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.request-a-quote-form__field--full {
		grid-column: 1 / -1;
	}

	.request-a-quote-form__actions {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.request-a-quote-form__submit {
		width: auto;
		min-width: 220px;
	}
}

@media (min-width: 992px) {
	.request-a-quote-form__body {
		padding: 32px 40px 36px;
	}
}

/* ==========================================================================
   Contact Form 7 — .inquiry-form (Products and Solutions Inquiries)
   White card · title, intro, highlight line · two-column fields · full-width button.
   Mobile first: one column, two from 640px.
   ========================================================================== */
.inquiry-form {
	--inquiry-form-req: #d63638;
	--inquiry-form-gap: 18px;
	width: 100%;
	padding: 26px 20px 24px;
	border-radius: var(--tech-ae-radius-lg);
	background: var(--tech-ae-white);
	box-shadow: 0 10px 40px -12px rgba(34, 34, 34, .12);
}

/* Head */
.inquiry-form__head {
	margin-bottom: 24px;
}

.inquiry-form__title {
	margin: 0 0 10px;
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font-head);
	font-size: clamp(1.25rem, 1.1rem + .6vw, 1.55rem);
	font-weight: 600;
	line-height: 1.3;
}

.inquiry-form__subtitle {
	margin: 0 0 8px;
	color: var(--tech-ae-dark);
	font-size: 14px;
	line-height: 1.6;
}

.inquiry-form__highlight {
	margin: 0;
	color: var(--tech-ae-primary);
	font-family: var(--tech-ae-font-head);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
	text-transform: uppercase;
}

/* Fields */
.inquiry-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--inquiry-form-gap) 24px;
}

.inquiry-form__field {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}

.inquiry-form__label {
	margin-bottom: 8px;
	color: var(--tech-ae-dark);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
}

.inquiry-form__req {
	color: var(--inquiry-form-req);
}

.inquiry-form .wpcf7-form-control-wrap {
	display: block;
}

.inquiry-form__input,
.inquiry-form__select,
.inquiry-form__textarea {
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 10px 14px;
	border: 1px solid var(--tech-ae-border);
	border-radius: 6px;
	background: var(--tech-ae-white);
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font);
	font-size: 16px; /* 16px stops iOS zooming into the field. */
	line-height: 1.4;
	transition: border-color var(--tech-ae-ease);
	-webkit-appearance: none;
	appearance: none;
}

.inquiry-form__input:hover,
.inquiry-form__select:hover,
.inquiry-form__textarea:hover {
	border-color: var(--tech-ae-border-strong);
}

.inquiry-form__input:focus,
.inquiry-form__select:focus,
.inquiry-form__textarea:focus {
	border-color: var(--tech-ae-primary);
}

/* Select: own arrow, as the native one is removed with appearance: none */
.inquiry-form__select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23222222' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 14px center;
	background-repeat: no-repeat;
	background-size: 12px 8px;
	cursor: pointer;
}

/* 6 lines tall (6 × line height + padding + border) */
.inquiry-form__textarea {
	height: calc(6 * 1.4em + 22px);
	min-height: 0;
	resize: none;
}

/* Contact preference (radio buttons) */
.inquiry-form__choice-label {
	margin-bottom: 6px;
}

.inquiry-form .wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
}

.inquiry-form .wpcf7-list-item {
	margin: 0;
}

.inquiry-form .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--tech-ae-dark);
	font-size: 15px;
	cursor: pointer;
}

.inquiry-form .wpcf7-list-item input[type="radio"] {
	width: 17px;
	height: 17px;
	margin: 0;
	accent-color: var(--tech-ae-primary);
	cursor: pointer;
}

/* Button: full width, blue gradient; CF7's spinner sits inside it on the right */
.inquiry-form__actions {
	position: relative;
	margin-top: 20px;
}

.inquiry-form .wpcf7-spinner {
	position: absolute;
	top: 50%;
	right: 16px;
	margin: -12px 0 0;
	background-color: rgba(255, 255, 255, .35);
}

.inquiry-form__submit {
	width: 100%;
	min-height: 48px;
	border: 0;
	border-radius: 6px;
	background: linear-gradient(110deg, color-mix(in srgb, var(--tech-ae-primary) 70%, var(--tech-ae-white)) 0%, var(--tech-ae-primary) 100%);
	font-family: var(--tech-ae-font-head);
	font-size: 16px;
	font-weight: 600;
	transition: filter var(--tech-ae-ease), box-shadow var(--tech-ae-ease);
}

.inquiry-form__submit:hover,
.inquiry-form__submit:focus-visible {
	border: 0;
	background: linear-gradient(110deg, var(--tech-ae-primary) 0%, var(--tech-ae-dark) 100%);
	box-shadow: 0 10px 22px -12px rgba(11, 81, 153, .8);
}

.inquiry-form__submit:focus-visible {
	outline: 3px solid rgba(11, 81, 153, .35);
	outline-offset: 3px;
}

/* Turnstile (moved above the button by inc/tech-ae-turnstile.php) */
.inquiry-form .cf-turnstile {
	margin-top: 20px;
}

/* CF7 states */
.inquiry-form .wpcf7-not-valid {
	border-color: var(--inquiry-form-req);
}

.inquiry-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: var(--inquiry-form-req);
	font-size: 13px;
}

@media (min-width: 640px) {
	.inquiry-form {
		padding: 32px 30px 30px;
	}

	.inquiry-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.inquiry-form__field--full {
		grid-column: 1 / -1;
	}
}

@media (min-width: 992px) {
	.inquiry-form {
		padding: 36px 36px 34px;
	}
}

/* ==========================================================================
   WooCommerce — shared by every page (My Account forms, notices).
   Shop / category / product styles: assets/css/tech-ae-shop, tech-ae-product, tech-ae-product-card.
   ========================================================================== */
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce-page form .form-row .input-text {
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--tech-ae-border-strong);
	border-radius: var(--tech-ae-radius);
	background-color: var(--tech-ae-white);
	color: var(--tech-ae-dark);
	font-family: var(--tech-ae-font);
	font-size: 15px;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	border-top-color: var(--tech-ae-primary);
	border-radius: var(--tech-ae-radius);
	background: var(--tech-ae-soft);
	color: var(--tech-ae-dark);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--tech-ae-primary);
}

.woocommerce-error {
	border-top-color: var(--tech-ae-dark);
}

.woocommerce-error::before {
	color: var(--tech-ae-dark);
}