/*
 * Fibrewise Consulting: what theme.json cannot express.
 * Values come from theme.json tokens; the design's own source is
 * ~/designs/fibre-wise/src/styles.css and the Tailwind classes in its
 * components (SiteChrome.tsx, Capability.tsx).
 */

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	/* Anything focused or linked to lands below the sticky 80px header, never under it. */
	scroll-padding-top: calc(5rem + var(--wp-admin--admin-bar--height, 0px) + 1rem);
}

body {
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

::selection {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--white);
}

/*
 * Focus. The design's ring is the brand gold (2.71:1 on paper). Light
 * surfaces use focus gold (#9A8048, 3.40:1 on paper, approved 21 Oct 2026);
 * slate surfaces use gold on dark (#B79E66, 4.54:1).
 */
:focus-visible {
	outline: 2px solid var(--wp--preset--color--focus);
	outline-offset: 4px;
}

.fw-footer :focus-visible {
	outline-color: var(--wp--preset--color--gold-on-dark);
}

/* ---------- Stepped sizes ----------
 * The design's sizes jump at its breakpoints (Tailwind sm 640, md 768,
 * lg 1024, xl 1280); theme.json's tokens point at these, so every width
 * matches the design. */

:root {
	--fw-fs-display: 2.2rem;
	--fw-fs-7xl: 2.25rem;
	--fw-fs-6xl: 2.25rem;
	--fw-fs-h3: 1.5rem;
	--fw-fs-lead: 1rem;
	--fw-fs-quote: 1.875rem;
	--fw-fs-band-quote: 1.5rem;
	--fw-sp-gutter: 1.25rem;
	--fw-sp-section-top: 4rem;
	--fw-sp-section: 5rem;
}

@media (min-width: 640px) {
	:root {
		--fw-fs-display: 3.75rem;
	}
}

@media (min-width: 768px) {
	:root {
		--fw-fs-7xl: 4.5rem;
		--fw-fs-6xl: 3.75rem;
		--fw-fs-h3: 1.875rem;
		--fw-fs-lead: 1.125rem;
		--fw-fs-quote: 3.75rem;
		--fw-fs-band-quote: 2.25rem;
		--fw-sp-gutter: 2.5rem;
		--fw-sp-section-top: 6rem;
		--fw-sp-section: 7rem;
	}
}

@media (min-width: 1024px) {
	:root {
		--fw-fs-display: 4.5rem;
		--fw-sp-gutter: 4rem;
	}
}

@media (min-width: 1280px) {
	:root {
		--fw-fs-display: 5.25rem;
	}
}

/* Below 360px "Telecommunications" at the design's heading sizes is wider
 * than the screen (the design overflows here too). Large headings may
 * hyphenate or break a long word, at these widths only, so every wider
 * screen keeps the design's line breaks. */
@media (max-width: 359.98px) {
	h1,
	h2,
	h3 {
		overflow-wrap: break-word;
		-webkit-hyphens: auto;
		hyphens: auto;
	}
}

/* ---------- Layout ----------
 * The design's site-container: 1440px, gutters 20px, 40px from 768px,
 * 64px from 1024px (scaled smoothly by the gutter token). */

.fw-shell {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--custom--shell--max-width);
	margin-inline: auto;
	padding-inline: var(--wp--custom--shell--gutter);
}

/* ---------- Buttons ----------
 * The design's default Button: slate, paper text, 14px medium, 36px tall,
 * 16px sides, an 8px gap to its 16px icon, slate at 90% on hover. */

.fw-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--2);
	box-sizing: border-box;
	min-height: 2.25rem;
	padding: var(--wp--preset--spacing--2) var(--wp--preset--spacing--4);
	background: var(--wp--preset--color--slate);
	color: var(--wp--preset--color--paper);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	line-height: 1.25rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--wp--custom--motion--hover);
}

.fw-button:hover {
	background: color-mix(in oklab, var(--wp--preset--color--slate) 90%, transparent);
}

.fw-button .fw-icon {
	width: 1rem;
	height: 1rem;
}

/* ---------- Header ----------
 * Sticky, 80px, paper at 95% with a backdrop blur, a line below. The blur
 * sits on a layer behind the bar, not on the bar itself, so the menu
 * drawer inside it can still cover the whole screen. */

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 40;
}

.fw-header {
	position: relative;
	isolation: isolate;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.fw-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--wp--custom--color--paper-95);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.fw-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--3);
	height: 5rem;
}

/* The design's logo box is 224 by 44 with the wordmark 25.6px tall inside it. */
.fw-brand {
	display: flex;
	flex: 0 0 14rem;
	align-items: center;
	height: 2.75rem;
}

.fw-brand img {
	display: block;
	width: auto;
	height: 1.6rem;
}

/* Home: the wordmark fades in once the hero headline has scrolled away, as
 * the design does. Without the script, or while it has focus, it shows. */
.fw-js .home .fw-brand img {
	opacity: 0;
	transition: opacity 0.5s ease;
}

.fw-js .home .fw-header.is-past .fw-brand img,
.fw-js .home .fw-brand:focus-visible img {
	opacity: 1;
}

/* Desktop links: 14px medium, muted, slate on hover and on the current page, 28px apart. */
.fw-header__desktop {
	display: none;
	align-items: center;
	gap: var(--wp--preset--spacing--7);
}

.fw-main-nav.wp-block-navigation {
	gap: var(--wp--preset--spacing--7);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
}

.fw-main-nav.wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--muted);
	line-height: 1.25rem;
	text-decoration: none;
	transition: color var(--wp--custom--motion--hover);
}

.fw-main-nav.wp-block-navigation .wp-block-navigation-item__content:hover,
.fw-main-nav.wp-block-navigation .is-current > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--slate);
}

/* Phones and tablets: the call button, Get in touch and the menu button
 * (approved 21 Oct 2026). The design shows only the menu button. */
.fw-header__mobile {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: var(--wp--preset--spacing--1);
}

.fw-header__call,
.fw-header__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--slate);
	cursor: pointer;
	transition: background-color var(--wp--custom--motion--hover), color var(--wp--custom--motion--hover);
}

/* The design's ghost icon button: gold on hover, white icon (3.01:1, a UI graphic). */
.fw-header__call:hover,
.fw-header__toggle:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--white);
}

.fw-header__cta--mobile {
	min-height: 2.75rem;
	padding-inline: var(--wp--preset--spacing--3);
}

@media (max-width: 1023.98px) {
	/* Share the bar: the wordmark gives way before the buttons do. */
	.fw-brand {
		flex: 0 1 9.9375rem;
		min-width: 0;
	}

	.fw-brand img {
		width: 100%;
		height: auto;
	}
}

/* Below 360px there is no room for Get in touch beside the menu button; it
 * stays in the menu, and the call button stays in the bar. */
@media (max-width: 359.98px) {
	.fw-header__cta--mobile {
		display: none;
	}
}

@media (min-width: 1024px) {
	.fw-header__desktop {
		display: flex;
	}

	.fw-header__mobile {
		display: none;
	}
}

/* ---------- Menu drawer ----------
 * The design's Sheet: black at 80% over the page, a paper panel from the
 * right (full width, 448px from 640px) with a line on its left, 24px
 * padding, the close button top right, links 24px with a line above each
 * from 64px down, Get in touch last in gold with a line below. */

.fw-drawer[hidden] {
	display: none;
}

.fw-drawer {
	position: fixed;
	inset: 0;
	z-index: 50;
}

.fw-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.8);
}

.fw-drawer__panel {
	position: absolute;
	inset-block: 0;
	right: 0;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	overflow-y: auto;
	padding: var(--wp--preset--spacing--6);
	border-left: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--paper);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	animation: fw-drawer-in 0.5s ease-in-out backwards;
}

@keyframes fw-drawer-in {
	from {
		transform: translateX(100%);
	}

	to {
		transform: none;
	}
}

@media (min-width: 640px) {
	.fw-drawer__panel {
		max-width: 28rem;
	}
}

.fw-drawer__close {
	position: absolute;
	top: var(--wp--preset--spacing--2);
	right: var(--wp--preset--spacing--2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--slate);
	cursor: pointer;
	opacity: 0.7;
	transition: opacity var(--wp--custom--motion--hover);
}

.fw-drawer__close:hover,
.fw-drawer__close:focus-visible {
	opacity: 1;
}

.fw-drawer__nav {
	display: flex;
	flex-direction: column;
	margin-top: var(--wp--preset--spacing--16);
}

.fw-drawer__nav a {
	padding-block: var(--wp--preset--spacing--5);
	border-top: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--2-xl);
	line-height: 2rem;
	text-decoration: none;
}

/* Gold on paper is 2.71:1; gold text is the approved darker gold (5.14:1). */
.fw-drawer__nav .fw-drawer__cta {
	border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--gold-text);
}

/* ---------- Eyebrows and headings ---------- */

/* Section kicker: 20px semibold uppercase gold. Gold text on light is the
 * approved darker gold (5.14:1 on paper, 4.53:1 on stone). */
.fw-eyebrow {
	position: relative;
	z-index: 1;
	margin: 0;
	color: var(--wp--preset--color--gold-text);
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--body);
	text-transform: uppercase;
}

/* ---------- Capability statement band ----------
 * Stone, a line above, 64px top and bottom; the heading and the form side
 * by side from 1024px (1 to 1.35), 48px apart. */

.fw-capability {
	border-top: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--stone);
	color: var(--wp--preset--color--slate);
}

.fw-capability__inner {
	display: grid;
	gap: var(--wp--preset--spacing--12);
	padding-block: var(--wp--preset--spacing--16);
}

@media (min-width: 1024px) {
	.fw-capability__inner {
		grid-template-columns: 1fr 1.35fr;
	}
}

/* 36px, 60px from 768px (the 6xl token), medium, line height 1. */
.fw-capability__heading {
	position: relative;
	z-index: 1;
	margin-top: var(--wp--preset--spacing--4);
	font-size: var(--wp--preset--font-size--6-xl);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--none);
}

/* The italic pull-out words in grey. The design's grey on stone is 4.17:1;
 * the approved darker grey (#666666) is 4.56:1. */
.fw-capability__heading em {
	color: var(--wp--preset--color--muted-stone);
	font-style: italic;
	font-weight: 400;
}

.fw-capability__form {
	position: relative;
	z-index: 1;
	align-self: start;
}

/* ---------- Footer ----------
 * Slate, paper text, 48px top and bottom; four columns from 1024px
 * (1.7, 0.7, 1.1, 1), two from 768px, 40px apart. */

.fw-footer {
	background: var(--wp--preset--color--slate);
	color: var(--wp--preset--color--paper);
}

.fw-footer__inner {
	padding-block: var(--wp--preset--spacing--12);
}

.fw-footer__grid {
	display: grid;
	gap: var(--wp--preset--spacing--10);
}

@media (min-width: 768px) {
	.fw-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fw-footer__grid {
		grid-template-columns: minmax(0, 1.7fr) minmax(0, 0.7fr) minmax(0, 1.1fr) minmax(0, 1fr);
	}
}

.fw-footer__brand img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 204px;
	object-fit: contain;
	object-position: left top;
}

/* Column heads: 12px bold uppercase, 0.18em tracking. Paper at 60% (4.96:1,
 * approved 21 Oct 2026); the design's 50% is 3.94:1. */
.fw-footer__head {
	margin: 0;
	color: var(--wp--custom--color--on-dark-60);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: var(--wp--custom--tracking--caps);
	line-height: 1rem;
	text-transform: uppercase;
}

/* Links: 14px, paper at 70% (6.14:1), full paper on hover, 12px apart. */
.fw-footer__links {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--3);
	margin: var(--wp--preset--spacing--5) 0 0;
	padding: 0;
	color: var(--wp--custom--color--on-dark-70);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.25rem;
	list-style: none;
}

.fw-footer__links a {
	display: block;
	color: inherit;
	text-decoration: none;
	transition: color var(--wp--custom--motion--hover);
}

.fw-footer__links a:hover {
	color: var(--wp--preset--color--paper);
}

.fw-footer__contact a {
	overflow-wrap: anywhere;
}

/* Facebook, Instagram, LinkedIn: 20px outlines at 1.5, 16px apart. */
.fw-footer__social {
	display: flex;
	align-items: center;
	gap: 0;
	margin: var(--wp--preset--spacing--1) 0 0 calc(-1 * var(--wp--preset--spacing--2));
	padding: 0;
	list-style: none;
}

/* Each icon sits in a 44px target; the visible spacing matches the design's 16px. */
.fw-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-inline: calc(-1 * var(--wp--preset--spacing--1));
	color: var(--wp--custom--color--on-dark-70);
	transition: color var(--wp--custom--motion--hover);
}

.fw-footer__social a:hover {
	color: var(--wp--preset--color--paper);
}

/* The legal row: a line at 20% above, 64px down from the columns, 12px.
 * Paper at 60% (4.96:1); the design's 50% is 3.94:1. */
.fw-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--4);
	margin-top: var(--wp--preset--spacing--16);
	padding-top: var(--wp--preset--spacing--5);
	border-top: 1px solid var(--wp--custom--color--hairline-dark-20);
	color: var(--wp--custom--color--on-dark-60);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1rem;
}

.fw-footer__legal p {
	margin: 0;
}

.fw-footer__legal a {
	color: inherit;
	text-decoration: none;
	text-underline-offset: 4px;
}

.fw-footer__legal a:hover {
	color: var(--wp--custom--color--on-dark-80);
	text-decoration: underline;
}

/* ---------- Icons ---------- */

.fw-icon {
	display: block;
	flex-shrink: 0;
}

/* ---------- Review markers ----------
 * The words are the design's. The label beside them is drawn here, so the
 * copy in the HTML is never changed. Slate on gold on dark: 4.54:1. Both go
 * once the client supplies or confirms the item. */

.fw-fact {
	outline: 1px dashed currentColor;
	outline-offset: 2px;
}

.fw-fact::after {
	content: "To confirm";
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0 0.375rem;
	background: var(--wp--preset--color--gold-on-dark);
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--xs);
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
	vertical-align: middle;
}

/* A marked block (the social icons) carries its label on its own line. */
.fw-fact--block {
	width: max-content;
	max-width: 100%;
}

.fw-fact--block::after {
	display: block;
	width: max-content;
	margin: 0.25rem 0 0;
}

.fw-gap-text {
	display: inline;
	padding: 0 0.375rem;
	border: 1px dashed currentColor;
	background: var(--wp--preset--color--gold-on-dark);
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	color: var(--wp--preset--color--slate);
	font-weight: 700;
}

.fw-gap-block {
	margin: 0;
	padding: var(--wp--preset--spacing--4);
	border: 1px dashed var(--wp--preset--color--slate);
	background: var(--wp--preset--color--gold-on-dark);
	color: var(--wp--preset--color--slate);
	font-weight: 700;
}

/* ---------- Motion ---------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

/* ---------- Page not found ----------
 * No design: the page hero's heading and intro styles (PageHero.tsx),
 * with marked gaps for the words. A placeholder, listed in the report. */

.fw-not-found__inner {
	padding-block: var(--wp--preset--spacing--section);
}

.fw-not-found__heading {
	max-width: var(--wp--custom--measure--hero);
	font-size: var(--wp--preset--font-size--display);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--display);
}

.fw-not-found__intro {
	max-width: var(--wp--custom--measure--xl);
	margin-top: var(--wp--preset--spacing--8);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--lead);
	line-height: var(--wp--custom--line-height--relaxed);
}

.fw-not-found__action {
	margin-top: var(--wp--preset--spacing--8);
}

/* ---------- Glyphs ----------
 * Lucide icons placed in page content (the feature cards, the arrows), drawn
 * as masks in the text colour so the content never carries SVG code.
 * Shapes from lucide-static 0.575.0, the design's lucide-react version;
 * stroke 1.5 as the design draws them, 2 for the arrow. */

:root {
	--fw-icon-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z'/%3E%3Cpath d='M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12'/%3E%3Cpath d='M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17'/%3E%3C/svg%3E");
	--fw-icon-phone-call: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2a9 9 0 0 1 9 9'/%3E%3Cpath d='M13 6a5 5 0 0 1 5 5'/%3E%3Cpath d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");
	--fw-icon-train-track: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 17 17 2'/%3E%3Cpath d='m2 14 8 8'/%3E%3Cpath d='m5 11 8 8'/%3E%3Cpath d='m8 8 8 8'/%3E%3Cpath d='m11 5 8 8'/%3E%3Cpath d='m14 2 8 8'/%3E%3Cpath d='M7 22 22 7'/%3E%3C/svg%3E");
	--fw-icon-repeat-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 9 3-3 3 3'/%3E%3Cpath d='M13 18H7a2 2 0 0 1-2-2V6'/%3E%3Cpath d='m22 15-3 3-3-3'/%3E%3Cpath d='M11 6h6a2 2 0 0 1 2 2v10'/%3E%3C/svg%3E");
	--fw-icon-hard-hat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5'/%3E%3Cpath d='M14 6a6 6 0 0 1 6 6v3'/%3E%3Cpath d='M4 15v-3a6 6 0 0 1 6-6'/%3E%3Crect x='2' y='15' width='20' height='4' rx='1'/%3E%3C/svg%3E");
	--fw-icon-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M16 3.128a4 4 0 0 1 0 7.744'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/svg%3E");
	--fw-icon-wrench: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z'/%3E%3C/svg%3E");
	--fw-icon-messages-square: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/%3E%3Cpath d='M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1'/%3E%3C/svg%3E");
	--fw-icon-list-checks: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 5h8'/%3E%3Cpath d='M13 12h8'/%3E%3Cpath d='M13 19h8'/%3E%3Cpath d='m3 17 2 2 4-4'/%3E%3Cpath d='m3 7 2 2 4-4'/%3E%3C/svg%3E");
	--fw-icon-handshake: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17 2 2a1 1 0 1 0 3-3'/%3E%3Cpath d='m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4'/%3E%3Cpath d='m21 3 1 11h-2'/%3E%3Cpath d='M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3'/%3E%3Cpath d='M3 4h8'/%3E%3C/svg%3E");
	--fw-icon-shield-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--fw-icon-globe-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.54 15H17a2 2 0 0 0-2 2v4.54'/%3E%3Cpath d='M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17'/%3E%3Cpath d='M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E");
	--fw-icon-map-pinned: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0'/%3E%3Ccircle cx='12' cy='8' r='2'/%3E%3Cpath d='M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712'/%3E%3C/svg%3E");
	--fw-icon-users-round: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='10' cy='8' r='5'/%3E%3Cpath d='M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3'/%3E%3C/svg%3E");
	--fw-icon-message-square: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
	--fw-icon-arrow-up-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E");
	--fw-icon-arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m19 12-7 7-7-7'/%3E%3C/svg%3E");
	--fw-icon-arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E");
	--fw-icon-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V3'/%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
	--fw-icon-linkedin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z'/%3E%3Crect width='4' height='12' x='2' y='9'/%3E%3Ccircle cx='4' cy='4' r='2'/%3E%3C/svg%3E");
}

.fw-glyph {
	display: block;
	flex-shrink: 0;
	width: 1.75rem;
	height: 1.75rem;
	background: currentColor;
	-webkit-mask: var(--fw-icon) center / contain no-repeat;
	mask: var(--fw-icon) center / contain no-repeat;
}

.fw-glyph.is-layers {
	--fw-icon: var(--fw-icon-layers);
}

.fw-glyph.is-phone-call {
	--fw-icon: var(--fw-icon-phone-call);
}

.fw-glyph.is-train-track {
	--fw-icon: var(--fw-icon-train-track);
}

.fw-glyph.is-repeat-2 {
	--fw-icon: var(--fw-icon-repeat-2);
}

.fw-glyph.is-hard-hat {
	--fw-icon: var(--fw-icon-hard-hat);
}

.fw-glyph.is-users {
	--fw-icon: var(--fw-icon-users);
}

.fw-glyph.is-wrench {
	--fw-icon: var(--fw-icon-wrench);
}

.fw-glyph.is-messages-square {
	--fw-icon: var(--fw-icon-messages-square);
}

.fw-glyph.is-list-checks {
	--fw-icon: var(--fw-icon-list-checks);
}

.fw-glyph.is-handshake {
	--fw-icon: var(--fw-icon-handshake);
}

.fw-glyph.is-shield-check {
	--fw-icon: var(--fw-icon-shield-check);
}

.fw-glyph.is-globe-2 {
	--fw-icon: var(--fw-icon-globe-2);
}

.fw-glyph.is-map-pinned {
	--fw-icon: var(--fw-icon-map-pinned);
}

.fw-glyph.is-users-round {
	--fw-icon: var(--fw-icon-users-round);
}

.fw-glyph.is-message-square {
	--fw-icon: var(--fw-icon-message-square);
}

.fw-glyph.is-arrow-up-right {
	--fw-icon: var(--fw-icon-arrow-up-right);
}

.fw-glyph.is-arrow-down {
	--fw-icon: var(--fw-icon-arrow-down);
}

.fw-glyph.is-arrow-left {
	--fw-icon: var(--fw-icon-arrow-left);
}

.fw-glyph.is-linkedin {
	--fw-icon: var(--fw-icon-linkedin);
}
