/* Courtyard Base — shared component styles. Tokens come from theme.json (--wp--preset--*). */

/* ---------- Header ---------- */
.courtyard-header {
	box-shadow: 0 1px 0 var(--wp--preset--color--border);
	z-index: 50;
}
.courtyard-header .wp-block-site-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.courtyard-header .wp-block-site-logo img {
	max-height: 44px;
	width: auto;
}
.courtyard-header .wp-block-navigation a {
	color: var(--wp--preset--color--ink);
	padding: 0.5rem 0.25rem;
}
.courtyard-header .wp-block-navigation .current-menu-item > a {
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}
.courtyard-header-phone {
	margin: 0;
	white-space: nowrap;
}
.courtyard-header-phone a {
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}
.courtyard-header-cta {
	margin: 0;
}
.courtyard-header-cta .wp-block-button__link {
	white-space: nowrap;
}
/* Optional tagline under the site title (Jaye). */
.courtyard-header .courtyard-header__tagline {
	margin: 0;
	color: var(--wp--preset--color--ink-muted);
	line-height: 1.2;
}
@media (max-width: 600px) {
	.courtyard-header .courtyard-header__tagline {
		display: none;
	}
}
/* Mobile overlay: left-aligned full-width 48px rows, visible close button. Specificity beats core's items-justified-* rules. */
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem 1.5rem;
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 2.5rem;
	align-items: stretch;
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container.items-justified-right,
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container.items-justified-center {
	align-items: stretch !important;
	justify-content: flex-start !important;
	width: 100%;
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	align-items: stretch !important;
	justify-content: flex-start !important;
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 0.75rem 0;
	min-height: 48px;
	font-size: 1.125rem;
	text-align: left;
	color: var(--wp--preset--color--base) !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--base);
	top: 1rem;
	right: 1rem;
}
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 28px;
	height: 28px;
}
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
@media (max-width: 600px) {
	.courtyard-header .wp-block-site-title {
		font-size: 1rem;
		line-height: 1.2;
		flex: 1 1 auto;
		min-width: 0;
	}
	.courtyard-header > .wp-block-group > .wp-block-group {
		gap: 0.5rem;
		flex: 0 0 auto;
	}
	.courtyard-header .wp-block-navigation__responsive-container-open {
		min-width: 40px;
	}
	.courtyard-header .wp-block-navigation {
		order: 2; /* hamburger stays at the far right; CTA sits before it */
	}
	.courtyard-header-cta .wp-block-button__link {
		padding: 0.5rem 0.75rem;
		font-size: 0.8125rem;
		min-height: 40px;
	}
	.courtyard-header-phone {
		display: none;
	}
}

/* ---------- Footer ---------- */
.courtyard-footer a {
	color: rgba(255, 255, 255, 0.92);
	text-decoration: none;
}
.courtyard-footer a:hover,
.courtyard-footer a:focus-visible {
	text-decoration: underline;
}
.courtyard-footer .wp-block-site-title,
.courtyard-footer .courtyard-footer__title {
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin-bottom: 0.75rem;
}
.courtyard-footer .wp-block-site-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
}
.courtyard-footer__blurb,
.courtyard-footer p {
	color: rgba(255, 255, 255, 0.85);
}
.courtyard-footer .wp-block-navigation__container {
	gap: 0.5rem;
}
.courtyard-footer .wp-block-navigation,
.courtyard-footer .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content {
	color: rgba(255, 255, 255, 0.92);
}
.courtyard-footer .wp-block-navigation-item__content {
	padding: 0.15rem 0;
}
.courtyard-related {
	gap: 0.5rem 1rem;
	margin-bottom: var(--wp--preset--spacing--30);
}
.courtyard-related__label {
	color: var(--wp--preset--color--accent-soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0;
}
.courtyard-related__links {
	margin: 0;
}
.courtyard-related__links a,
.courtyard-legal-links a {
	display: inline-block;
	padding: 0.5rem 0;
	margin-right: 1rem;
	line-height: 1.5;
}
.courtyard-legal-links a {
	margin-right: 0.25rem;
}
.courtyard-legal-links,
.courtyard-copyright,
.courtyard-disclaimer {
	color: rgba(255, 255, 255, 0.7);
	margin: 0.25rem 0 0;
}
@media (max-width: 781px) {
	.courtyard-footer .wp-block-columns {
		gap: var(--wp--preset--spacing--40);
	}
}

/* ---------- Block styles ---------- */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--custom--shadow--card);
	padding: var(--wp--preset--spacing--40);
	height: 100%;
}
.wp-block-group.is-style-card {
	color: var(--wp--preset--color--ink);
}
.wp-block-group.is-style-card h2,
.wp-block-group.is-style-card h3,
.wp-block-group.is-style-card h4 {
	margin-top: 0;
	color: var(--wp--preset--color--contrast);
}
.wp-block-group.is-style-card a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--accent);
}
.wp-block-group.is-style-card .is-style-eyebrow {
	color: var(--wp--preset--color--gold-dark);
}
.wp-block-group.is-style-card .is-style-fine-print {
	color: var(--wp--preset--color--ink-muted);
}
.wp-block-group.is-style-card-cta {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--50);
}
.is-style-eyebrow {
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wp--preset--color--gold-dark);
	margin-bottom: 0.5rem;
}
.has-contrast-background-color .is-style-eyebrow,
.has-contrast-2-background-color .is-style-eyebrow {
	color: var(--wp--preset--color--accent-soft);
}
.is-style-fine-print {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink-muted);
}
.has-contrast-background-color .is-style-fine-print,
.has-contrast-2-background-color .is-style-fine-print {
	color: rgba(255, 255, 255, 0.78);
}
.has-contrast-background-color .is-style-fine-print a,
.has-contrast-2-background-color .is-style-fine-print a,
.has-contrast-background-color a:not(.wp-block-button__link),
.has-contrast-2-background-color a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--accent-soft);
}
.has-contrast-background-color h1,
.has-contrast-background-color h2,
.has-contrast-background-color h3,
.has-contrast-2-background-color h1,
.has-contrast-2-background-color h2,
.has-contrast-2-background-color h3 {
	color: var(--wp--preset--color--base);
}
.wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	border: 1px solid rgba(255, 255, 255, 0.6);
}
.wp-block-button.is-style-outline-light .wp-block-button__link:hover,
.wp-block-button.is-style-outline-light .wp-block-button__link:focus-visible {
	background: rgba(255, 255, 255, 0.1);
	border-color: var(--wp--preset--color--base);
}
.wp-block-button.is-style-fill-light .wp-block-button__link {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--base);
}
.wp-block-button.is-style-fill-light .wp-block-button__link:hover,
.wp-block-button.is-style-fill-light .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--surface);
}
.wp-block-button__link {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.wp-block-details.is-style-faq {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	padding: 0.875rem 1.125rem;
	background: var(--wp--preset--color--base);
}
.wp-block-details.is-style-faq summary {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	padding: 0.25rem 0;
}
.wp-block-details.is-style-faq[open] summary {
	margin-bottom: 0.5rem;
}

/* ---------- Cards inside dark sections keep their light palette ---------- */
.wp-block-group.is-style-card h1 {
	margin-top: 0;
	color: var(--wp--preset--color--contrast);
}
.has-contrast-background-color .wp-block-group.is-style-card,
.has-contrast-2-background-color .wp-block-group.is-style-card {
	color: var(--wp--preset--color--ink);
}
.has-contrast-background-color .wp-block-group.is-style-card :is(h1, h2, h3, h4),
.has-contrast-2-background-color .wp-block-group.is-style-card :is(h1, h2, h3, h4) {
	color: var(--wp--preset--color--contrast);
}
.has-contrast-background-color .wp-block-group.is-style-card a:not(.wp-block-button__link),
.has-contrast-2-background-color .wp-block-group.is-style-card a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--accent);
}
.has-contrast-background-color .wp-block-group.is-style-card .is-style-eyebrow,
.has-contrast-2-background-color .wp-block-group.is-style-card .is-style-eyebrow {
	color: var(--wp--preset--color--gold-dark);
}
.has-contrast-background-color .wp-block-group.is-style-card .is-style-fine-print,
.has-contrast-2-background-color .wp-block-group.is-style-card .is-style-fine-print {
	color: var(--wp--preset--color--ink-muted);
}
.wp-block-group.is-style-card iframe {
	max-width: 100%;
}

/* ---------- A dark section nested inside a card ---------- */
.wp-block-group.is-style-card .has-contrast-background-color,
.wp-block-group.is-style-card .has-contrast-2-background-color {
	color: var(--wp--preset--color--base);
}
.wp-block-group.is-style-card .has-contrast-background-color :is(h1, h2, h3, h4),
.wp-block-group.is-style-card .has-contrast-2-background-color :is(h1, h2, h3, h4) {
	color: var(--wp--preset--color--base);
}
.wp-block-group.is-style-card .has-contrast-background-color .is-style-eyebrow,
.wp-block-group.is-style-card .has-contrast-2-background-color .is-style-eyebrow {
	color: var(--wp--preset--color--accent-soft);
}
.wp-block-group.is-style-card .has-contrast-background-color a:not(.wp-block-button__link),
.wp-block-group.is-style-card .has-contrast-2-background-color a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--accent-soft);
}

/* ---------- Forms placed directly on a dark section (not inside a card) ---------- */
.has-contrast-background-color .gform_wrapper:not(.is-style-card *),
.has-contrast-2-background-color .gform_wrapper:not(.is-style-card *),
.has-contrast-background-color .wpcf7:not(.is-style-card *),
.has-contrast-2-background-color .wpcf7:not(.is-style-card *) {
	--gf-color-primary: var(--wp--preset--color--base);
	--gf-color-primary-darker: var(--wp--preset--color--base);
	--gf-color-in-error: #ffb4a3;
	--gf-color-in-error-darker: #ffb4a3;
	color: var(--wp--preset--color--base);
}
.has-contrast-background-color :is(.gform_wrapper, .wpcf7):not(.is-style-card *) :is(label, legend, .gfield_label, .gform-field-label, .gform-field-label__text, .gfield_description, .gform_required_legend, .gform_validation_container, .gfield_consent_description),
.has-contrast-2-background-color :is(.gform_wrapper, .wpcf7):not(.is-style-card *) :is(label, legend, .gfield_label, .gform-field-label, .gform-field-label__text, .gfield_description, .gform_required_legend, .gform_validation_container, .gfield_consent_description) {
	color: var(--wp--preset--color--base);
}
.has-contrast-background-color .gform_wrapper:not(.is-style-card *) .gfield_description,
.has-contrast-2-background-color .gform_wrapper:not(.is-style-card *) .gfield_description {
	color: rgba(255, 255, 255, 0.78);
}
.has-contrast-background-color .gform_wrapper:not(.is-style-card *) .gfield_required,
.has-contrast-2-background-color .gform_wrapper:not(.is-style-card *) .gfield_required {
	color: #ffb4a3;
}
.has-contrast-background-color :is(.gform_wrapper, .wpcf7):not(.is-style-card *) :is(input[type="submit"], button[type="submit"], .gform_button),
.has-contrast-2-background-color :is(.gform_wrapper, .wpcf7):not(.is-style-card *) :is(input[type="submit"], button[type="submit"], .gform_button) {
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--base);
}
.has-contrast-background-color :is(.gform_wrapper, .wpcf7):not(.is-style-card *) :is(input[type="submit"], button[type="submit"], .gform_button):hover,
.has-contrast-2-background-color :is(.gform_wrapper, .wpcf7):not(.is-style-card *) :is(input[type="submit"], button[type="submit"], .gform_button):hover {
	background: var(--wp--preset--color--surface);
}
/* ---------- Content defaults ---------- */
.site-main a {
	overflow-wrap: anywhere;
	text-underline-offset: 4px;
}
.site-main img {
	max-width: 100%;
	height: auto;
}
.wp-block-image img {
	border-radius: var(--wp--custom--radius--card);
}
.wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
	min-width: 0;
}

/* ---------- Forms (Contact Form 7, Gravity Forms, core search) ---------- */
.site-main .wpcf7 label,
.site-main .gform_wrapper label,
.site-main .gfield_label,
.site-main .wpforms-field-label {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 0.25rem;
}
.site-main .wpcf7 p {
	margin-bottom: 1rem;
}
.site-main input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.site-main select,
.site-main textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	font: inherit;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--base);
	border: 1px solid #b8c6d3;
	border-radius: var(--wp--custom--radius--button);
	padding: 0.7rem 0.85rem;
	min-height: 48px;
	box-shadow: none;
}
.site-main textarea {
	min-height: 160px;
	resize: vertical;
}
.site-main input:focus-visible,
.site-main select:focus-visible,
.site-main textarea:focus-visible {
	outline: var(--wp--custom--focus);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--contrast);
}
.site-main input[type="submit"],
.site-main button[type="submit"],
.site-main .gform_button,
.site-main .wpforms-submit {
	font: inherit;
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: var(--wp--custom--radius--button);
	padding: 0.75rem 1.5rem;
	min-height: 48px;
	cursor: pointer;
}
.site-main input[type="submit"]:hover,
.site-main button[type="submit"]:hover,
.site-main .gform_button:hover {
	background: var(--wp--preset--color--contrast-2);
}
.site-main .wpcf7-spinner {
	margin-left: 0.5rem;
}
.site-main .wpcf7-not-valid-tip {
	color: #a12626;
	font-size: var(--wp--preset--font-size--small);
}
.site-main .wpcf7-response-output {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--button);
	padding: 0.75rem 1rem;
	margin: 1rem 0 0;
}
.site-main .wpcf7 form.sent .wpcf7-response-output {
	border-color: #2f7d4f;
}
.site-main .wpcf7 form.invalid .wpcf7-response-output,
.site-main .wpcf7 form.failed .wpcf7-response-output {
	border-color: #a12626;
}

.site-main .wpforms-field {
	margin-bottom: 1rem;
}
.site-main .wpforms-field-sublabel,
.site-main .wpforms-field-description {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink-muted);
}
