/* Buttons ----------------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
	display: inline-block;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background-color var(--fwf--transition), color var(--fwf--transition), border-color var(--fwf--transition);
}

.wp-block-button.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary);
	border-color: currentColor;
}

.wp-block-button.is-style-ghost .wp-block-button__link:hover,
.wp-block-button.is-style-ghost .wp-block-button__link:focus {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--primary);
}

.wp-block-button.is-style-arrow .wp-block-button__link::after {
	content: "→";
	display: inline-block;
	margin-inline-start: 0.5em;
	transition: transform var(--fwf--transition);
}

.wp-block-button.is-style-arrow .wp-block-button__link:hover::after {
	transform: translateX(3px);
}

/* Groups ------------------------------------------------------------------ */

.wp-block-group.is-style-card {
	padding: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--surface);
	border-radius: 12px;
}

.wp-block-group.is-style-bordered {
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
}

/* Images ------------------------------------------------------------------ */

.wp-block-image.is-style-rounded-lg img {
	border-radius: 16px;
}

/* Headings ---------------------------------------------------------------- */

.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--primary);
}

.is-style-display-serif {
	font-family: var(--wp--preset--font-family--display);
	letter-spacing: -0.01em;
}

/* Lists ------------------------------------------------------------------- */

.wp-block-list.is-style-checks {
	list-style: none;
	padding-inline-start: 0;
}

.wp-block-list.is-style-checks li {
	position: relative;
	padding-inline-start: 1.75rem;
	margin-block-end: 0.6rem;
}

.wp-block-list.is-style-checks li::before {
	content: "✓";
	position: absolute;
	inset-inline-start: 0;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}

/* Separators -------------------------------------------------------------- */

.wp-block-separator.is-style-thick {
	border-top-width: 4px;
	max-width: 64px;
	margin-inline: 0;
	opacity: 1;
	color: var(--wp--preset--color--primary);
}

/* Tables ------------------------------------------------------------------ */
.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-table th,
.wp-block-table td {
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	text-align: start;
}

.wp-block-table thead th {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
}

/* Cover ------------------------------------------------------------------- */
.wp-block-cover {
	min-height: 420px;
}

/* Post grid (archives) ---------------------------------------------------- */
.post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--wp--preset--spacing--40);
}

.post-card__media img {
	width: 100%;
	border-radius: 10px;
}

.post-card__title {
	margin-block: var(--wp--preset--spacing--10) 0;
	font-size: var(--wp--preset--font-size--large);
}

.post-card__title a {
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
}

.post-card__title a:hover {
	color: var(--wp--preset--color--primary);
}

.entry__meta {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* Entry header / breadcrumbs ---------------------------------------------- */
.entry__header,
.archive__header {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
}

.entry__thumbnail img {
	width: 100%;
	border-radius: 12px;
}

.breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 var(--wp--preset--spacing--20);
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.breadcrumbs__item + .breadcrumbs__item::before {
	content: "/";
	margin-inline-end: 0.5rem;
	opacity: 0.5;
}

/* Search form ------------------------------------------------------------- */
/* core/search, classed `search-form` in the 404 and search templates. */
.wp-block-search.search-form {
	max-width: 480px;
}

.search-form .wp-block-search__inside-wrapper {
	gap: 0.5rem;
}

.search-form .wp-block-search__input {
	flex: 1;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fwf--button--radius);
	background: var(--wp--preset--color--base);
}

/* Pagination -------------------------------------------------------------- */
.wp-block-query-pagination,
.navigation.pagination {
	margin-block-start: var(--wp--preset--spacing--50);
}

.navigation.pagination .page-numbers {
	display: inline-block;
	padding: 0.5rem 0.85rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fwf--button--radius);
	text-decoration: none;
}

.navigation.pagination .page-numbers.current {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.fwf-block-placeholder {
	padding: var(--wp--preset--spacing--30);
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: 8px;
	text-align: center;
	color: var(--wp--preset--color--muted);
}

.wp-block-button.is-style-accent .wp-block-button__link {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	border-color: transparent;
}

.wp-block-button.is-style-accent .wp-block-button__link:hover,
.wp-block-button.is-style-accent .wp-block-button__link:focus {
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--base);
}

.is-style-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}

.fwf-icon {
	display: block;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

.wp-block-shortcode .ti-widget,
.ti-widget {
	max-width: 100%;
}

.ti-widget img {
	display: inline-block;
}

.wp-block-column:not(:has(*)) {
	display: none;
}

.wp-block-columns > .wp-block-column:only-child {
	max-width: 68ch;
	margin-inline: auto;
	flex-basis: auto !important;
}

.wp-block-image:not(:has(img[src])) {
	display: none;
}

.wp-block-embed:not(:has(iframe)):not(:has(video)):not(:has(img[src])) {
	display: none;
}

/* Video block ------------------------------------------------------------- */
.wp-block-video video {
	width: 100%;
	height: auto;
	display: block;
}

.wp-block-video.is-style-rounded-lg video {
	border-radius: 16px;
}

.entry__content .wp-block-columns .wp-block-image,
.entry__content .wp-block-columns .wp-block-image img {
	width: 100%;
}

.entry__content .wp-block-columns .wp-block-image img {
	height: auto;
	object-fit: cover;
}

.wp-block-button__link,
.wp-element-button,
.fwf-hero-feature__button,
.fwf-services-grid__button,
.gform_button {
	transition:
		background-color var(--fwf--transition),
		border-color var(--fwf--transition),
		color var(--fwf--transition),
		box-shadow 240ms var(--fwf--reveal--ease, ease),
		translate 240ms var(--fwf--reveal--ease, ease);
}

.wp-block-button__link,
.wp-element-button,
.fwf-hero-feature__button,
.fwf-services-grid__button,
.gform_button,
.wp-block-button__link:hover,
.wp-element-button:hover,
.fwf-hero-feature__button:hover,
.fwf-services-grid__button:hover,
.gform_button:hover,
.wp-block-button__link:focus,
.wp-element-button:focus,
.fwf-hero-feature__button:focus {
	text-decoration: none;
}

@media (hover: hover) {
	.wp-block-button__link:hover,
	.wp-element-button:hover,
	.fwf-hero-feature__button:hover,
	.fwf-services-grid__button:hover,
	.gform_button:hover {
		translate: 0 -2px;
		box-shadow: 0 6px 16px -6px rgb(0 0 0 / 0.45);
	}

	.fwf-hero-feature .fwf-hero-feature__button:hover,
	.fwf-steps-form .wp-element-button:hover,
	.fwf-checklist--dark .wp-element-button:hover {
		box-shadow: none;
	}
}

.wp-block-button__link:active,
.wp-element-button:active,
.fwf-hero-feature__button:active,
.fwf-services-grid__button:active,
.gform_button:active {
	translate: 0 0;
	box-shadow: none;
}

.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
.fwf-hero-feature__button:focus-visible,
.fwf-services-grid__button:focus-visible,
.gform_button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

@media (hover: hover) {
	.wp-block-button.is-style-ghost .wp-block-button__link:hover {
		box-shadow: 0 6px 16px -6px rgb(0 0 0 / 0.35);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link,
	.wp-element-button,
	.fwf-hero-feature__button,
	.fwf-services-grid__button,
	.gform_button {
		transition: background-color 0.01ms, color 0.01ms !important;
	}

	.wp-block-button__link:hover,
	.wp-element-button:hover,
	.fwf-hero-feature__button:hover,
	.fwf-services-grid__button:hover,
	.gform_button:hover {
		translate: none !important;
	}
}

.entry__breadcrumbs:has(.breadcrumbs) {
	padding-block: 0.85rem;
	background: var(--wp--preset--color--surface);
	border-block-end: 1px solid var(--wp--preset--color--border);
}

.entry__breadcrumbs .breadcrumbs__list {
	margin: 0;
}

.fwf-hero-feature__body p + p,
.fwf-badge-split__body p + p,
.fwf-steps-form__body p + p,
.fwf-hero-split__body p + p {
	margin-block-start: 0.9em;
}
