/*
Theme Name: MitCorp Group
Theme URI: https://mitcorpgroup.com
Author: MitCorp Group
Author URI: https://mitcorpgroup.com
Description: Bespoke block theme for MitCorp Group — Carbon & Cost Consultancy. Deep forest, graphite, off-white and soft-lime design system; native Gutenberg blocks; no page builder.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mitcorp-group
Tags: block-patterns, block-styles, full-site-editing, wide-blocks, custom-colors, custom-logo, featured-images, translation-ready
*/

/* ─────────────────────────────────────────────────────────────
   Custom CSS layer.
   All colours, fonts and spacing come from theme.json presets —
   never hard-code palette values here; reference the presets.
   ───────────────────────────────────────────────────────────── */

/* Selection — lime highlight keeps both light and dark text readable. */
::selection {
	background: var(--wp--preset--color--lime);
	color: var(--wp--preset--color--graphite);
}

/* ── Focus ────────────────────────────────────────────────────
   Two-tone focus: dark outline plus a light offset ring so the
   indicator stays visible on both off-white and forest grounds. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.wp-block-navigation a:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--forest);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--wp--preset--color--lime);
	border-radius: 2px;
}

.wp-block-group.has-forest-background-color :is(a, button, input, select, textarea, [tabindex], .wp-block-button__link):focus-visible {
	outline-color: var(--wp--preset--color--lime);
	box-shadow: 0 0 0 6px var(--wp--preset--color--forest);
}

/* ── Skip link ────────────────────────────────────────────────
   WordPress injects .skip-link for block themes; make it a real
   control rather than browser-default text when focused. */
.skip-link {
	position: absolute;
	top: -100%;
	left: var(--wp--preset--spacing--sm);
	z-index: 100000;
	padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm);
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--white);
	font-weight: 600;
	text-decoration: none;
	border-radius: 0 0 4px 4px;
}

.skip-link:focus {
	top: 0;
}

/* ── Links ──────────────────────────────────────────────────── */
a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color 160ms ease, text-decoration-color 160ms ease;
}

a:hover {
	text-decoration-thickness: 2px;
}

/* ── Buttons ────────────────────────────────────────────────── */
.wp-block-button__link {
	transition: background-color 160ms ease, color 160ms ease, transform 120ms ease;
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* ── Header / navigation ────────────────────────────────────── */
.wp-block-navigation a {
	text-decoration: none;
}

.wp-block-navigation a:hover,
.wp-block-navigation .current-menu-item > a {
	text-decoration: underline;
	text-underline-offset: 0.3em;
	text-decoration-thickness: 2px;
}

/* Keep the overlay menu panel aligned to the palette. */
.wp-block-navigation__responsive-container {
	font-family: var(--wp--preset--font-family--body);
}

/* ── Card block style ─────────────────────────────────────────
   Apply via "is-style-card" on a Group: off-white card lifted
   on the canvas with a soft border and restrained shadow. */
.is-style-card {
	background: var(--wp--preset--color--white);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--forest) 14%, transparent);
	border-radius: 10px;
	box-shadow: 0 1px 2px rgba(21, 62, 53, 0.06), 0 8px 24px rgba(21, 62, 53, 0.05);
}

/* ── Enquiry form ───────────────────────────────────────────── */
.mitcorp-form {
	display: grid;
	gap: var(--wp--preset--spacing--md);
	max-width: 40rem;
}

.mitcorp-form__field {
	display: grid;
	gap: 0.35rem;
}

.mitcorp-form__label {
	font-weight: 600;
	color: var(--wp--preset--color--forest);
}

.mitcorp-form__optional {
	font-weight: 400;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--graphite);
}

.mitcorp-form input[type="text"],
.mitcorp-form input[type="email"],
.mitcorp-form input[type="tel"],
.mitcorp-form select,
.mitcorp-form textarea {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 2px solid color-mix(in srgb, var(--wp--preset--color--forest) 35%, transparent);
	border-radius: 6px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--graphite);
	font: inherit;
}

.mitcorp-form input[aria-invalid="true"],
.mitcorp-form select[aria-invalid="true"],
.mitcorp-form textarea[aria-invalid="true"] {
	border-color: #b3261e;
}

.mitcorp-form__error {
	color: #8f1d17;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--sm);
}

.mitcorp-form__help {
	font-size: var(--wp--preset--font-size--sm);
}

.mitcorp-form__status[role="alert"] {
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	border-radius: 6px;
	font-weight: 600;
}

.mitcorp-form__status--success {
	background: color-mix(in srgb, var(--wp--preset--color--lime) 45%, var(--wp--preset--color--white));
	border-left: 4px solid var(--wp--preset--color--forest);
	color: var(--wp--preset--color--graphite);
}

.mitcorp-form__status--error {
	background: #fdecea;
	border-left: 4px solid #b3261e;
	color: #5c110c;
}

/* Honeypot — visually hidden but still in the accessibility tree
   is undesirable; hide it completely from everyone. */
.mitcorp-form__hp {
	position: absolute;
	left: -100vw;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ── Footer ─────────────────────────────────────────────────── */
.mitcorp-footer a {
	color: inherit;
}

/* ── Motion ─────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
