/**
 * Impact TFS Child: site header, top bar, footer, buttons and design tokens.
 *
 * Loaded on every screen that shows the theme's header (body.itfs-site), including Elementor pages,
 * and on the blog screens. Every rule is scoped to the body class so it wins over Elementor's kit
 * and the site's Additional CSS (which restyles a, button and [type=submit]) without !important.
 * Mobile first; breakpoints: 600px (larger logo), 720px (2-column footer), 1024px (4-column footer),
 * 1260px (top bar and desktop menu), 1440px (wider menu spacing). The desktop header never wraps:
 * logo + menu + button need about 1100px at 1260px.
 */

/* Metric-matched fallbacks so text does not reflow when the web fonts arrive. Values come from the
   fonts' hhea metrics and their average letter width against Arial / Georgia Bold (the fontaine
   method); approximate, since the browser may pick a different optical size. */
@font-face {
	font-family: "DM Sans Fallback";
	src: local("Arial"), local("ArialMT");
	size-adjust: 105.51%;
	ascent-override: 94.02%;
	descent-override: 29.38%;
	line-gap-override: 0%;
}

@font-face {
	font-family: "Source Serif Fallback";
	src: local("Georgia Bold"), local("Georgia-Bold");
	font-weight: 600 700;
	size-adjust: 94.25%;
	ascent-override: 109.92%;
	descent-override: 35.54%;
	line-gap-override: 0%;
}

.itfs-site {
	--itfs-navy: #004787;
	--itfs-deep: #00264d;
	--itfs-gold: #a58f61;
	--itfs-gold-text: #7d6638;
	--itfs-gold-soft: #f6f1e8;
	--itfs-gold-on-dark: #e9dcbc;
	--itfs-ink: #1f2733;
	--itfs-text: #3a414d;
	--itfs-muted: #5c6573;
	--itfs-line: #e3e6ea;
	--itfs-field: #c3c9d2;
	--itfs-soft: #f5f7fa;
	--itfs-image: #e6ebf1;
	--itfs-on-dark: #dfe6ef;
	--itfs-on-dark-soft: #c9d4e2;
	--itfs-on-dark-muted: #9fb0c4;
	--itfs-font: "DM Sans", "DM Sans Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
	--itfs-font-display: "Source Serif 4", "Source Serif Fallback", Georgia, "Times New Roman", serif;
	--itfs-radius: 8px;
	--itfs-radius-lg: 10px;
	--itfs-radius-xl: 16px;
	--itfs-gutter: 20px;
	--itfs-header-h: 72px;
}

/* Anchors (table of contents, #ids in pages and posts) land below the sticky header. */
:root:has(body.itfs-has-site-header) {
	scroll-padding-top: 96px;
}

@media (min-width: 1260px) {
	.itfs-site {
		--itfs-header-h: 88px;
	}

	:root:has(body.itfs-has-site-header) {
		scroll-padding-top: 112px;
	}
}

@media (min-width: 768px) {
	.itfs-site {
		--itfs-gutter: 24px;
	}
}

/* ---------- Base ---------- */

.itfs-site .itfs-topbar,
.itfs-site .itfs-header,
.itfs-site .itfs-footer {
	font-family: var(--itfs-font);
	color: var(--itfs-text);
	-webkit-font-smoothing: antialiased;
}

.itfs-site .itfs-topbar *,
.itfs-site .itfs-header *,
.itfs-site .itfs-footer * {
	box-sizing: border-box;
}

.itfs-site .itfs-container {
	width: 100%;
	max-width: 1248px;
	margin-inline: auto;
	padding-inline: var(--itfs-gutter);
}

.itfs-site .itfs-topbar :focus-visible,
.itfs-site .itfs-header :focus-visible,
.itfs-site .itfs-footer :focus-visible {
	outline: 2px solid var(--itfs-navy);
	outline-offset: 3px;
	border-radius: 2px;
}

.itfs-site .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.itfs-site .itfs-icon {
	flex: none;
}

/* ---------- Buttons ---------- */

.itfs-site .itfs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 22px;
	border: 2px solid transparent;
	border-radius: var(--itfs-radius);
	font-family: var(--itfs-font);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.itfs-site .itfs-btn .itfs-icon {
	margin-left: -2px;
}

.itfs-site .itfs-btn--primary {
	background: var(--itfs-navy);
	border-color: var(--itfs-navy);
	color: #fff;
}

.itfs-site .itfs-btn--primary:hover {
	background: var(--itfs-deep);
	border-color: var(--itfs-deep);
	color: #fff;
}

.itfs-site .itfs-btn--light {
	background: #fff;
	border-color: #fff;
	color: var(--itfs-deep);
}

.itfs-site .itfs-btn--light:hover {
	background: var(--itfs-on-dark);
	border-color: var(--itfs-on-dark);
	color: var(--itfs-deep);
}

.itfs-site .itfs-btn--ghost {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.itfs-site .itfs-btn--ghost:hover {
	background: #fff;
	color: var(--itfs-deep);
}

.itfs-site .itfs-btn--block {
	display: flex;
	width: 100%;
}

/* ---------- Top bar (desktop) ---------- */

/* Scrolls away with the page; only the main bar below it is sticky. */
.itfs-site .itfs-topbar {
	display: none;
	background: var(--itfs-deep);
	font-size: 13px;
	line-height: 1.4;
	color: var(--itfs-on-dark);
}

.itfs-site .itfs-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	max-width: 1248px;
	height: 40px;
	margin-inline: auto;
	padding-inline: var(--itfs-gutter);
}

.itfs-site .itfs-topbar__text {
	min-width: 0;
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	letter-spacing: 0.01em;
}

.itfs-site .itfs-topbar__links {
	display: flex;
	flex: none;
	align-items: center;
	gap: 24px;
}

.itfs-site .itfs-topbar__phone,
.itfs-site .itfs-topbar__link {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	white-space: nowrap;
	color: #fff;
}

.itfs-site .itfs-topbar__phone {
	gap: 8px;
	font-weight: 600;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
}

.itfs-site .itfs-topbar__phone .itfs-icon {
	color: var(--itfs-gold);
}

.itfs-site .itfs-topbar__digits {
	font-weight: 400;
	color: #b9c6d6;
}

.itfs-site .itfs-topbar__phone:hover .itfs-topbar__digits {
	color: #fff;
}

.itfs-site .itfs-topbar__link {
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.4);
	text-underline-offset: 4px;
}

.itfs-site .itfs-topbar__link:hover {
	text-decoration-color: currentColor;
}

.itfs-site .itfs-topbar__hours {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}

.itfs-site .itfs-topbar__hours .itfs-icon {
	color: var(--itfs-gold);
}

/* Language selector from a plugin shortcode (GTranslate): keep it compact and light on navy. */
.itfs-site .itfs-topbar__lang {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding-left: 20px;
	border-left: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 13px;
	line-height: 1.2;
}

.itfs-site .itfs-topbar__lang select {
	height: 28px;
	margin: 0;
	padding: 0 6px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 6px;
	background-color: transparent;
	font: inherit;
	color: #fff;
	cursor: pointer;
}

.itfs-site .itfs-topbar__lang option {
	color: var(--itfs-ink);
}

.itfs-site .itfs-topbar__lang a {
	color: #fff;
}

/* ---------- Site header ---------- */

/* Sticky on every screen size. Below the WordPress toolbar when it is fixed (wider than 600px). */
.itfs-site .itfs-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid var(--itfs-line);
}

@media (max-width: 600px) {
	.admin-bar.itfs-site .itfs-header {
		top: 0;
	}
}

/* Shadow fades in during the first 96px of scroll (scroll-driven animation; Chromium and recent
   Safari). Only paint changes: the header height never changes, so nothing below it moves. */
@supports (animation-timeline: scroll()) {
	.itfs-site .itfs-header {
		animation-name: itfs-header-raise;
		animation-duration: auto;
		animation-timing-function: linear;
		animation-fill-mode: both;
		animation-timeline: scroll(root block);
		animation-range: 0 96px;
	}
}

@keyframes itfs-header-raise {
	from {
		box-shadow: 0 0 0 rgba(0, 38, 77, 0);
	}

	to {
		border-bottom-color: transparent;
		box-shadow: 0 6px 24px rgba(0, 38, 77, 0.1);
	}
}

.itfs-site .itfs-header__inner {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	max-width: 1248px;
	height: var(--itfs-header-h);
	margin-inline: auto;
	padding-inline: var(--itfs-gutter);
}

.itfs-site .itfs-header__brand {
	display: inline-flex;
	align-items: center;
	flex: none;
	min-height: 44px;
	margin-right: auto;
	text-decoration: none;
}

.itfs-site .itfs-header__logo {
	display: block;
	width: auto;
	max-width: none;
	height: 36px;
}

.itfs-site .itfs-header__nav {
	display: none;
	flex: 1 1 auto;
	min-width: 0;
}

.itfs-site .itfs-header__menu {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-end;
	gap: 4px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.itfs-site .itfs-header__menu li {
	margin: 0;
}

.itfs-site .itfs-header__menu a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-family: var(--itfs-font);
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--itfs-ink);
	text-decoration: none;
}

/* Gold underline 10px under a top-level label: grows on hover, stays on the current section. */
.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 2px;
	border-radius: 2px;
	background: var(--itfs-gold);
	transform: scaleX(0);
	transform-origin: left center;
}

.itfs-site .itfs-header__menu a:hover {
	color: var(--itfs-navy);
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > li > a:hover::after,
.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > li:focus-within > a::after,
.itfs-site .itfs-header__menu > .current-menu-item > a::after,
.itfs-site .itfs-header__menu > .current-menu-parent > a::after,
.itfs-site .itfs-header__menu > .current-menu-ancestor > a::after,
.itfs-site .itfs-header__menu > .current-post-ancestor > a::after {
	transform: scaleX(1);
}

.itfs-site .itfs-header__menu .current-menu-item > a,
.itfs-site .itfs-header__menu .current-menu-parent > a,
.itfs-site .itfs-header__menu .current-menu-ancestor > a,
.itfs-site .itfs-header__menu .current-post-ancestor > a {
	font-weight: 600;
	color: var(--itfs-navy);
}

/* ---------- Dropdowns (desktop): open on hover and on keyboard focus, no JavaScript ---------- */

.itfs-site .itfs-header__menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) {
	align-self: stretch;
	align-items: stretch;
	height: 100%;
}

/* Full bar height, so the panel opens right at the header's edge and the pointer never leaves the item. */
.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > li {
	position: relative;
	display: flex;
	align-items: center;
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > .menu-item-has-children > a {
	gap: 6px;
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > .menu-item-has-children > a::before {
	content: "";
	order: 1;
	width: 10px;
	height: 10px;
	background: currentColor;
	opacity: 0.65;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) .sub-menu {
	position: absolute;
	top: 100%;
	left: -16px;
	z-index: 60;
	display: none;
	width: max-content;
	min-width: 240px;
	max-width: 320px;
	padding: 8px;
	border: 1px solid var(--itfs-line);
	border-radius: var(--itfs-radius-lg);
	background: #fff;
	box-shadow: 0 18px 40px rgba(0, 38, 77, 0.14);
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) li:hover > .sub-menu,
.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) li:focus-within > .sub-menu {
	display: block;
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) .sub-menu a {
	display: flex;
	min-height: 40px;
	padding: 9px 12px;
	border-radius: 6px;
	font-size: 14.5px;
	line-height: 1.35;
	white-space: normal;
}

.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) .sub-menu a:hover,
.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) .sub-menu .current-menu-item > a {
	background: var(--itfs-soft);
}

.itfs-site .itfs-header__actions {
	display: flex;
	flex: none;
	align-items: center;
	gap: 12px;
	white-space: nowrap;
}

/* Round call button on phones and tablets; the top bar carries the number on desktop. */
.itfs-site .itfs-header__phone {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--itfs-field);
	border-radius: 999px;
	color: var(--itfs-navy);
	text-decoration: none;
}

.itfs-site .itfs-header__phone:hover {
	border-color: var(--itfs-navy);
	background: var(--itfs-soft);
}

.itfs-site .itfs-header__cta {
	display: none;
}

.itfs-site .itfs-header__mobile {
	position: static;
}

.itfs-site .itfs-header__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px 0 14px;
	border-radius: var(--itfs-radius);
	background: var(--itfs-navy);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	list-style: none;
	cursor: pointer;
	user-select: none;
}

.itfs-site .itfs-header__toggle::-webkit-details-marker {
	display: none;
}

.itfs-site .itfs-header__toggle .itfs-header__toggle-close,
.itfs-site .itfs-header__mobile[open] .itfs-header__toggle .itfs-header__toggle-open {
	display: none;
}

.itfs-site .itfs-header__mobile[open] .itfs-header__toggle .itfs-header__toggle-close {
	display: inline;
}

.itfs-site .itfs-header__mobile[open] .itfs-header__toggle svg.itfs-header__toggle-close {
	display: block;
}

.itfs-site .itfs-header__panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-height: calc(100dvh - var(--itfs-header-h));
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 8px var(--itfs-gutter) 28px;
	background: #fff;
	border-bottom: 1px solid var(--itfs-line);
	box-shadow: 0 16px 32px rgba(0, 38, 77, 0.12);
}

/* Closed menu: hide the panel outright. Recent Chrome keeps the content of a closed <details> laid
   out (content-visibility on ::details-content), so the absolute panel widened the page. */
.itfs-site .itfs-header__mobile:not([open]) .itfs-header__panel {
	display: none;
}

.itfs-site .itfs-header__menu--stacked {
	flex-direction: column;
	flex-wrap: wrap;
	gap: 0;
}

.itfs-site .itfs-header__menu--stacked li + li {
	border-top: 1px solid var(--itfs-line);
}

.itfs-site .itfs-header__menu--stacked a {
	display: flex;
	min-height: 54px;
	font-size: 17px;
}

/* Phone menu: second level listed under its parent, indented. */
.itfs-site .itfs-header__menu--stacked .sub-menu {
	margin: -6px 0 12px 2px;
	padding-left: 14px;
	border-left: 2px solid var(--itfs-line);
}

.itfs-site .itfs-header__menu--stacked .sub-menu li + li {
	border-top: 0;
}

.itfs-site .itfs-header__menu--stacked .sub-menu a {
	min-height: 40px;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.35;
	white-space: normal;
	color: var(--itfs-text);
}

.itfs-site .itfs-header__menu--stacked .current-menu-item > a,
.itfs-site .itfs-header__menu--stacked .current-menu-parent > a,
.itfs-site .itfs-header__menu--stacked .current-post-ancestor > a {
	padding-left: 14px;
	box-shadow: inset 3px 0 0 var(--itfs-gold);
}

.itfs-site .itfs-header__panel-phone {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	font-size: 15px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--itfs-deep);
	text-decoration: none;
}

@media (min-width: 600px) {
	.itfs-site .itfs-header__inner {
		gap: 16px;
	}

	.itfs-site .itfs-header__logo {
		height: 40px;
	}
}

@media (min-width: 1260px) {
	.itfs-site .itfs-topbar {
		display: block;
	}

	.itfs-site .itfs-header__inner {
		gap: 32px;
	}

	.itfs-site .itfs-header__brand {
		margin-right: 0;
	}

	.itfs-site .itfs-header__logo {
		height: 46px;
	}

	.itfs-site .itfs-header__nav {
		display: flex;
		align-self: stretch;
		justify-content: flex-end;
	}

	/* Seven top-level items: tighter until 1440px. */
	.itfs-site .itfs-header__menu {
		gap: 4px 20px;
	}

	.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > li > a {
		font-size: 15px;
	}

	.itfs-site .itfs-header__phone,
	.itfs-site .itfs-header__mobile {
		display: none;
	}

	.itfs-site .itfs-header__cta {
		display: inline-flex;
		min-height: 50px;
		padding: 0 24px;
	}
}

@media (min-width: 1440px) {
	.itfs-site .itfs-header__inner {
		gap: 40px;
	}

	.itfs-site .itfs-header__menu {
		gap: 4px 24px;
	}

	.itfs-site .itfs-header__menu:not(.itfs-header__menu--stacked) > li > a {
		font-size: 15.5px;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.itfs-site .itfs-header__menu a::after {
		transition: transform 0.2s ease;
	}
}

/* ---------- Site footer ---------- */

.itfs-site .itfs-footer {
	background: var(--itfs-deep);
	font-size: 15px;
	line-height: 1.6;
	color: var(--itfs-on-dark-soft);
}

.itfs-site .itfs-footer :focus-visible,
.itfs-site .itfs-topbar :focus-visible {
	outline-color: #fff;
}

.itfs-site .itfs-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
	padding: 56px 0 44px;
}

.itfs-site .itfs-footer__logo {
	display: inline-flex;
	min-height: 44px;
	text-decoration: none;
}

.itfs-site .itfs-footer__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 44px;
}

.itfs-site .itfs-footer__text {
	max-width: 360px;
	margin: 18px 0 20px;
	color: var(--itfs-on-dark-soft);
	text-wrap: pretty;
}

.itfs-site .itfs-footer__social {
	display: flex;
	gap: 10px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.itfs-site .itfs-footer__social li {
	margin: 0;
}

.itfs-site .itfs-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
}

.itfs-site .itfs-footer__social a:hover {
	border-color: #fff;
	background: #fff;
	color: var(--itfs-deep);
}

.itfs-site .itfs-footer__hours {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	line-height: 1.45;
}

.itfs-site .itfs-footer__hours .itfs-icon {
	margin-top: 2px;
	color: var(--itfs-gold);
}

/* ---------- Newsletter column (form from a plugin shortcode, e.g. Contact Form 7) ---------- */

/* The reCAPTCHA widget is a fixed 304px wide: the column never gets narrower than that. */
.itfs-site .itfs-footer__newsletter {
	min-width: 0;
}

.itfs-site .itfs-footer__form form,
.itfs-site .itfs-footer__form p {
	margin: 0;
}

/* Contact Form 7 wraps each field in a <p>: here they stack, in the form's own order. */
.itfs-site .itfs-footer__form .form-flat {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
	max-width: 340px;
}

.itfs-site .itfs-footer__form br,
.itfs-site .itfs-footer__form .form-flat > p:not(:has(*)) {
	display: none;
}

.itfs-site .itfs-footer__form .form-flat > p:has(.wpcf7-submit) {
	position: relative;
	margin-top: 4px;
}

.itfs-site .itfs-footer__form .wpcf7-submit {
	width: 100%;
}

.itfs-site .itfs-footer__form .wpcf7-form-control-wrap {
	display: block;
}

.itfs-site .itfs-footer__form input[type="text"],
.itfs-site .itfs-footer__form input[type="email"] {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--itfs-radius);
	background: rgba(255, 255, 255, 0.06);
	font-family: var(--itfs-font);
	font-size: 15px;
	color: #fff;
}

.itfs-site .itfs-footer__form input::placeholder {
	color: var(--itfs-on-dark-muted);
	opacity: 1;
}

.itfs-site .itfs-footer__form input[type="text"]:focus,
.itfs-site .itfs-footer__form input[type="email"]:focus {
	border-color: #fff;
}

.itfs-site .itfs-footer__form input[type="submit"] {
	height: 48px;
	margin: 0;
	padding: 0 26px;
	border: 2px solid #fff;
	border-radius: var(--itfs-radius);
	background: #fff;
	font-family: var(--itfs-font);
	font-size: 15px;
	font-weight: 600;
	color: var(--itfs-deep);
	cursor: pointer;
}

.itfs-site .itfs-footer__form input[type="submit"]:hover {
	border-color: var(--itfs-on-dark);
	background: var(--itfs-on-dark);
}

.itfs-site .itfs-footer__form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: #ffc2b8;
}

.itfs-site .itfs-footer__form .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 10px 14px;
	border-radius: var(--itfs-radius);
	font-size: 14px;
	color: #fff;
}

/* The spinner (hidden until the form is sent) keeps 72px of margins in the flow, which left a gap to
   the right of the button: show it just below the button instead. */
.itfs-site .itfs-footer__form .wpcf7-spinner {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	margin: 0 0 0 -12px;
}

.itfs-site .itfs-footer__title {
	margin: 0 0 12px;
	font-family: var(--itfs-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
}

.itfs-site .itfs-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.itfs-site .itfs-footer__list li {
	margin: 0;
}

.itfs-site .itfs-footer__list a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	color: var(--itfs-on-dark-soft);
	text-decoration: none;
}

.itfs-site .itfs-footer__list a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.itfs-site .itfs-footer__offices {
	display: grid;
	gap: 18px;
	justify-items: start;
}

.itfs-site .itfs-footer__office {
	margin: 0;
}

.itfs-site .itfs-footer__office-name {
	display: block;
	margin-bottom: 2px;
	font-weight: 600;
	color: #fff;
}

.itfs-site .itfs-footer__phone {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	min-height: 44px;
	padding-top: 4px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
	color: #fff;
	text-decoration: none;
}

.itfs-site .itfs-footer__phone .itfs-icon {
	margin-top: 2px;
	color: var(--itfs-gold);
}

.itfs-site .itfs-footer__digits {
	display: block;
	font-weight: 400;
	color: var(--itfs-on-dark-soft);
}

.itfs-site .itfs-footer__phone:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.itfs-site .itfs-footer__bottom {
	display: grid;
	gap: 14px;
	padding: 22px 0 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 13px;
	line-height: 1.6;
	color: var(--itfs-on-dark-muted);
}

.itfs-site .itfs-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 6px 32px;
}

.itfs-site .itfs-footer__declaration {
	max-width: 1040px;
	font-size: 12.5px;
	line-height: 1.65;
	text-wrap: pretty;
}

.itfs-site .itfs-footer__declaration strong {
	font-weight: 600;
	color: var(--itfs-on-dark-soft);
}

.itfs-site .itfs-footer__bottom p {
	margin: 0;
}

.itfs-site .itfs-footer__bottom a {
	color: var(--itfs-on-dark-soft);
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.35);
	text-underline-offset: 3px;
}

.itfs-site .itfs-footer__bottom a:hover {
	color: #fff;
	text-decoration-color: currentColor;
}

.itfs-site .itfs-footer__sep {
	margin: 0 8px;
}

.itfs-site .itfs-btn--outline-light {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.55);
	color: #fff;
}

.itfs-site .itfs-btn--outline-light:hover {
	background: #fff;
	border-color: #fff;
	color: var(--itfs-deep);
}

@media (min-width: 720px) {
	.itfs-site .itfs-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 44px 40px;
	}

	.itfs-site .itfs-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 1024px) {
	.itfs-site .itfs-footer__grid {
		padding: 72px 0 56px;
	}

	.itfs-site .itfs-footer__logo img {
		height: 48px;
	}
}

/* Four columns: brand, Menu, Offices, Newsletter (at least 304px, for the reCAPTCHA widget). */
@media (min-width: 1180px) {
	.itfs-site .itfs-footer__grid {
		grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr) minmax(304px, 1.15fr);
		gap: 48px;
	}

	.itfs-site .itfs-footer__brand {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.itfs-site .itfs-btn,
	.itfs-site .itfs-header__menu a,
	.itfs-site .itfs-header__phone,
	.itfs-site .itfs-footer__list a {
		transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	}
}
