/*
 * Add theme-level CSS here. Page-specific styling belongs in Elementor;
 * reusable site styles can live in a child theme or this file.
 */
 
 #wpadminbar {
   z-index: 99999999999;
 }

.site-main {
	min-height: 1px;
}

.content-area,
.site-header__inner,
.site-footer__inner {
	width: min(100% - 2rem, 1200px);
	margin-inline: auto;
}

.site-header,
.site-footer {
	padding: 1rem 0;
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.site-title {
	font-weight: 400;
	text-decoration: none;
}

p {
	margin: 0 0 20px;
}

.elementor-widget-text-editor p:only-child {
	margin: 0;
}

.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

@media (min-width: 1024px) {
  .btn-primary a {
    min-width: 192px;
  }
}

/* Decorative line for Elementor headings with the `title-add` CSS class. */
.title-add {
	position: relative;
}

.title-add::before {
	position: absolute;
	top: 20%;
	right: calc(100% + 54px);
	width: 111px;
	height: 1px;
	background-color: #fff;
	content: '';
	pointer-events: none;
}

@media (max-width: 767px) {
	.title-add::before {
		right: calc(100% + 20px);
		width: 56px;
	}
	.hero-btn-box {
		border-bottom: 1px solid rgba(255,255,255,0.17);
	}
}

/* Full-screen mobile navigation. Add these classes in Elementor:
 * mobile-menu, mobile-menu-toggle, mobile-menu-close, and mobile-menu-logo.
 */
.mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
	display: flex;
	width: 100%;
	height: auto;
	min-height: 0 !important;
	box-sizing: border-box;
	overflow: visible;
	background: transparent;
	text-align: left;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.mobile-menu,
.mobile-menu .elementor-element,
.mobile-menu .elementor-widget,
.mobile-menu a,
.mobile-menu button {
	text-align: left;
}

.mobile-menu.is-open {
	/* Class added by theme.js when Elementor's own toggle is open. */
}

/* Elementor's dropdown becomes the actual full-screen overlay. The logo and
 * toggle stay above it, so the close icon is always reachable. */
.mobile-menu .elementor-nav-menu__container.elementor-nav-menu--dropdown {
	position: fixed !important;
	top: 0 !important;
	left: 0;
	/* Elementor injects z-index: 999999 inline when opened. Keep the panel
	 * below the logo and close toggle instead. */
	z-index: 1000000 !important;
	display: block !important;
	width: 100% !important;
	height: 100vh;
	height: 100dvh;
	box-sizing: border-box;
	padding: 96px 20px 210px;
	overflow-y: auto;
	background: #3d3b38;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 260ms ease, visibility 0s linear 260ms;
}

.mobile-menu.is-open .elementor-nav-menu__container.elementor-nav-menu--dropdown {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity 260ms ease;
}

/* Elementor applies its centred mobile alignment to the item links, not only
 * to the ul. Override it at every menu level for this off-canvas menu. */
.mobile-menu .elementor-nav-menu__container .elementor-nav-menu,
.mobile-menu .elementor-nav-menu__container .elementor-nav-menu li,
.mobile-menu .elementor-nav-menu__container .elementor-item,
.mobile-menu .elementor-nav-menu__container .elementor-sub-item {
	text-align: left !important;
}

.mobile-menu .elementor-nav-menu__container .elementor-item,
.mobile-menu .elementor-nav-menu__container .elementor-sub-item {
	justify-content: flex-start !important;
	padding-inline: 20px !important;
}

.mobile-menu .elementor-menu-toggle,
.mobile-menu .elementor-widget-theme-site-logo {
	position: relative;
	z-index: 1000001 !important;
}

.mobile-menu > .e-con-inner > .elementor-element:first-child {
	position: relative;
	z-index: 1000001 !important;
}

.mobile-menu .elementor-widget-theme-site-logo {
	position: fixed !important;
	top: 20px;
	left: 20px;
	z-index: 1000002 !important;
	display: block !important;
}

.mobile-menu .elementor-widget-theme-site-logo .elementor-widget-container {
	text-align: left !important;
}

.mobile-menu .elementor-widget-theme-site-logo img {
	display: block;
	width: min(100%, 180px) !important;
	height: auto;
	opacity: 1 !important;
	visibility: visible !important;
	filter: brightness(0) invert(1);
}

.mobile-menu .elementor-menu-toggle {
	color: #fff !important;
}

.mobile-menu .elementor-menu-toggle svg {
	fill: currentColor !important;
}

/* Mobile call-to-action block: hidden until the menu is open, then held at
 * the bottom of the screen while the navigation itself remains scrollable. */
.mobile-menu .mobile-menu__actions {
	position: fixed !important;
	bottom: 16px;
	left: 20px;
	right: 20px;
	z-index: 1000002 !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(12px);
	transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
}

.mobile-menu.is-open .mobile-menu__actions {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	transition: opacity 220ms ease, transform 220ms ease;
}

body.mobile-menu-active {
	overflow: hidden;
}

/* Desktop and mobile header treatment after the visitor starts scrolling. */
.elementor-element-a1654e0.felgner-header-scrolled,
.mobile-menu.felgner-header-scrolled:not(.is-open) {
	background-color: #FFFBF9 !important;
	box-shadow: 0 6px 16px rgb(62 44 35 / 12%);
	transition: background-color 240ms ease;
}

/* The default header remains transparent until scrolling begins. Bright-page
 * mode below deliberately overrides this with the light header background. */
.elementor-element-a1654e0:not(.felgner-header-scrolled),
.mobile-menu:not(.felgner-header-scrolled):not(.is-open) {
	background-color: transparent !important;
}

.mobile-menu.felgner-header-scrolled:not(.is-open) a,
.mobile-menu.felgner-header-scrolled:not(.is-open) .elementor-item,
.mobile-menu.felgner-header-scrolled:not(.is-open) .elementor-menu-toggle {
	color: #3e2c23 !important;
}

/* Only desktop top-level Menu widget labels change on scroll. The text and
 * links inside .e-n-menu-content keep their original dropdown styling. */
.elementor-element-a1654e0.felgner-header-scrolled .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-title-text,
.elementor-element-a1654e0.felgner-header-scrolled .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container {
	color: #3e2c23 !important;
}

.elementor-element-a1654e0.felgner-header-scrolled .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-dropdown-icon {
	color: #3e2c23 !important;
}

.elementor-element-a1654e0.felgner-header-scrolled .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-dropdown-icon svg {
	fill: currentColor !important;
}

.elementor-element-a1654e0.felgner-header-scrolled .elementor-menu-toggle svg,
.mobile-menu.felgner-header-scrolled:not(.is-open) .elementor-menu-toggle svg {
	fill: #3e2c23 !important;
}

.elementor-element-a1654e0.felgner-header-scrolled .elementor-widget-theme-site-logo img,
.mobile-menu.felgner-header-scrolled:not(.is-open) .elementor-widget-theme-site-logo img {
	/* Convert the white SVG logo to Felgner's dark-brown navigation colour. */
	filter: brightness(0) saturate(100%) invert(15%) sepia(21%) saturate(1326%) hue-rotate(336deg) brightness(92%) contrast(92%);
}

/* Bright/no-image hero mode. Add `felgner-light-header` to the page's outer
 * hero (or first main container). The body selector then gives the shared
 * header its scrolled dark-on-white treatment from the initial page render. */
body:has(.felgner-light-header) .elementor-element-a1654e0,
body:has(.felgner-light-header) .mobile-menu:not(.is-open) {
	background-color: #FFFBF9 !important;
}

body:has(.felgner-light-header) .elementor-element-a1654e0 .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-title-text,
body:has(.felgner-light-header) .elementor-element-a1654e0 .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container,
body:has(.felgner-light-header) .mobile-menu:not(.is-open) a,
body:has(.felgner-light-header) .mobile-menu:not(.is-open) .elementor-item,
body:has(.felgner-light-header) .mobile-menu:not(.is-open) .elementor-menu-toggle {
	color: #3e2c23 !important;
}

body:has(.felgner-light-header) .elementor-element-a1654e0 .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-dropdown-icon {
	color: #3e2c23 !important;
}

body:has(.felgner-light-header) .elementor-element-a1654e0 .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-dropdown-icon svg,
body:has(.felgner-light-header) .elementor-element-a1654e0 .elementor-menu-toggle svg,
body:has(.felgner-light-header) .mobile-menu:not(.is-open) .elementor-menu-toggle svg {
	fill: #3e2c23 !important;
}

body:has(.felgner-light-header) .elementor-element-a1654e0 .elementor-widget-theme-site-logo img,
body:has(.felgner-light-header) .mobile-menu:not(.is-open) .elementor-widget-theme-site-logo img {
	filter: brightness(0) saturate(100%) invert(15%) sepia(21%) saturate(1326%) hue-rotate(336deg) brightness(92%) contrast(92%);
}

/* Reusable left-bleed image section.
 * Use `img-to-the-left-section` on the boxed outer section and
 * `align-left-screen-box` on its left image column. The image grows into the
 * viewport gutter while the text column remains aligned to the site grid.
 */
@media (min-width: 1025px) {
	.img-to-the-left-section {
		--left-screen-bleed: max(0px, calc((100vw - var(--container-max-width, 1200px)) / 2));
	}

	.img-to-the-left-section > .e-con-inner > .e-con {
		align-items: center !important;
		column-gap: 40px !important;
	}

	.img-to-the-left-section .align-left-screen-box {
		/* At 1440px: 774px image + 120px left bleed = exact reference layout. */
		width: clamp(551px, 53.75vw, 774px);
		max-width: clamp(551px, 53.75vw, 774px);
		height: clamp(388px, 37.85vw, 545px);
		margin-left: calc(var(--left-screen-bleed) * -1);
		flex: 0 0 clamp(551px, 53.75vw, 774px);
		overflow: hidden;
	}

	.img-to-the-left-section .align-left-screen-box .elementor-widget-image,
	.img-to-the-left-section .align-left-screen-box .elementor-widget-container,
	.img-to-the-left-section .align-left-screen-box img {
		display: block;
		width: 100%;
		height: 100%;
	}

	.img-to-the-left-section .align-left-screen-box img {
		object-fit: cover;
	}

	.img-to-the-left-section .align-left-screen-box + .e-con {
		min-width: 0;
		flex: 1 1 0;
		align-self: center;
	}

	/* Reusable desktop right-bleed counterpart. Add `align-right-screen-box`
	 * to the container that directly wraps the large Image widget. */
	.img-to-the-right-section {
		--right-screen-bleed: max(0px, calc((100vw - var(--container-max-width, 1200px)) / 2));
	}

	.img-to-the-right-section .align-right-screen-box {
		width: clamp(551px, 53.75vw, 774px);
		max-width: clamp(551px, 53.75vw, 774px);
		height: clamp(388px, 37.85vw, 545px);
		margin-right: calc(var(--right-screen-bleed) * -1);
		flex: 0 0 clamp(551px, 53.75vw, 774px);
		overflow: hidden;
	}

	.img-to-the-right-section .align-right-screen-box .elementor-widget-image,
	.img-to-the-right-section .align-right-screen-box .elementor-widget-container,
	.img-to-the-right-section .align-right-screen-box img {
		display: block;
		width: 100%;
		height: 100%;
	}

	.img-to-the-right-section .align-right-screen-box img {
		object-fit: cover;
	}
}

/* The off-canvas panel creates its own stacking layer. Keep the complete
 * mobile header row above it so the logo and close control are always shown. */
.mobile-menu.is-open .mobile-menu__top {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000003 !important;
	pointer-events: none;
}

.mobile-menu.is-open .elementor-widget-theme-site-logo {
	z-index: 1000004 !important;
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto;
}

.mobile-menu.is-open .elementor-widget-theme-site-logo a {
	display: block;
	pointer-events: auto;
}

.mobile-menu.is-open .elementor-menu-toggle {
	z-index: 1000005 !important;
}

/* Elementor hides its own Site Logo widget with inline CSS when the dropdown
 * opens. These generated controls remain visible and fully interactive. */
.mobile-menu .felgner-mobile-menu-logo-link,
.mobile-menu .felgner-mobile-menu-close {
	position: fixed;
	top: 19px;
	z-index: 1000006;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 180ms ease, visibility 0s linear 180ms;
}

.mobile-menu .felgner-mobile-menu-logo-link {
	left: 20px;
	display: block;
	width: 156px;
	height: 40px;
	background: url("/FELGNER-FF/wp-content/uploads/2026/07/FFlogo.svg") left center / contain no-repeat;
	filter: brightness(0) invert(1);
}

.mobile-menu .felgner-mobile-menu-close {
	right: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 36px;
	line-height: 1;
	cursor: pointer;
}

.mobile-menu.is-open .felgner-mobile-menu-logo-link,
.mobile-menu.is-open .felgner-mobile-menu-close {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity 180ms ease;
}

.mobile-menu.is-open .elementor-menu-toggle {
	visibility: hidden !important;
	pointer-events: none !important;
}

@media (max-width: 1024px) {
	.mobile-menu.is-open .elementor-element-1c3438c.elementor-widget-theme-site-logo {
		display: none !important;
	}

	.mobile-menu .mobile-menu__actions {
		left: 50%;
		right: auto;
		width: calc(100% - 40px);
		transform: translate(-50%, 12px);
	}

	.mobile-menu.is-open .mobile-menu__actions {
		transform: translate(-50%, 0);
	}

	.mobile-menu .mobile-menu__actions .hero-btn-box {
		justify-content: center !important;
		align-items: center !important;
	}
}

/* Lightweight section-reveal system. Add `felgner-reveal` plus one direction
 * class to an Elementor section/container. JavaScript adds `.is-revealed`
 * only when the section enters the viewport. */
html.felgner-motion-ready .felgner-reveal {
	--felgner-reveal-x: 0;
	--felgner-reveal-y: 0;
	--felgner-reveal-delay: 0ms;
	opacity: 0;
	transform: translate3d(var(--felgner-reveal-x), var(--felgner-reveal-y), 0);
	transition:
		opacity 950ms ease var(--felgner-reveal-delay),
		transform 950ms cubic-bezier(0.22, 1, 0.36, 1) var(--felgner-reveal-delay);
	will-change: opacity, transform;
}

html.felgner-motion-ready .felgner-reveal.felgner-reveal--left {
	--felgner-reveal-x: -48px;
}

html.felgner-motion-ready .felgner-reveal.felgner-reveal--right {
	--felgner-reveal-x: 48px;
}

html.felgner-motion-ready .felgner-reveal.felgner-reveal--up {
	--felgner-reveal-y: 48px;
}

html.felgner-motion-ready .felgner-reveal.felgner-reveal--down {
	--felgner-reveal-y: -48px;
}

html.felgner-motion-ready .felgner-reveal.is-revealed {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	will-change: auto;
}

.felgner-reveal--delay-1 { --felgner-reveal-delay: 100ms; }
.felgner-reveal--delay-2 { --felgner-reveal-delay: 200ms; }
.felgner-reveal--delay-3 { --felgner-reveal-delay: 300ms; }
.felgner-reveal--delay-4 { --felgner-reveal-delay: 400ms; }

@media (prefers-reduced-motion: reduce) {
	html.felgner-motion-ready .felgner-reveal,
	html.felgner-motion-ready .felgner-reveal.is-revealed {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Left/right reveal transforms must not create a page-level horizontal scroll
 * area on narrow screens before their sections enter the viewport. */
@media (max-width: 767px) {
	html,
	body {
		overflow-x: clip;
	}
}

@media (max-width: 767px) {
	.mobile-menu .felgner-mobile-menu-logo-link,
	.mobile-menu .felgner-mobile-menu-close {
		top: 17px;
	}

	.mobile-menu .felgner-mobile-menu-logo-link {
		width: 156px;
		height: 40px;
	}
}

@media (min-width: 768px) {
	.mobile-menu {
		display: none;
	}
}

/* Services loop carousel.
 * Elementor setup:
 * - Section: slider-section
 * - Loop item container: serviceSliderCard
 * - Loop item image: serviceSliderCard_featureImage
 * - Loop item title: serviceSliderCard_title
 * - Loop item excerpt: serviceSliderCard_excerpt
 *
 * On large screens the carousel begins on the 1632px site grid, but continues
 * to the right edge of the viewport so that the next service is deliberately
 * visible. This matches the Figma composition without hard-coding a viewport.
 */
.elementor-element-726c02a.slider-section {
	--service-slider-colour: #3e2c23;
	--service-slider-grid-gutter: max(20px, calc((100vw - 1432px) / 2));
	--service-slider-gap: clamp(18px, 1.27vw, 26px);
	overflow: hidden;
	padding-block: clamp(70px, 5vw, 102px) clamp(82px, 5vw, 100px);
}

.elementor-element-2c638d6 {
	position: relative;
	width: calc(100% - var(--service-slider-grid-gutter)) !important;
	margin-left: var(--service-slider-grid-gutter);
	padding-bottom: 100px;
}

.elementor-element-2c638d6 .swiper-wrapper {
	align-items: stretch;
}

@media (max-width: 1440px) {
  .elementor-element-726c02a.slider-section {
    --service-slider-grid-gutter: max(20px, calc((100vw - 1172px) / 2));
  }
}

/* Fixed card widths provide three complete cards and a partial fourth one at
 * the Figma desktop size. Elementor writes an inline width, hence !important. */
.elementor-element-2c638d6 .swiper-slide {
	/* Three complete cards plus approximately one third of the next card. */
	width: clamp(340px, 28.75vw, 536px) !important;
	width: min(536px, calc((100vw - var(--service-slider-grid-gutter) - (var(--service-slider-gap) * 2)) / 3.333333)) !important;
	height: auto;
	/* margin-right: var(--service-slider-gap) !important; */
}

.serviceSliderCard,
.serviceSliderCard > .e-con-inner {
	height: 100%;
}

.serviceSliderCard > .e-con-inner {
	align-content: flex-start;
	gap: 0;
}

.serviceSliderCard_featureImage {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	height: auto !important;
	margin: 0 0 38px;
	overflow: hidden;
}

.serviceSliderCard_featureImage .elementor-widget-container,
.serviceSliderCard_featureImage img {
	width: 100%;
	height: 100%;
}

.serviceSliderCard_featureImage img {
	display: block;
	object-fit: cover;
	transition: transform 360ms ease;
}

.serviceSliderCard:hover .serviceSliderCard_featureImage img {
	transform: scale(1.025);
}

.serviceSliderCard_title {
	margin: 0 0 22px;
	color: var(--service-slider-colour);
}

.serviceSliderCard_title .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	margin: 0;
	color: inherit;
	font-size: 20px;
	line-height: 1.25;
}

.serviceSliderCard_title .elementor-heading-title::after {
	width: 25px;
	height: 25px;
	flex: 0 0 25px;
	background: url('/FELGNER-FF/wp-content/uploads/2026/07/Arrow-up-right-2.svg') center / contain no-repeat;
	content: '';
}

.serviceSliderCard_title a,
.serviceSliderCard_title a:hover,
.serviceSliderCard_title a:focus {
	color: inherit;
	text-decoration: none;
}

.serviceSliderCard_excerpt {
	max-width: 100%;
	color: var(--service-slider-colour);
	font-size: 18px;
	line-height: 1.55;
}

/* The native Elementor progress bar becomes the fine rule in the lower left.
 * The supplied Elementor SVG arrows stay keyboard-accessible, but are moved
 * into their own lower-right navigation group. */
.elementor-element-2c638d6 .swiper-pagination.swiper-pagination-progressbar {
	top: auto !important;
	bottom: 0 !important;
	left: 0 !important;
	width: calc(100% - 370px) !important;
	height: 1px;
	background: color-mix(in srgb, var(--service-slider-colour) 42%, transparent);
}

.elementor-element-2c638d6 .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: var(--service-slider-colour) !important;
}

.elementor-element-2c638d6 .elementor-swiper-button {
	top: auto !important;
	bottom: -10px !important;
	z-index: 2;
	width: auto;
	height: 24px;
	margin: 0;
	transform: none !important;
}

.elementor-element-2c638d6 .elementor-swiper-button-prev {
	left: auto !important;
	right: 280px !important;
}

.elementor-element-2c638d6 .elementor-swiper-button-next {
	left: auto !important;
	right: 120px !important;
}

.elementor-element-2c638d6 .elementor-swiper-button svg {
	display: block;
	height: 12px;
}

.elementor-element-2c638d6 .elementor-swiper-button-prev svg {
	width: 40px !important;
}

.elementor-element-2c638d6 .elementor-swiper-button-next svg {
	width: 140px !important;
}

.elementor-element-2c638d6 .elementor-swiper-button:focus-visible {
	outline: 2px solid var(--service-slider-colour);
	outline-offset: 6px;
}

@media (max-width: 1024px) {
	.elementor-element-726c02a.slider-section {
		--service-slider-grid-gutter: 20px;
		padding-block: 70px 82px;
	}

	.elementor-element-2c638d6 {
		padding-bottom: 82px;
	}

	.elementor-element-2c638d6 .swiper-slide {
		width: min(68vw, 430px) !important;
	}

	.serviceSliderCard_featureImage {
		margin-bottom: 28px;
	}

	.elementor-element-2c638d6 .swiper-pagination.swiper-pagination-progressbar {
		width: calc(100% - 230px) !important;
	}

	.elementor-element-2c638d6 .elementor-swiper-button-prev {
		right: 222px !important;
	}
}

/* Team slider mobile navigation. The progress rule stops at 201px and the
 * two equally sized arrows continue immediately to its right. */
@media (max-width: 767px) {
	.team_slider {
		--team-slider-progress-width: min(201px, calc(100% - 119px));
		position: relative;
		padding-bottom: 48px;
	}

	.team_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: var(--team-slider-progress-width) !important;
	}

	.team_slider .elementor-swiper-button {
		top: auto !important;
		right: auto !important;
		bottom: -5px !important;
		width: 40px !important;
		height: 12px !important;
		margin: 0 !important;
		transform: none !important;
	}

	.team_slider .elementor-swiper-button-prev {
		left: calc(var(--team-slider-progress-width) + 18px) !important;
	}

	.team_slider .elementor-swiper-button-next {
		left: calc(var(--team-slider-progress-width) + 72px) !important;
	}

	.team_slider .elementor-swiper-button svg,
	.team_slider .elementor-swiper-button-next svg {
		display: block;
		width: 40px !important;
		height: 12px !important;
	}

	/* Replace the desktop long next icon with the short left icon, mirrored.
	 * The original long SVG is hidden on mobile only. */
	.team_slider .elementor-swiper-button-next svg {
		display: none !important;
	}

	.team_slider .elementor-swiper-button-next::before {
		display: block;
		width: 40px;
		height: 12px;
		background: url('/FELGNER-FF/wp-content/uploads/2026/07/short-left-Arrow.svg') center / 40px 12px no-repeat;
		content: '';
		transform: rotate(180deg);
	}
}

/* Testimonial carousel: every breakpoint shows one complete testimonial only.
 * The Swiper viewport clips the neighbouring slides while preserving normal
 * slide animation and the deliberately tall content inside the active slide. */
.testimonials_slider-section .testimonial_slider .swiper {
	overflow: hidden;
}

/* Desktop testimonial composition. The bordered card is the fixed frame;
 * the portrait deliberately extends above and below it, as in the design. */
@media (min-width: 1025px) {
	.testimonials_slider-section .testimonial_slider .swiper-slide {
		box-sizing: border-box;
		padding-block: 82px;
	}

	.testimonials_slider-section .testimonial_slider .swiper-slide > .elementor-455,
	.testimonials_slider-section .testimonial_slider .elementor-element-a46c2c9,
	.testimonials_slider-section .testimonial_slider .elementor-element-a46c2c9 > .e-con-inner {
		width: 100% !important;
		max-width: none !important;
	}

	.testimonials_slider-section .testimonial_slider .testimonialSliderCard {
		position: relative;
		width: 100%;
		box-sizing: border-box;
		justify-content: flex-start !important;
		align-items: center !important;
		overflow: visible;
	}

	.testimonials_slider-section .testimonial_slider .testimonialSliderCard > .elementor-element-9d3c4c1 {
		width: 100%;
		max-width: 760px;
		flex: 1 1 auto;
	}

	/* Remove the normal flex column reserved for the image. Its absolute image
	 * now anchors to the testimonial card itself. */
	.testimonials_slider-section .testimonial_slider .testimonialSliderCard > .elementor-element-96a1803 {
		position: static !important;
		width: 0 !important;
		min-width: 0 !important;
		flex: 0 0 0 !important;
	}

	.testimonials_slider-section .testimonial_slider .testimonial_feature_image {
		position: absolute !important;
		top: clamp(-82px, -4vw, -55px) !important;
		left: auto !important;
		z-index: 2;
		width: clamp(360px, 31.5vw, 514px) !important;
		height: auto !important;
		margin: 0 !important;
	}

	.testimonials_slider-section .testimonial_slider .testimonial_feature_image,
	.testimonials_slider-section .testimonial_slider .testimonial_feature_image .elementor-widget-container,
	.testimonials_slider-section .testimonial_slider .testimonial_feature_image img {
		display: block;
		width: 100%;
		height: 100%;
	}

	.testimonials_slider-section .testimonial_slider .testimonial_feature_image img {
		object-fit: cover;
	}

	.testimonials_slider-section .testimonial_slider .elementor-widget-theme-post-content {
		max-width: 760px;
		margin: 0 0 72px;
	}

	.testimonials_slider-section .testimonial_slider .testimonial_title {
		padding-left: 20px;
	}

	.testimonials_slider-section .testimonial_slider .testimonial_title .elementor-heading-title {
		font-size: 30px;
		line-height: 1.2;
	}

	.testimonials_slider-section .testimonial_slider .swiper-pagination {
		display: none !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button {
		top: auto !important;
		bottom: 42px !important;
		z-index: 3;
		transform: none !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-prev {
		left: calc(50% - 154px) !important;
		right: auto !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-next {
		left: calc(50% - 18px) !important;
		right: auto !important;
	}
}

@media (max-width: 1023px) {
    .testimonialSliderCard .inner-container {
      position:relative;
      background:#ffffff;
      border: 1px solid #3E2C2329;
      padding-bottom: 200px;
    }
    
    .testimonial_feature_image {
      max-width: 90% !important;
      margin: -190px auto 0 !important;
    }
}

@media (min-width: 1024px) {
  .testimonialSliderCard {
      position:relative;
      background:#ffffff;
      border: 1px solid #3E2C2329;
    }
    .testimonialSliderCard .testimonial_feature_image {
      right: -50px;
    }
  }



@media (max-width: 767px) {
	.elementor-element-726c02a.slider-section {
		--service-slider-grid-gutter: 20px;
		padding-block: 56px 68px;
	}

	.elementor-element-2c638d6 {
		width: calc(100% - 20px) !important;
		margin-left: 20px;
		padding-bottom: 68px;
	}

	.elementor-element-2c638d6 .swiper-slide {
		width: calc(100vw - 54px) !important;
		margin-right: 14px !important;
	}

	.serviceSliderCard_featureImage {
		margin-bottom: 24px;
	}

	.serviceSliderCard_title {
		margin-bottom: 16px;
	}

	.serviceSliderCard_title .elementor-heading-title {
		font-size: 19px;
		gap: 14px;
	}

	.serviceSliderCard_excerpt {
		font-size: 17px;
	}

	.elementor-element-2c638d6 .swiper-pagination.swiper-pagination-progressbar {
		width: calc(100% - 174px) !important;
	}

	.elementor-element-2c638d6 .elementor-swiper-button {
		bottom: -5px !important;
	}

	.elementor-element-2c638d6 .elementor-swiper-button-prev {
		right: 222px !important;
	}
}

/* Team carousel desktop/tablet layout. This intentionally mirrors the
 * Services carousel, but is isolated to the Team section and team_slider. */
@media (min-width: 768px) {
  .elementor-element-371326d.slider-section,
	.elementor-element-97577f3.slider-section {
		--service-slider-colour: #3e2c23;
		--service-slider-grid-gutter: max(20px, calc((100vw - 1432px) / 2));
		--service-slider-gap: clamp(18px, 1.27vw, 26px);
		overflow: hidden;
		padding-block: clamp(70px, 5vw, 102px) clamp(82px, 5vw, 100px);
	}

  .overview_services_slider,
	.team_slider {
		position: relative;
		width: calc(100% - var(--service-slider-grid-gutter)) !important;
		margin-left: var(--service-slider-grid-gutter);
		padding-bottom: 100px;
	}

  .overview_services_slider .swiper-wrapper,
	.team_slider .swiper-wrapper {
		align-items: stretch;
	}

	.team_slider .swiper-slide {
		width: clamp(340px, 28.75vw, 536px) !important;
		width: min(536px, calc((100vw - var(--service-slider-grid-gutter) - (var(--service-slider-gap) * 2)) / 3.333333)) !important;
		height: auto;
	}

	.team_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: calc(100% - 370px) !important;
		height: 1px;
		background: color-mix(in srgb, var(--service-slider-colour) 42%, transparent);
	}

	.team_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
		background: var(--service-slider-colour) !important;
	}

	.team_slider .elementor-swiper-button {
		top: auto !important;
		bottom: -10px !important;
		z-index: 2;
		width: auto;
		height: 24px;
		margin: 0;
		transform: none !important;
	}

	.team_slider .elementor-swiper-button-prev {
		left: auto !important;
		right: 280px !important;
	}

	.team_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 120px !important;
	}

	.team_slider .elementor-swiper-button svg {
		display: block;
		height: 12px;
	}

	.team_slider .elementor-swiper-button-prev svg {
		width: 40px !important;
	}

	.team_slider .elementor-swiper-button-next svg {
		width: 140px !important;
	}
}

@media (min-width: 768px) and (max-width: 1440px) {
	.elementor-element-97577f3.slider-section {
		--service-slider-grid-gutter: max(20px, calc((100vw - 1172px) / 2));
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-element-97577f3.slider-section {
		--service-slider-grid-gutter: 20px;
		padding-block: 70px 82px;
	}

	.team_slider {
		padding-bottom: 82px;
	}

	.team_slider .swiper-slide {
		width: min(68vw, 430px) !important;
	}

	.team_slider .swiper-pagination.swiper-pagination-progressbar {
		width: calc(100% - 230px) !important;
	}

	.team_slider .elementor-swiper-button-prev {
		right: 222px !important;
	}
}

/* Testimonial navigation only. The slide/card composition above is left
 * untouched: this adds a separate navigation area below the Swiper. */
.testimonials_slider-section .testimonial_slider {
	position: relative;
	padding-bottom: 298px;
}

.testimonials_slider-section .testimonial_slider .swiper-pagination.swiper-pagination-progressbar {
	display: block !important;
	top: auto !important;
	right: auto !important;
	bottom: -50px !important;
	left: 0 !important;
	width: 100% !important;
	height: 1px;
	background: color-mix(in srgb, #3e2c23 42%, transparent);
}

.testimonials_slider-section .testimonial_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: #3e2c23 !important;
}

@media (min-width: 768px) {
	.testimonials_slider-section .testimonial_slider .elementor-swiper-button {
		top: auto !important;
		z-index: 2;
		width: auto;
		height: 24px;
		margin: 0;
		transform: none !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-prev {
		left: auto !important;
		right: 640px !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 480px !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button svg {
		display: block;
		height: 12px;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-prev svg {
		width: 40px !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-next svg {
		width: 140px !important;
	}
}

@media (max-width: 767px) {
	.testimonials_slider-section .testimonial_slider .elementor-swiper-button {
		top: auto !important;
		bottom: 0 !important;
		left: auto !important;
		height: 12px !important;
		margin: 0 !important;
		transform: none !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-prev {
		right: 65% !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button-next {
		right: 25% !important;
	}

	.testimonials_slider-section .testimonial_slider .elementor-swiper-button svg {
		display: block;
		height: 12px !important;
	}

.elementor-element .swiper ~ .elementor-swiper-button svg {
  width: 100% !important;
}
}

/* Services archive overview: reveal the excerpt without affecting the
 * homepage Services, Team, or Testimonial sliders. */
.overview_services_slider .osSliderCard {
	--overview-service-excerpt-space: 112px;
	position: relative;
}

.overview_services_slider .os_content_box {
	position: relative;
	transition: transform 350ms ease;
	will-change: transform;
	background:#fffbf9;
}

.overview_services_slider .osSliderCard_excerpt {
	max-height: 0;
	margin-top: 0 !important;
	overflow: hidden;
	opacity: 0;
	transform: translateY(24px);
	transition: max-height 350ms ease, margin 350ms ease, opacity 220ms ease, transform 350ms ease;
	will-change: max-height, opacity, transform;
}

@media (hover: hover) and (pointer: fine) {
	/* Reserve the reveal area from the first render. The excerpt can then open
	 * without changing the Swiper height or moving its navigation controls. */
	.overview_services_slider .os_content_box {
		box-sizing: border-box;
		min-height: var(--overview-service-excerpt-space);
	}

	.overview_services_slider .osSliderCard:is(:hover, :focus-within) .os_content_box {
		transform: translateY(calc(-1 * var(--overview-service-excerpt-space)));
	}

	.overview_services_slider .osSliderCard:is(:hover, :focus-within) .osSliderCard_excerpt {
		max-height: var(--overview-service-excerpt-space);
		margin-top: 12px !important;
		opacity: 1;
		transform: translateY(0);
	}
}

/* Touch devices have no hover state, so keep the excerpt available there. */
@media (hover: none) {
	.overview_services_slider .osSliderCard_excerpt {
		max-height: none;
		margin-top: 12px !important;
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.overview_services_slider .os_content_box,
	.overview_services_slider .osSliderCard_excerpt {
		transition: none;
	}
}

/* Services archive navigation: same placement and arrow treatment as the
 * Team slider, scoped to this overview carousel only. */
@media (min-width: 768px) {
	.overview_services_slider {
		--overview-services-slider-colour: #3e2c23;
		position: relative;
		padding-bottom: 100px;
	}

	.overview_services_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: 0 !important;
		width: calc(100% - 370px) !important;
		height: 1px;
		background: color-mix(in srgb, var(--overview-services-slider-colour) 42%, transparent);
	}

	.overview_services_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
		background: var(--overview-services-slider-colour) !important;
	}

	.overview_services_slider .elementor-swiper-button {
		top: auto !important;
		bottom: 88px !important;
		z-index: 2;
		width: auto;
		height: 24px;
		margin: 0;
		transform: none !important;
	}

	.overview_services_slider .elementor-swiper-button-prev {
		left: auto !important;
		right: 280px !important;
	}

	.overview_services_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 120px !important;
	}

	.overview_services_slider .elementor-swiper-button svg {
		display: block;
		height: 12px;
	}

	.overview_services_slider .elementor-swiper-button-prev svg {
		width: 40px !important;
	}

	.overview_services_slider .elementor-swiper-button-next svg {
		width: 140px !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.overview_services_slider .swiper-pagination.swiper-pagination-progressbar {
		width: calc(100% - 230px) !important;
	}

	.overview_services_slider .elementor-swiper-button-prev {
		right: 222px !important;
	}
}

@media (max-width: 767px) {
	.overview_services_slider {
		--overview-services-progress-width: min(201px, calc(100% - 119px));
		position: relative;
		padding-bottom: 48px;
	}

	.overview_services_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: var(--overview-services-progress-width) !important;
	}

	.overview_services_slider .elementor-swiper-button {
		top: auto !important;
		right: auto !important;
		bottom: -5px !important;
		width: 40px !important;
		height: 12px !important;
		margin: 0 !important;
		transform: none !important;
	}

	.overview_services_slider .elementor-swiper-button-prev {
		left: calc(var(--overview-services-progress-width) + 18px) !important;
	}

	.overview_services_slider .elementor-swiper-button-next {
		left: calc(var(--overview-services-progress-width) + 72px) !important;
	}

	.overview_services_slider .elementor-swiper-button svg {
		display: block;
		width: 40px !important;
		height: 12px !important;
	}

	.overview_services_slider .elementor-swiper-button-next svg {
		display: none !important;
	}

	.overview_services_slider .elementor-swiper-button-next::before {
		display: block;
		width: 40px;
		height: 12px;
		background: url('/FELGNER-FF/wp-content/uploads/2026/07/short-left-Arrow.svg') center / 40px 12px no-repeat;
		content: '';
		transform: rotate(180deg);
	}
}

.benefits-accordion-scroll {
	--benefits-scroll-thumb-height: 72px;
	--benefits-scroll-thumb-top: 0px;
	height: 300px;
	min-height: 0 !important;
	max-height: 300px;
	padding-right: 16px;
	overflow-x: hidden !important;
	overflow-y: scroll !important;
	overscroll-behavior-y: contain;
	background-image:
		linear-gradient(#B7A875, #B7A875),
		linear-gradient(#D0CAC9, #D0CAC9);
	background-repeat: no-repeat;
	background-position:
		left var(--benefits-scroll-thumb-top),
		left top;
	background-size:
		2px var(--benefits-scroll-thumb-height),
		1px 100%;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.benefits-accordion-scroll > .elementor-widget-n-accordion {
	flex: 0 0 auto !important;
	min-height: max-content;
}

.benefits-accordion-scroll::-webkit-scrollbar {
	width: 0;
	height: 0;
}

/* Team page member profile section. These overrides are intentionally scoped
 * to the new Team-only classes, leaving the Services accordion untouched. */
@media (min-width: 1025px) {
	.team-member-section .align-left-screen-box {
		width: 70% !important;
		max-width: 70% !important;
		flex: 0 0 70% !important;
	}

	/* The shared image/text pattern normally centres the sibling column. Team
	 * profiles need that column to stretch to the image height instead, so its
	 * title and career accordion can sit together at the bottom. */
	.team-member-section .align-left-screen-box + .e-con {
		align-self: stretch !important;
		justify-content: flex-end !important;
	}
}

.benefits-accordion-scroll.team-member-card {
	height: 476px;
	min-height: 0 !important;
	max-height: 476px;
	position: relative;
}

.benefits-accordion-scroll.team-member-card::after {
	/* A pseudo-element inside an overflow container scrolls away with its
	 * content. The visible fade is therefore drawn on the card's parent below. */
	display: none;
}

/* Our Story image carousel: normalize mixed source image ratios without
 * affecting any other Elementor Image Carousel on the site. */
body.page-id-9 .elementor-element-d2676d8 .swiper-slide-inner,
body.page-id-9 .elementor-element-d2676d8 .swiper-slide-inner img {
	display: block;
	width: 100%;
	height: 410px;
}

body.page-id-9 .elementor-element-d2676d8 .swiper-slide-inner img {
	object-fit: cover;
}

/* Wiki latest-news carousel. This mirrors the homepage Services carousel's
 * track and navigation, but remains isolated to the Wiki loop/card classes. */
.wiki_services_slider .wikiSliderCard_featureImage {
	display: block;
	width: 100%;
	aspect-ratio: 934 / 720;
	height: auto !important;
	overflow: hidden;
}

.wiki_services_slider .wikiSliderCard_featureImage .elementor-widget-container,
.wiki_services_slider .wikiSliderCard_featureImage img {
	width: 100%;
	height: 100%;
}

.wiki_services_slider .wikiSliderCard_featureImage img {
	display: block;
	object-fit: cover;
	transition: transform 360ms ease;
}

.wiki_services_slider .serviceSliderCard:hover .wikiSliderCard_featureImage img {
	transform: scale(1.025);
}

@media (min-width: 1025px) {
	.wiki_services_slider {
		--wiki-slider-colour: #3e2c23;
		--wiki-slider-grid-gutter: max(20px, calc((100vw - 1172px) / 2));
		--wiki-slider-gap: clamp(18px, 1.27vw, 26px);
		position: relative;
		width: calc(100% - var(--wiki-slider-grid-gutter)) !important;
		margin-left: var(--wiki-slider-grid-gutter);
		padding-bottom: 100px;
	}

	.wiki_services_slider .swiper-wrapper {
		align-items: stretch;
	}

	/* Honor Elementor's desktop setting of exactly three visible cards. */
	.wiki_services_slider .swiper-slide {
		width: calc((100% - (var(--swiper-slides-gap, 5px) * 2)) / 3) !important;
		height: auto;
	}

	.wiki_services_slider .wikiSliderCard_featureImage {
		margin: 0 0 38px;
	}

	.wiki_services_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: calc(100% - 370px) !important;
		height: 1px;
		background: color-mix(in srgb, var(--wiki-slider-colour) 42%, transparent);
	}

	.wiki_services_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
		background: var(--wiki-slider-colour) !important;
	}

	.wiki_services_slider .elementor-swiper-button {
		top: auto !important;
		bottom: -10px !important;
		z-index: 2;
		width: auto;
		height: 24px;
		margin: 0;
		transform: none !important;
	}

	.wiki_services_slider .elementor-swiper-button-prev {
		left: auto !important;
		right: 280px !important;
	}

	.wiki_services_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 120px !important;
	}

	.wiki_services_slider .elementor-swiper-button svg {
		display: block;
		height: 12px;
	}

	.wiki_services_slider .elementor-swiper-button-prev svg {
		width: 40px !important;
	}

	.wiki_services_slider .elementor-swiper-button-next svg {
		width: 140px !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.wiki_services_slider {
		--wiki-slider-colour: #3e2c23;
		position: relative;
		width: calc(100% + 20px) !important;
		padding-bottom: 82px;
	}

	.wiki_services_slider .swiper-slide {
		width: min(68vw, 430px) !important;
		height: auto;
	}

	.wiki_services_slider .wikiSliderCard_featureImage {
		margin-bottom: 28px;
	}

	.wiki_services_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: calc(100% - 230px) !important;
		height: 1px;
		background: color-mix(in srgb, var(--wiki-slider-colour) 42%, transparent);
	}

	.wiki_services_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
		background: var(--wiki-slider-colour) !important;
	}

	.wiki_services_slider .elementor-swiper-button {
		top: auto !important;
		bottom: -10px !important;
		z-index: 2;
		height: 24px;
		margin: 0;
		transform: none !important;
	}

	.wiki_services_slider .elementor-swiper-button-prev {
		left: auto !important;
		right: 222px !important;
	}

	.wiki_services_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 120px !important;
	}
}

@media (max-width: 767px) {
	/* The mobile Wiki design uses the same carousel rather than hiding it. */
	.wiki_services_slider.elementor-hidden-mobile {
		display: block !important;
	}

	.wiki_services_slider {
		--wiki-slider-colour: #3e2c23;
		/* Reserve room for the full 140px next arrow. */
		--wiki-slider-progress-width: min(183px, calc(100% - 192px));
		position: relative;
		width: calc(100% - 20px) !important;
		margin-left: 20px;
		padding-bottom: 48px;
	}

	.wiki_services_slider .swiper-slide {
		width: calc(100vw - 54px) !important;
		height: auto;
		margin-right: 14px !important;
	}

	.wiki_services_slider .wikiSliderCard_featureImage {
		margin-bottom: 24px;
	}

	.wiki_services_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: var(--wiki-slider-progress-width) !important;
		height: 1px;
		background: color-mix(in srgb, var(--wiki-slider-colour) 42%, transparent);
	}

	.wiki_services_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
		background: var(--wiki-slider-colour) !important;
	}

	.wiki_services_slider .elementor-swiper-button {
		top: auto !important;
		bottom: -5px !important;
		z-index: 2;
		height: 12px !important;
		margin: 0 !important;
		transform: none !important;
	}

	.wiki_services_slider .elementor-swiper-button-prev {
		left: calc(var(--wiki-slider-progress-width) + 7px) !important;
		width: 40px !important;
	}

	.wiki_services_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 0 !important;
		width: 140px !important;
	}

	.wiki_services_slider .elementor-swiper-button svg {
		display: block;
		height: 12px !important;
	}

	.wiki_services_slider .elementor-swiper-button-prev svg {
		width: 40px !important;
	}

	.wiki_services_slider .elementor-swiper-button-next svg {
		width: 140px !important;
	}
}

/* Dynamic A-Z category controls used by [felgner_wiki_topics]. */
.felgner-wiki-topics {
	--wiki-topic-colour: #3e2c23;
	--wiki-topic-accent: #bbad7b;
	width: 100%;
}

.felgner-wiki-topics__letters {
	display: grid;
	grid-template-columns: repeat(26, minmax(0, 1fr));
	align-items: center;
	gap: 8px;
	padding-bottom: 28px;
	border-bottom: 1px solid rgb(62 44 35 / 18%);
}

.felgner-wiki-topics__letter {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin: 0 auto;
	border-radius: 50%;
	color: #3e2c23;
	font-family: "Roboto", sans-serif;
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}

.felgner-wiki-topics__letter:not(.is-empty):is(:hover, :focus-visible),
.felgner-wiki-topics__letter.is-active {
	background: var(--wiki-topic-accent);
	color: var(--wiki-topic-colour);
}

.felgner-wiki-topics__letter:focus-visible,
.felgner-wiki-topics__topic:focus-visible {
	outline: 2px solid var(--wiki-topic-accent);
	outline-offset: 3px;
}

.felgner-wiki-topics__letter.is-empty {
	opacity: 0.52;
}

.felgner-wiki-topics__list {
	columns: 3;
	column-gap: clamp(36px, 8vw, 140px);
	padding-top: 26px;
}

.felgner-wiki-topics__topic {
	display: block;
	break-inside: avoid;
	margin-bottom: 12px;
	color: #3e2c23 !important;
	font-family: "AncizarSerif-VariableFont_wght", Sans-serif !important;
	font-size: 24px !important;
	font-weight: 300 !important;
	line-height: 1.2;
	text-decoration: none;
	text-transform: capitalize;
}

.felgner-wiki-topics__topic:is(:hover, :focus-visible),
.felgner-wiki-topics__topic.is-active {
	color: #bbad7b !important;
}

/* Keep every card title in the reusable Loop Carousels independent from
 * Elementor's global heading-tag typography. */
.services_slider .elementor-widget-theme-post-title .elementor-heading-title,
.team_slider .elementor-widget-theme-post-title .elementor-heading-title,
.overview_services_slider .elementor-widget-theme-post-title .elementor-heading-title,
.wiki_services_slider .elementor-widget-theme-post-title .elementor-heading-title,
.serviceSliderCard_title .elementor-heading-title,
.wikiSliderCard_title .elementor-heading-title,
.careers_slider .careers_slide_content > .elementor-widget-heading .elementor-heading-title,
.services_slider .elementor-widget-theme-post-title .elementor-heading-title a,
.team_slider .elementor-widget-theme-post-title .elementor-heading-title a,
.overview_services_slider .elementor-widget-theme-post-title .elementor-heading-title a,
.wiki_services_slider .elementor-widget-theme-post-title .elementor-heading-title a,
.serviceSliderCard_title .elementor-heading-title a,
.wikiSliderCard_title .elementor-heading-title a,
.careers_slider .careers_slide_content > .elementor-widget-heading .elementor-heading-title a {
	color: #3e2c23 !important;
	font-family: "AncizarSerif-VariableFont_wght", Sans-serif !important;
	font-size: 24px !important;
	font-weight: 300 !important;
	text-transform: capitalize;
}

@media (max-width: 767px) {
	.felgner-wiki-topics__letters {
		grid-template-columns: repeat(7, minmax(0, 1fr));
		gap: 8px 6px;
		padding-bottom: 22px;
	}

	.felgner-wiki-topics__letter {
		width: 27px;
		height: 27px;
	}

	.felgner-wiki-topics__list {
		columns: 1;
		padding-top: 20px;
	}

	.felgner-wiki-topics__topic {
		margin-bottom: 10px;
	}
}

/* The card is the final child in this Team profile column, so this parent
 * overlay sits at exactly the visible bottom of the card and never scrolls. */
@supports selector(.e-con:has(> .team-member-card)) {
	.team-member-section .e-con:has(> .team-member-card) {
		position: relative;
	}

	.team-member-section .e-con:has(> .team-member-card)::after {
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 2;
		display: block;
		width: 100%;
		height: 152px;
		pointer-events: none;
		content: "";
		background: linear-gradient(
			to bottom,
			rgb(255 251 249 / 0%) 0%,
			#fffbf9 100%
		);
	}
}

/* Services page phone button icon. */
.btn-box-horizontal .elementor-element-e246b67 .elementor-button-icon svg path {
	stroke: #3E2C23 !important;
}

/* Career page manual carousel. Kept completely separate from the dynamic
 * Services overview carousel and every other slider. */
.careers_slider .careers_slide_card {
	--careers-slide-content-space: 112px;
	position: relative;
}

.careers_slider .careers_slide_content {
	position: relative;
	transition: transform 350ms ease;
	will-change: transform;
}

.careers_slider .careers_slide_content .careers_slide_content_text,
.careers_slider .careers_slide_content > .elementor-widget-text-editor {
	max-height: 0;
	margin-top: 0 !important;
	overflow: hidden;
	opacity: 0;
	transform: translateY(24px);
	transition: max-height 350ms ease, margin 350ms ease, opacity 220ms ease, transform 350ms ease;
	will-change: max-height, opacity, transform;
}

@media (hover: hover) and (pointer: fine) {
	.careers_slider .careers_slide_content {
		box-sizing: border-box;
		min-height: var(--careers-slide-content-space);
	}

	.careers_slider .careers_slide_card:is(:hover, :focus-within) .careers_slide_content {
		transform: translateY(calc(-1 * var(--careers-slide-content-space)));
	}

	.careers_slider .careers_slide_card:is(:hover, :focus-within) .careers_slide_content .careers_slide_content_text,
	.careers_slider .careers_slide_card:is(:hover, :focus-within) .careers_slide_content > .elementor-widget-text-editor {
		max-height: var(--careers-slide-content-space);
		margin-top: 12px !important;
		opacity: 1;
		transform: translateY(0);
	}
}

@media (hover: none) {
	.careers_slider .careers_slide_content .careers_slide_content_text,
	.careers_slider .careers_slide_content > .elementor-widget-text-editor {
		max-height: none;
		margin-top: 12px !important;
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.careers_slider .careers_slide_content,
	.careers_slider .careers_slide_content .careers_slide_content_text,
	.careers_slider .careers_slide_content > .elementor-widget-text-editor {
		transition: none;
	}
}

/* Match the Services overview slider navigation. */
@media (min-width: 768px) {
	.careers_slider {
		--careers-slider-colour: #3E2C23;
		/* Match the Services/Team left gutter while honoring Elementor's
		 * desktop setting of exactly three visible cards. */
		--careers-slider-grid-gutter: max(20px, calc((100vw - 1182px) / 2));
		--careers-slider-gap: clamp(18px, 1.27vw, 26px);
		position: relative;
		width: calc(100% - var(--careers-slider-grid-gutter)) !important;
		margin-left: var(--careers-slider-grid-gutter);
		padding-bottom: 100px;
	}

	.careers_slider .swiper-wrapper {
		align-items: stretch;
	}

	.careers_slider .swiper-slide {
		width: calc((100% - (var(--swiper-slides-gap, 5px) * 2)) / 3) !important;
		height: auto;
	}

	.careers_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: calc(100% - 370px) !important;
		height: 1px;
		background: color-mix(in srgb, var(--careers-slider-colour) 42%, transparent);
	}

	.careers_slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
		background: var(--careers-slider-colour) !important;
	}

	.careers_slider .elementor-swiper-button {
		top: auto !important;
		bottom: -10px !important;
		z-index: 2;
		width: auto;
		height: 24px;
		margin: 0;
		transform: none !important;
	}

	.careers_slider .elementor-swiper-button-prev {
		left: auto !important;
		right: 280px !important;
	}

	.careers_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 120px !important;
	}

	.careers_slider .elementor-swiper-button svg {
		display: block;
		height: 12px;
	}

	.careers_slider .elementor-swiper-button-prev svg {
		width: 40px !important;
	}

	.careers_slider .elementor-swiper-button-next svg {
		width: 140px !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.careers_slider {
		--careers-slider-grid-gutter: 20px;
	}

	.careers_slider .swiper-slide {
		width: min(68vw, 430px) !important;
	}

	.careers_slider .swiper-pagination.swiper-pagination-progressbar {
		width: calc(100% - 230px) !important;
	}

	.careers_slider .elementor-swiper-button-prev {
		right: 222px !important;
	}
}

@media (max-width: 767px) {
	.careers_slider {
		/* The Career carousel retains the 140px desktop next arrow on mobile,
		 * so its progress line reserves room for that wider control. */
		--careers-slider-progress-width: min(183px, calc(100% - 192px));
		position: relative;
		padding-bottom: 48px;
	}

	.careers_slider .swiper-pagination.swiper-pagination-progressbar {
		top: auto !important;
		right: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		width: var(--careers-slider-progress-width) !important;
	}

	.careers_slider .elementor-swiper-button {
		top: auto !important;
		right: auto !important;
		bottom: -5px !important;
		width: 40px !important;
		height: 12px !important;
		margin: 0 !important;
		transform: none !important;
	}

	.careers_slider .elementor-swiper-button-prev {
		left: calc(var(--careers-slider-progress-width) + 7px) !important;
	}

	.careers_slider .elementor-swiper-button-next {
		left: auto !important;
		right: 0 !important;
		width: 140px !important;
	}

	.careers_slider .elementor-swiper-button svg {
		display: block;
		width: 40px !important;
		height: 12px !important;
	}

	.careers_slider .elementor-swiper-button-next svg {
		display: block !important;
		width: 140px !important;
	}

	.careers_slider .elementor-swiper-button-next::before {
		display: none !important;
	}
}

.faq-tabs-section .tabs-container .e-n-tabs-heading button {
  padding: 0;
  cursor:pointer;
}

/* Remove the bottom border from every accordion title first. */
.faq-tabs-section .tabs-container
.elementor-widget-n-accordion > .e-n-accordion
> .e-n-accordion-item
> .e-n-accordion-item-title {
  border-bottom: 0 !important;
}

/* Add it back only to the final direct item of each accordion. */
.faq-tabs-section .tabs-container
.elementor-widget-n-accordion > .e-n-accordion
> .e-n-accordion-item:last-child
> .e-n-accordion-item-title {
  border-bottom: 1px solid #3E2C2352 !important;
}

/* Single Wiki article videos. */
@media (min-width: 769px) {
	.video-highlights-container .elementor-widget-video .elementor-wrapper {
		min-height: 646px;
		padding-bottom: 0 !important;
	}

	.single_wiki_post_video .elementor-widget-video .elementor-wrapper {
		min-height: 426px;
	}

	.video-highlights-container .elementor-widget-video iframe,
	.video-highlights-container .elementor-widget-video video {
		width: 100%;
		height: 100% !important;
		min-height: inherit;
	}
}

/* Dynamic article navigation, populated from headings in .dynamic-right-column. */
@media (min-width: 769px) {
	.article-section .sticky-left-column {
		position: sticky;
		top: 200px;
		align-self: flex-start;
	}
}

.article-section .wiki_dynamic_title .elementor-widget-container {
	display: grid;
	gap: 12px;
}

.article-section .wiki_dynamic_title__item {
	display: block;
	color: #3e2c23 !important;
	font-family: "AncizarSerif-VariableFont_wght", Sans-serif !important;
	font-size: 24px !important;
	font-weight: 300 !important;
	text-decoration: none;
	text-transform: capitalize;
	transition: color 180ms ease;
}

.article-section .wiki_dynamic_title__item:is(:hover, :focus-visible),
.article-section .wiki_dynamic_title__item.is-active {
	color: #bbad7b !important;
}

.article-section .dynamic-right-column :is(h1, h2, h3, h4, h5, h6) {
	scroll-margin-top: 150px;
}

.author-box-social-icons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 220ms ease, opacity 220ms ease;
	will-change: transform;
}

.author-box-social-icons a:is(:hover, :focus-visible) {
	opacity: 0.9;
	transform: translateY(-2px) scale(1.12);
}

@media (prefers-reduced-motion: reduce) {
	.author-box-social-icons a {
		transition: none;
	}
}

/* Media page image carousel. */
.image-carousel-custom .swiper-slide-image,
.image-carousel-custom .swiper-slide img {
	display: block;
	width: 100%;
	height: 563px;
	object-fit: cover;
}

@media (max-width: 768px) {
	.image-carousel-custom .swiper-slide-image,
	.image-carousel-custom .swiper-slide img {
		height: 415px;
	}
}

/* Compact shared header behaviour. The mobile logo and toggle live in
 * separate Elementor containers, so they are deliberately positioned on the
 * same fixed row rather than relying on their individual container heights. */
@media (max-width: 1024px) {
	.mobile-menu {
		--mobile-menu-header-height: 76px;
		display: flex !important;
		height: 76px !important;
		min-height: 76px !important;
		transition: height 220ms ease, background-color 220ms ease;
	}

	.mobile-menu > .e-con-inner,
	.mobile-menu .mobile-menu__top {
		display: flex !important;
		align-items: center !important;
		width: 100% !important;
		height: 76px !important;
		min-height: 76px !important;
		padding: 0 20px !important;
	}

	.mobile-menu .mobile-menu__scroll {
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 76px !important;
		min-height: 0 !important;
	}

	.mobile-menu .elementor-widget-theme-site-logo {
		top: 19px !important;
		left: 20px !important;
		margin: 0 !important;
		line-height: 0;
	}

	.mobile-menu .elementor-widget-theme-site-logo img {
		width: 156px !important;
		max-width: calc(100vw - 100px) !important;
	}

	.mobile-menu .elementor-menu-toggle {
		position: fixed !important;
		top: 18px !important;
		right: 20px !important;
		z-index: 1000002 !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 40px !important;
		height: 40px !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1;
	}

	.mobile-menu .elementor-menu-toggle svg {
		width: 24px;
		height: 24px;
	}

	.mobile-menu .elementor-nav-menu__container.elementor-nav-menu--dropdown {
		padding-top: 92px;
	}

	.mobile-menu.is-open {
		height: 100dvh !important;
		background: #3d3b38 !important;
	}

	.mobile-menu.is-open .elementor-nav-menu__container.elementor-nav-menu--dropdown {
		top: var(--mobile-menu-header-height) !important;
		height: calc(100dvh - var(--mobile-menu-header-height)) !important;
		padding-top: 16px;
	}
}

@media (max-width: 767px) {
	.mobile-menu,
	.mobile-menu > .e-con-inner,
	.mobile-menu .mobile-menu__top {
		--mobile-menu-header-height: 68px;
		height: 68px !important;
		min-height: 68px !important;
	}

	.mobile-menu .mobile-menu__scroll {
		height: 68px !important;
	}

	.mobile-menu .elementor-widget-theme-site-logo {
		top: 17px !important;
	}

	.mobile-menu .elementor-widget-theme-site-logo img {
		width: 148px !important;
	}

	.mobile-menu .elementor-menu-toggle {
		top: 14px !important;
	}

	.mobile-menu .elementor-nav-menu__container.elementor-nav-menu--dropdown {
		padding-top: 84px;
	}
}

@media (min-width: 1025px) {
	.elementor-element-a1654e0,
	.elementor-element-a1654e0 > .e-con-inner {
		transition: min-height 220ms ease, padding 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
	}

	.elementor-element-a1654e0.felgner-header-scrolled,
	.elementor-element-a1654e0.felgner-header-scrolled > .e-con-inner {
		min-height: 76px !important;
	}

	.elementor-element-a1654e0.felgner-header-scrolled > .e-con-inner {
		padding-block: 10px !important;
	}

	.elementor-element-a1654e0.felgner-header-scrolled .elementor-widget-theme-site-logo img {
		width: 170px !important;
		transition: width 220ms ease;
	}
}

.elementor-author-box__bio, .elementor-author-box__bio p,
.elementor-author-box__name {
  margin: 0;
}
