@layer reset, tokens, base, layout, blocks, utilities;

@layer base {

	:where(button, input:not([type="hidden"]), select, summary, textarea, .wp-element-button) {
		min-block-size: 44px;
		min-inline-size: 44px;
	}

	:where(a, button, input, select, textarea, summary):focus-visible {
		outline: 3px solid var(--wp--preset--color--orange);
		outline-offset: 3px;
	}

	:where(.has-orange-background-color, .home-final-cta) :where(a, button, input, select, textarea, summary):focus-visible {
		outline-color: var(--wp--preset--color--white);
	}

	:where(.wp-block-navigation-item__content, .wp-block-query-pagination a, .wp-block-button__link) {
		align-items: center;
		display: inline-flex;
		justify-content: center;
		min-block-size: 44px;
		min-inline-size: 44px;
	}

	.wp-block-navigation-item__content,
	.wp-block-query-pagination a {
		box-sizing: border-box;
		padding: 0.625rem 0.5rem;
	}

	@media (prefers-reduced-motion: reduce) {

		*,
		*::before,
		*::after {
			scroll-behavior: auto !important;
			transition-duration: 0.01ms !important;
		}
	}
}

@layer layout {

	.site-header,
	.site-footer {
		padding-block: var(--wp--preset--spacing--30);
	}

	.site-header {
		border-block-end: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 18%, transparent);
	}

	.site-footer {
		border-block-start: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 18%, transparent);
	}

	.site-header__brand,
	.site-header__inner,
	.site-footer__inner {
		gap: var(--wp--preset--spacing--30);
	}

	.skip-link {
		background: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--white);
		inset-block-start: var(--wp--preset--spacing--20);
		inset-inline-start: var(--wp--preset--spacing--20);
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
		position: fixed;
		transform: translateY(-200%);
		z-index: 100;
	}

	.skip-link:focus {
		transform: translateY(0);
	}

	.site-main {
		min-block-size: 40vh;
		padding-block-end: calc(12rem + env(safe-area-inset-bottom));
	}

	.home-section {
		padding-block: var(--wp--preset--spacing--60);
	}

	.home-hero {
		padding-block: var(--wp--preset--spacing--50);
	}

	.home-hero__layout,
	.home-pathways__grid,
	.home-comparison,
	.home-card-grid {
		gap: var(--wp--preset--spacing--40);
	}

	.home-eyebrow {
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.quote-form-fixture {
		background: var(--wp--preset--color--white);
		color: var(--wp--preset--color--navy);
		margin-inline: auto;
		max-inline-size: 36rem;
		padding: var(--wp--preset--spacing--40);
		scroll-margin-block-start: var(--wp--preset--spacing--50);
	}

	.quote-form-fixture h2,
	.quote-form-fixture legend {
		font-family: var(--wp--preset--font-family--display);
		font-weight: 700;
	}

	.quote-form-fixture h2 {
		font-size: var(--wp--preset--font-size--h-3);
		line-height: 1.1;
		margin-block: 0 var(--wp--preset--spacing--20);
	}

	.quote-form-fixture > p {
		font-size: 0.875rem;
		margin-block: 0 var(--wp--preset--spacing--30);
	}

	.quote-form-fixture fieldset {
		border: 0;
		margin: 0;
		padding: 0;
	}

	.quote-form-fixture legend {
		margin-block-end: var(--wp--preset--spacing--20);
	}

	.quote-form-fixture__fields {
		display: grid;
		gap: var(--wp--preset--spacing--20);
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.quote-form-fixture label {
		display: block;
		font-size: 0.875rem;
		font-weight: 700;
	}

	.quote-form-fixture input,
	.quote-form-fixture select,
	.quote-form-fixture textarea {
		background: var(--wp--preset--color--cream);
		border: 1px solid var(--wp--preset--color--navy);
		border-radius: 0;
		box-sizing: border-box;
		color: var(--wp--preset--color--navy);
		font: inherit;
		inline-size: 100%;
		padding: 0.625rem;
	}

	.quote-form-fixture label > :where(input:not([type="checkbox"]), select, textarea) {
		display: block;
		margin-block-start: 0.25rem;
	}

	.quote-form-fixture__consent input {
		accent-color: var(--wp--preset--color--orange);
		inline-size: 1.25rem;
		margin: 0;
		min-block-size: 1.25rem;
		min-inline-size: 1.25rem;
	}

	.quote-form-fixture input:disabled,
	.quote-form-fixture select:disabled,
	.quote-form-fixture textarea:disabled {
		color: color-mix(in srgb, var(--wp--preset--color--navy) 75%, transparent);
		opacity: 1;
	}

	.quote-form-fixture__field--wide {
		grid-column: 1 / -1;
	}

	.quote-form-fixture__consent {
		align-items: start;
		display: grid;
		font-weight: 400 !important;
		gap: var(--wp--preset--spacing--20) !important;
		grid-template-columns: auto 1fr;
		margin-block: var(--wp--preset--spacing--30);
	}

	.quote-form-fixture button {
		background: color-mix(in srgb, var(--wp--preset--color--navy) 18%, var(--wp--preset--color--white));
		border: 0;
		color: var(--wp--preset--color--navy);
		font-weight: 700;
		inline-size: 100%;
		padding: var(--wp--preset--spacing--20);
	}

	.home-trust-strip {
		padding-block: var(--wp--preset--spacing--30);
	}

	.home-trust-strip__items {
		margin-block: 0;
	}

	.home-trust-strip__items p {
		margin-block: 0;
	}

	.home-trust-strip__phone-link {
		align-items: center;
		display: inline-flex;
		min-block-size: 44px;
		min-inline-size: 44px;
	}

	.home-card-grid .wp-block-column,
	.home-pathways__grid .wp-block-column {
		display: flex;
	}

	.home-card {
		background: var(--wp--preset--color--white);
		border-block-start: 0.25rem solid var(--wp--preset--color--orange);
		box-shadow: 0 0.5rem 1.5rem rgb(11 31 51 / 8%);
		flex: 1;
		padding: var(--wp--preset--spacing--40);
	}

	.home-card h3,
	.home-comparison__placeholder h3 {
		margin-block-start: 0;
	}

	.home-step-list,
	.home-factor-list {
		margin-block-end: 0;
		padding-inline-start: 1.5rem;
	}

	.home-step-list li,
	.home-factor-list li {
		margin-block-end: var(--wp--preset--spacing--30);
		padding-inline-start: var(--wp--preset--spacing--20);
	}

	.home-step-list li::marker {
		color: var(--wp--preset--color--lime);
		font-size: 1.5em;
		font-weight: 700;
	}

	.home-comparison__placeholder {
		align-content: center;
		background: var(--wp--preset--color--cream);
		border: 2px dashed color-mix(in srgb, var(--wp--preset--color--navy) 38%, transparent);
		min-block-size: 14rem;
		padding: var(--wp--preset--spacing--40);
		text-align: center;
	}

	.home-faq .wp-block-details {
		border-block-end: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 24%, transparent);
		margin: 0;
		padding-block: var(--wp--preset--spacing--20);
	}

	.home-faq summary {
		align-items: center;
		display: flex;
		font-weight: 700;
		padding-inline-end: var(--wp--preset--spacing--30);
	}

	.home-reviews__summary strong {
		font-family: var(--wp--preset--font-family--display);
		font-size: var(--wp--preset--font-size--h-3);
	}

	.home-hero .is-style-outline .wp-block-button__link,
	.home-areas .is-style-outline .wp-block-button__link {
		border-color: var(--wp--preset--color--white);
		color: var(--wp--preset--color--white);
	}

	.home-final-cta .is-style-outline .wp-block-button__link {
		border-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--navy);
	}
}

@layer blocks {

	.site-contact-widget {
		bottom: calc(var(--wp--preset--spacing--40) + env(safe-area-inset-bottom));
		display: flex;
		flex-direction: column;
		inset-inline-end: var(--wp--preset--spacing--40);
		max-inline-size: min(22rem, calc(100vw - 2 * var(--wp--preset--spacing--40)));
		position: fixed;
		z-index: 10;
	}

	.site-contact-widget__panel {
		background: var(--wp--preset--color--navy);
		box-shadow: 0 0.75rem 2rem rgb(11 31 51 / 24%);
		color: var(--wp--preset--color--white);
		margin-block-end: var(--wp--preset--spacing--20);
		order: -1;
		padding: var(--wp--preset--spacing--30);
	}

	.site-contact-widget__panel p {
		margin-block: 0 var(--wp--preset--spacing--20);
	}

	.site-contact-widget__action,
	.site-contact-widget__toggle,
	.mobile-contact-bar a {
		align-items: center;
		background: var(--wp--preset--color--orange);
		color: var(--wp--preset--color--navy);
		display: flex;
		font-weight: 700;
		justify-content: center;
		min-block-size: 44px;
		padding-inline: var(--wp--preset--spacing--30);
		text-decoration: none;
	}

	.site-contact-widget__action + .site-contact-widget__action {
		margin-block-start: var(--wp--preset--spacing--20);
	}

	.site-contact-widget__toggle {
		border: 0;
		cursor: pointer;
		inline-size: 100%;
	}

	.mobile-contact-bar {
		display: none;
	}

	@media (max-width: 781px) {

		.home-section {
			padding-block: var(--wp--preset--spacing--50);
		}

		.site-main {
			padding-block-end: calc(6rem + env(safe-area-inset-bottom));
		}

		.home-hero {
			padding-block-start: var(--wp--preset--spacing--40);
		}

		.quote-form-fixture {
			padding: var(--wp--preset--spacing--30);
		}

		.quote-form-fixture__fields {
			grid-template-columns: 1fr;
		}

		.quote-form-fixture__field--wide {
			grid-column: auto;
		}

		.site-footer {
			padding-block-end: calc(6rem + env(safe-area-inset-bottom));
		}

		.site-contact-widget {
			display: none;
		}

		.mobile-contact-bar {
			background: var(--wp--preset--color--navy);
			bottom: 0;
			display: grid;
			gap: var(--wp--preset--spacing--20);
			grid-template-columns: repeat(3, minmax(0, 1fr));
			inset-inline: 0;
			padding: var(--wp--preset--spacing--20);
			padding-block-end: calc(var(--wp--preset--spacing--20) + env(safe-area-inset-bottom));
			position: fixed;
			z-index: 10;
		}

		.mobile-contact-bar a {
			font-size: 0.875rem;
			padding-inline: var(--wp--preset--spacing--20);
			text-align: center;
		}
	}
}
