/*
 * TC Motors common UI layer.
 *
 * This is the final stylesheet loaded by the theme. Keep shared page styles
 * here: typography, links, controls, tabs and forms. Page-specific layouts
 * remain in style.css so a correction made here is applied site-wide.
 */
body.tcm-local-site {
	--tcm-ui-red: #ed1b24;
	--tcm-ui-ink: #242424;
	--tcm-ui-line: #d7d7d7;
	font-family: Helvetica, Arial, sans-serif;
}

/* Technical-maintenance logo row uses the same optical scale as the service
 * brand selector. The source images contain different amounts of whitespace,
 * so each position needs its own visible-size correction. */
body.tcm-local-site .tcm-service-maintenance__logos > div {
	align-items: center;
	display: flex;
	justify-content: center;
}

body.tcm-local-site .tcm-service-maintenance__logos img {
	display: block !important;
	margin: 0 auto !important;
	object-fit: contain !important;
}

body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(1) img { height: 65px !important; max-height: 65px !important; width: 178px !important; max-width: 178px !important; } /* Dodge */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(2) img { height: 52px !important; max-height: 52px !important; width: 52px !important; max-width: 52px !important; } /* RAM */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(3) img { height: 52px !important; max-height: 52px !important; width: 78px !important; max-width: 78px !important; } /* Corvette */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(4) img { height: 30px !important; max-height: 30px !important; width: 73px !important; max-width: 73px !important; } /* Jeep */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(5) img { height: 28px !important; max-height: 28px !important; width: 90px !important; max-width: 90px !important; } /* Chrysler */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(6) img { height: 48px !important; max-height: 48px !important; width: 70px !important; max-width: 70px !important; } /* Lancia */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(7) img { height: 38px !important; max-height: 38px !important; width: 78px !important; max-width: 78px !important; } /* Chevrolet */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(8) img { height: 46px !important; max-height: 46px !important; width: 70px !important; max-width: 70px !important; } /* Cadillac */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(9) img { height: 29px !important; max-height: 29px !important; width: 78px !important; max-width: 78px !important; } /* GMC */
body.tcm-local-site .tcm-service-maintenance__logos > div:nth-child(10) img { height: 48px !important; max-height: 48px !important; width: 78px !important; max-width: 78px !important; } /* Subaru */

body.tcm-local-site :is(button, input, select, textarea) {
	font-family: inherit;
}

body.tcm-local-site a,
body.tcm-local-site a:hover,
body.tcm-local-site a:visited {
	text-decoration: none;
}

body.tcm-local-site :is(a, button, summary, [role='button']):focus:not(:focus-visible) {
	box-shadow: none;
	outline: 0;
}

/* Brand tabs never use a focus frame. The selected item is identified by its
 * bottom line and expanded state, matching the production site. */
body.tcm-local-site :is(a, button, summary, [role='button']):focus-visible,
body.tcm-local-site .tcm-brand-tab:focus,
body.tcm-local-site .tcm-brand-tab:focus-visible {
	box-shadow: none !important;
	outline: 0 !important;
}

/* One brand-tab component is used by Jauni auto, Cenas, Akcijas and Serviss.
 * JavaScript adds these neutral classes to the existing WordPress markup. */
body.tcm-local-site .tcm-brand-tabs,
body.tcm-local-site .tcm-brand-tab,
body.tcm-local-site .tcm-brand-panel {
	box-sizing: border-box;
}

body.tcm-local-site .tcm-brand-tabs {
	border-bottom: 1px solid var(--tcm-ui-line) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: none !important;
	width: 100% !important;
}

body.tcm-local-site .tcm-brand-tab {
	appearance: none !important;
	background: #fff !important;
	border: 0 !important;
	border-bottom: 3px solid transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--tcm-ui-ink) !important;
	cursor: pointer;
	font-family: Helvetica, Arial, sans-serif !important;
	margin: 0 !important;
	outline: 0 !important;
}

body.tcm-local-site .tcm-brand-tab::before {
	content: none !important;
	display: none !important;
}

body.tcm-local-site .tcm-brand-tab:is(.is-active, [aria-selected='true']) {
	border-bottom-color: var(--tcm-ui-red) !important;
}

body.tcm-local-site .tcm-brand-tab__logo {
	display: block !important;
	margin: 0 !important;
	object-fit: contain !important;
	object-position: center !important;
}

body.tcm-local-site .tcm-brand-panel[hidden] {
	display: none !important;
}

body.tcm-local-site .tcm-brand-tab--subaru .tcm-brand-tab__logo { height: 53px !important; max-height: 53px !important; max-width: 86px !important; width: 86px !important; }
body.tcm-local-site .tcm-brand-tab--dodge .tcm-brand-tab__logo { height: 72px !important; max-height: 72px !important; max-width: 196px !important; width: 196px !important; }
body.tcm-local-site .tcm-brand-tab--ram .tcm-brand-tab__logo { height: 52px !important; max-height: 52px !important; max-width: 52px !important; width: 52px !important; }
body.tcm-local-site .tcm-brand-tab--jeep .tcm-brand-tab__logo { height: 30px !important; max-height: 30px !important; max-width: 73px !important; width: 73px !important; }
body.tcm-local-site .tcm-brand-tab--chrysler .tcm-brand-tab__logo { height: 31px !important; max-height: 31px !important; max-width: 99px !important; width: 99px !important; }
body.tcm-local-site .tcm-brand-tab--corvette .tcm-brand-tab__logo { height: 52px !important; max-height: 52px !important; max-width: 100px !important; width: 100px !important; }
body.tcm-local-site .tcm-brand-tab--chevrolet .tcm-brand-tab__logo { height: 38px !important; max-height: 38px !important; max-width: 78px !important; width: 78px !important; }
body.tcm-local-site .tcm-brand-tab--cadillac .tcm-brand-tab__logo { height: 46px !important; max-height: 46px !important; max-width: 70px !important; width: 70px !important; }
body.tcm-local-site .tcm-brand-tab--gmc .tcm-brand-tab__logo { height: 29px !important; max-height: 29px !important; max-width: 78px !important; width: 78px !important; }

@media (min-width: 782px) {
	body.tcm-local-site .tcm-brand-tabs {
		align-items: stretch !important;
		display: flex !important;
		gap: 0 !important;
		justify-content: center !important;
		min-height: 100px !important;
		padding: 0 24px !important;
	}

	body.tcm-local-site .tcm-brand-tab {
		align-items: center !important;
		display: flex !important;
		flex: 1 1 0 !important;
		height: 100px !important;
		justify-content: center !important;
		min-width: 0 !important;
		padding: 9px 4px 12px !important;
		text-align: center !important;
	}

	body.tcm-local-site .tcm-brand-tab:hover {
		border-bottom-color: var(--tcm-ui-red) !important;
	}

	body.tcm-local-site .tcm-brand-tab--logo .tcm-brand-tab__label {
		clip: rect(0 0 0 0) !important;
		clip-path: inset(50%) !important;
		height: 1px !important;
		overflow: hidden !important;
		position: absolute !important;
		white-space: nowrap !important;
		width: 1px !important;
	}

	body.tcm-local-site .tcm-brand-tab--text .tcm-brand-tab__label {
		font-size: 16px !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
	}

	body.tcm-local-site .tcm-brand-panels {
		display: block !important;
		padding-top: 32px !important;
	}
}

@media (max-width: 781px) {
	body.tcm-local-site .tcm-brand-tabs {
		display: block !important;
		overflow: visible !important;
		padding: 0 20px !important;
		/* The legacy pages wrap the same selector in containers with different
		 * side padding (0, 16 or 24px). Break out of those wrappers so every
		 * mobile selector uses one 16px viewport gutter. */
		margin-left: calc(50% - 50vw + 16px) !important;
		margin-right: calc(50% - 50vw + 16px) !important;
		width: calc(100vw - 32px) !important;
	}

	body.tcm-local-site .tcm-brand-tab {
		align-items: center !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		height: auto !important;
		min-height: 86px !important;
		padding: 0 44px 0 16px !important;
		position: relative !important;
		text-align: left !important;
		width: 100% !important;
	}

	body.tcm-local-site .tcm-brand-tab__label {
		clip: auto !important;
		clip-path: none !important;
		color: var(--tcm-ui-ink) !important;
		display: block !important;
		font-size: 16px !important;
		font-weight: 700 !important;
		grid-column: 1 !important;
		height: auto !important;
		overflow: visible !important;
		position: static !important;
		text-transform: uppercase !important;
		white-space: nowrap !important;
		width: auto !important;
	}

	/* Mobile selectors use a compact accordion: brand name and arrow only.
	 * Logos remain visible in the shared desktop tabs. */
	html body.tcm-local-site .tcm-brand-tabs > .tcm-brand-tab .tcm-brand-tab__logo {
		display: none !important;
	}

	html body.tcm-local-site .tcm-brand-tabs > .tcm-brand-tab--logo > .tcm-brand-tab__logo {
		bottom: auto !important;
		/* Old service-page CSS assigned the image to grid column 2, which
		 * changed the containing box for absolute positioning. Clear that
		 * assignment so every page uses the same true button centre. */
		grid-column: auto !important;
		grid-row: auto !important;
		left: 50% !important;
		margin: 0 !important;
		position: absolute !important;
		right: auto !important;
		top: 50% !important;
		transform: translate(-50%, -50%) !important;
	}

	body.tcm-local-site .tcm-brand-tab::after {
		border-bottom: 4px solid var(--tcm-ui-ink) !important;
		border-right: 4px solid var(--tcm-ui-ink) !important;
		content: '' !important;
		display: block !important;
		height: 13px !important;
		position: absolute !important;
		right: 18px !important;
		top: 50% !important;
		transform: translateY(-70%) rotate(45deg) !important;
		width: 13px !important;
	}

	body.tcm-local-site .tcm-brand-tab:is(.is-active, [aria-expanded='true'])::after {
		transform: translateY(-25%) rotate(225deg) !important;
	}

	body.tcm-local-site .tcm-brand-panels {
		display: none !important;
		padding: 0 !important;
	}

	body.tcm-local-site .tcm-brand-tabs > .tcm-brand-panel {
		display: block !important;
		margin: 0 !important;
		max-width: none !important;
		padding: 26px 0 36px !important;
		width: 100% !important;
	}

	body.tcm-local-site .tcm-brand-tabs > .tcm-brand-panel[hidden] {
		display: none !important;
	}
}

/* The native Serviss page uses a full-width mobile accordion. Keep every
 * label on the left and its chevron at the opposite edge. */
@media (max-width: 781px) {
	body.tcm-local-site.page-id-13133 .tcm-service-contact {
		align-items: center !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		justify-content: center !important;
	}

	body.tcm-local-site.page-id-13133 .tcm-service-contact span {
		margin-bottom: 0 !important;
	}

}

/* Migrated service pages used an older builder markup. JavaScript upgrades it
 * to the same tabs + panels component used by Jauni auto and Serviss. These
 * final rules deliberately replace the old page-by-page layout instead of
 * adding another visual variation. */
body.tcm-local-site .tcm-builder-tabs--brand {
	display: block !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: none !important;
	width: 100% !important;
}

body.tcm-local-site .tcm-builder-tabs--brand > .tcm-brand-tabs {
	box-shadow: none !important;
	overflow: visible !important;
}

body.tcm-local-site .tcm-builder-tabs--brand > .tcm-brand-panels {
	box-sizing: border-box !important;
	margin: 0 auto !important;
	max-width: none !important;
	width: 100% !important;
}

body.tcm-local-site .tcm-builder-tabs--brand .tcm-brand-tab__logo--legacy {
	background-image: var(--tcm-form-brand-logo) !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	flex: 0 0 auto !important;
}

/* The retired builder stored the logo on the button background. Keep only
 * the real shared logo element added by tcm-builder-tabs.js, otherwise that
 * old background is tiled behind it on some service routes. */
html body.tcm-local-site .tcm-builder-tabs--brand .tcm-brand-tab {
	background-color: #fff !important;
	background-image: none !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
}

body.tcm-local-site .tcm-builder-tabs--brand .tcm-brand-tab::before {
	content: none !important;
	display: none !important;
}

/*
 * Shared service-booking component.
 *
 * The main Serviss page and migrated brand pages use different WordPress
 * markup, but both now expose .tcm-service-form-shell. Keep the visual
 * hierarchy here so brand selectors and their forms never need page-ID CSS.
 */
body.tcm-local-site.tcm-service-page .tcm-service-form-shell {
	background: var(--tcm-service-surface, #f4f6f9) !important;
	border: 0 !important;
	border-radius: 18px !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	margin: 0 auto !important;
	max-width: 1190px !important;
	overflow: visible !important;
	padding: 0 24px 28px !important;
	width: 100% !important;
}

/* The native page keeps the section heading outside the shared card, matching
 * the imported service pages where the heading precedes the tab/form block. */
body.tcm-local-site.tcm-service-page .tcm-service-booking:has(> .tcm-service-form-shell) {
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-tabs {
	background: transparent !important;
	border-bottom: 1px solid var(--tcm-ui-line) !important;
	box-shadow: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-panels {
	box-sizing: border-box !important;
	margin: 0 auto !important;
	max-width: none !important;
	padding: 54px 0 0 !important;
	width: 100% !important;
}

body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-panels > :is(.tcm-brand-panel, .tcm-service-panel) {
	box-sizing: border-box !important;
	margin: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: 100% !important;
}

/* The selected brand is already announced by its tab. Retired builder panels
 * also contain a duplicate heading, which must not create a second accordion
 * label on small screens. */
body.tcm-local-site.tcm-service-page .tcm-service-form-shell .tcm-brand-panel > h2 {
	display: none !important;
}

/* Every service form is the same white card, including single-brand pages. */
body.tcm-local-site.tcm-service-page .wpcf7 {
	background: #fff !important;
	border: 0 !important;
	border-radius: 18px !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	margin-right: auto !important;
	margin-left: auto !important;
	max-width: 860px !important;
	padding: 28px !important;
	width: 100% !important;
}

@media (min-width: 782px) {
	body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-tabs {
		align-items: stretch !important;
		display: flex !important;
		height: 100px !important;
		justify-content: center !important;
		min-height: 100px !important;
	}

	body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-tabs > .tcm-brand-tab {
		background: transparent !important;
		flex: 1 1 0 !important;
		height: 100px !important;
		min-height: 100px !important;
		padding: 9px 4px 12px !important;
		width: auto !important;
	}
}

@media (max-width: 781px) {
	body.tcm-local-site.tcm-service-page .tcm-service-form-shell {
		border-radius: 14px !important;
		margin-left: calc(50% - 50vw + 16px) !important;
		margin-right: calc(50% - 50vw + 16px) !important;
		padding: 0 16px 16px !important;
		width: calc(100vw - 32px) !important;
	}

	html body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-tabs {
		display: block !important;
		margin-left: calc(50% - 50vw + 16px) !important;
		margin-right: calc(50% - 50vw + 16px) !important;
		padding: 0 !important;
		width: calc(100vw - 32px) !important;
	}

	html body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-tabs > .tcm-brand-tab {
		align-items: center !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		height: auto !important;
		min-height: 86px !important;
		min-width: 0 !important;
		padding: 0 44px 0 16px !important;
		position: relative !important;
		text-align: left !important;
		width: 100% !important;
	}

	html body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-tabs > .tcm-brand-tab::after {
		border-bottom-width: 4px !important;
		border-right-width: 4px !important;
		height: 13px !important;
		position: absolute !important;
		right: 18px !important;
		top: 50% !important;
		width: 13px !important;
	}

	body.tcm-local-site.tcm-service-page .tcm-service-form-shell > .tcm-brand-panels {
		padding: 0 !important;
	}

	body.tcm-local-site.tcm-service-page .wpcf7 {
		border-radius: 14px !important;
		padding: 16px !important;
	}
}

@media (max-width: 781px) {
	body.tcm-local-site .tcm-builder-tabs--brand > .tcm-brand-tabs > .tcm-brand-panel {
		background: #fff !important;
		box-sizing: border-box !important;
		grid-column: 1 / -1 !important;
		padding: 24px 0 36px !important;
	}

	body.tcm-local-site .tcm-builder-tabs--brand > .tcm-brand-panels {
		display: none !important;
	}
}

/* Akcijas uses the production page's five-tab strip and two-column banner
 * rhythm. Keep this override page-scoped because the other shared brand tabs
 * intentionally divide the full row between a different number of brands. */
@media (min-width: 782px) {
	body.tcm-local-site.page-id-7574 .tcm-promotions {
		margin: 0 !important;
		max-width: none !important;
		min-height: 0 !important;
		padding: 36px 45px !important;
		width: 100% !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tabs {
		border-bottom: 0 !important;
		display: flex !important;
		gap: 24.296875px !important;
		justify-content: center !important;
		margin: 0 !important;
		min-height: 100px !important;
		padding: 0 !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab,
	body.tcm-local-site.page-id-7574 .tcm-promotion-tab:has(.tcm-promotion-tab__logo) {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		color: #333 !important;
		display: flex !important;
		flex: 0 0 150px !important;
		font: 900 16.2px/24px Arial, Helvetica, sans-serif !important;
		height: 100px !important;
		justify-content: center !important;
		min-width: 150px !important;
		padding: 0 !important;
		position: relative !important;
		text-transform: uppercase !important;
		width: 150px !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab:hover,
	body.tcm-local-site.page-id-7574 .tcm-promotion-tab:focus-visible,
	body.tcm-local-site.page-id-7574 .tcm-promotion-tab.is-active {
		border: 0 !important;
		color: #333 !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab::after {
		background: #333 !important;
		border: 0 !important;
		bottom: 0 !important;
		content: '' !important;
		display: block !important;
		height: 2.42969px !important;
		left: 0 !important;
		position: absolute !important;
		right: auto !important;
		top: auto !important;
		transform: none !important;
		width: 0 !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab:is(.is-active, [aria-selected='true'])::after {
		width: 150px !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab--subaru .tcm-promotion-tab__logo {
		height: auto !important;
		max-height: 72px !important;
		max-width: 100px !important;
		width: 100px !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab--ram .tcm-promotion-tab__logo {
		height: 60px !important;
		max-height: 60px !important;
		max-width: 60px !important;
		width: 60px !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-tab--corvette .tcm-promotion-tab__logo {
		height: auto !important;
		max-height: 72px !important;
		max-width: 120px !important;
		width: 120px !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-brand-panels {
		padding-top: 54px !important;
	}

	body.tcm-local-site.page-id-7574 .tcm-promotion-grid {
		gap: 18px !important;
	}
}

/*
 * One form component for the whole public site.
 *
 * Contact Form 7 and the single native builder form share the same geometry,
 * controls, actions and validation states. Page styles may position the form
 * container, but must not restyle the form itself.
 */
body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) {
	--tcm-form-red: var(--tcm-ui-red, #ed1b24);
	--tcm-form-ink: var(--tcm-ui-ink, #242424);
	--tcm-form-border: var(--tcm-ui-line, #d7d7d7);
	--tcm-form-surface: #f3f3f3;
	box-sizing: border-box !important;
	color: var(--tcm-form-ink) !important;
	font: 400 16px/1.5 Helvetica, Arial, sans-serif !important;
	margin: 0 auto !important;
	max-width: 720px !important;
	width: 100% !important;
}

/* Match the live Subaru Service spacing between the form action and the
 * following content section after removing the obsolete tabs wrapper. */
body.tcm-local-site.page-id-13094 .wpcf7 {
	margin-bottom: 27px !important;
}

body.tcm-local-site :is(.wpcf7-form, .tcm-builder-cform, .tcm-builder-cform form) {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

body.tcm-local-site .wpcf7-form .hidden-fields-container,
body.tcm-local-site .wpcf7-form > .product-name:has(input[type='hidden']) {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.tcm-local-site .wpcf7-form fieldset {
	border: 0 !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	min-width: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

body.tcm-local-site .wpcf7-form p,
body.tcm-local-site .wpcf7-form fieldset > p {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

body.tcm-local-site .wpcf7-form p > br,
body.tcm-local-site .wpcf7-form fieldset > p > br {
	display: none !important;
}

body.tcm-local-site :is(.wpcf7-form, .tcm-builder-cform) label {
	color: var(--tcm-form-ink) !important;
	display: block;
	font: 700 15px/1.45 Helvetica, Arial, sans-serif !important;
	margin: 0 0 7px !important;
}

body.tcm-local-site .wpcf7-form-control-wrap {
	box-sizing: border-box !important;
	display: block !important;
	margin: 0 0 16px !important;
	width: 100% !important;
}

body.tcm-local-site .wpcf7-form-control-wrap:has(> input[type='hidden']) {
	display: none !important;
	margin: 0 !important;
}

body.tcm-local-site .tcm-builder-cform__fields {
	display: grid !important;
	gap: 16px !important;
	grid-template-columns: minmax(0, 1fr) !important;
	width: 100% !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(
	input[type='text'],
	input[type='email'],
	input[type='tel'],
	input[type='number'],
	input[type='date'],
	input[type='time'],
	input[type='url'],
	input[type='search'],
	select,
	textarea
) {
	appearance: none !important;
	background-color: var(--tcm-form-surface) !important;
	border: 1px solid var(--tcm-form-border) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	color: var(--tcm-form-ink) !important;
	display: block !important;
	font: 400 16px/1.4 Helvetica, Arial, sans-serif !important;
	letter-spacing: normal !important;
	margin: 0 !important;
	max-width: none !important;
	outline: 0 !important;
	padding: 0 16px !important;
	transition: background-color .18s ease, border-color .18s ease !important;
	width: 100% !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(
	input[type='text'],
	input[type='email'],
	input[type='tel'],
	input[type='number'],
	input[type='date'],
	input[type='time'],
	input[type='url'],
	input[type='search'],
	select
) {
	height: 52px !important;
	min-height: 52px !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) select {
	background-image:
		linear-gradient(45deg, transparent 50%, #555 50%),
		linear-gradient(135deg, #555 50%, transparent 50%) !important;
	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 13px) 50% !important;
	background-repeat: no-repeat !important;
	background-size: 5px 5px, 5px 5px !important;
	cursor: pointer !important;
	padding-right: 42px !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) textarea {
	height: 150px !important;
	line-height: 1.5 !important;
	min-height: 150px !important;
	padding: 13px 16px !important;
	resize: vertical !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(input, textarea)::placeholder {
	color: #737373 !important;
	opacity: 1 !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(
	input[type='text'],
	input[type='email'],
	input[type='tel'],
	input[type='number'],
	input[type='date'],
	input[type='time'],
	input[type='url'],
	input[type='search'],
	select,
	textarea
):focus {
	background-color: #fff !important;
	border-color: var(--tcm-form-red) !important;
	box-shadow: none !important;
	outline: 2px solid rgba(237, 27, 36, .42) !important;
	outline-offset: 1px !important;
}

body.tcm-local-site .wpcf7 :is(input.wpcf7-not-valid, select.wpcf7-not-valid, textarea.wpcf7-not-valid) {
	background-color: #fff8f8 !important;
	border-color: #c10f18 !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(input[type='checkbox'], input[type='radio']) {
	accent-color: var(--tcm-form-red) !important;
	appearance: auto !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	cursor: pointer !important;
	flex: 0 0 22px !important;
	height: 22px !important;
	margin: 0 !important;
	min-height: 22px !important;
	padding: 0 !important;
	width: 22px !important;
}

body.tcm-local-site .wpcf7 .wpcf7-list-item {
	display: block !important;
	font: 400 14px/1.5 Helvetica, Arial, sans-serif !important;
	margin: 0 0 12px !important;
	width: 100% !important;
}

body.tcm-local-site .wpcf7 .wpcf7-list-item label {
	align-items: flex-start !important;
	display: flex !important;
	font: inherit !important;
	gap: 10px !important;
	margin: 0 !important;
}

body.tcm-local-site .wpcf7 .wpcf7-list-item-label {
	display: block !important;
	flex: 1 1 auto !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(input[type='submit'], button[type='submit'], button:not([type])) {
	align-items: center !important;
	appearance: none !important;
	background: var(--tcm-form-red) !important;
	border: 1px solid var(--tcm-form-red) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	color: #fff !important;
	cursor: pointer !important;
	display: inline-flex !important;
	font: 700 15px/1 Helvetica, Arial, sans-serif !important;
	height: 52px !important;
	justify-content: center !important;
	letter-spacing: .02em !important;
	margin: 2px 0 0 !important;
	min-height: 52px !important;
	min-width: 213px !important;
	padding: 0 28px !important;
	text-align: center !important;
	text-transform: uppercase !important;
	transition: background-color .18s ease, border-color .18s ease !important;
	vertical-align: top !important;
	width: auto !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(input[type='submit'], button[type='submit'], button:not([type])):is(:hover, :focus-visible) {
	background: var(--tcm-form-ink) !important;
	border-color: var(--tcm-form-ink) !important;
}

body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(input[type='submit'], button[type='submit'], button:not([type])):disabled {
	cursor: not-allowed !important;
	opacity: .58 !important;
}

body.tcm-local-site .wpcf7-form > p:last-of-type {
	align-items: center !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	line-height: 1 !important;
	margin: 2px 0 0 !important;
}

body.tcm-local-site .tcm-builder-cform button {
	margin-top: 18px !important;
}

body.tcm-local-site .wpcf7 .wpcf7-spinner {
	margin: 0 !important;
	vertical-align: middle !important;
}

body.tcm-local-site .wpcf7 .wpcf7-not-valid-tip {
	color: #c10f18 !important;
	display: block !important;
	font: 400 13px/1.4 Helvetica, Arial, sans-serif !important;
	margin: 6px 0 0 !important;
}

body.tcm-local-site .wpcf7 .wpcf7-response-output,
body.tcm-local-site .tcm-builder-cform__message {
	background: #fff8f8 !important;
	border: 0 !important;
	border-left: 3px solid var(--tcm-form-red) !important;
	color: var(--tcm-form-ink) !important;
	font: 400 14px/1.5 Helvetica, Arial, sans-serif !important;
	margin: 18px 0 0 !important;
	padding: 11px 13px !important;
}

body.tcm-local-site :is(.uncharted-contact-form-wrap, .eoutback-contact-form-wrap, .solterra-contact-form-wrap) {
	box-sizing: border-box !important;
	max-width: 100% !important;
}

/* The test-drive model picker uses several CF7 instances. Keep its switching
 * mechanics in this shared file while the form controls retain one design. */
body.tcm-local-site.page-id-37055 .tdlp-formpanel,
body.tcm-local-site.page-id-37055 .tdlp-formbox > .wpcf7 {
	display: none !important;
}

body.tcm-local-site.page-id-37055 .tdlp-formbox > .wpcf7.is-active {
	display: block !important;
}

body.tcm-local-site.page-id-37055 .tdlp-formbox .wpcf7 label,
body.tcm-local-site.page-id-37055 .tdlp-formbox .wpcf7 .wpcf7-form-control-wrap[data-name^='menu-'] {
	display: none !important;
}

body.tcm-local-site.page-id-37055 .tdlp-formpanel:has(> .wpcf7.is-active) {
	display: block !important;
}

@media (max-width: 600px) {
	body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) {
		font-size: 16px !important;
	}

	body.tcm-local-site .wpcf7-form-control-wrap {
		margin-bottom: 14px !important;
	}

	body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(
		input[type='text'],
		input[type='email'],
		input[type='tel'],
		input[type='number'],
		input[type='date'],
		input[type='time'],
		input[type='url'],
		input[type='search'],
		select
	) {
		height: 50px !important;
		min-height: 50px !important;
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) select {
		padding-right: 40px !important;
	}

	body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) textarea {
		height: 140px !important;
		min-height: 140px !important;
		padding: 12px 14px !important;
	}

	body.tcm-local-site :is(.wpcf7, .tcm-builder-cform) :is(input[type='submit'], button[type='submit'], button:not([type])) {
		min-width: 0 !important;
		width: 100% !important;
	}

	body.tcm-local-site .wpcf7-form > p:last-of-type {
		display: block !important;
	}

	body.tcm-local-site .wpcf7 .wpcf7-spinner {
		display: block !important;
		margin: 12px auto 0 !important;
	}
}
