/*
Theme Name: AIGX Research
Theme URI: https://aigx.ca/
Author: AIGX Research
Author URI: https://aigx.ca/
Description: Block theme for AIGX Research — institutional AI governance research, frameworks and ratings. Ledger-led layout, published/in-review states on every title, evidence-forward typography.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.2.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aigx-research
Tags: block-theme, full-site-editing, one-column, custom-colors, custom-menu, editor-style
*/

/* ------------------------------------------------------------------
   All colour, type and spacing values come from theme.json presets.
   Change the palette there and every rule below follows.
   ------------------------------------------------------------------ */

/* --- layout tokens --- */

:root {
	/* Gutter between a vertical rule and the content of the cell beside it.
	   Cells that open a row keep a zero left pad so the grid's left edge stays
	   flush with the page margin. */
	--aigx-cell-pad: 28px;
}

@media (max-width: 700px) {
	:root { --aigx-cell-pad: 20px; }
}

/* --- shared type devices --- */

.aigx-eyebrow {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	margin: 0 0 20px;
}

.aigx-dark .aigx-eyebrow {
	color: var(--wp--preset--color--slate-light);
}

.aigx-lede {
	max-width: 60ch;
	color: var(--wp--preset--color--slate);
}

.aigx-dark .aigx-lede {
	color: #b7c0cb;
}

.aigx-section-head {
	max-width: 64ch;
	margin-bottom: clamp(36px, 5vw, 56px);
}

.aigx-section-head h2 {
	max-width: 22ch;
	margin-bottom: 18px;
}

/* --- header --- */

.aigx-masthead {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--rule-dark);
}

.admin-bar .aigx-masthead {
	top: 32px;
}

.aigx-masthead .wp-block-site-title a {
	font-family: var(--wp--preset--font-family--display);
	font-size: 18px;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
	letter-spacing: -0.01em;
	white-space: nowrap;
}

.aigx-masthead .wp-block-navigation {
	font-size: 13.5px;
}

.aigx-masthead .wp-block-navigation a {
	color: #aeb8c4;
	padding-bottom: 4px;
	border-bottom: 1px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.aigx-masthead .wp-block-navigation a:hover,
.aigx-masthead .wp-block-navigation .current-menu-item a {
	color: #fff;
	border-bottom-color: var(--wp--preset--color--seal-light);
}

/* --- hero ledger strip --- */

.aigx-ledger {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--wp--preset--color--rule-dark);
}

.aigx-ledger__item {
	padding: 22px var(--aigx-cell-pad) 30px var(--aigx-cell-pad);
	border-right: 1px solid var(--wp--preset--color--rule-dark);
}

.aigx-ledger__item:first-child {
	padding-left: 0;
}

.aigx-ledger__item:last-child {
	border-right: 0;
	padding-right: 0;
}

.aigx-ledger__item .aigx-ledger__label {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate-light);
	margin: 0 0 8px;
}

.aigx-ledger__item .aigx-ledger__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 22px;
	color: #fff;
	margin: 0;
}

@media (max-width: 760px) {
	.aigx-ledger {
		grid-template-columns: 1fr;
	}

	.aigx-ledger__item,
	.aigx-ledger__item:first-child {
		border-right: 0;
		border-bottom: 1px solid var(--wp--preset--color--rule-dark);
		padding: 18px 0;
	}

	.aigx-ledger__item:last-child {
		border-bottom: 0;
	}
}

/* --- research register (the signature element) --- */

.aigx-register {
	border-top: 1px solid var(--wp--preset--color--rule);
}

.aigx-entry {
	display: grid;
	grid-template-columns: 180px 1fr 150px;
	gap: 32px;
	align-items: start;
	padding: 30px 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	transition: background 0.2s ease, padding-left 0.2s ease;
}

.aigx-entry:hover {
	background: var(--wp--preset--color--paper-shade);
	padding-left: 14px;
}

.aigx-entry__ref {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11.5px;
	letter-spacing: 0.06em;
	line-height: 1.6;
	color: var(--wp--preset--color--slate);
	padding-top: 5px;
	margin: 0;
}

.aigx-entry__ref strong {
	display: block;
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	margin-bottom: 6px;
}

.aigx-entry__title {
	margin: 0 0 10px;
	font-size: 19px;
	line-height: 1.3;
}

.aigx-entry__title a {
	text-decoration: none;
	color: inherit;
}

.aigx-entry__abstract {
	margin: 0;
	font-size: 15px;
	max-width: 62ch;
	color: var(--wp--preset--color--slate);
}

.aigx-entry__meta {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: right;
	color: var(--wp--preset--color--slate);
	padding-top: 6px;
}

.aigx-entry__meta p {
	margin: 0 0 10px;
}

.aigx-entry__meta p:last-child {
	margin-bottom: 0;
}

/* review-state chips — colour is meaning here, never decoration */

.aigx-chip {
	display: inline-block;
	padding: 4px 9px;
	font-size: 10px;
	border: 1px solid currentColor;
	border-radius: 2px;
}

.aigx-chip--published {
	color: var(--wp--preset--color--seal);
}

.aigx-chip--review {
	color: var(--wp--preset--color--amber);
}

.aigx-chip--forthcoming {
	color: var(--wp--preset--color--slate);
}

.aigx-entry__go {
	display: block;
	color: var(--wp--preset--color--ink);
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.aigx-entry:hover .aigx-entry__go,
.aigx-entry:focus-within .aigx-entry__go {
	opacity: 1;
	transform: none;
}

@media (max-width: 820px) {
	.aigx-entry {
		grid-template-columns: 1fr;
		gap: 14px;
		padding: 26px 0;
	}

	.aigx-entry__meta {
		text-align: left;
		padding-top: 0;
	}

	.aigx-entry__go {
		opacity: 1;
		transform: none;
	}
}

/* --- research programs --- */

.aigx-programs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--wp--preset--color--rule);
}

.aigx-program {
	padding: 28px var(--aigx-cell-pad) 32px var(--aigx-cell-pad);
	border-right: 1px solid var(--wp--preset--color--rule);
}

.aigx-programs .aigx-program:nth-child(4n + 1) {
	padding-left: 0;
}

.aigx-program:last-child {
	border-right: 0;
	padding-right: 0;
}

.aigx-program__tag {
	display: block;
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--seal);
	margin: 0 0 14px;
}

.aigx-program h3 {
	margin: 0 0 10px;
	font-size: 19px;
}

.aigx-program p:last-child {
	margin: 0;
	font-size: 14.5px;
	color: var(--wp--preset--color--slate);
}

@media (max-width: 900px) {
	.aigx-programs {
		grid-template-columns: 1fr 1fr;
	}

	.aigx-programs .aigx-program:nth-child(2n) {
		border-right: 0;
		padding-right: 0;
	}

	.aigx-programs .aigx-program:nth-child(2n + 1) {
		padding-left: 0;
	}

	.aigx-programs .aigx-program:nth-child(4n + 1) {
		padding-left: 0;
	}
}

@media (max-width: 560px) {
	.aigx-programs {
		grid-template-columns: 1fr;
	}

	.aigx-programs .aigx-program {
		border-right: 0;
		border-bottom: 1px solid var(--wp--preset--color--rule);
		padding-left: 0;
		padding-right: 0;
	}

	.aigx-program:last-child {
		border-bottom: 0;
	}
}

/* --- methodology --- */

.aigx-method {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--wp--preset--color--rule-dark);
	border-top: 1px solid var(--wp--preset--color--rule-dark);
}

.aigx-method__item {
	background: var(--wp--preset--color--ink);
	padding: 30px var(--aigx-cell-pad) 34px var(--aigx-cell-pad);
}

.aigx-method .aigx-method__item:nth-child(3n + 1) {
	padding-left: 0;
}

.aigx-method__num {
	display: block;
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--seal-light);
	margin: 0 0 14px;
}

.aigx-method__item h3 {
	color: #fff;
	font-size: 18px;
	margin: 0 0 10px;
}

.aigx-method__item p:last-child {
	margin: 0;
	font-size: 14.5px;
	color: #a9b3bf;
}

@media (max-width: 820px) {
	.aigx-method {
		grid-template-columns: 1fr;
	}

	.aigx-method .aigx-method__item,
	.aigx-method .aigx-method__item:nth-child(3n + 1) {
		padding-left: 0;
		padding-right: 0;
	}
}

/* --- next step --- */

.aigx-cta {
	border-top: 1px solid var(--wp--preset--color--rule);
}

.aigx-cta h2 {
	max-width: 18ch;
	margin: 0;
}

/* --- disclaimer --- */

.aigx-disclaimer {
	border-top: 1px solid var(--wp--preset--color--rule);
	padding-top: 34px;
	padding-bottom: 34px;
	max-width: 92ch;
	font-size: 12.5px;
	line-height: 1.65;
	color: var(--wp--preset--color--slate);
}

.aigx-disclaimer__label {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	margin: 0 0 10px;
}

/* --- footer --- */

.aigx-footer {
	font-size: 13.5px;
	color: #8d97a3;
}

/* Same four-column rhythm as the ruled grids above it, so the brand, the
   link columns and the legal note all start on the page's left edge and the
   last column ends flush with its right edge. */
.aigx-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 44px;
}

.aigx-footer__col > *:last-child {
	margin-bottom: 0;
}

.aigx-footer__col--brand {
	max-width: 34ch;
}

.aigx-footer__brand {
	font-family: var(--wp--preset--font-family--display);
	font-size: 17px;
	color: #fff;
	margin: 0 0 10px;
}

.aigx-footer__tagline {
	margin: 0;
	line-height: 1.6;
}

/* Cap height of the mono headings is smaller than the display face beside it,
   so nudge them onto the brand's optical baseline. */
.aigx-footer__heading {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 500;
	color: #fff;
	margin: 4px 0 16px;
}

.aigx-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.aigx-footer__list li {
	margin: 0;
}

.aigx-footer a {
	color: inherit;
	text-decoration: none;
}

.aigx-footer a:hover {
	color: var(--wp--preset--color--seal-light);
}

.aigx-footer__note {
	display: grid;
	grid-template-columns: 1.6fr 3fr;
	gap: 40px;
	align-items: start;
	border-top: 1px solid var(--wp--preset--color--rule-dark);
	padding-top: 24px;
}

.aigx-footer__note p {
	margin: 0;
	font-size: 12px;
	line-height: 1.7;
}

.aigx-footer__legal {
	text-align: right;
}

@media (max-width: 900px) {
	.aigx-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px 40px;
	}

	.aigx-footer__col--brand {
		grid-column: 1 / -1;
		max-width: none;
	}

	.aigx-footer__note {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.aigx-footer__legal {
		text-align: left;
	}
}

@media (max-width: 520px) {
	.aigx-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* --- buttons --- */

.wp-block-button__link {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 14px 22px;
	border-radius: 2px;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.is-style-outline .wp-block-button__link:hover {
	color: var(--wp--preset--color--seal-light);
	border-color: var(--wp--preset--color--seal-light);
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--seal);
	color: var(--wp--preset--color--paper);
}

.aigx-dark .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--seal-light);
	color: var(--wp--preset--color--ink);
}

/* --- posts (research archive + single) --- */

.aigx-post-list .wp-block-post-title {
	font-size: 19px;
	line-height: 1.3;
	margin: 0 0 10px;
}

.aigx-post-list .wp-block-post-title a {
	text-decoration: none;
}

.aigx-post-list .wp-block-post-excerpt__excerpt {
	font-size: 15px;
	color: var(--wp--preset--color--slate);
	max-width: 62ch;
}

.aigx-post-list .wp-block-post-date {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
}

/* --- quality floor --- */

:where(a):focus-visible,
:where(button):focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--seal);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
		animation: none !important;
	}
}

/* ==================================================================
   LEGAL, METHODOLOGY AND CONTACT PAGES
   ================================================================== */

/* --- page header: eyebrow, title, lede, metadata strip --- */

.aigx-page-head {
	padding-top: var(--wp--preset--spacing--60);
}

.aigx-page-head h1 {
	max-width: 20ch;
	margin: 0 0 20px;
}

.aigx-meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--wp--preset--color--rule);
	border-bottom: 1px solid var(--wp--preset--color--rule);
	margin-top: 40px;
}

.aigx-meta__item {
	padding: 20px var(--aigx-cell-pad) 22px var(--aigx-cell-pad);
	border-right: 1px solid var(--wp--preset--color--rule);
}

.aigx-meta .aigx-meta__item:nth-child(4n + 1) {
	padding-left: 0;
}

.aigx-meta__item:last-child {
	border-right: 0;
	padding-right: 0;
}

.aigx-meta__label {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	margin: 0 0 6px;
}

.aigx-meta__value {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 17px;
	color: var(--wp--preset--color--ink);
}

@media (max-width: 760px) {
	.aigx-meta {
		grid-template-columns: 1fr 1fr;
	}

	.aigx-meta .aigx-meta__item:nth-child(2n) {
		border-right: 0;
		padding-right: 0;
	}

	.aigx-meta .aigx-meta__item:nth-child(2n + 1) {
		padding-left: 0;
	}
}

/* --- contents --- */

.aigx-toc {
	padding: 34px 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.aigx-toc__label {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	margin: 0 0 16px;
}

.aigx-toc ol {
	columns: 2;
	column-gap: 48px;
	margin: 0;
	padding-left: 18px;
	font-size: 14.5px;
	line-height: 2;
}

.aigx-toc li::marker {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	color: var(--wp--preset--color--slate);
}

.aigx-toc a:hover {
	color: var(--wp--preset--color--seal);
}

@media (max-width: 700px) {
	.aigx-toc ol {
		columns: 1;
	}
}

/* --- numbered clause --- */

.aigx-clause {
	border-top: 1px solid var(--wp--preset--color--rule);
	padding-top: 36px;
	margin-top: 40px;
	max-width: 78ch;
	scroll-margin-top: 96px;
}

.aigx-clause__title {
	font-size: 24px;
	line-height: 1.2;
	margin: 0 0 18px;
}

.aigx-clause__num {
	display: block;
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--seal);
	margin-bottom: 10px;
}

.aigx-clause p,
.aigx-clause li {
	font-size: 15.5px;
}

.aigx-clause ul,
.aigx-clause ol {
	padding-left: 20px;
}

.aigx-clause li {
	margin-bottom: 8px;
}

/* term / definition pairs */

.aigx-def {
	border-left: 2px solid var(--wp--preset--color--rule);
	padding-left: var(--aigx-cell-pad);
	margin-bottom: 20px;
}

.aigx-def__term {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	margin: 0 0 6px;
}

.aigx-def p:last-child {
	margin: 0;
	color: var(--wp--preset--color--slate);
}

/* --- generic ruled grid used across the new pages --- */

.aigx-grid {
	display: grid;
	border-top: 1px solid var(--wp--preset--color--rule);
	margin-top: 8px;
}

.aigx-grid--2 { grid-template-columns: repeat(2, 1fr); }
.aigx-grid--3 { grid-template-columns: repeat(3, 1fr); }
.aigx-grid--4 { grid-template-columns: repeat(4, 1fr); }

.aigx-grid__cell {
	padding: 26px var(--aigx-cell-pad) 30px var(--aigx-cell-pad);
	border-right: 1px solid var(--wp--preset--color--rule);
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

/* last cell in a row: no rule, no right pad — flush with the page margin */
.aigx-grid--2 .aigx-grid__cell:nth-child(2n),
.aigx-grid--3 .aigx-grid__cell:nth-child(3n),
.aigx-grid--4 .aigx-grid__cell:nth-child(4n) {
	border-right: 0;
	padding-right: 0;
}

/* first cell in a row: no left pad, same reason */
.aigx-grid--2 .aigx-grid__cell:nth-child(2n + 1),
.aigx-grid--3 .aigx-grid__cell:nth-child(3n + 1),
.aigx-grid--4 .aigx-grid__cell:nth-child(4n + 1) {
	padding-left: 0;
}

.aigx-grid__label {
	display: block;
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--seal);
	margin: 0 0 12px;
}

.aigx-grid__cell h3 {
	margin: 0 0 10px;
	font-size: 18px;
}

.aigx-grid__cell p:last-child {
	margin: 0;
	font-size: 14.5px;
	color: var(--wp--preset--color--slate);
}

@media (max-width: 900px) {
	.aigx-grid--4 { grid-template-columns: 1fr 1fr; }

	.aigx-grid--4 .aigx-grid__cell:nth-child(2n + 1) {
		border-right: 1px solid var(--wp--preset--color--rule);
		padding-left: 0;
		padding-right: var(--aigx-cell-pad);
	}

	.aigx-grid--4 .aigx-grid__cell:nth-child(2n) {
		border-right: 0;
		padding-left: var(--aigx-cell-pad);
		padding-right: 0;
	}
}

@media (max-width: 820px) {
	.aigx-grid--2,
	.aigx-grid--3 { grid-template-columns: 1fr; }

	.aigx-grid--2 .aigx-grid__cell,
	.aigx-grid--3 .aigx-grid__cell,
	.aigx-grid--2 .aigx-grid__cell:nth-child(2n + 1),
	.aigx-grid--3 .aigx-grid__cell:nth-child(3n + 1) {
		border-right: 0;
		padding-left: 0;
		padding-right: 0;
	}
}

@media (max-width: 560px) {
	.aigx-grid--4 { grid-template-columns: 1fr; }

	.aigx-grid--4 .aigx-grid__cell,
	.aigx-grid--4 .aigx-grid__cell:nth-child(2n),
	.aigx-grid--4 .aigx-grid__cell:nth-child(2n + 1) {
		border-right: 0;
		padding-left: 0;
		padding-right: 0;
	}
}

/* --- scope: in / out --- */

.aigx-scope h3 {
	font-size: 16px;
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 2px solid currentColor;
}

.aigx-scope--in h3 { color: var(--wp--preset--color--seal); }
.aigx-scope--out h3 { color: var(--wp--preset--color--slate); }

/* --- notice / disclaimer box --- */

.aigx-notice {
	margin-top: 48px;
	padding: 26px var(--aigx-cell-pad);
	background: var(--wp--preset--color--paper-shade);
	border-left: 2px solid var(--wp--preset--color--seal);
	max-width: 92ch;
}

.aigx-notice__label {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	margin: 0 0 10px;
}

.aigx-notice p:last-child {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--wp--preset--color--slate);
}

/* --- tables on content pages --- */

.aigx-table table {
	border-collapse: collapse;
	width: 100%;
}

.aigx-table th {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: left;
	font-weight: 500;
	color: var(--wp--preset--color--slate);
	border-bottom: 1px solid var(--wp--preset--color--ink);
	padding: 0 20px 12px 0;
}

.aigx-table td {
	font-size: 14.5px;
	vertical-align: top;
	padding: 16px 20px 16px 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.aigx-table td:first-child {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 12.5px;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--ink);
	white-space: nowrap;
}

.aigx-table--prose td:first-child {
	font-family: inherit;
	font-size: 14.5px;
	letter-spacing: 0;
	white-space: normal;
}

@media (max-width: 700px) {
	.aigx-table { overflow-x: auto; }
	.aigx-table table { min-width: 560px; }
}

/* ==================================================================
   CONTACT
   ================================================================== */

.aigx-contact-layout {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 64px;
	border-top: 1px solid var(--wp--preset--color--rule);
	padding-top: 44px;
}

@media (max-width: 900px) {
	.aigx-contact-layout {
		grid-template-columns: 1fr;
		gap: 44px;
	}
}

.aigx-contact-card {
	border-left: 1px solid var(--wp--preset--color--rule);
	padding-left: var(--aigx-cell-pad);
}

@media (max-width: 900px) {
	.aigx-contact-card {
		border-left: 0;
		border-top: 1px solid var(--wp--preset--color--rule);
		padding-left: 0;
		padding-top: 28px;
	}
}

.aigx-contact-card__email {
	font-family: var(--wp--preset--font-family--display);
	font-size: 21px;
	margin: 0 0 6px;
	word-break: break-word;
}

.aigx-routing {
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}

.aigx-routing li {
	display: grid;
	grid-template-columns: 118px 1fr;
	gap: 14px;
	padding: 11px 0;
	border-top: 1px solid var(--wp--preset--color--rule);
	font-size: 13.5px;
	color: var(--wp--preset--color--slate);
}

.aigx-routing code {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--seal);
	background: none;
	padding: 0;
}

/* --- the form --- */

.aigx-form {
	max-width: 62ch;
}

.aigx-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

@media (max-width: 620px) {
	.aigx-form__row {
		grid-template-columns: 1fr;
	}
}

.aigx-field {
	margin-bottom: 20px;
}

.aigx-field label {
	display: block;
	font-family: var(--wp--preset--font-family--utility);
	font-size: 10.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	margin-bottom: 8px;
}

.aigx-field .aigx-req {
	color: var(--wp--preset--color--amber);
}

.aigx-field input[type="text"],
.aigx-field input[type="email"],
.aigx-field select,
.aigx-field textarea {
	width: 100%;
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	color: var(--wp--preset--color--ink);
	background: transparent;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 2px;
	padding: 12px 14px;
	transition: border-color 0.15s ease;
}

.aigx-field input:focus,
.aigx-field select:focus,
.aigx-field textarea:focus {
	border-color: var(--wp--preset--color--seal);
	outline: 2px solid var(--wp--preset--color--seal);
	outline-offset: 1px;
}

.aigx-field textarea {
	min-height: 150px;
	resize: vertical;
}

.aigx-field--consent {
	display: grid;
	grid-template-columns: 20px 1fr;
	gap: 12px;
	align-items: start;
	margin: 26px 0;
	padding-top: 22px;
	border-top: 1px solid var(--wp--preset--color--rule);
}

.aigx-field--consent label {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13.5px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--slate);
	line-height: 1.6;
	margin: 0;
}

.aigx-field--consent input[type="checkbox"] {
	margin-top: 3px;
	accent-color: var(--wp--preset--color--seal);
	width: 16px;
	height: 16px;
}

.aigx-form__caution {
	font-size: 13px;
	line-height: 1.65;
	color: var(--wp--preset--color--slate);
	background: var(--wp--preset--color--paper-shade);
	border-left: 2px solid var(--wp--preset--color--amber);
	padding: 18px var(--aigx-cell-pad);
	margin-bottom: 28px;
}

.aigx-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.aigx-form button[type="submit"] {
	font-family: var(--wp--preset--font-family--utility);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--paper);
	background: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 2px;
	padding: 14px 24px;
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease;
}

.aigx-form button[type="submit"]:hover {
	background: var(--wp--preset--color--seal);
	border-color: var(--wp--preset--color--seal);
}

/* form result messages */

.aigx-message {
	padding: 18px var(--aigx-cell-pad);
	margin-bottom: 28px;
	border-left: 2px solid;
	font-size: 14.5px;
	line-height: 1.6;
}

.aigx-message--sent {
	border-color: var(--wp--preset--color--seal);
	background: var(--wp--preset--color--paper-shade);
	color: var(--wp--preset--color--ink);
}

.aigx-message--error {
	border-color: var(--wp--preset--color--amber);
	background: var(--wp--preset--color--paper-shade);
	color: var(--wp--preset--color--ink);
}

.aigx-message p:last-child {
	margin: 0;
}
