/* FGC Customizer CSS (generated copy of Appearance > Customize > Additional CSS; do not edit) */
/* FGC global overrides (Blocksy Customizer CSS)
   Visual system: FGC Spectrum (approved 7 October 2026).
   Font: Nunito (variable, 200-1000), self-hosted in /uploads/fgc-fonts/ (SIL OFL 1.1).
   Colours: FGC Spectrum only. No gradients (the Lens stripe is four solid blocks).
   Ink #151A30, Slate #4A5068, Coral #CF3836, Sun #FFBE1A, Teal #0A7A6F,
   Blue #2152C8, Plum #7B3FBF, Cream #FFF8EC, Mist #EEF1F7, White #FFFFFF, Line #DCDCE6.
   Rules: Sun is a background or decoration only, always with Ink text.
   Coral, Teal, Blue and Plum carry White text. Line is for borders only. */
@font-face {
	font-family: "Nunito";
	font-style: normal;
	font-weight: 200 1000;
	font-display: swap;
	src: url("/wp-content/uploads/fgc-fonts/nunito-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Nunito";
	font-style: normal;
	font-weight: 200 1000;
	font-display: swap;
	src: url("/wp-content/uploads/fgc-fonts/nunito-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* The one place colour values are written. Everything else uses these variables. */
:root {
	--fgc-font: "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--theme-font-family: var(--fgc-font);

	--fgc-ink: #151A30;
	--fgc-slate: #4A5068;
	--fgc-coral: #CF3836;
	--fgc-sun: #FFBE1A;
	--fgc-teal: #0A7A6F;
	--fgc-blue: #2152C8;
	--fgc-plum: #7B3FBF;
	--fgc-cream: #FFF8EC;
	--fgc-mist: #EEF1F7;
	--fgc-white: #FFFFFF;
	--fgc-line: #DCDCE6;

	/* FGC Lens signature: Understand Coral, Assess Sun, Prepare Teal, Act Blue.
	   Four solid blocks with small gaps; no colour blending. */
	--fgc-lens: linear-gradient(90deg,
		var(--fgc-coral) 0 calc(25% - 2px), transparent 0 25%,
		var(--fgc-sun) 0 calc(50% - 2px), transparent 0 50%,
		var(--fgc-teal) 0 calc(75% - 2px), transparent 0 75%,
		var(--fgc-blue) 0 100%);

	--fgc-radius: 16px;
	--fgc-radius-lg: 20px;
	--fgc-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--fgc-shadow: 0 10px 28px -14px rgba(21, 26, 48, 0.28);

	/* Blocksy buttons and form fields */
	--theme-button-background-initial-color: var(--fgc-coral);
	--theme-button-background-hover-color: var(--fgc-ink);
	--theme-button-text-initial-color: var(--fgc-white);
	--theme-button-text-hover-color: var(--fgc-white);
	--theme-form-field-border-initial-color: var(--fgc-slate);
	--theme-form-field-border-focus-color: var(--fgc-blue);
}

/* Visible keyboard focus: Blue on light backgrounds, Sun on dark ones */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--fgc-blue);
	outline-offset: 2px;
}
.fgc-dark :focus-visible,
.ct-footer [data-row*="middle"] :focus-visible,
.ct-footer [data-row*="bottom"] :focus-visible,
.fgc-topbar :focus-visible,
.cookie-notification :focus-visible {
	outline-color: var(--fgc-sun);
}

/* Respect visitors who ask their device for reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.elementor-invisible {
		visibility: visible !important;
	}
}

/* =========================================================
   TYPOGRAPHY (Nunito)
   H1/H2 800, H3/H4 700, body 400, strong 700
   ========================================================= */
body {
	font-family: var(--fgc-font);
	color: var(--fgc-ink);
}
h1, h2, h3, h4, h5, h6,
.h1, .h2,
.elementor-heading-title {
	font-family: var(--fgc-font);
}
h1, h2, .h1, .h2 {
	font-weight: 800;
	letter-spacing: -0.01em;
}
h3, h4 {
	font-weight: 700;
}
strong, b {
	font-weight: 700;
}
::selection {
	background: var(--fgc-sun);
	color: var(--fgc-ink);
}

/* =========================================================
   HEADER (Blocksy header builder)
   Ink top bar, white main row, Lens stripe, Coral button.
   ========================================================= */
.fgc-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--fgc-white);
}
.fgc-topbar__place {
	letter-spacing: 0.02em;
}
.fgc-topbar__place::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 10px;
	border-radius: 50%;
	vertical-align: 1px;
	background: var(--fgc-sun);
}
.fgc-topbar__contact {
	display: flex;
	gap: 20px;
}
.fgc-topbar a {
	color: var(--fgc-white);
	text-decoration: none;
}
.fgc-topbar a:hover {
	color: var(--fgc-sun);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ct-header .ct-header-text .entry-content > * {
	margin: 0;
}

/* Wordmark next to the logo (the logo image itself is unchanged) */
.ct-header .site-branding {
	gap: 6px;
}
.ct-header .site-title {
	font-family: var(--fgc-font);
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.005em;
	line-height: 1.2;
}
.ct-header .site-title a {
	color: var(--fgc-ink);
}

/* Main row: white, thin Lens stripe along the bottom edge */
.ct-header [data-row*="middle"] {
	position: relative;
	border-bottom: 0;
}
.ct-header [data-row*="middle"]::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--fgc-lens);
	pointer-events: none;
}

/* Menu: Ink, 600. Underline grows on hover in the item's Lens colour. */
.ct-header .header-menu-1 > ul > li { --nav: var(--fgc-coral); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+2) { --nav: var(--fgc-sun); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+3) { --nav: var(--fgc-teal); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+4) { --nav: var(--fgc-blue); }
.ct-header .header-menu-1 > ul > li > .ct-menu-link {
	position: relative;
	font-size: 16px;
	font-weight: 600;
	color: var(--fgc-ink);
	text-decoration: none;
}
.ct-header .header-menu-1 > ul > li > .ct-menu-link::after {
	content: "";
	position: absolute;
	left: var(--menu-item-padding, 0px);
	right: var(--menu-item-padding, 0px);
	bottom: calc(50% - 1em);
	height: 3px;
	border-radius: 3px;
	background: var(--nav);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.25s var(--fgc-ease);
}
.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover,
.ct-header .header-menu-1 > ul > li > .ct-menu-link:focus-visible,
.ct-header .header-menu-1 > ul > li.current-menu-item > .ct-menu-link,
.ct-header .header-menu-1 > ul > li.current-menu-ancestor > .ct-menu-link,
.ct-header .header-menu-1 > ul > li.current_page_parent > .ct-menu-link {
	color: var(--fgc-ink);
}
.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover::after,
.ct-header .header-menu-1 > ul > li > .ct-menu-link:focus-visible::after,
.ct-header .header-menu-1 > ul > li:focus-within > .ct-menu-link::after,
.ct-header .header-menu-1 > ul > li.current-menu-item > .ct-menu-link::after,
.ct-header .header-menu-1 > ul > li.current-menu-ancestor > .ct-menu-link::after,
.ct-header .header-menu-1 > ul > li.current_page_parent > .ct-menu-link::after {
	transform: scaleX(1);
}

/* Dropdowns: white panel, Line border, soft shadow, Mist hover */
.ct-header .header-menu-1 .sub-menu {
	padding: 8px;
	border: 1px solid var(--fgc-line);
	border-radius: var(--fgc-radius);
	background: var(--fgc-white);
	box-shadow: var(--fgc-shadow);
}
.ct-header .header-menu-1 .sub-menu .ct-menu-link {
	color: var(--fgc-ink);
	font-size: 15px;
	font-weight: 600;
	padding-top: 9px;
	padding-bottom: 9px;
	border-radius: 10px;
	transition: background-color 0.2s ease;
}
.ct-header .header-menu-1 .sub-menu .ct-menu-link:hover,
.ct-header .header-menu-1 .sub-menu .ct-menu-link:focus-visible {
	color: var(--fgc-ink);
	background: var(--fgc-mist);
}
@media (prefers-reduced-motion: no-preference) {
	.ct-header .header-menu-1 .sub-menu {
		transition-timing-function: var(--fgc-ease);
	}
}

/* Service colours (menus, cards, heroes). One colour per service.
   --svc fill, --svc-on content on the fill. */
.svc { --svc: var(--fgc-ink); --svc-on: var(--fgc-white); }
.svc-immigration { --svc: var(--fgc-blue); }
.svc-career { --svc: var(--fgc-coral); }
.svc-education { --svc: var(--fgc-sun); --svc-on: var(--fgc-ink); }
.svc-business { --svc: var(--fgc-plum); }
.svc-relocation { --svc: var(--fgc-teal); }
.svc-consultation { --svc: var(--fgc-ink); --svc-on: var(--fgc-sun); }
.svc-digital { --svc: var(--fgc-ink); --svc-on: var(--fgc-white); --svc-bar: var(--fgc-lens); }
.svc > .ct-menu-link::before {
	content: "";
	flex: 0 0 10px;
	width: 10px;
	height: 10px;
	margin-right: 12px;
	border-radius: 50%;
	background: var(--svc);
}
/* Consultation & Documentation: Ink dot with a Sun centre */
.svc-consultation > .ct-menu-link::before {
	box-shadow: inset 0 0 0 3px var(--fgc-ink);
	background: var(--fgc-sun);
}
/* Digital & Marketing: four-colour dot (four solid quarters) */
.svc-digital > .ct-menu-link::before {
	background: conic-gradient(var(--fgc-coral) 0 25%, var(--fgc-sun) 0 50%, var(--fgc-teal) 0 75%, var(--fgc-blue) 0 100%);
}
.ct-header .sub-menu .svc-separated {
	margin-top: 6px;
	padding-top: 6px;
	border-top: 1px solid var(--fgc-line);
}
.ct-header .sub-menu .svc-all > .ct-menu-link {
	font-weight: 700;
	color: var(--fgc-blue);
}

/* Header button: Book Consultation in Coral with White text (4.9:1), Ink on hover */
.ct-header [data-id="button"] .ct-button {
	font-size: 15px;
	font-weight: 700;
	min-height: 44px;
	padding: 0 22px;
	border-radius: 999px;
	--theme-button-background-initial-color: var(--fgc-coral);
	--theme-button-background-hover-color: var(--fgc-ink);
	--theme-button-text-initial-color: var(--fgc-white);
	--theme-button-text-hover-color: var(--fgc-white);
	background-color: var(--fgc-coral);
	color: var(--fgc-white);
	transition: background-color 0.2s ease, transform 0.2s var(--fgc-ease);
}
.ct-header [data-id="button"] .ct-button:hover,
.ct-header [data-id="button"] .ct-button:focus-visible {
	background-color: var(--fgc-ink);
	color: var(--fgc-white);
}
@media (max-width: 999.98px) {
	.ct-header [data-id="button"] .ct-button {
		font-size: 14px;
		min-height: 40px;
		padding: 0 16px;
	}
}
@media (max-width: 380px) {
	.ct-header [data-id="button"] .ct-button {
		font-size: 13px;
		padding: 0 12px;
	}
}

/* Sticky header (CSS only, no layout jump). Desktop: the 64px top bar scrolls away, the main row stays. */
@media (min-width: 1000px) {
	#header {
		position: sticky;
		top: calc(var(--admin-bar, 0px) - 64px); /* matches the 64px top bar (13 Oct 2026) */
		z-index: 50;
	}
	html {
		scroll-padding-top: calc(var(--admin-bar, 0px) + 88px);
	}
}
@media (max-width: 999.98px) {
	#header {
		position: sticky;
		top: var(--admin-bar, 0px);
		z-index: 50;
	}
	html {
		scroll-padding-top: calc(var(--admin-bar, 0px) + 80px);
	}
}

/* =========================================================
   MOBILE MENU (Blocksy off-canvas panel): white panel,
   Lens stripe on top, service dots, large tap targets
   ========================================================= */
#offcanvas .ct-panel-inner {
	background: var(--fgc-white);
	border-top: 0;
	position: relative;
}
#offcanvas .ct-panel-inner::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--fgc-lens);
}
#offcanvas .ct-toggle-close {
	--theme-icon-color: var(--fgc-ink);
	--theme-icon-hover-color: var(--fgc-coral);
	min-width: 44px;
	min-height: 44px;
	border-radius: 50%;
	background: var(--fgc-mist);
}
#offcanvas .mobile-menu .ct-menu-link {
	min-height: 48px;
	color: var(--fgc-ink);
	font-size: 18px;
	font-weight: 700;
}
#offcanvas .mobile-menu .sub-menu .ct-menu-link {
	min-height: 44px;
	color: var(--fgc-ink);
	font-size: 16px;
	font-weight: 600;
}
#offcanvas .mobile-menu .ct-menu-link:hover,
#offcanvas .mobile-menu .current-menu-item > .ct-menu-link,
#offcanvas .mobile-menu .current-menu-item > .ct-sub-menu-parent > .ct-menu-link {
	color: var(--fgc-blue);
}
#offcanvas .ct-toggle-dropdown-mobile {
	--theme-icon-color: var(--fgc-ink);
	min-width: 44px;
	min-height: 44px;
}
#offcanvas .mobile-menu > ul > li {
	border-bottom: 1px solid var(--fgc-line);
}
#offcanvas .svc-consultation { --svc: var(--fgc-ink); }
@media (prefers-reduced-motion: no-preference) {
	#offcanvas.active .mobile-menu > ul > li {
		animation: fgc-menu-in 0.35s var(--fgc-ease) both;
	}
	#offcanvas.active .mobile-menu > ul > li:nth-child(2) { animation-delay: 0.04s; }
	#offcanvas.active .mobile-menu > ul > li:nth-child(3) { animation-delay: 0.08s; }
	#offcanvas.active .mobile-menu > ul > li:nth-child(4) { animation-delay: 0.12s; }
	#offcanvas.active .mobile-menu > ul > li:nth-child(n+5) { animation-delay: 0.16s; }
	@keyframes fgc-menu-in {
		from { opacity: 0; transform: translateX(16px); }
		to { opacity: 1; transform: none; }
	}
}

/* Contact block inside the mobile panel */
#offcanvas .fgc-topbar {
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	margin-top: 24px;
	padding: 20px;
	border-radius: var(--fgc-radius);
	background: var(--fgc-cream);
	color: var(--fgc-ink);
	font-size: 15px;
}
#offcanvas .fgc-topbar__contact {
	flex-direction: column;
	gap: 10px;
}
#offcanvas .fgc-topbar a {
	color: var(--fgc-blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}
#offcanvas .fgc-topbar a:hover {
	color: var(--fgc-ink);
}
#offcanvas .fgc-topbar__place::before {
	background: var(--fgc-coral);
}

/* Mobile menu button: 44x44 tap area without moving the icon */
.ct-header [data-id="trigger"].ct-header-trigger,
.ct-header button.ct-header-trigger {
	min-width: 44px;
	min-height: 44px;
	margin-right: -11px;
	justify-content: center;
	--theme-icon-color: var(--fgc-ink);
	--theme-icon-hover-color: var(--fgc-coral);
}

/* =========================================================
   FOOTER (Blocksy footer builder + widgets)
   Cream community strip, Lens stripe, Ink main footer and legal bar.
   ========================================================= */
.ct-footer [data-row*="top"] {
	position: relative;
	border-top: 0;
}
.ct-footer [data-row*="top"]::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--fgc-lens);
}
.fgc-hub-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 40px;
}
.fgc-hub-strip__text {
	flex: 1 1 420px;
	max-width: 680px;
}
.fgc-hub-strip__text p {
	margin: 0;
	color: var(--fgc-ink);
}
.fgc-hub-strip__label {
	margin-bottom: 6px !important;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fgc-plum) !important;
}
.fgc-hub-strip__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}
.fgc-hub-btn {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 20px;
	border: 2px solid var(--fgc-plum);
	border-radius: 999px;
	color: var(--fgc-plum);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.fgc-hub-btn:hover,
.fgc-hub-btn:focus-visible {
	background: var(--fgc-plum);
	color: var(--fgc-white);
}
.fgc-hub-link {
	color: var(--fgc-ink);
	font-size: 15px;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--fgc-plum);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
.fgc-hub-link:hover {
	color: var(--fgc-plum);
}

/* Main footer (Ink) */
.ct-footer [data-row*="middle"] {
	color: var(--fgc-white);
	font-size: 15.5px;
}
.ct-footer [data-row*="middle"] a {
	color: var(--fgc-white);
	text-decoration: none;
	transition: color 0.2s ease;
}
.ct-footer [data-row*="middle"] a:hover,
.ct-footer [data-row*="middle"] a:focus-visible {
	color: var(--fgc-sun);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ct-footer .widget-title {
	margin-bottom: 16px;
	font-family: var(--fgc-font) !important;
	font-size: 13px !important;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fgc-sun) !important;
}
.ct-footer .widget_nav_menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ct-footer .widget_nav_menu li {
	margin: 0 0 10px;
}
.fgc-footer-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
	color: var(--fgc-white);
	font-size: 18px;
	font-weight: 800;
}
.fgc-footer-brand img {
	width: 48px;
	height: 48px;
	padding: 4px;
	border-radius: 12px;
	background: var(--fgc-white);
}
.fgc-footer-about {
	max-width: 380px;
	margin: 0 0 12px;
}
.fgc-footer-place {
	margin: 0 0 16px;
	color: var(--fgc-sun);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.fgc-footer-contact {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}
.fgc-footer-contact li {
	margin-bottom: 6px;
}

/* Social icons: white tiles with the networks' own glyph colours.
   Brand colours are used only inside these icons. */
.ct-footer [data-id="socials"] .ct-social-box {
	gap: 12px;
	--theme-icon-size: 18px;
}
.ct-footer [data-id="socials"] .ct-social-box a {
	--fgc-brand: var(--fgc-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: 50%;
	background: var(--fgc-white);
	transition: transform 0.2s var(--fgc-ease), box-shadow 0.2s ease;
}
.ct-footer [data-id="socials"] .ct-social-box a svg,
.ct-footer [data-id="socials"] .ct-social-box a:hover svg {
	fill: var(--fgc-brand);
}
.ct-footer [data-id="socials"] [data-network="facebook"] { --fgc-brand: #0866FF; }
.ct-footer [data-id="socials"] [data-network="youtube"] { --fgc-brand: #FF0000; }
.ct-footer [data-id="socials"] [data-network="whatsapp"] { --fgc-brand: #25D366; }
.ct-footer [data-id="socials"] [data-network="instagram"],
.ct-footer [data-id="socials"] [data-network="tiktok"] { --fgc-brand: #000000; }
.ct-footer [data-id="socials"] .ct-social-box a:hover,
.ct-footer [data-id="socials"] .ct-social-box a:focus-visible {
	box-shadow: 0 0 0 3px var(--fgc-sun);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.ct-footer [data-id="socials"] .ct-social-box a:hover {
		transform: translateY(-3px);
	}
}

/* Legal bar (Ink, separated by a fine line) */
.ct-footer [data-row*="bottom"] > .ct-container {
	border-top: 1px solid var(--fgc-slate);
}
.ct-footer [data-row*="bottom"],
.ct-footer [data-row*="bottom"] a {
	color: var(--fgc-white);
	font-size: 14px;
}
.ct-footer [data-row*="bottom"] a:hover,
.ct-footer [data-row*="bottom"] a:focus-visible {
	color: var(--fgc-sun);
	text-decoration: underline;
}
.ct-footer [data-row*="bottom"] p {
	margin: 0;
}
.ct-footer [data-row*="bottom"] .current-menu-item > a {
	color: var(--fgc-sun);
}
.ct-header .header-menu-1 .ct-menu-link {
	text-transform: none;
	letter-spacing: 0;
}
.ct-footer [data-row*="middle"] p,
.ct-footer [data-row*="middle"] li {
	color: var(--fgc-white);
}
.ct-footer [data-row*="middle"] .fgc-footer-place {
	color: var(--fgc-sun);
}
.ct-footer [data-id="menu"] a {
	text-transform: none;
	letter-spacing: 0;
}
.ct-footer [data-row*="middle"] [data-id="socials"] {
	margin-top: 12px;
}

/* Narrow desktops (1000-1199px): keep every menu item visible */
@media (min-width: 1000px) and (max-width: 1199.98px) {
	.ct-header [data-device="desktop"] .site-title-container {
		display: none;
	}
	.ct-header .header-menu-1 {
		--menu-items-spacing: 14px;
	}
	.ct-header .header-menu-1 > ul > li > .ct-menu-link {
		font-size: 15px;
	}
}

/* =========================================================
   COMPONENTS. Applied with Elementor "CSS Classes".
   Colour variables are defined once at the top of this CSS.
   FGC Spectrum roles:
     Coral  main action (buttons), eyebrows, Career
     Sun    highlights and badges (Ink text only), Education
     Teal   positive points and checklists, Relocation
     Blue   links, focus, official information, Immigration
     Plum   community, Business
     Ink    text and dark sections; Slate secondary text
     White, Cream, Mist  breathing space
   Guide: project doc fgc-website-build-log.md
   ========================================================= */

/* Text roles */
.fgc-eyebrow .elementor-heading-title {
	font-family: var(--fgc-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fgc-coral);
}
.fgc-eyebrow--dot .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 9px;
	height: 9px;
	margin-right: 10px;
	border-radius: 50%;
	vertical-align: 1px;
	background: var(--svc, var(--fgc-coral));
}
.svc-consultation .fgc-eyebrow--dot .elementor-heading-title::before {
	background: var(--fgc-sun);
	box-shadow: inset 0 0 0 3px var(--fgc-ink);
}
.svc-digital .fgc-eyebrow--dot .elementor-heading-title::before {
	background: conic-gradient(var(--fgc-coral) 0 25%, var(--fgc-sun) 0 50%, var(--fgc-teal) 0 75%, var(--fgc-blue) 0 100%);
}
.fgc-lead,
.fgc-lead p {
	max-width: 62ch;
	font-size: 21px;
	line-height: 1.55;
	color: var(--fgc-ink);
}
.fgc-lead p:last-child,
.fgc-muted p:last-child { margin-bottom: 0; }
.fgc-muted,
.fgc-muted p { color: var(--fgc-ink); }
@media (max-width: 689.98px) {
	.fgc-lead, .fgc-lead p { font-size: 19px; }
}
.fgc-sechead { max-width: 760px; }

/* Dark context (Navy or Burgundy backgrounds) */
.fgc-dark,
.fgc-dark p,
.fgc-dark .fgc-lead,
.fgc-dark .fgc-lead p { color: var(--fgc-white); }
body .fgc-dark .elementor-heading-title,
body .fgc-dark :is(h1, h2, h3, h4) { color: var(--fgc-white); }
body .fgc-dark .fgc-eyebrow .elementor-heading-title { color: var(--fgc-sun); }

/* Buttons (Elementor Button widget + modifier class)
   Primary: Coral with White text (4.9:1), Ink on hover (kit setting).
   Micro-interactions: colour change, arrow nudge, gentle press. */
.elementor-button {
	min-height: 48px;
	font-family: var(--fgc-font);
	font-weight: 700;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.15s var(--fgc-ease);
}
.elementor-button:active {
	transform: scale(0.98);
}
.fgc-btn--arrow .elementor-button-text::after {
	content: "\2192";
	display: inline-block;
	margin-left: 10px;
	transition: transform 0.2s var(--fgc-ease);
}
.fgc-btn--arrow .elementor-button:hover .elementor-button-text::after,
.fgc-btn--arrow .elementor-button:focus-visible .elementor-button-text::after {
	transform: translateX(4px);
}
/* Secondary: Ink outline, fills Ink on hover */
.fgc-btn--secondary .elementor-button {
	background: transparent;
	color: var(--fgc-ink);
	box-shadow: inset 0 0 0 2px var(--fgc-ink);
}
.fgc-btn--secondary .elementor-button:hover,
.fgc-btn--secondary .elementor-button:focus-visible {
	background: var(--fgc-ink);
	color: var(--fgc-white);
}
/* Sun (class name kept: fgc-btn--gold): Ink text on Sun (10.3:1), White on hover */
.fgc-btn--gold .elementor-button {
	background: var(--fgc-sun);
	color: var(--fgc-ink);
}
.fgc-btn--gold .elementor-button:hover,
.fgc-btn--gold .elementor-button:focus-visible {
	background: var(--fgc-white);
	color: var(--fgc-ink);
}
/* Light outline (dark sections only) */
.fgc-btn--light .elementor-button {
	background: transparent;
	color: var(--fgc-white);
	box-shadow: inset 0 0 0 2px var(--fgc-white);
}
.fgc-btn--light .elementor-button:hover,
.fgc-btn--light .elementor-button:focus-visible {
	background: var(--fgc-white);
	box-shadow: inset 0 0 0 2px var(--fgc-white);
	color: var(--fgc-ink);
}
/* Text link: Ink with a Coral underline, Blue on hover */
.fgc-btn--text .elementor-button {
	min-height: 0;
	padding: 4px 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--fgc-ink);
	text-decoration: underline;
	text-decoration-color: var(--fgc-coral);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.fgc-btn--text .elementor-button:hover,
.fgc-btn--text .elementor-button:focus-visible {
	background: none;
	color: var(--fgc-blue);
	text-decoration-color: var(--fgc-blue);
}
.fgc-btn--text .elementor-button:active { transform: none; }
.fgc-dark .fgc-btn--text .elementor-button { color: var(--fgc-white); text-decoration-color: var(--fgc-sun); }
.fgc-dark .fgc-btn--text .elementor-button:hover { color: var(--fgc-sun); }
@media (max-width: 689.98px) {
	.fgc-actions > .elementor-widget-button:not(.fgc-btn--text) { width: 100%; }
	.fgc-actions > .elementor-widget-button:not(.fgc-btn--text) .elementor-button {
		width: 100%;
		justify-content: center;
	}
}

/* Hero (page + service): Cream, decorative route in Slate with the four Lens stops */
.fgc-hero { position: relative; overflow: hidden; }
.fgc-hero > .e-con-inner { position: relative; z-index: 1; }
@media (min-width: 1000px) {
	.fgc-hero::after {
		content: "";
		position: absolute;
		right: max(24px, calc((100% - 1200px) / 2));
		bottom: 40px;
		width: 380px;
		height: 290px;
		pointer-events: none;
		background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 380 290' fill='none'%3E%3Cpath d='M12 270C110 270 110 150 190 150S270 22 368 22' stroke='%234A5068' stroke-width='2.5' stroke-dasharray='2 11' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='270' r='9' fill='%23CF3836'/%3E%3Ccircle cx='108' cy='210' r='7' fill='%23FFBE1A'/%3E%3Ccircle cx='190' cy='150' r='8' fill='%230A7A6F'/%3E%3Ccircle cx='368' cy='22' r='11' fill='%23FFFFFF' stroke='%232152C8' stroke-width='3'/%3E%3Ccircle cx='368' cy='22' r='4' fill='%232152C8'/%3E%3C/svg%3E");
	}
}
.fgc-hero--service::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 6px;
	background: var(--svc-bar, var(--svc, var(--fgc-coral)));
}
.fgc-breadcrumbs .ct-breadcrumbs {
	margin-bottom: 8px;
	font-size: 14px;
	text-transform: none;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--fgc-slate);
}
.fgc-breadcrumbs .ct-breadcrumbs a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 3px; }
.fgc-breadcrumbs .ct-breadcrumbs a:hover { color: var(--fgc-ink); }
.ct-breadcrumbs .last-item,
.ct-breadcrumbs [aria-current] { font-weight: 700; color: var(--fgc-ink); }

/* Cards (service cards and other linked cards)
   Cream surface, colour top bar, solid colour icon tile, colour ring on hover.
   Cards without a service class take the Lens colours in turn. */
.fgc-card {
	position: relative;
	overflow: hidden;
	background: var(--svc-surface, var(--fgc-cream));
	border: 0;
	border-radius: var(--fgc-radius);
	color: inherit;
	text-decoration: none;
	transition: transform 0.25s var(--fgc-ease), box-shadow 0.25s ease;
}
.fgc-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--svc-bar, var(--svc, var(--fgc-coral)));
}
a.fgc-card:hover,
a.fgc-card:focus-visible {
	box-shadow: inset 0 0 0 2px var(--svc, var(--fgc-coral)), var(--fgc-shadow);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	a.fgc-card:hover { transform: translateY(-4px); }
}
/* Icon tiles: one colour per tile, white (or Ink on Sun) glyph */
.fgc-card__icon .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	font-size: 22px;
	background: var(--svc, var(--fgc-coral));
	color: var(--svc-on, var(--fgc-white));
	fill: var(--svc-on, var(--fgc-white));
	transition: transform 0.3s var(--fgc-ease);
}
.fgc-card__icon .elementor-icon svg { width: 22px; height: 22px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	a.fgc-card:hover .fgc-card__icon .elementor-icon,
	.fgc-card:hover .fgc-card__icon .elementor-icon {
		transform: rotate(-6deg) scale(1.06);
	}
}
.fgc-card__icon,
.fgc-card__icon .elementor-icon-wrapper,
.fgc-callout__icon,
.fgc-callout__icon .elementor-icon-wrapper { text-align: left; line-height: 0; }
.fgc-card__title .elementor-heading-title { font-size: 21px; line-height: 1.3; color: var(--fgc-ink); }
.fgc-card__text,
.fgc-card__text p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--fgc-ink);
}
.fgc-card__meta .elementor-heading-title {
	font-family: var(--theme-font-family);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--fgc-ink);
}
.fgc-card__meta .elementor-heading-title strong { color: var(--fgc-ink); font-weight: 700; }
.fgc-card__more { margin-top: auto; }
.fgc-card__more .elementor-heading-title {
	font-family: var(--theme-font-family);
	font-size: 15px;
	font-weight: 700;
	color: var(--fgc-ink);
}
.fgc-card__more .elementor-heading-title::after {
	content: "\2192";
	display: inline-block;
	margin-left: 8px;
	color: var(--fgc-coral);
	transition: transform 0.2s ease;
}
a.fgc-card:hover .fgc-card__more .elementor-heading-title::after,
a.fgc-card:focus-visible .fgc-card__more .elementor-heading-title::after {
	transform: translateX(4px);
}
.fgc-card--wide .fgc-card__more { margin: 0 0 0 auto; white-space: nowrap; }
@media (max-width: 689.98px) {
	.fgc-card--wide .fgc-card__more { margin: 4px 0 0; }
}

/* Pathway (FGC Lens: Understand Coral, Assess Sun, Prepare Teal, Act Blue)
   Each step's connector takes that step's colour */
.fgc-path { --fgc-path-gap-x: 32px; --fgc-path-gap-y: 40px; }
.fgc-path__step { position: relative; padding-top: 68px !important; --step: var(--fgc-coral); --step-on: var(--fgc-white); }
.fgc-path__step:nth-child(4n+2) { --step: var(--fgc-sun); --step-on: var(--fgc-ink); }
.fgc-path__step:nth-child(4n+3) { --step: var(--fgc-teal); --step-on: var(--fgc-white); }
.fgc-path__step:nth-child(4n+4) { --step: var(--fgc-blue); --step-on: var(--fgc-white); }
.fgc-path__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 21px;
	left: 52px;
	width: calc(100% + var(--fgc-path-gap-x) - 60px);
	height: 3px;
	border-radius: 3px;
	background: var(--step);
	transform-origin: left center;
}
.fgc-path__num {
	position: absolute !important;
	top: 0;
	left: 0;
	width: auto !important;
}
.fgc-path__num .elementor-heading-title {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--step);
	color: var(--step-on);
	font-family: var(--fgc-font);
	font-size: 17px;
	font-weight: 800;
	line-height: 1;
}
.fgc-path__title .elementor-heading-title { font-size: 22px; }
.fgc-path__text, .fgc-path__text p { color: var(--fgc-ink); font-size: 16px; line-height: 1.6; margin: 0; }
@media (max-width: 999.98px) {
	.fgc-path__step { padding-top: 0 !important; padding-left: 68px !important; min-height: 44px; }
	.fgc-path__step:not(:last-child)::after {
		top: 52px;
		left: 21px;
		width: 2px;
		height: calc(100% + var(--fgc-path-gap-y) - 60px);
		transform-origin: center top;
	}
}

/* Client journey (6 numbered steps): Cream cards, Sun numbers, Coral on hover */
.fgc-journey__step {
	background: var(--fgc-cream);
	border: 0;
	border-radius: var(--fgc-radius);
	transition: box-shadow 0.2s ease;
}
.fgc-journey__step:hover {
	box-shadow: inset 0 0 0 2px var(--fgc-coral);
}
.fgc-journey__num .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--fgc-sun);
	color: var(--fgc-ink);
	font-family: var(--theme-font-family);
	font-size: 15px;
	font-weight: 700;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.fgc-journey__step:hover .fgc-journey__num .elementor-heading-title {
	background: var(--fgc-coral);
	color: var(--fgc-white);
}
.fgc-journey__step:last-child .fgc-journey__num .elementor-heading-title {
	background: var(--fgc-blue);
	color: var(--fgc-white);
}
.fgc-journey__title .elementor-heading-title { font-size: 19px; line-height: 1.3; color: var(--fgc-ink); }
.fgc-journey__text, .fgc-journey__text p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--fgc-ink); }

/* Why FGC (editorial principles): Navy section, Gold dash per principle */
.fgc-feature { position: relative; padding-top: 24px; }
.fgc-feature::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 48px;
	height: 4px;
	border-radius: 2px;
	background: var(--fgc-coral);
}
.fgc-feature:nth-child(4n+2)::before { background: var(--fgc-sun); }
.fgc-feature:nth-child(4n+3)::before { background: var(--fgc-teal); }
.fgc-feature:nth-child(4n+4)::before { background: var(--fgc-blue); }
.fgc-feature__title .elementor-heading-title { font-size: 20px; line-height: 1.3; }
.fgc-feature__text, .fgc-feature__text p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-dark .fgc-feature__text, .fgc-dark .fgc-feature__text p { color: var(--fgc-white); }

/* Callout panels: Blue = official information, Sun edge + Teal icon = information checked, Coral = costs */
.fgc-callout__icon .elementor-icon { font-size: 20px; color: var(--fgc-blue); fill: var(--fgc-blue); }
.fgc-callout--checked .fgc-callout__icon .elementor-icon { color: var(--fgc-teal); fill: var(--fgc-teal); }
.fgc-callout--costs .fgc-callout__icon .elementor-icon { color: var(--fgc-coral); fill: var(--fgc-coral); }
.fgc-callout__title .elementor-heading-title {
	font-family: var(--fgc-font);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--fgc-ink);
}
.fgc-callout__text, .fgc-callout__text p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-callout__text a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 3px; }

/* Checklist (Icon List widget): Teal ticks (positive points) */
.fgc-checklist .elementor-icon-list-icon svg { fill: var(--fgc-teal); width: 16px; height: 16px; }
.fgc-checklist .elementor-icon-list-item { align-items: flex-start; }
.fgc-checklist .elementor-icon-list-icon { margin-top: 5px; }
.fgc-checklist .elementor-icon-list-text { font-size: 17px; line-height: 1.55; color: var(--fgc-ink); }

/* Consultation CTA card: Ink panel, Lens stripe, Sun button, Sun/Coral route */
.fgc-cta { position: relative; overflow: hidden; border-radius: var(--fgc-radius-lg); }
.fgc-cta::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--fgc-lens);
}
.fgc-cta > * { position: relative; z-index: 1; }
.fgc-cta__note, .fgc-cta__note p { margin: 0; font-size: 15px; color: var(--fgc-white); }
.fgc-dark .elementor-widget-text-editor a { color: var(--fgc-white); text-decoration: underline; text-decoration-color: var(--fgc-sun); text-underline-offset: 3px; }
@media (min-width: 1000px) {
	.fgc-cta::after {
		content: "";
		position: absolute;
		z-index: 0;
		right: -10px;
		bottom: -10px;
		width: 340px;
		height: 260px;
		pointer-events: none;
		background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 260' fill='none'%3E%3Cpath d='M10 250C100 250 100 140 170 140S240 20 330 20' stroke='%23FFBE1A' stroke-width='2.5' stroke-dasharray='2 11' stroke-linecap='round'/%3E%3Ccircle cx='170' cy='140' r='7' fill='%23CF3836'/%3E%3Ccircle cx='330' cy='20' r='9' fill='none' stroke='%23FFBE1A' stroke-width='2.5'/%3E%3C/svg%3E");
	}
}

/* Article cards (Blocksy posts listing; also /blog/ and topic archives)
   Cream cards on white pages, white cards on Cream sections, Coral ring on hover */
.entries .entry-card {
	background: var(--fgc-cream);
	border-color: transparent !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.fgc-guides-section .entries .entry-card { background: var(--fgc-white); }
.entries .entry-card:hover,
.entries .entry-card:focus-within {
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 2px var(--fgc-coral);
}
.entries .entry-card .ct-media-container img { transition: transform 0.4s ease; }
.entries .entry-card:hover .ct-media-container img { transform: scale(1.03); }
.entries .entry-card .entry-title { font-size: 20px; line-height: 1.35; }
.entries .entry-card .entry-title a { color: var(--fgc-ink); }
.entries .entry-card .entry-title a:hover { color: var(--fgc-ink); text-decoration: underline; text-decoration-color: var(--fgc-coral); text-underline-offset: 4px; }
.entries .entry-card .entry-excerpt { font-size: 16px; line-height: 1.6; color: var(--fgc-ink); }
.entries .entry-card .entry-meta { font-size: 14px; color: var(--fgc-ink); }
.fgc-guides .entries { margin: 0; }
.entries .entry-card .meta-categories a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fgc-ink);
	min-height: 24px;
	padding: 2px 0;
}
.entries .entry-card .meta-categories a::before {
	content: "";
	flex: 0 0 9px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--cat, var(--fgc-coral));
	box-shadow: var(--cat-ring, none);
}
a[href*="/topics/immigration-permits/"] { --cat: var(--fgc-blue); }
a[href*="/topics/work-careers/"] { --cat: var(--fgc-coral); }
a[href*="/topics/study-in-finland/"] { --cat: var(--fgc-sun); }
a[href*="/topics/business-entrepreneurship/"] { --cat: var(--fgc-plum); }
a[href*="/topics/living-in-finland/"] { --cat: var(--fgc-teal); }
a[href*="/topics/digital-marketing/"] { --cat: conic-gradient(var(--fgc-coral) 0 25%, var(--fgc-sun) 0 50%, var(--fgc-teal) 0 75%, var(--fgc-blue) 0 100%); }
a[href*="/topics/fgc-news/"] { --cat: var(--fgc-ink); }

/* Sections that hide themselves when they have nothing to show */
body:not(.elementor-editor-active) .fgc-guides-section:not(:has(article)),
body:not(.elementor-editor-active) .fgc-faq-section:not(:has(.fgc-faq)) {
	display: none;
}

/* =========================================================
   ANIMATION FOUNDATION (CSS only, progressive enhancement)
   - Content is always visible; motion is only added where the
     browser supports it and the visitor has not asked for less.
   - Hover effects only on devices that can hover.
   - Nothing moves inside forms; nothing loops.
   ========================================================= */

/* Subtle image zoom inside rounded frames: add class fgc-zoom to an Image widget or container */
.fgc-zoom { overflow: hidden; border-radius: var(--fgc-radius); }
.fgc-zoom img { transition: transform 0.5s var(--fgc-ease); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.fgc-zoom:hover img { transform: scale(1.03); }
}

/* FAQ open/close: smooth height where supported, instant elsewhere */
@media (prefers-reduced-motion: no-preference) {
	@supports selector(::details-content) {
		.fgc-faq { interpolate-size: allow-keywords; }
		.fgc-faq::details-content {
			block-size: 0;
			overflow: clip;
			transition: block-size 0.3s var(--fgc-ease), content-visibility 0.3s allow-discrete;
		}
		.fgc-faq[open]::details-content { block-size: auto; }
	}
}

/* Internal component library page only */
.fgc-demo-label .elementor-heading-title {
	display: inline-block;
	padding: 6px 12px;
	border: 1px dashed var(--fgc-ink);
	border-radius: 6px;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--fgc-ink);
}

/* Fixes after the colour review */
.ct-footer [data-row*="bottom"] .ct-footer-copyright,
.ct-footer [data-row*="bottom"] .ct-footer-copyright p {
	color: var(--fgc-white);
}
.fgc-callout.fgc-callout--checked {
	background-color: var(--fgc-white) !important;
}

/* =========================================================
   SERVICE PAGE (Stage 7). Master template: "FGC · Service page – master".
   Service accent comes from svc-* on each section (--svc).
   ========================================================= */
/* "Who this is for" panel */
.fgc-panel {
	position: relative;
	overflow: hidden;
	background: var(--fgc-cream);
	border-radius: 16px;
}
.fgc-panel::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--svc, var(--fgc-ink));
}
.fgc-panel__title .elementor-heading-title { font-size: 21px; line-height: 1.3; color: var(--fgc-ink); }
.fgc-panel__note,
.fgc-panel__note p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--fgc-ink); }
.fgc-overview__text p { font-size: 18px; line-height: 1.65; color: var(--fgc-ink); }
.fgc-overview__text p:last-child { margin-bottom: 0; }

/* Cards and panels sitting on a Cream section switch to White */
.fgc-bg-cream .fgc-card,
.fgc-bg-cream .fgc-panel { --svc-surface: var(--fgc-white); background: var(--fgc-white); }

/* Callouts: third variant (costs) and callouts placed on a dark section */
.fgc-callout--costs .fgc-callout__icon .elementor-icon { color: var(--fgc-ink); fill: var(--fgc-ink); }
.fgc-dark .fgc-callout,
.fgc-dark .fgc-callout p { color: var(--fgc-ink); }
body .fgc-dark .fgc-callout .elementor-heading-title { color: var(--fgc-ink); }
.fgc-dark .fgc-callout__text a { color: var(--fgc-blue); text-decoration-color: var(--fgc-blue); }

/* Other services: compact linked tiles (Icon List widget) */
.fgc-svcnav .elementor-icon-list-items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
@media (max-width: 999.98px) {
	.fgc-svcnav .elementor-icon-list-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 689.98px) {
	.fgc-svcnav .elementor-icon-list-items { grid-template-columns: 1fr; }
}
.fgc-svcnav .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.fgc-svcnav .elementor-icon-list-item::after,
.fgc-svcnav .elementor-icon-list-icon { display: none !important; }
.fgc-svcnav .elementor-icon-list-item > a {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 64px;
	padding: 16px 20px;
	border-radius: 12px;
	background: var(--fgc-white);
	text-decoration: none;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.fgc-svcnav .elementor-icon-list-item > a::before {
	content: "";
	flex: 0 0 12px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--svc, var(--fgc-ink));
}
.fgc-svcnav .elementor-icon-list-item > a::after {
	content: "\2192";
	margin-left: auto;
	color: var(--fgc-coral);
	font-weight: 700;
}
.fgc-svcnav .elementor-icon-list-text {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--fgc-ink);
}
.fgc-svcnav .elementor-icon-list-item > a:hover,
.fgc-svcnav .elementor-icon-list-item > a:focus-visible {
	transform: translateY(-2px);
	box-shadow: inset 0 0 0 2px var(--svc, var(--fgc-ink));
}
.fgc-svcnav a[href*="/services/immigration-residence-permits/"] { --svc: var(--fgc-blue); }
.fgc-svcnav a[href*="/services/career-employment/"] { --svc: var(--fgc-coral); }
.fgc-svcnav a[href*="/services/education-study/"] { --svc: var(--fgc-sun); }
.fgc-svcnav a[href*="/services/business-entrepreneurship/"] { --svc: var(--fgc-plum); }
.fgc-svcnav a[href*="/services/relocation-integration/"] { --svc: var(--fgc-teal); }
.fgc-svcnav a[href*="/services/consultation-documentation/"] { --svc: var(--fgc-sun); }
.fgc-svcnav a[href*="/services/consultation-documentation/"]::before { box-shadow: inset 0 0 0 3px var(--fgc-ink); }
.fgc-svcnav a[href*="/services/digital-marketing/"] { --svc: var(--fgc-ink); }
.fgc-svcnav a[href*="/services/digital-marketing/"]::before { background: conic-gradient(var(--fgc-coral) 0 25%, var(--fgc-sun) 0 50%, var(--fgc-teal) 0 75%, var(--fgc-blue) 0 100%); }

/* Service page fixes after first visual review */
.fgc-btn--text .elementor-button { white-space: normal; }
.fgc-btn--text .elementor-button-content-wrapper { justify-content: flex-start; text-align: left; }
.fgc-guides-section .fgc-btn--text .elementor-button,
.fgc-svcnav-section .fgc-btn--text .elementor-button { white-space: nowrap; }
.fgc-dark .fgc-callout { border-left-width: 6px !important; }
.fgc-svcnav .elementor-icon-list-item { display: flex; }
.fgc-svcnav .elementor-icon-list-item > a { height: 100%; }
.fgc-card__icon .elementor-icon-wrapper,
.fgc-callout__icon .elementor-icon-wrapper { display: flex; justify-content: flex-start; }

/* =========================================================
   HOMEPAGE (Stage 8)
   ========================================================= */
/* Hero points */
.fgc-points .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.fgc-points .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.fgc-points .elementor-icon-list-item::after { display: none !important; }
.fgc-points .elementor-icon-list-icon svg { fill: var(--fgc-coral); width: 14px; height: 14px; }
.fgc-points .elementor-icon-list-text { font-size: 15px; font-weight: 600; color: var(--fgc-ink); }

/* Situation selector (Elementor nested tabs) */
.fgc-selector .e-n-tabs-heading { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.fgc-selector .e-n-tab-title {
	min-height: 48px;
	padding: 12px 20px !important;
	border: 1.5px solid var(--fgc-ink) !important;
	border-radius: 999px !important;
	background: var(--fgc-white) !important;
	color: var(--fgc-ink) !important;
	font-family: var(--theme-font-family);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.fgc-selector .e-n-tab-title:hover { background: var(--fgc-cream) !important; }
.fgc-selector .e-n-tab-title[aria-selected="true"] { background: var(--fgc-ink) !important; color: var(--fgc-white) !important; }
.fgc-selector .e-n-tab-title-text { color: inherit !important; font-size: inherit !important; font-weight: inherit !important; }
.fgc-selector .e-n-tabs-content > .e-con,
.fgc-selector .fgc-selector__panel {
	background: var(--fgc-cream);
	border-left: 6px solid var(--fgc-sun);
	border-radius: 0 16px 16px 0;
}
.fgc-selector__title .elementor-heading-title { font-size: 22px; line-height: 1.3; color: var(--fgc-ink); }
.fgc-selector__text p { margin: 0; max-width: 64ch; font-size: 17px; line-height: 1.6; color: var(--fgc-ink); }

/* Story teaser quote (Gold panel, Navy text 11.4:1) */
.fgc-quote { position: relative; background: var(--fgc-sun); border-radius: 20px; }
.fgc-quote::before {
	content: "\201C";
	position: absolute;
	top: 12px;
	left: 40px;
	font-family: var(--fgc-font);
	font-weight: 800;
	font-size: 96px;
	line-height: 1;
	color: var(--fgc-ink);
}
.fgc-quote__text .elementor-heading-title {
	font-family: var(--fgc-font);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--fgc-ink);
}
.fgc-quote__by .elementor-heading-title {
	font-family: var(--theme-font-family);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fgc-ink);
}
@media (max-width: 689.98px) {
	.fgc-quote::before { left: 24px; font-size: 80px; }
	.fgc-quote__text .elementor-heading-title { font-size: 26px; }
}
/* Journey cards on a Cream section switch to White */
.fgc-bg-cream .fgc-journey__step { background: var(--fgc-white); }
@media (max-width: 689.98px) {
	.fgc-selector .e-n-tabs-heading { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
	.fgc-selector .e-n-tab-title { margin: 0 !important; border-radius: 14px !important; padding: 10px 12px !important; font-size: 14px; justify-content: flex-start; text-align: left; white-space: normal; }
}

/* =========================================================
   CONTENT PAGES (Stage 9): prose, contact, forms, FAQs page
   ========================================================= */
/* Long-form text (legal pages) */
.fgc-prose h2 { margin: 40px 0 12px; font-size: 28px; line-height: 1.25; color: var(--fgc-ink); }
.fgc-prose h2:first-child { margin-top: 0; }
.fgc-prose p,
.fgc-prose li { font-size: 18px; line-height: 1.7; color: var(--fgc-ink); }
.fgc-prose ul { margin: 0 0 20px; padding-left: 22px; }
.fgc-prose li { margin-bottom: 8px; }
.fgc-prose li::marker { color: var(--fgc-coral); }
.fgc-prose a,
.fgc-contact-details a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 3px; }
.fgc-prose a:hover,
.fgc-contact-details a:hover { color: var(--fgc-ink); }
@media (max-width: 689.98px) {
	.fgc-prose h2 { font-size: 24px; }
	.fgc-prose p, .fgc-prose li { font-size: 17px; }
}

/* Contact page */
.fgc-form-title .elementor-heading-title { font-size: 28px; }
.fgc-contact-details p { margin: 0 0 16px; font-size: 17px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-contact-details p:last-child { margin-bottom: 0; }
.fgc-social-list { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 0; list-style: none; font-size: 17px; font-weight: 600; }
.fgc-social-list li { min-height: 24px; }

/* WPForms (Lite) in FGC colours */
.fgc-contact-form .wpforms-container {
	--wpforms-label-color: var(--fgc-ink);
	--wpforms-label-sublabel-color: var(--fgc-ink);
	--wpforms-label-error-color: var(--fgc-ink);
	--wpforms-field-border-color: var(--fgc-ink);
	--wpforms-field-text-color: var(--fgc-ink);
	--wpforms-field-background-color: var(--fgc-white);
	--wpforms-field-border-radius: 10px;
	--wpforms-field-size-input-height: 48px;
	--wpforms-button-background-color: var(--fgc-ink);
	--wpforms-button-text-color: var(--fgc-white);
	--wpforms-button-border-radius: 999px;
	--wpforms-button-size-height: 48px;
	--wpforms-button-size-padding-h: 28px;
	--wpforms-label-size-font-size: 16px;
	--wpforms-field-size-font-size: 17px;
	margin: 0 !important;
}
.fgc-contact-form .wpforms-container input:not([type="checkbox"]),
.fgc-contact-form .wpforms-container textarea {
	border: 1.5px solid var(--fgc-ink) !important;
	border-radius: 10px !important;
	background: var(--fgc-white) !important;
	color: var(--fgc-ink) !important;
	font-size: 17px !important;
}
.fgc-contact-form .wpforms-container input:focus,
.fgc-contact-form .wpforms-container textarea:focus {
	border-color: var(--fgc-blue) !important;
	box-shadow: 0 0 0 2px var(--fgc-blue) !important;
	outline: none !important;
}
.fgc-contact-form .wpforms-container .wpforms-field-label,
.fgc-contact-form .wpforms-container .wpforms-field-gdpr-checkbox label { color: var(--fgc-ink) !important; font-weight: 600; }
.fgc-contact-form .wpforms-container .wpforms-required-label,
.fgc-contact-form .wpforms-container label.wpforms-error,
.fgc-contact-form .wpforms-container em.wpforms-error { color: var(--fgc-ink) !important; }
.fgc-contact-form .wpforms-container .wpforms-field-gdpr-checkbox a { color: var(--fgc-blue); text-decoration: underline; }
.fgc-contact-form .wpforms-container button[type="submit"] {
	min-height: 48px;
	padding: 0 28px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--fgc-ink) !important;
	color: var(--fgc-white) !important;
	font-family: var(--theme-font-family);
	font-size: 16px !important;
	font-weight: 600 !important;
	cursor: pointer;
}
.fgc-contact-form .wpforms-container button[type="submit"]:hover { background: var(--fgc-ink) !important; }
.fgc-contact-form .wpforms-confirmation-container-full {
	background: var(--fgc-white) !important;
	border: 0 !important;
	border-left: 6px solid var(--fgc-sun) !important;
	color: var(--fgc-ink) !important;
}

/* FAQs page (grouped) */
.fgc-faqs-page .fgc-faq-group__title { font-size: 30px; }
@media (max-width: 689.98px) { .fgc-faqs-page .fgc-faq-group__title { font-size: 25px; } }
.fgc-faqs-page .fgc-chip { min-height: 44px; border-color: var(--fgc-ink); color: var(--fgc-ink); font-weight: 600; }
.fgc-faqs-page .fgc-chip:hover,
.fgc-faqs-page .fgc-chip:focus-visible { background: var(--fgc-ink); color: var(--fgc-white); }
/* Current page in the footer menus stays readable */
.ct-footer [data-row*="bottom"] .current-menu-item > a,
.ct-footer [data-row*="bottom"] a[aria-current="page"],
.ct-footer [data-row*="middle"] .current-menu-item > a,
.ct-footer [data-row*="middle"] a[aria-current="page"] { color: var(--fgc-sun) !important; }

/* =========================================================
   GUIDES & NEWS (blog): title band, article boxes
   ========================================================= */
.hero-section[data-type="type-2"] { background-color: var(--fgc-cream); }
.hero-section[data-type="type-2"] .entry-header { padding-top: 72px; padding-bottom: 64px; }
.hero-section .page-title { color: var(--fgc-ink); }
.hero-section .page-description,
.hero-section .page-description p { max-width: 62ch; font-size: 20px; line-height: 1.55; color: var(--fgc-ink); }
.hero-section .ct-breadcrumbs { font-size: 14px; color: var(--fgc-ink); }
.hero-section .ct-breadcrumbs a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 3px; }
.hero-section .entry-meta,
.hero-section .entry-meta a { color: var(--fgc-ink); }
.hero-section .entry-meta .meta-categories a { color: var(--fgc-ink); font-weight: 700; }
@media (max-width: 689.98px) {
	.hero-section[data-type="type-2"] .entry-header { padding-top: 44px; padding-bottom: 40px; }
	.hero-section .page-description, .hero-section .page-description p { font-size: 18px; }
}
.single-post main .entry-content a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 3px; }
.hero-section .ct-breadcrumbs { text-transform: none; letter-spacing: 0; }

.fgc-article-checked { margin: 0 0 32px; padding: 20px 24px; background: var(--fgc-cream); border-left: 6px solid var(--fgc-sun); border-radius: 0 12px 12px 0; }
.fgc-article-checked p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-article-cta { position: relative; overflow: hidden; margin: 56px 0 0; padding: 36px 32px 32px; background: var(--fgc-cream); border-radius: 16px; }
.fgc-article-cta::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--svc, var(--fgc-ink)); }
.svc-digital.fgc-article-cta::before { background: var(--fgc-lens); }
.fgc-article-cta__title { margin: 0 0 8px !important; font-family: var(--fgc-font); font-size: 26px; font-weight: 800; line-height: 1.25; color: var(--fgc-ink); }
.fgc-article-cta__text { margin: 0 0 20px !important; font-size: 17px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-article-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin: 0 !important; }
.single-post main .entry-content .fgc-article-cta__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 28px; border-radius: 999px; background: var(--fgc-coral); color: var(--fgc-white); font-weight: 700; text-decoration: none; }
.single-post main .entry-content .fgc-article-cta__btn:hover { background: var(--fgc-ink); color: var(--fgc-white); }
.single-post main .entry-content .fgc-article-cta__link { color: var(--fgc-ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--fgc-coral); text-decoration-thickness: 2px; text-underline-offset: 6px; }

/* Cookie notice (Blocksy extension): essential cookies only, one OK button */
.cookie-notification { background-color: var(--fgc-ink) !important; color: var(--fgc-white) !important; box-shadow: inset 0 4px 0 var(--fgc-sun) !important; }
.cookie-notification .ct-cookies-content,
.cookie-notification .ct-cookies-content p { color: var(--fgc-white) !important; }
.cookie-notification .ct-cookies-content a { color: var(--fgc-sun) !important; text-decoration: underline; text-underline-offset: 3px; }
.cookie-notification .ct-cookies-accept-button { min-height: 44px; background: var(--fgc-sun) !important; color: var(--fgc-ink) !important; }
.cookie-notification .ct-cookies-accept-button { border-radius: 999px; font-weight: 700; }
.cookie-notification .ct-cookies-accept-button:hover,
.cookie-notification .ct-cookies-accept-button:focus-visible { background: var(--fgc-white) !important; color: var(--fgc-ink) !important; }
.cookie-notification .ct-cookies-decline-button { display: none !important; }

/* =========================================================
   FGC SPECTRUM LAYER (Phases 2-4): page components.
   Loaded last; overrides earlier component styles.
   ========================================================= */

/* ---------- Shared ---------- */
.e-con.fgc-hero,
.e-con.fgc-important,
.e-con.fgc-why,
.e-con.fgc-cta { position: relative; }
.fgc-sechead .elementor-heading-title { text-wrap: balance; }
.fgc-lead, .fgc-lead p { color: var(--fgc-ink); }
.fgc-muted, .fgc-muted p { color: var(--fgc-slate); }
.fgc-dark .fgc-muted, .fgc-dark .fgc-muted p { color: var(--fgc-white); }

/* Cards outside service sections take the Lens colours in turn;
   inside a service section they keep that service's colour. */
.fgc-card:not(.svc):not(.svc *) { --svc: var(--fgc-coral); --svc-on: var(--fgc-white); }
.e-con > .fgc-card:not(.svc):not(.svc *):nth-child(4n+2) { --svc: var(--fgc-sun); --svc-on: var(--fgc-ink); }
.e-con > .fgc-card:not(.svc):not(.svc *):nth-child(4n+3) { --svc: var(--fgc-teal); --svc-on: var(--fgc-white); }
.e-con > .fgc-card:not(.svc):not(.svc *):nth-child(4n+4) { --svc: var(--fgc-blue); --svc-on: var(--fgc-white); }

/* ---------- Heroes ---------- */
.fgc-hero .elementor-widget-heading h1.elementor-heading-title { text-wrap: balance; }
/* Homepage hero: four Lens shapes instead of the route (desktop only, static) */
@media (min-width: 1000px) {
	.fgc-hero--home::after {
		width: 340px;
		height: 300px;
		bottom: 56px;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 300' fill='none'%3E%3Cpath d='M60 240C140 240 150 190 160 150S250 60 300 42' stroke='%234A5068' stroke-width='2.5' stroke-dasharray='2 11' stroke-linecap='round'/%3E%3Ccircle cx='60' cy='240' r='44' fill='%23CF3836'/%3E%3Crect x='118' y='150' width='84' height='84' rx='22' fill='%23FFBE1A'/%3E%3Cpath d='M212 140V56a84 84 0 0 1 84 84z' fill='%230A7A6F'/%3E%3Ccircle cx='300' cy='42' r='26' fill='%23FFF8EC' stroke='%232152C8' stroke-width='10'/%3E%3C/svg%3E");
	}
}
/* Hero points: white pills with Teal ticks */
.fgc-points .elementor-icon-list-items { gap: 10px 12px; }
.fgc-points .elementor-icon-list-item {
	padding: 8px 16px !important;
	border: 1px solid var(--fgc-line);
	border-radius: 999px;
	background: var(--fgc-white);
}
.fgc-points .elementor-icon-list-icon svg { fill: var(--fgc-teal); }
.fgc-points .elementor-icon-list-text { color: var(--fgc-ink); font-weight: 700; }
/* Service hero: thicker service bar and a service-coloured eyebrow dot */
.fgc-hero--service::before { height: 8px; }

/* ---------- Home: situation selector ---------- */
.fgc-selector .e-n-tab-title {
	border: 2px solid var(--fgc-line) !important;
	color: var(--fgc-ink) !important;
	font-family: var(--fgc-font);
	font-weight: 700;
}
.fgc-selector .e-n-tab-title:hover { background: var(--fgc-mist) !important; border-color: var(--fgc-ink) !important; }
.fgc-selector .e-n-tab-title[aria-selected="true"] {
	background: var(--fgc-ink) !important;
	border-color: var(--fgc-ink) !important;
	color: var(--fgc-white) !important;
}
.fgc-selector .e-n-tab-title[aria-selected="true"]::before {
	content: "";
	width: 8px;
	height: 8px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--fgc-sun);
	flex: 0 0 8px;
}
.fgc-selector .e-n-tabs-content > .e-con,
.fgc-selector .fgc-selector__panel {
	border-left: 0;
	border-radius: var(--fgc-radius-lg);
	background: var(--fgc-cream);
	box-shadow: inset 6px 0 0 var(--fgc-sun);
}
@media (prefers-reduced-motion: no-preference) {
	.fgc-selector .e-n-tabs-content > .e-con.e-active { animation: fgc-fade 0.3s var(--fgc-ease) both; }
	@keyframes fgc-fade { from { opacity: 0; translate: 0 6px; } to { opacity: 1; translate: 0 0; } }
}
.fgc-selector__title .elementor-heading-title,
.fgc-selector__text p { color: var(--fgc-ink); }

/* ---------- Story quote (Sun panel) ---------- */
.fgc-quote { border-radius: var(--fgc-radius-lg); }
.fgc-quote::before { color: var(--fgc-ink); }
.fgc-quote__text .elementor-heading-title,
.fgc-quote__by .elementor-heading-title { color: var(--fgc-ink); }

/* ---------- Panels and callouts ---------- */
.fgc-panel { border-radius: var(--fgc-radius); }
.fgc-panel__title .elementor-heading-title,
.fgc-panel__note, .fgc-panel__note p,
.fgc-overview__text p { color: var(--fgc-ink); }
.fgc-callout { border-radius: 0 var(--fgc-radius) var(--fgc-radius) 0; }
.fgc-callout__icon .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--fgc-white);
	box-shadow: inset 0 0 0 2px currentColor;
	font-size: 18px;
}
.fgc-callout__icon .elementor-icon svg { width: 18px; height: 18px; }
.fgc-callout__title .elementor-heading-title,
.fgc-callout__text, .fgc-callout__text p { color: var(--fgc-ink); }
.fgc-dark .fgc-callout, .fgc-dark .fgc-callout p,
body .fgc-dark .fgc-callout .elementor-heading-title { color: var(--fgc-ink); }

/* ---------- Bold band (Important to know): Ink with the service colour on top ---------- */
.e-con.fgc-important::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0 0 auto 0;
	height: 6px;
	background: var(--svc-bar, var(--svc, var(--fgc-lens)));
}
.e-con.fgc-important:not(.svc)::before { background: var(--fgc-lens); }
.svc-master.fgc-important::before,
.svc-consultation.fgc-important::before { background: var(--fgc-sun); }

/* ---------- Why FGC (Ink): bordered tiles with a Lens colour edge ---------- */
.fgc-why .fgc-feature {
	padding: 28px 24px 24px !important;
	border: 1px solid var(--fgc-slate);
	border-radius: var(--fgc-radius);
	transition: border-color 0.25s ease, transform 0.25s var(--fgc-ease);
}
.fgc-why .fgc-feature::before { top: -1px; left: 24px; width: 56px; height: 5px; border-radius: 0 0 4px 4px; }
.fgc-why .fgc-feature__title .elementor-heading-title { color: var(--fgc-white); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.fgc-why .fgc-feature:hover { transform: translateY(-3px); border-color: var(--fgc-white); }
}

/* ---------- FGC Lens pathway ---------- */
.fgc-path__title .elementor-heading-title { color: var(--fgc-ink); }
.fgc-path__text, .fgc-path__text p { color: var(--fgc-ink); }
.fgc-path__num .elementor-heading-title { box-shadow: 0 0 0 6px var(--fgc-white); }
.fgc-bg-cream .fgc-path__num .elementor-heading-title { box-shadow: 0 0 0 6px var(--fgc-cream); }

/* ---------- Client journey ---------- */
.fgc-journey__step { border: 1px solid var(--fgc-line); }
.fgc-bg-cream .fgc-journey__step { border-color: transparent; }
.fgc-journey__title .elementor-heading-title,
.fgc-journey__text, .fgc-journey__text p { color: var(--fgc-ink); }
.fgc-journey__num .elementor-heading-title { font-weight: 800; }

/* ---------- Service cards and area cards ---------- */
.fgc-card { border: 1px solid transparent; }
.fgc-card__title .elementor-heading-title { font-weight: 800; color: var(--fgc-ink); }
.fgc-card__text, .fgc-card__text p,
.fgc-card__meta .elementor-heading-title { color: var(--fgc-ink); }
.fgc-card__meta .elementor-heading-title strong { color: var(--fgc-ink); }
.fgc-card__more .elementor-heading-title { color: var(--fgc-ink); }
.fgc-bg-cream .fgc-card,
.fgc-bg-cream .fgc-panel { border-color: transparent; }

/* ---------- Other services tiles ---------- */
.fgc-svcnav .elementor-icon-list-item > a { border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius); }
.fgc-svcnav .elementor-icon-list-text { color: var(--fgc-ink); font-weight: 700; }

/* ---------- Consultation CTA ---------- */
.fgc-cta .elementor-heading-title { color: var(--fgc-white); }

/* ---------- FAQ accordions (Site Core markup, styles only) ---------- */
.fgc-faqs { --fgc-c-line: var(--fgc-line); }
.fgc-faq {
	margin: 0 0 12px;
	padding: 0 20px;
	border: 1px solid var(--fgc-line) !important;
	border-radius: var(--fgc-radius);
	background: var(--fgc-white);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.fgc-faq:first-child { border-top: 1px solid var(--fgc-line); }
.fgc-faq[open] { border-color: var(--fgc-ink) !important; box-shadow: inset 4px 0 0 var(--fgc-coral); }
.fgc-faq__q { padding: 18px 0; font-weight: 700; font-size: 1.0625rem; color: var(--fgc-ink); }
.fgc-faq__q:hover,
.fgc-faq[open] > .fgc-faq__q { color: var(--fgc-ink); }
.fgc-faq__q:hover > span:first-child { text-decoration: underline; text-decoration-color: var(--fgc-coral); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.fgc-faq__icon {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--fgc-coral);
	transition: background-color 0.2s ease;
}
.fgc-faq__icon::before,
.fgc-faq__icon::after { top: 15px; left: 9px; width: 14px; background: var(--fgc-white); }
.fgc-faq[open] .fgc-faq__icon { background: var(--fgc-ink); }
.fgc-faq__a { padding: 0 0 20px; color: var(--fgc-ink); }
.fgc-faq__a a { color: var(--fgc-blue); }
.fgc-bg-cream .fgc-faq, .fgc-faqs-page .fgc-faq { background: var(--fgc-white); }

/* FAQ topic chips: white pills with a Lens colour dot */
.fgc-faq-nav li { --dot: var(--fgc-coral); }
.fgc-faq-nav li:nth-child(4n+2) { --dot: var(--fgc-sun); }
.fgc-faq-nav li:nth-child(4n+3) { --dot: var(--fgc-teal); }
.fgc-faq-nav li:nth-child(4n+4) { --dot: var(--fgc-blue); }
.fgc-faqs-page .fgc-chip,
.fgc-chip {
	gap: 8px;
	min-height: 44px;
	border: 2px solid var(--fgc-line);
	background: var(--fgc-white);
	color: var(--fgc-ink);
	font-weight: 700;
}
.fgc-chip::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--dot, var(--fgc-coral)); flex: 0 0 9px; }
.fgc-faqs-page .fgc-chip:hover,
.fgc-faqs-page .fgc-chip:focus-visible,
.fgc-chip:hover,
.fgc-chip:focus-visible { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-faq-group__title { font-weight: 800; }

/* ---------- Forms (WPForms Lite, contact form) ---------- */
.fgc-contact-form .wpforms-container {
	--wpforms-label-color: var(--fgc-ink);
	--wpforms-label-sublabel-color: var(--fgc-slate);
	--wpforms-label-error-color: var(--fgc-coral);
	--wpforms-field-border-color: var(--fgc-slate);
	--wpforms-field-text-color: var(--fgc-ink);
	--wpforms-field-border-radius: 12px;
	--wpforms-button-background-color: var(--fgc-coral);
	--wpforms-label-size-font-size: 15px;
}
.fgc-contact-form .wpforms-container input:not([type="checkbox"]),
.fgc-contact-form .wpforms-container textarea,
.fgc-contact-form .wpforms-container select {
	border: 2px solid var(--fgc-slate) !important;
	border-radius: 12px !important;
	color: var(--fgc-ink) !important;
	font-family: var(--fgc-font) !important;
	font-weight: 400;
	transition: none !important;
}
.fgc-contact-form .wpforms-container input:focus,
.fgc-contact-form .wpforms-container textarea:focus,
.fgc-contact-form .wpforms-container select:focus {
	border-color: var(--fgc-blue) !important;
	box-shadow: 0 0 0 3px var(--fgc-blue) !important;
}
.fgc-contact-form .wpforms-container .wpforms-field-label,
.fgc-contact-form .wpforms-container .wpforms-field-gdpr-checkbox label { color: var(--fgc-ink) !important; font-weight: 600; font-size: 15px; }
.fgc-contact-form .wpforms-container .wpforms-required-label,
.fgc-contact-form .wpforms-container label.wpforms-error,
.fgc-contact-form .wpforms-container em.wpforms-error { color: var(--fgc-coral) !important; font-weight: 600; }
.fgc-contact-form .wpforms-container input[type="checkbox"] { accent-color: var(--fgc-teal); width: 20px; height: 20px; }
.fgc-contact-form .wpforms-container button[type="submit"] {
	background: var(--fgc-coral) !important;
	font-family: var(--fgc-font) !important;
	font-weight: 700 !important;
	transition: background-color 0.2s ease;
}
.fgc-contact-form .wpforms-container button[type="submit"]:hover,
.fgc-contact-form .wpforms-container button[type="submit"]:focus-visible { background: var(--fgc-ink) !important; }
.fgc-contact-form .wpforms-confirmation-container-full {
	border-left: 6px solid var(--fgc-teal) !important;
	border-radius: 0 var(--fgc-radius) var(--fgc-radius) 0;
	color: var(--fgc-ink) !important;
}
.fgc-form-panel { border-radius: var(--fgc-radius-lg); }
.fgc-contact-details p { color: var(--fgc-ink); }
.fgc-contact-details a:hover, .fgc-prose a:hover { color: var(--fgc-ink); }

/* Social links on the Contact page: pills with each network's own colour dot */
.fgc-social-list { gap: 10px; }
.fgc-social-list a {
	--fgc-brand: var(--fgc-ink);
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0 18px;
	border: 2px solid var(--fgc-line);
	border-radius: 999px;
	background: var(--fgc-white);
	color: var(--fgc-ink);
	text-decoration: none;
	transition: border-color 0.2s ease;
}
.fgc-social-list a::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--fgc-brand); flex: 0 0 10px; }
.fgc-social-list a[href*="facebook.com"] { --fgc-brand: #0866FF; }
.fgc-social-list a[href*="youtube.com"] { --fgc-brand: #FF0000; }
.fgc-social-list a[href*="wa.me"] { --fgc-brand: #25D366; }
.fgc-social-list a[href*="instagram.com"],
.fgc-social-list a[href*="tiktok.com"] { --fgc-brand: #000000; }
.fgc-social-list a:hover,
.fgc-social-list a:focus-visible { border-color: var(--fgc-ink); }

/* ---------- Community page (Finland Global Hub): Plum accents ---------- */
.page-id-1389 .fgc-eyebrow .elementor-heading-title { color: var(--fgc-plum); }
.page-id-1389 .fgc-hero::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 8px;
	background: var(--fgc-plum);
}

/* ---------- Sparing emojis (decorative, hidden from screen readers) ---------- */
.fgc-hub-strip__label::after { content: "\1F44B" / ""; margin-left: 8px; letter-spacing: 0; }
.fgc-faq-section .fgc-eyebrow .elementor-heading-title::after { content: "\1F4AC" / ""; margin-left: 8px; letter-spacing: 0; }
.error404 .ct-no-results .page-description::before { content: "\1F9ED" / ""; display: block; margin-bottom: 12px; font-size: 40px; line-height: 1; }

/* ---------- Legal and long-form pages ---------- */
.fgc-prose h2 { font-weight: 800; color: var(--fgc-ink); }
.fgc-prose h2::before {
	content: "";
	display: block;
	width: 40px;
	height: 4px;
	margin-bottom: 14px;
	border-radius: 4px;
	background: var(--fgc-coral);
}
.fgc-prose h2:nth-of-type(4n+2)::before { background: var(--fgc-sun); }
.fgc-prose h2:nth-of-type(4n+3)::before { background: var(--fgc-teal); }
.fgc-prose h2:nth-of-type(4n+4)::before { background: var(--fgc-blue); }
.fgc-prose p, .fgc-prose li { color: var(--fgc-ink); }
.fgc-prose li::marker { color: var(--fgc-coral); }

/* ---------- Guides & News: cards, archive and posts ---------- */
.entries .entry-card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--fgc-line) !important;
	border-radius: var(--fgc-radius) !important;
	background: var(--fgc-white);
}
.fgc-guides-section .entries .entry-card { border-color: transparent !important; }
.entries .entry-card::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--cat, var(--fgc-coral));
}
.entries .entry-card.category-immigration-permits { --cat: var(--fgc-blue); }
.entries .entry-card.category-work-careers { --cat: var(--fgc-coral); }
.entries .entry-card.category-study-in-finland { --cat: var(--fgc-sun); }
.entries .entry-card.category-business-entrepreneurship { --cat: var(--fgc-plum); }
.entries .entry-card.category-living-in-finland { --cat: var(--fgc-teal); }
.entries .entry-card.category-digital-marketing { --cat: var(--fgc-ink); }
.entries .entry-card.category-digital-marketing::before { background: var(--fgc-lens); }
.entries .entry-card.category-fgc-news { --cat: var(--fgc-ink); }
.entries .entry-card:hover,
.entries .entry-card:focus-within { box-shadow: inset 0 0 0 2px var(--fgc-ink), var(--fgc-shadow); transform: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.entries .entry-card:hover { transform: translateY(-4px); }
}
.entries .entry-card .entry-title { font-weight: 800; }
.entries .entry-card .entry-title a,
.entries .entry-card .entry-title a:hover { color: var(--fgc-ink); }
.entries .entry-card .entry-title a:hover { text-decoration-color: var(--fgc-coral); }
.entries .entry-card .entry-excerpt { color: var(--fgc-ink); }
.entries .entry-card .entry-meta,
.entries .entry-card .entry-meta a { color: var(--fgc-slate); }
.entries .entry-card .meta-categories a { color: var(--fgc-ink); }
/* Cards without a featured image: extra space under the category bar */
.entries[data-cards="boxed"] .entry-card:not(:has(.ct-media-container)) { padding-top: 32px; }
.hero-section .page-title { font-weight: 800; color: var(--fgc-ink); }
.hero-section .page-description, .hero-section .page-description p { color: var(--fgc-ink); }
.hero-section .entry-meta, .hero-section .entry-meta a { color: var(--fgc-slate); }
.hero-section .entry-meta .meta-categories a { color: var(--fgc-ink); }
.single-post main .entry-content h2 { font-weight: 800; }
.single-post main .entry-content li::marker { color: var(--fgc-coral); }
.fgc-article-checked { border-left-color: var(--fgc-teal); border-radius: 0 var(--fgc-radius) var(--fgc-radius) 0; }
.fgc-article-checked p { color: var(--fgc-ink); }
.fgc-article-cta { border-radius: var(--fgc-radius-lg); }
.fgc-article-cta__title, .fgc-article-cta__text { color: var(--fgc-ink); }
.single-post main .entry-content .fgc-article-cta__link { color: var(--fgc-ink); }
.single-post main .entry-content .fgc-article-cta__link:hover { color: var(--fgc-blue); }

/* ---------- 404 and search ---------- */
.error404 .ct-no-results,
.search-no-results .ct-no-results { max-width: 720px; margin: 0 auto; text-align: center; }
.error404 .ct-no-results .hero-section { padding-top: 24px; }
.error404 .ct-no-results .page-description { color: var(--fgc-slate); font-size: 19px; }
.ct-search-form {
	--theme-form-field-border-initial-color: var(--fgc-slate);
	--theme-form-field-border-focus-color: var(--fgc-blue);
	--theme-form-field-border-radius: 999px;
	--theme-form-field-height: 52px;
	--theme-form-field-border-width: 2px;
}
.ct-search-form button[type="submit"] {
	--theme-button-background-initial-color: var(--fgc-coral);
	--theme-button-background-hover-color: var(--fgc-ink);
	border-radius: 999px;
}
.error404 .ct-search-form,
.search-no-results .ct-search-form { max-width: 520px; margin: 28px auto 0; }
.search .entries .entry-card::before { background: var(--fgc-lens); }

/* ---------- Testimonials (Site Core; shown only when approved ones exist) ---------- */
.fgc-testimonial { border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius); }
.fgc-testimonials .fgc-testimonial:nth-child(4n+1) { box-shadow: inset 0 5px 0 var(--fgc-coral); }
.fgc-testimonials .fgc-testimonial:nth-child(4n+2) { box-shadow: inset 0 5px 0 var(--fgc-sun); }
.fgc-testimonials .fgc-testimonial:nth-child(4n+3) { box-shadow: inset 0 5px 0 var(--fgc-teal); }
.fgc-testimonials .fgc-testimonial:nth-child(4n+4) { box-shadow: inset 0 5px 0 var(--fgc-blue); }
.fgc-testimonial__quote::before { font-family: var(--fgc-font); font-weight: 800; color: var(--fgc-coral); }
.fgc-testimonial__name { font-weight: 800; }
.fgc-testimonials__eyebrow { color: var(--fgc-coral); font-weight: 700; }
.fgc-testimonial__service, .fgc-testimonial__date { color: var(--fgc-slate); }

/* ---------- Mobile refinements ---------- */
@media (max-width: 689.98px) {
	.fgc-why .fgc-feature { padding: 24px 20px 20px !important; }
	.fgc-faq { padding: 0 16px; }
	.fgc-social-list a { padding: 0 14px; }
}
.fgc-bg-mist .fgc-path__num .elementor-heading-title { box-shadow: 0 0 0 6px var(--fgc-mist); }

/* =========================================================
   MOTION & INTERACTIONS (enhancement stage)
   1 motion foundations  2 navigation  3 header scroll
   4 cards and buttons   5 scroll reveal  6 heroes
   7 testimonials        8 location / contact details
   Rules: CSS first; the small FGC Site Core script only adds
   classes. Without it, or with reduced motion, all content is
   visible. Hover effects only on devices that can hover.
   ========================================================= */

/* ---------- 1. Motion foundations ---------- */
:root {
	--fgc-t-fast: 0.2s;
	--fgc-t: 0.28s;
	--fgc-t-reveal: 0.55s;
	--fgc-step: 80ms;
}

/* ---------- 2. Navigation ---------- */
.ct-header .header-menu-1 > ul > li { --nav-text: var(--fgc-coral); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+2) { --nav-text: var(--fgc-ink); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+3) { --nav-text: var(--fgc-teal); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+4) { --nav-text: var(--fgc-blue); }
.ct-header .header-menu-1 > ul > li > .ct-menu-link {
	transition: color var(--fgc-t) ease, translate var(--fgc-t) var(--fgc-ease);
}
.ct-header .header-menu-1 > ul > li > .ct-menu-link::after { height: 4px; border-radius: 4px; transition: transform var(--fgc-t) var(--fgc-ease); }
.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover,
.ct-header .header-menu-1 > ul > li > .ct-menu-link:focus-visible,
.ct-header .header-menu-1 > ul > li:focus-within > .ct-menu-link { color: var(--nav-text); }
@media (hover: hover) {
	.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover { translate: 0 -1px; }
}
/* Dropdown arrow turns when the dropdown is open */
.ct-header .header-menu-1 .ct-toggle-dropdown-desktop svg { transition: transform var(--fgc-t) var(--fgc-ease); }
.ct-header .header-menu-1 > ul > li:is(:hover, :focus-within, .ct-active) > .ct-menu-link .ct-toggle-dropdown-desktop svg { transform: rotate(180deg); }
/* Dropdown: fades in and settles 8px down */
.ct-header .header-menu-1 .menu-item-has-children > .sub-menu {
	transform: translateY(8px);
	transition: opacity var(--fgc-t) ease, transform var(--fgc-t) var(--fgc-ease), visibility var(--fgc-t);
}
.ct-header .header-menu-1 .menu-item-has-children:is(:hover, :focus-within, .ct-active) > .sub-menu { transform: none; }
/* Submenu items: soft background and a small accent bar */
.ct-header .header-menu-1 .sub-menu .ct-menu-link {
	transition: background-color var(--fgc-t-fast) ease, box-shadow var(--fgc-t-fast) ease;
}
.ct-header .header-menu-1 .sub-menu .ct-menu-link:hover,
.ct-header .header-menu-1 .sub-menu .ct-menu-link:focus-visible {
	box-shadow: inset 3px 0 0 var(--svc, var(--fgc-coral));
}
.svc > .ct-menu-link::before { transition: transform var(--fgc-t-fast) var(--fgc-ease); }
.svc > .ct-menu-link:hover::before,
.svc > .ct-menu-link:focus-visible::before,
#offcanvas .svc.current-menu-item > .ct-menu-link::before { transform: scale(1.3); }
/* Mobile panel: close button and submenu toggle */
#offcanvas .ct-toggle-close { transition: background-color var(--fgc-t-fast) ease; }
#offcanvas .ct-toggle-close svg { transition: transform var(--fgc-t) var(--fgc-ease); }
#offcanvas .ct-toggle-close:hover,
#offcanvas .ct-toggle-close:focus-visible { background: var(--fgc-ink); --theme-icon-color: var(--fgc-white); --theme-icon-hover-color: var(--fgc-white); }
#offcanvas .ct-toggle-close:hover svg { transform: rotate(90deg); }
#offcanvas .ct-toggle-dropdown-mobile svg { transition: transform var(--fgc-t) var(--fgc-ease); }
/* Room for the extra Testimonials item */
@media (min-width: 1200px) {
	.ct-header .header-menu-1 { --menu-items-spacing: 16px; }
	.ct-header .header-menu-1 > ul > li > .ct-menu-link { font-size: 15px; }
}
@media (min-width: 1000px) and (max-width: 1199.98px) {
	.ct-header .header-menu-1 { --menu-items-spacing: 11px; }
	.ct-header .header-menu-1 > ul > li > .ct-menu-link { font-size: 14.5px; }
}

/* ---------- 3. Header scroll state (class added by a tiny script) ---------- */
#header [data-row*="middle"] { transition: box-shadow var(--fgc-t) ease; }
.fgc-scrolled #header [data-row*="middle"] { box-shadow: var(--fgc-shadow); }
#header .site-logo-container img { transform-origin: left center; transition: transform var(--fgc-t) var(--fgc-ease); }
@media (min-width: 1000px) {
	.fgc-scrolled #header .site-logo-container img { transform: scale(0.9); }
}

/* ---------- 4. Cards, CTA, buttons, images ---------- */
.fgc-card::before { transition: height var(--fgc-t) var(--fgc-ease); }
@media (hover: hover) {
	a.fgc-card:hover::before { height: 8px; }
	.fgc-cta:hover::before { height: 6px; }
	.fgc-journey__step:hover { translate: 0 -3px; }
	.elementor-button:hover,
	.ct-header [data-id="button"] .ct-button:hover { transform: translateY(-2px); }
	.fgc-btn--text .elementor-button:hover { transform: none; }
	.entries .entry-card .entry-title a::after {
		content: "\2192" / "";
		display: inline-block;
		margin-left: 6px;
		color: var(--fgc-coral);
		transition: transform var(--fgc-t-fast) var(--fgc-ease);
	}
	.entries .entry-card:hover .entry-title a::after { transform: translateX(4px); }
}
.fgc-cta::before { transition: height var(--fgc-t) var(--fgc-ease); }
.fgc-journey__step { transition: box-shadow var(--fgc-t-fast) ease, translate var(--fgc-t) var(--fgc-ease); }
.elementor-button:active,
.ct-header [data-id="button"] .ct-button:active { transform: translateY(1px); }
.fgc-btn--text .elementor-button {
	transition: color var(--fgc-t-fast) ease, text-decoration-color var(--fgc-t-fast) ease, text-underline-offset var(--fgc-t-fast) ease;
}
.fgc-btn--text .elementor-button:hover,
.fgc-btn--text .elementor-button:focus-visible { text-underline-offset: 3px; }
.entries .entry-card .ct-media-container { overflow: hidden; }
/* FAQ: icon turns as the plus becomes a minus */
.fgc-faq__icon { transition: background-color var(--fgc-t-fast) ease, transform var(--fgc-t) var(--fgc-ease); }
.fgc-faq[open] .fgc-faq__icon { transform: rotate(180deg); }
.fgc-faq__icon::before,
.fgc-faq__icon::after { transition: transform var(--fgc-t) var(--fgc-ease); }

/* FGC Lens steps: lift the content, never the connector */
.fgc-path__step > .elementor-element { transition: translate var(--fgc-t) var(--fgc-ease); }
.fgc-path__num .elementor-heading-title { transition: transform var(--fgc-t) var(--fgc-ease), box-shadow var(--fgc-t) ease; }
@media (hover: hover) {
	.fgc-path__step:hover > .elementor-element { translate: 0 -3px; }
	.fgc-path__step:hover .fgc-path__num .elementor-heading-title {
		transform: scale(1.08);
		box-shadow: 0 0 0 6px var(--fgc-white), 0 0 0 9px var(--step);
	}
}

/* ---------- 5. Scroll reveal (script adds data-fgc-rv, then .is-in) ---------- */
html.fgc-motion [data-fgc-rv] {
	transition-property: opacity, translate, scale, transform, box-shadow, border-color, background-color;
	transition-duration: var(--fgc-t-reveal), var(--fgc-t-reveal), var(--fgc-t-reveal), 0.25s, 0.25s, 0.25s, 0.2s;
	transition-timing-function: var(--fgc-ease);
	transition-delay: calc(var(--fgc-i, 0) * var(--fgc-step));
}
html.fgc-motion [data-fgc-rv]:not(.is-in) { opacity: 0; translate: 0 18px; }
html.fgc-motion [data-fgc-rv="head"]:not(.is-in) { translate: 0 12px; }
html.fgc-motion [data-fgc-rv="img"]:not(.is-in) { translate: none; scale: 0.97; }
html.fgc-motion [data-fgc-rv].is-done { transition-delay: 0s; }
/* Lens steps: number first, then title and text, then the connector */
html.fgc-motion .fgc-path__step[data-fgc-rv="path"]:not(.is-in) { opacity: 1; translate: none; }
html.fgc-motion [data-fgc-rv="path"] > .elementor-element {
	transition: opacity 0.45s ease, translate 0.5s var(--fgc-ease), scale 0.45s var(--fgc-ease);
	transition-delay: calc(var(--fgc-i, 0) * 140ms + 120ms);
}
html.fgc-motion [data-fgc-rv="path"] > .fgc-path__num { transition-delay: calc(var(--fgc-i, 0) * 140ms); }
html.fgc-motion [data-fgc-rv="path"]:not(.is-in) > .elementor-element { opacity: 0; translate: 0 12px; }
html.fgc-motion [data-fgc-rv="path"]:not(.is-in) > .fgc-path__num { translate: none; scale: 0.6; }
html.fgc-motion [data-fgc-rv="path"]:not(:last-child)::after { transition: transform 0.6s var(--fgc-ease) calc(var(--fgc-i, 0) * 140ms + 260ms); }
html.fgc-motion [data-fgc-rv="path"]:not(.is-in):not(:last-child)::after { transform: scaleX(0); }
@media (max-width: 999.98px) {
	html.fgc-motion [data-fgc-rv="path"]:not(.is-in):not(:last-child)::after { transform: scaleY(0); }
}
html.fgc-motion [data-fgc-rv="path"].is-done > .elementor-element,
html.fgc-motion [data-fgc-rv="path"].is-done::after { transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) {
	html.fgc-motion [data-fgc-rv],
	html.fgc-motion [data-fgc-rv] > .elementor-element { opacity: 1 !important; translate: none !important; scale: none !important; }
	html.fgc-motion [data-fgc-rv]::after { transform: none !important; }
}
@media print {
	html.fgc-motion [data-fgc-rv],
	html.fgc-motion [data-fgc-rv] > .elementor-element { opacity: 1 !important; translate: none !important; scale: none !important; }
}

/* ---------- 6. Heroes: short entrance on page load (CSS only) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.fgc-hero .fgc-breadcrumbs,
	.fgc-hero .fgc-eyebrow,
	.fgc-hero .elementor-widget-heading:has(h1),
	.fgc-hero .fgc-lead,
	.fgc-hero .fgc-actions,
	.fgc-hero .fgc-points .elementor-icon-list-item {
		animation: fgc-hero-in 0.55s var(--fgc-ease) both;
	}
	.fgc-hero .fgc-eyebrow { animation-delay: 0.04s; }
	.fgc-hero .elementor-widget-heading:has(h1) { animation-delay: 0.08s; }
	.fgc-hero .fgc-lead { animation-delay: 0.16s; }
	.fgc-hero .fgc-actions { animation-delay: 0.26s; }
	.fgc-hero .fgc-points .elementor-icon-list-item { animation-delay: 0.34s; }
	.fgc-hero .fgc-points .elementor-icon-list-item:nth-child(2) { animation-delay: 0.42s; }
	.fgc-hero .fgc-points .elementor-icon-list-item:nth-child(3) { animation-delay: 0.5s; }
	.fgc-hero--service::before,
	.page-id-1389 .fgc-hero::before { transform-origin: left center; animation: fgc-bar 0.7s var(--fgc-ease) 0.1s both; }
	@keyframes fgc-hero-in { from { opacity: 0; translate: 0 14px; } to { opacity: 1; translate: 0 0; } }
	@keyframes fgc-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}
/* Homepage illustration: the four shapes appear one after another, once (no loop) */
@media (min-width: 1000px) and (prefers-reduced-motion: no-preference) {
	.fgc-hero--home::after {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 300' fill='none'%3E%3Cstyle%3E.s{transform-box:fill-box;transform-origin:center;animation:p .6s cubic-bezier(.2,.7,.2,1) both}.b{animation-delay:.15s}.c{animation-delay:.3s}.d{animation-delay:.45s}.r{animation:f .9s ease .2s both}@keyframes p{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes f{from{opacity:0}to{opacity:1}}%3C/style%3E%3Cpath class='r' d='M60 240C140 240 150 190 160 150S250 60 300 42' stroke='%234A5068' stroke-width='2.5' stroke-dasharray='2 11' stroke-linecap='round'/%3E%3Ccircle class='s' cx='60' cy='240' r='44' fill='%23CF3836'/%3E%3Crect class='s b' x='118' y='150' width='84' height='84' rx='22' fill='%23FFBE1A'/%3E%3Cpath class='s c' d='M212 140V56a84 84 0 0 1 84 84z' fill='%230A7A6F'/%3E%3Ccircle class='s d' cx='300' cy='42' r='26' fill='%23FFF8EC' stroke='%232152C8' stroke-width='10'/%3E%3C/svg%3E");
	}
}

/* ---------- 7. Testimonials (FGC Site Core output) ---------- */
.fgc-testimonials-block .fgc-testimonials { padding: 0; }
.fgc-testimonials__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 999.98px) { .fgc-testimonials__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 689.98px) { .fgc-testimonials__grid { grid-template-columns: minmax(0, 1fr); } }
.fgc-testimonial {
	--t: var(--fgc-coral);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 32px 28px 28px;
	background: var(--fgc-white);
	box-shadow: inset 0 5px 0 var(--t) !important;
	transition: translate var(--fgc-t) var(--fgc-ease), box-shadow var(--fgc-t) ease, border-color var(--fgc-t) ease;
}
.fgc-testimonials__grid .fgc-testimonial:nth-child(4n+2) { --t: var(--fgc-sun); }
.fgc-testimonials__grid .fgc-testimonial:nth-child(4n+3) { --t: var(--fgc-teal); }
.fgc-testimonials__grid .fgc-testimonial:nth-child(4n+4) { --t: var(--fgc-blue); }
.fgc-testimonial[data-service="immigration-residence-permits"] { --t: var(--fgc-blue); }
.fgc-testimonial[data-service="career-employment"] { --t: var(--fgc-coral); }
.fgc-testimonial[data-service="education-study"] { --t: var(--fgc-sun); }
.fgc-testimonial[data-service="business-entrepreneurship"] { --t: var(--fgc-plum); }
.fgc-testimonial[data-service="relocation-integration"] { --t: var(--fgc-teal); }
.fgc-testimonial[data-service="consultation-documentation"] { --t: var(--fgc-ink); }
.fgc-testimonial[data-service="digital-marketing"] { --t: var(--fgc-blue); }
.fgc-testimonial__quote { color: var(--fgc-ink); }
.fgc-testimonial__quote::before {
	color: var(--fgc-plum);
	transform-origin: left top;
	transition: transform var(--fgc-t) var(--fgc-ease);
}
.fgc-testimonial__meta { padding-top: 16px; border-top: 1px solid var(--fgc-line); }
.fgc-testimonial__name { color: var(--fgc-ink); }
@media (hover: hover) {
	.fgc-testimonial:hover { translate: 0 -4px; border-color: var(--t); box-shadow: inset 0 7px 0 var(--t), var(--fgc-shadow) !important; }
	.fgc-testimonial:hover .fgc-testimonial__quote::before { transform: scale(1.12); }
}
/* Empty state: shown only while no approved, consented testimonial exists */
.fgc-testimonials-empty {
	position: relative;
	max-width: 760px;
	padding: 28px 28px 28px 92px;
	border: 2px dashed var(--fgc-line);
	border-radius: var(--fgc-radius-lg);
	background: var(--fgc-cream);
}
.fgc-testimonials-empty::before {
	content: "\201C" / "";
	position: absolute;
	top: 24px;
	left: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--fgc-plum);
	color: var(--fgc-white);
	font-family: var(--fgc-font);
	font-size: 40px;
	font-weight: 800;
	line-height: 1;
	padding-top: 14px;
	box-sizing: border-box;
}
.fgc-testimonials-empty p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-bg-cream .fgc-testimonials-empty { background: var(--fgc-white); }
.fgc-testimonials-block:has(.fgc-testimonial) .fgc-testimonials-empty { display: none; }
@media (max-width: 689.98px) {
	.fgc-testimonials-empty { padding: 84px 22px 24px; }
	.fgc-testimonials-empty::before { top: 22px; left: 22px; }
}

/* ---------- 8. Location and contact details ---------- */
/* Footer address (opens Google Maps in a new tab) */
.fgc-footer-contact .fgc-footer-address { margin-top: 14px; }
.ct-footer .fgc-footer-address a {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	gap: 2px;
	min-height: 44px;
	padding-left: 32px;
	color: var(--fgc-white);
	line-height: 1.5;
	text-decoration: none;
}
.ct-footer .fgc-footer-address a::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 0;
	width: 22px;
	height: 22px;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFBE1A' d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.6A2.6 2.6 0 1 1 12 6.4a2.6 2.6 0 0 1 0 5.2z'/%3E%3C/svg%3E");
}
.fgc-footer-address__label {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fgc-sun);
}
.fgc-footer-address__cta {
	margin-top: 6px;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--fgc-sun);
	text-underline-offset: 4px;
}
.ct-footer .fgc-footer-address a:hover,
.ct-footer .fgc-footer-address a:focus-visible { text-decoration: none; color: var(--fgc-white); }
.ct-footer .fgc-footer-address a:hover .fgc-footer-address__cta,
.ct-footer .fgc-footer-address a:focus-visible .fgc-footer-address__cta { color: var(--fgc-sun); }

/* Contact page: Email, WhatsApp and Location with matching icon tiles */
.fgc-contact-item {
	--tile: var(--fgc-blue);
	--glyph: none;
	position: relative;
	min-height: 44px;
	padding-left: 60px;
}
.fgc-contact-item::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 0;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: var(--tile) var(--glyph) no-repeat center / 22px 22px;
}
.fgc-contact-item strong {
	display: block;
	margin-bottom: 2px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--fgc-ink);
}
.fgc-contact-item strong + br { display: none; }
.fgc-contact-item--email { --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm1 3.2V17h16V8.2l-8 5-8-5zM5.4 7l6.6 4.1L18.6 7z'/%3E%3C/svg%3E"); }
.fgc-contact-item--whatsapp { --tile: var(--fgc-teal); --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M12 3c-5 0-9 3.6-9 8 0 2.3 1.1 4.3 2.8 5.8L5 21l4.5-2.3c.8.2 1.6.3 2.5.3 5 0 9-3.6 9-8s-4-8-9-8z'/%3E%3C/svg%3E"); }
.fgc-contact-item--location { --tile: var(--fgc-coral); --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.6A2.6 2.6 0 1 1 12 6.4a2.6 2.6 0 0 1 0 5.2z'/%3E%3C/svg%3E"); }
.fgc-contact-details .fgc-map-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 700;
	color: var(--fgc-blue);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.fgc-contact-details .fgc-map-link::after {
	content: "\2192" / "";
	margin-left: 8px;
	transition: transform var(--fgc-t-fast) var(--fgc-ease);
}
.fgc-contact-details .fgc-map-link:hover::after,
.fgc-contact-details .fgc-map-link:focus-visible::after { transform: translateX(4px); }
.fgc-contact-note { color: var(--fgc-slate) !important; font-size: 15px !important; }


/* ==========================================================
   GUIDES & NEWS, SEARCH AND TESTIMONIALS (hub stage 2)
   Landing pages, archive topic navigation, Latest News,
   table of contents, news fact box and status labels,
   global search (header modal + results page), testimonials
   filters, cards, empty state and feedback invitation, and the
   internal testimonial sample label.
   FGC Spectrum colours only; no gradients. Newsletter styles
   removed (newsletter retired 10 Oct 2026).
   ========================================================== */

/* News hero accent: Blue for official information */
.fgc-hero--news { border-top: 6px solid var(--fgc-blue); }

/* "How to use" panels on /guides/ and /news/ */
.fgc-hub-howto { padding: 28px; }
.fgc-hub-howto h3 { margin: 0 0 12px; font-size: 20px; }
.fgc-hub-howto ul { margin: 0; }
.fgc-hub-howto li + li { margin-top: 8px; }
.fgc-hub-howto a { color: var(--fgc-blue); }

/* Topic grid (landing pages) */
.fgc-topic-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.fgc-card--topic { display: flex; flex-direction: column; gap: 8px; padding: 26px 22px 22px; background: var(--fgc-white); box-shadow: inset 0 0 0 1px var(--fgc-line); }
.fgc-card--topic .fgc-card__title { margin: 0; font-size: 19px; color: var(--fgc-ink); }
.fgc-card--topic .fgc-card__text { margin: 0; color: var(--fgc-slate); font-size: 15px; }
.fgc-card--topic .fgc-card__more { margin-top: auto; font-weight: 700; color: var(--fgc-blue); }
a.fgc-card--topic:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 3px; }

/* Official sources list on /news/ */
.fgc-source-list a { color: var(--fgc-blue); font-weight: 600; }

/* Chip rows (formats, "browse all", article endings, search shortcuts) */
.fgc-format-links, .fgc-search-shortcuts { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fgc-chip__count { font-weight: 600; opacity: 0.8; }

/* Archive topic navigation (/topics/guides/... and /topics/news/...) */
.fgc-topicnav { margin: 0 0 40px; }
.fgc-topicnav__back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 14px; font-weight: 700; color: var(--fgc-blue); text-decoration: none; }
.fgc-topicnav__back:hover, .fgc-topicnav__back:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.fgc-topicnav__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fgc-topicnav .fgc-chip { min-height: 40px; padding: 6px 14px; font-size: 15px; }
.fgc-topicnav .fgc-chip.is-current { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-topicnav--news .fgc-chip { --dot: var(--fgc-blue); }
.fgc-topicnav--guides .fgc-chip { --dot: var(--fgc-teal); }

/* End of article: continue reading */
.fgc-article-more { display: flex; flex-wrap: wrap; gap: 10px; margin: 40px 0 0; }
.fgc-article-more .fgc-chip { min-height: 40px; padding: 6px 14px; font-size: 15px; text-decoration: none; }

/* Table of contents in longer guides */
.fgc-toc {
	margin: 0 0 32px; padding: 20px 24px; border-left: 5px solid var(--fgc-blue);
	background: var(--fgc-mist); border-radius: 0 var(--fgc-radius) var(--fgc-radius) 0;
}
.fgc-toc__title { margin: 0 0 8px; font-weight: 800; color: var(--fgc-ink); }
.fgc-toc ol { margin: 0; padding-left: 20px; }
.fgc-toc li { margin: 4px 0; }
.fgc-toc a { color: var(--fgc-blue); }
.entry-content h2[id] { scroll-margin-top: 110px; }

/* News fact box */
.fgc-factbox {
	margin: 0 0 32px; padding: 20px 24px; border: 1px solid var(--fgc-line);
	border-top: 5px solid var(--fgc-blue); border-radius: var(--fgc-radius); background: var(--fgc-white);
}
.fgc-factbox dl { margin: 0; display: grid; gap: 10px; }
.fgc-factbox__row { display: grid; grid-template-columns: minmax(130px, 28%) 1fr; gap: 12px; align-items: baseline; }
.fgc-factbox__row dt { font-weight: 700; color: var(--fgc-ink); }
.fgc-factbox__row dd { margin: 0; color: var(--fgc-slate); }
.fgc-factbox__row a { color: var(--fgc-blue); }
.fgc-factbox__note { margin: 14px 0 0; font-size: 14px; color: var(--fgc-slate); }
@media (max-width: 689.98px) { .fgc-factbox__row { grid-template-columns: 1fr; gap: 2px; } }

/* Status labels (the text always states the status; colour is secondary) */
.fgc-status { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.6; background: var(--fgc-slate); color: var(--fgc-white); }
.fgc-status--confirmed { background: var(--fgc-teal); color: var(--fgc-white); }
.fgc-status--adopted { background: var(--fgc-blue); color: var(--fgc-white); }
.fgc-status--announcement { background: var(--fgc-sun); color: var(--fgc-ink); }
.fgc-status--proposal { background: var(--fgc-plum); color: var(--fgc-white); }
.fgc-status--commentary { background: var(--fgc-slate); color: var(--fgc-white); }

/* ---------- Latest News ---------- */
.fgc-news-list { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
@media (max-width: 999.98px) { .fgc-news-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 689.98px) { .fgc-news-list { grid-template-columns: 1fr; gap: 20px; } }
.fgc-news-list > li { display: flex; }
.fgc-news-card {
	--nc: var(--fgc-blue);
	position: relative; display: flex; flex-direction: column; width: 100%; overflow: hidden;
	background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius);
	transition: translate 0.25s var(--fgc-ease), box-shadow 0.25s ease, border-color 0.25s ease;
}
.fgc-news-card--work-employment-news, .fgc-news-card--fgc-news { --nc: var(--fgc-coral); }
.fgc-news-card--education-research-news { --nc: var(--fgc-sun); }
.fgc-news-card--business-economy-news { --nc: var(--fgc-plum); }
.fgc-news-card--integration-society-news, .fgc-news-card--finland-local-regional-news,
.fgc-news-card--housing-cost-of-living, .fgc-news-card--public-services-social-affairs { --nc: var(--fgc-teal); }
.fgc-news-card--digitalisation-technology { --nc: var(--fgc-ink); }
.fgc-news-card__media { display: block; aspect-ratio: 3 / 2; background: var(--fgc-mist); }
.fgc-news-card__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fgc-news-card__fallback {
	position: relative; display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 20px;
	background: var(--fgc-mist); box-shadow: inset 0 6px 0 var(--nc);
}
.fgc-news-card__fallback-label { max-width: 85%; font-size: 21px; font-weight: 800; line-height: 1.2; color: var(--fgc-ink); }
.fgc-news-card__dots {
	position: absolute; top: 24px; right: 64px; width: 12px; height: 12px; border-radius: 50%;
	background: var(--fgc-coral);
	box-shadow: 18px 0 0 var(--fgc-sun), 36px 0 0 var(--fgc-teal), 54px 0 0 var(--fgc-blue);
}
.fgc-news-card__body { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 24px; }
.fgc-news-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; font-size: 14px; color: var(--fgc-slate); }
.fgc-news-card__cat { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--fgc-ink); text-decoration: none; }
.fgc-news-card__cat::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--nc); box-shadow: 0 0 0 1px rgba(21, 26, 48, 0.15); }
.fgc-news-card__cat:hover, .fgc-news-card__cat:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.fgc-news-card .fgc-status { font-size: 13px; padding: 1px 9px; }
.fgc-news-card__title { margin: 0; font-size: 20px; line-height: 1.3; }
.fgc-news-card__title a { color: var(--fgc-ink); text-decoration: none; }
.fgc-news-card__title a:hover, .fgc-news-card__title a:focus-visible { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 4px; }
.fgc-news-card__title a:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 3px; }
.fgc-news-card__excerpt { margin: 0; color: var(--fgc-slate); font-size: 16px; }
/* Compact list (homepage) */
.fgc-news-list--compact .fgc-news-card { box-shadow: inset 0 5px 0 var(--nc); }
.fgc-news-list--compact .fgc-news-card__body { padding: 24px 22px; }
.fgc-news-list--compact .fgc-news-card__title { font-size: 19px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.fgc-news-card:hover { translate: 0 -4px; border-color: var(--fgc-ink); box-shadow: var(--fgc-shadow); }
	.fgc-news-list--compact .fgc-news-card:hover { box-shadow: inset 0 7px 0 var(--nc), var(--fgc-shadow); }
}
.fgc-news-empty { margin: 0; padding: 24px; border-radius: var(--fgc-radius); background: var(--fgc-mist); color: var(--fgc-slate); }
.fgc-news-section:not(:has(.fgc-news-list)) { display: none; }
.fgc-news-more { margin-top: 8px; }

/* ---------- Global search: header button and modal ---------- */
.ct-header-search { min-width: 44px; min-height: 44px; justify-content: center; }
.ct-header-search:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; border-radius: 8px; }

/* ---------- Search results page ---------- */
.fgc-search-head { padding: 72px 24px 40px; background: var(--fgc-cream); box-shadow: inset 0 -1px 0 var(--fgc-line); }
.fgc-search-head__inner, .fgc-search-body { max-width: 880px; margin: 0 auto; }
.fgc-search-head__title { margin: 8px 0 24px; font-size: clamp(30px, 4vw, 44px); line-height: 1.15; overflow-wrap: anywhere; }
.fgc-search-head__count { margin: 16px 0 0; color: var(--fgc-slate); font-weight: 600; }
.fgc-search-body { padding: 40px 24px 96px; }
.fgc-search-results { margin: 0; padding: 0; list-style: none; }
.fgc-result { padding: 24px 0; border-bottom: 1px solid var(--fgc-line); }
.fgc-result:first-child { padding-top: 0; }
.fgc-result__type { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--fgc-slate); }
.fgc-result__type::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--fgc-blue); flex: 0 0 9px; }
.fgc-result__title { margin: 0 0 8px; font-size: 22px; line-height: 1.3; }
.fgc-result__title a { color: var(--fgc-ink); text-decoration: none; }
.fgc-result__title a:hover, .fgc-result__title a:focus-visible { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 4px; }
.fgc-result__excerpt { margin: 0; color: var(--fgc-slate); }
.fgc-search-page mark { padding: 0 2px; border-radius: 3px; background: var(--fgc-sun); color: var(--fgc-ink); }
.fgc-search-empty { margin: 0 0 24px; padding: 28px; border-radius: var(--fgc-radius-lg); background: var(--fgc-mist); }
.fgc-search-empty h2 { margin: 0 0 8px; font-size: 24px; }
.fgc-search-empty p { margin: 0; color: var(--fgc-slate); }
.fgc-search-faqs { margin-top: 40px; padding: 28px; border-radius: var(--fgc-radius-lg); background: var(--fgc-mist); }
.fgc-search-faqs h2 { margin: 0 0 12px; font-size: 22px; }
.fgc-search-faqs ul { margin: 0; padding: 0; list-style: none; }
.fgc-search-faqs li + li { margin-top: 14px; }
.fgc-search-faqs a { font-weight: 700; color: var(--fgc-blue); }
.fgc-search-faqs p { margin: 4px 0 0; color: var(--fgc-slate); }
.fgc-search-pages { margin-top: 32px; }
.fgc-search-pages ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fgc-search-pages .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 2px solid var(--fgc-line); border-radius: 999px; color: var(--fgc-ink); font-weight: 700; text-decoration: none; }
.fgc-search-pages .page-numbers.current, .fgc-search-pages a.page-numbers:hover, .fgc-search-pages a.page-numbers:focus-visible { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-search-shortcuts { margin-top: 16px; }

/* ---------- Testimonials ---------- */
.fgc-tfilter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; }
.fgc-tfilter__btn {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; cursor: pointer;
	border: 2px solid var(--fgc-line); border-radius: 999px; background: var(--fgc-white); color: var(--fgc-ink);
	font: inherit; font-size: 15px; font-weight: 700; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.fgc-tfilter__btn[class*="svc-"]::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--svc); box-shadow: 0 0 0 1px rgba(21, 26, 48, 0.15); }
.fgc-tfilter__btn:hover { border-color: var(--fgc-ink); }
.fgc-tfilter__btn[aria-pressed="true"] { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-tfilter__btn:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
.fgc-testimonials__grid .fgc-testimonial[data-service] { --t: var(--svc, var(--fgc-coral)); }
.fgc-testimonial[hidden] { display: none !important; }
.fgc-testimonial__mark { display: none; }
.fgc-testimonial__service { display: inline-flex; align-items: center; gap: 6px; }
.fgc-testimonial[data-service] .fgc-testimonial__service::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--t); }

/* Honest empty state */
.fgc-tempty { max-width: 760px; padding: 36px 32px; border-radius: var(--fgc-radius-lg); background: var(--fgc-mist); box-shadow: inset 0 5px 0 var(--fgc-plum); }
.fgc-tempty--compact { padding: 28px; }
.fgc-tempty__title { margin: 0 0 8px; font-size: 22px; font-weight: 800; color: var(--fgc-ink); }
.fgc-tempty p { color: var(--fgc-slate); }
.fgc-tempty p:last-child { margin-bottom: 0; }
.fgc-tempty__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

/* Feedback invitation for genuine clients */
.fgc-invite {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px;
	padding: 36px 32px; border-radius: var(--fgc-radius-lg); background: var(--fgc-cream); box-shadow: inset 0 5px 0 var(--fgc-teal);
}
.fgc-invite__text { flex: 1 1 420px; }
.fgc-invite__text h2 { margin: 6px 0 10px; }
.fgc-invite__text p:last-child { margin-bottom: 0; color: var(--fgc-slate); }
.fgc-invite__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0; }
.fgc-invite__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 10px 24px; border-radius: 999px; background: var(--fgc-coral); color: var(--fgc-white); font-weight: 700; text-decoration: none; }
.fgc-invite__btn:hover { background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-invite__link { font-weight: 700; color: var(--fgc-blue); }
.fgc-invite__btn:focus-visible, .fgc-invite__link:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 3px; }

/* Internal fictional testimonial samples (administrator preview only) */
.fgc-testimonial--sample { outline: 3px dashed var(--fgc-coral); outline-offset: 4px; }
.fgc-sample-label {
	margin: 0 0 12px; padding: 6px 10px; background: var(--fgc-coral); color: var(--fgc-white);
	font-size: 12px; font-weight: 800; line-height: 1.35; letter-spacing: 0.02em; border-radius: 8px;
}


/* ==========================================================
   AUDIT FIXES (10 Oct 2026, evening): global search window,
   search buttons, narrow-phone header, cookie notice contrast,
   Latest News cards, illustrative feedback examples, filters.
   Checked in Chromium at 320-1440 px. FGC Spectrum colours only.
   ========================================================== */
/* ---------- Global search window (header search modal), refined ---------- */
#search-modal { background-color: rgba(21, 26, 48, 0.96) !important; }
#search-modal .ct-panel-actions {
	position: absolute; top: 0; right: 0; z-index: 2;
	padding: clamp(12px, 3vw, 28px) clamp(12px, 3vw, 32px) 0 0;
}
#search-modal .ct-toggle-close {
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; padding: 0; border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.7); background: transparent; color: var(--fgc-white);
	--theme-icon-color: var(--fgc-white); --theme-icon-hover-color: var(--fgc-ink);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
#search-modal .ct-toggle-close .ct-icon { width: 14px; height: 14px; fill: currentColor; }
#search-modal .ct-toggle-close:hover { background: var(--fgc-white); border-color: var(--fgc-white); color: var(--fgc-ink); }
#search-modal .ct-toggle-close:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 3px; }
#search-modal .ct-panel-content { padding: 88px 16px 40px; align-items: center; justify-content: center; }
#search-modal .ct-panel-content::before { content: none !important; display: none !important; }
#search-modal .ct-search-form {
	width: min(720px, 100%); max-width: 100%; margin: 0 auto; box-sizing: border-box;
	padding: 28px 28px 22px; border-radius: var(--fgc-radius-lg); background: var(--fgc-white);
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.55);
}
#search-modal .ct-search-form::before {
	content: "Search the website"; display: block; margin: 0 0 14px;
	font-family: var(--fgc-font); font-size: 20px; font-weight: 800; line-height: 1.3; color: var(--fgc-ink);
}
#search-modal .ct-search-form::after {
	content: "Press Enter to search. Press Esc to close."; display: block; margin: 12px 0 0; position: static; height: auto;
	font-family: var(--fgc-font); font-size: 14px; color: var(--fgc-slate);
}
#search-modal .ct-search-form-inner,
#search-modal .ct-search-form-inner:focus-within {
	display: flex; align-items: stretch; gap: 10px; height: auto; min-height: 0; padding: 0;
	border: 0 !important; outline: none !important; border-radius: 0; background: transparent !important; box-shadow: none !important;
}
#search-modal .ct-search-form .modal-field {
	flex: 1 1 auto; min-width: 0; height: 56px; margin: 0; padding: 0 18px;
	border: 2px solid var(--fgc-slate) !important; border-radius: 12px; outline: none;
	background: var(--fgc-white); color: var(--fgc-ink);
	font-family: var(--fgc-font); font-size: 18px; font-weight: 600; line-height: 1.2;
}
#search-modal .ct-search-form .modal-field::placeholder { color: var(--fgc-slate); opacity: 1; font-weight: 400; }
#search-modal .ct-search-form .modal-field:focus,
#search-modal .ct-search-form .modal-field:focus-visible { outline: 3px solid var(--fgc-blue) !important; outline-offset: 2px; border-color: var(--fgc-blue) !important; }
#search-modal .ct-search-form button[type="submit"] {
	position: static !important; inset: auto !important; transform: none !important;
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: auto !important; min-width: 56px; height: 56px; margin: 0; padding: 0 22px; aspect-ratio: auto !important;
	border: 0; border-radius: 12px; background: var(--fgc-coral) !important; color: var(--fgc-white) !important;
	font-family: var(--fgc-font); font-size: 16px; font-weight: 700;
	--theme-icon-color: var(--fgc-white); --theme-icon-size: 16px; --search-button-size: auto;
	transition: background-color 0.2s ease;
}
#search-modal .ct-search-form button[type="submit"]::after { content: "Search"; }
#search-modal .ct-search-form button[type="submit"] .ct-icon { width: 16px; height: 16px; fill: currentColor; }
#search-modal .ct-search-form button[type="submit"] .ct-ajax-loader { display: none; }
#search-modal .ct-search-form button[type="submit"]:hover { background: var(--fgc-ink) !important; }
#search-modal .ct-search-form button[type="submit"]:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
@media (max-width: 689.98px) {
	#search-modal .ct-panel-actions { padding: 14px 12px 0 0; }
	#search-modal .ct-panel-content { padding: 76px 12px 24px; justify-content: flex-start; }
	#search-modal .ct-search-form { padding: 20px 16px 16px; }
	#search-modal .ct-search-form::before { font-size: 18px; }
	#search-modal .ct-search-form .modal-field { height: 52px; font-size: 17px; padding: 0 14px; }
	#search-modal .ct-search-form button[type="submit"] { aspect-ratio: 1 / 1 !important; min-width: 52px; width: 52px !important; height: 52px; padding: 0 !important; }
	#search-modal .ct-search-form button[type="submit"]::after { content: none; }
	#search-modal .ct-search-form::after { content: "Press Enter to search."; }
}
@media (prefers-reduced-motion: reduce) {
	#search-modal, #search-modal * { transition: none !important; animation: none !important; }
}
html:has(#search-modal.active) .cookie-notification { visibility: hidden; }

/* Buttons that open the global search (search results page, 404 page) */
.fgc-search-refine { margin: 0; }
.fgc-search-refine__btn {
	display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 24px; cursor: pointer;
	border: 0; border-radius: 999px; background: var(--fgc-coral); color: var(--fgc-white);
	font-family: var(--fgc-font); font-size: 16px; font-weight: 700;
}
.fgc-search-refine__btn::before {
	content: ""; width: 16px; height: 16px; flex: 0 0 16px;
	border: 2px solid currentColor; border-radius: 50%; box-sizing: border-box;
	box-shadow: 5px 5px 0 -3px currentColor;
}
.fgc-search-refine__btn:hover { background: var(--fgc-ink); }
.fgc-search-refine__btn:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 3px; }
.fgc-404-page .fgc-search-head__count { color: var(--fgc-slate); font-weight: 400; margin: 0 0 20px; }

/* Cookie notice (desktop box): the inner container must not turn white behind white text */
.cookie-notification .container { background: transparent !important; color: var(--fgc-white) !important; }

/* Narrow phones: keep logo, search, Book button and menu apart (no overlap) */
@media (max-width: 389.98px) {
	#header [data-device="mobile"] div:has(> .ct-header-cta) { gap: 8px; }
	#header [data-device="mobile"] div:has(> .ct-header-cta) > * { margin-inline: 0 !important; }
	#header [data-device="mobile"] .ct-button.fgc-header-cta { padding-inline: 14px !important; font-size: 14px !important; }
	#header [data-device="mobile"] .ct-header-search { min-width: 40px; }
}
@media (max-width: 339.98px) {
	#header [data-device="mobile"] .ct-button.fgc-header-cta { padding-inline: 11px !important; font-size: 13px !important; }
}

/* ---------- Latest News card refinements ---------- */
.fgc-news-card__media { overflow: hidden; }
.fgc-news-card__img { aspect-ratio: 3 / 2; height: auto !important; }
.fgc-news-list .fgc-news-card__title { font-size: 20px !important; line-height: 1.3 !important; margin: 0 !important; }
.fgc-news-list--compact .fgc-news-card__title { font-size: 19px !important; }
.fgc-news-card__fallback-label { font-size: 22px; }

/* ---------- Illustrative (fictional) feedback examples ---------- */
.fgc-examples { margin-top: 40px; }
.fgc-examples__notice {
	max-width: 920px; margin: 0 0 28px; padding: 26px 30px;
	border-radius: var(--fgc-radius-lg); background: var(--fgc-mist); box-shadow: inset 6px 0 0 var(--fgc-plum);
}
.fgc-examples__badge {
	display: inline-block; margin: 0 0 10px; padding: 4px 12px; border-radius: 999px;
	background: var(--fgc-ink); color: var(--fgc-white); font-size: 13px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
}
.fgc-examples .fgc-examples__title { margin: 0 0 8px; font-size: clamp(24px, 3vw, 30px); line-height: 1.2; color: var(--fgc-ink); }
.fgc-examples--home .fgc-examples__title { font-size: 22px; }
.fgc-examples__text { margin: 0; color: var(--fgc-slate); font-size: 17px; }
.fgc-examples__grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.fgc-examples--home .fgc-examples__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 999.98px) { .fgc-examples--home .fgc-examples__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 689.98px) { .fgc-examples__grid, .fgc-examples--home .fgc-examples__grid { grid-template-columns: 1fr; } .fgc-examples__notice { padding: 22px 20px; } }
.fgc-example {
	--t: var(--svc, var(--fgc-coral));
	display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 26px 24px 22px;
	background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius);
	box-shadow: inset 0 5px 0 var(--t);
	transition: translate 0.25s var(--fgc-ease), box-shadow 0.25s ease, border-color 0.25s ease;
}
.fgc-example[hidden] { display: none !important; }
.fgc-example.svc-education { --t: var(--fgc-sun); }
.fgc-example__label {
	align-self: flex-start; margin: 0; padding: 3px 10px; border-radius: 999px;
	border: 1px dashed var(--fgc-slate); background: var(--fgc-cream); color: var(--fgc-ink);
	font-size: 13px; font-weight: 800; line-height: 1.4;
}
.fgc-examples .fgc-example__quote { margin: 0; padding: 0; border: 0; background: none; quotes: none; }
.fgc-examples .fgc-example__quote::before, .fgc-examples .fgc-example__quote::after { content: none; }
.fgc-example__quote p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--fgc-ink); font-style: normal; }
.fgc-example__quote p::before { content: "\201C"; }
.fgc-example__quote p::after { content: "\201D"; }
.fgc-example__meta { display: flex; flex-direction: column; gap: 4px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--fgc-line); font-size: 14px; color: var(--fgc-slate); }
.fgc-example__who { font-weight: 700; color: var(--fgc-ink); }
.fgc-example__service { display: inline-flex; align-items: center; gap: 6px; }
.fgc-example__service::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--t); box-shadow: 0 0 0 1px rgba(21, 26, 48, 0.15); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.fgc-example:hover { translate: 0 -4px; border-color: var(--fgc-ink); box-shadow: inset 0 7px 0 var(--t), var(--fgc-shadow); }
}

/* Filter buttons (testimonials and examples): keep the theme's button colours out */
.fgc-testimonials .fgc-tfilter .fgc-tfilter__btn {
	background: var(--fgc-white) !important; color: var(--fgc-ink) !important; border: 2px solid var(--fgc-line) !important;
	min-height: 44px; padding: 8px 16px !important; border-radius: 999px !important; font-size: 15px; font-weight: 700; box-shadow: none !important;
}
.fgc-testimonials .fgc-tfilter .fgc-tfilter__btn:hover { border-color: var(--fgc-ink) !important; }
.fgc-testimonials .fgc-tfilter .fgc-tfilter__btn[aria-pressed="true"] { background: var(--fgc-ink) !important; color: var(--fgc-white) !important; border-color: var(--fgc-ink) !important; }
.fgc-testimonials .fgc-tfilter .fgc-tfilter__btn:focus-visible { outline: 3px solid var(--fgc-blue) !important; outline-offset: 2px; }

/* 1200-1279px: with the search icon added, the site name no longer fits beside the full menu */
@media (min-width: 1200px) and (max-width: 1279.98px) {
	.ct-header [data-device="desktop"] .site-title-container { display: none; }
}

/* Article endings: continue-reading links as chips (inside article content) */
.entry-content .fgc-article-more a.fgc-chip {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 16px;
	border: 2px solid var(--fgc-line); border-radius: 999px; background: var(--fgc-white);
	color: var(--fgc-ink); font-size: 15px; font-weight: 700; text-decoration: none;
}
.entry-content .fgc-article-more a.fgc-chip:hover,
.entry-content .fgc-article-more a.fgc-chip:focus-visible { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.entry-content .fgc-article-more a.fgc-chip:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
.fgc-status--plan { background: var(--fgc-ink); color: var(--fgc-white); }

/* =====================================================================
   NEW SERVICES (10 Oct 2026, evening): Immigration Decisions, Appeals & Supplements
   (Blue ring, Coral centre) and Local Services in Finland (Teal ring, Sun centre).
   Approved Spectrum colours only.
   ===================================================================== */
.svc-appeals { --svc: var(--fgc-blue); }
.svc-local { --svc: var(--fgc-teal); }
.svc-appeals > .ct-menu-link::before { background: var(--fgc-coral); box-shadow: inset 0 0 0 3px var(--fgc-blue); }
.svc-local > .ct-menu-link::before { background: var(--fgc-sun); box-shadow: inset 0 0 0 3px var(--fgc-teal); }
.svc-appeals .fgc-eyebrow--dot .elementor-heading-title::before { background: var(--fgc-coral); box-shadow: inset 0 0 0 3px var(--fgc-blue); }
.svc-local .fgc-eyebrow--dot .elementor-heading-title::before { background: var(--fgc-sun); box-shadow: inset 0 0 0 3px var(--fgc-teal); }
.fgc-svcnav a[href*="/services/immigration-decisions-appeals-supplements/"] { --svc: var(--fgc-blue); }
.fgc-svcnav a[href*="/services/immigration-decisions-appeals-supplements/"]::before { background: var(--fgc-coral); box-shadow: inset 0 0 0 3px var(--fgc-blue); }
.fgc-svcnav a[href*="/services/local-services-finland/"] { --svc: var(--fgc-teal); }
.fgc-svcnav a[href*="/services/local-services-finland/"]::before { background: var(--fgc-sun); box-shadow: inset 0 0 0 3px var(--fgc-teal); }

/* "On this page" navigation on longer service pages */
.fgc-pagenav { margin: 0; }
.fgc-pagenav__title { margin: 0 0 12px; font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fgc-slate); }
.fgc-pagenav ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fgc-pagenav li { margin: 0; }
.fgc-pagenav a.fgc-chip {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 16px;
	border: 2px solid var(--fgc-line); border-radius: 999px; background: var(--fgc-white);
	color: var(--fgc-ink); font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none;
	--dot: var(--svc, var(--fgc-coral));
}
.fgc-pagenav a.fgc-chip:hover,
.fgc-pagenav a.fgc-chip:focus-visible { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-pagenav a.fgc-chip:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
[id^="fgc-sec-"] { scroll-margin-top: 110px; }
@media (max-width: 999.98px) { [id^="fgc-sec-"] { scroll-margin-top: 24px; } }

/* Detailed service cards: paragraphs, lists and official links */
.fgc-card--detail .fgc-card__text p + p { margin-top: 12px; }
.fgc-card--detail .fgc-card__text ul { margin: 12px 0 0; padding-left: 20px; }
.fgc-card--detail .fgc-card__text li { margin: 4px 0; font-size: 16px; line-height: 1.5; color: var(--fgc-ink); }
.fgc-card--detail .fgc-card__text a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.fgc-card--detail .fgc-card__text a:hover { color: var(--fgc-ink); }
.fgc-card--detail .fgc-card__text a:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; border-radius: 2px; }
.fgc-card--detail .fgc-card__text .fgc-card__source { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--fgc-line); font-size: 15px; color: var(--fgc-slate); }
.fgc-card--detail .fgc-card__text .fgc-card__source a { font-weight: 600; }

/* Overview text and callout links on the new pages */
.fgc-overview__text a,
.fgc-split__text a,
.fgc-process-note a,
.fgc-callout__text a { color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.fgc-overview__text a:focus-visible,
.fgc-split__text a:focus-visible,
.fgc-process-note a:focus-visible,
.fgc-callout__text a:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
.fgc-callout--urgent .fgc-callout__text p + p { margin-top: 10px; }

/* Split section extras (title and text above the checklist) */
.fgc-split__title .elementor-heading-title { margin: 0 0 16px; font-size: 22px; font-weight: 700; color: var(--fgc-ink); }
.fgc-split__text p { margin: 0 0 12px; }
.fgc-process-note { max-width: 860px; }
.fgc-process-note p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--fgc-ink); }

/* New service pages: eyebrow labels in the service accent so small text meets WCAG AA (4.5:1) on Mist and Cream; Sun stays on dark panels */
.svc-appeals .fgc-eyebrow .elementor-heading-title { color: var(--fgc-blue); }
.svc-local .fgc-eyebrow .elementor-heading-title { color: var(--fgc-teal); }
.svc-appeals.fgc-dark .fgc-eyebrow .elementor-heading-title,
.svc-appeals .fgc-dark .fgc-eyebrow .elementor-heading-title,
.svc-local.fgc-dark .fgc-eyebrow .elementor-heading-title,
.svc-local .fgc-dark .fgc-eyebrow .elementor-heading-title { color: var(--fgc-sun); }

/* Key word highlight in headings (10 Oct 2026): coloured text, no underline marker.
   Colour follows the topic: . All pass 3:1 for large text on White, Cream and Mist. */
.fgc-hl { text-decoration: none; background: none; color: var(--fgc-hl, var(--fgc-coral)); }
.fgc-hl--coral { --fgc-hl: var(--fgc-coral); }
.fgc-hl--blue { --fgc-hl: var(--fgc-blue); }
.fgc-hl--teal { --fgc-hl: var(--fgc-teal); }
.fgc-hl--plum { --fgc-hl: var(--fgc-plum); }
.fgc-dark .fgc-hl { --fgc-hl: var(--fgc-sun); }


/* Footer legal links (Privacy Policy, Terms of Service, Disclaimer): White text; on hover/focus a Coral underline slides in (no layout shift). Current page stays Sun. */
.ct-footer [data-row*="bottom"] .menu .ct-menu-link {
	color: var(--fgc-white);
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.ct-footer [data-row*="bottom"] .menu .ct-menu-link:hover,
.ct-footer [data-row*="bottom"] .menu .ct-menu-link:focus-visible {
	color: var(--fgc-white);
	text-decoration-line: underline;
	text-decoration-color: var(--fgc-coral);
}
.ct-footer [data-row*="bottom"] .menu .ct-menu-link[aria-current="page"]:hover,
.ct-footer [data-row*="bottom"] .menu .ct-menu-link[aria-current="page"]:focus-visible { text-decoration-color: var(--fgc-sun); }
.ct-footer [data-row*="bottom"] .menu .ct-menu-link:focus-visible { outline: 2px solid var(--fgc-sun); outline-offset: 2px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) { .ct-footer [data-row*="bottom"] .menu .ct-menu-link { transition: none; } }

/* ===== Main navigation: active page + coloured hover backgrounds (10 Oct 2026) ===== */
.ct-header .header-menu-1 > ul > li { --nav-on: var(--fgc-white); }
.ct-header .header-menu-1 > ul > li:nth-child(4n+2) { --nav-on: var(--fgc-ink); }
.ct-header .header-menu-1 > ul > li > .ct-menu-link { isolation: isolate; }
.ct-header .header-menu-1 > ul > li > .ct-menu-link::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: calc(var(--menu-items-spacing, 22px) / 2 - 10px);
	right: calc(var(--menu-items-spacing, 22px) / 2 - 10px);
	top: 50%;
	height: 40px;
	border-radius: 10px;
	background: transparent;
	transform: translateY(-50%) !important;
	opacity: 1 !important;
	width: auto !important;
	transition: background-color var(--fgc-t-fast, 0.15s) ease;
}
/* Lens-colour bar for the active page (Blocksy's padding variable is a shorthand, so position from the spacing) */
.ct-header .header-menu-1 > ul > li > .ct-menu-link::after { left: calc(var(--menu-items-spacing, 22px) / 2); right: calc(var(--menu-items-spacing, 22px) / 2); bottom: calc(50% - 17px); height: 3px; }
/* Hover / keyboard focus: solid pill in the item's Lens colour */
.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover,
.ct-header .header-menu-1 > ul > li > .ct-menu-link:focus-visible,
.ct-header .header-menu-1 > ul > li:is(:hover, .ct-active) > .ct-menu-link { color: var(--nav-on) !important; translate: none; }
.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover::before,
.ct-header .header-menu-1 > ul > li > .ct-menu-link:focus-visible::before,
.ct-header .header-menu-1 > ul > li:is(:hover, .ct-active) > .ct-menu-link::before { background: var(--nav); }
.ct-header .header-menu-1 > ul > li > .ct-menu-link:hover::after,
.ct-header .header-menu-1 > ul > li:is(:hover, .ct-active) > .ct-menu-link::after { opacity: 0; }
.ct-header .header-menu-1 > ul > li > .ct-menu-link svg { fill: currentColor; }
/* Active page (or a page inside that section): Mist pill, bold text, Lens-colour bar */
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > .ct-menu-link { font-weight: 800; color: var(--fgc-ink); }
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > .ct-menu-link::before { background: var(--fgc-mist); }
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > .ct-menu-link::after { transform: scaleX(1); opacity: 1; }
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor):is(:hover, .ct-active) > .ct-menu-link::after { opacity: 0; }

/* Dropdown items: hover in the service colour; current page marked */
.ct-header .header-menu-1 .sub-menu li { --svc-on: var(--fgc-white); }
.ct-header .header-menu-1 .sub-menu li.svc-education,
.ct-header .header-menu-1 .sub-menu li.svc-consultation { --svc-on: var(--fgc-ink); }
.ct-header .header-menu-1 .sub-menu .ct-menu-link:hover,
.ct-header .header-menu-1 .sub-menu .ct-menu-link:focus-visible { background: var(--svc, var(--fgc-blue)); color: var(--svc-on, var(--fgc-white)) !important; box-shadow: none; }
.ct-header .header-menu-1 .sub-menu .svc-consultation > .ct-menu-link:hover,
.ct-header .header-menu-1 .sub-menu .svc-consultation > .ct-menu-link:focus-visible { background: var(--fgc-sun); }
.ct-header .header-menu-1 .sub-menu .svc > .ct-menu-link:hover::before,
.ct-header .header-menu-1 .sub-menu .svc > .ct-menu-link:focus-visible::before { background: currentColor; box-shadow: none; }
.ct-header .header-menu-1 .sub-menu li:not(.svc) > .ct-menu-link:hover,
.ct-header .header-menu-1 .sub-menu li:not(.svc) > .ct-menu-link:focus-visible { background: var(--fgc-blue); color: var(--fgc-white) !important; }
.ct-header .header-menu-1 .sub-menu :is(.current-menu-item, .current_page_item) > .ct-menu-link { background: var(--fgc-mist); font-weight: 800; box-shadow: inset 4px 0 0 var(--svc, var(--fgc-coral)); }
.ct-header .header-menu-1 .sub-menu :is(.current-menu-item, .current_page_item) > .ct-menu-link:hover { box-shadow: none; }

/* Mobile menu: current page and hover */
#offcanvas .mobile-menu .ct-menu-link { border-radius: 10px; padding-inline: 12px; transition: background-color var(--fgc-t-fast, 0.15s) ease; }
#offcanvas .mobile-menu .ct-menu-link:hover { background: var(--fgc-cream); color: var(--fgc-ink); }
#offcanvas .mobile-menu :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent) > .ct-menu-link,
#offcanvas .mobile-menu :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent) > .ct-sub-menu-parent > .ct-menu-link { background: var(--fgc-mist); color: var(--fgc-ink); font-weight: 800; box-shadow: inset 4px 0 0 var(--svc, var(--fgc-coral)); }
@media (prefers-reduced-motion: reduce) {
	.ct-header .header-menu-1 > ul > li > .ct-menu-link::before, #offcanvas .mobile-menu .ct-menu-link { transition: none; }
}

/* ===== Mobile header: full "Book Consultation" button ===== */
@media (max-width: 689.98px) {
	#header [data-device="mobile"] .site-title.ct-hidden-sm { display: block !important; }
	#header [data-device="mobile"] .site-branding { column-gap: 8px !important; gap: 8px !important; min-width: 0; }
	#header [data-device="mobile"] .site-branding > * { margin: 0 !important; }
	#header [data-device="mobile"] .site-title-container { min-width: 0; }
	#header [data-device="mobile"] .site-title { font-size: 15px; line-height: 1.15; letter-spacing: -0.01em; max-width: 7.8em; }
}
@media (max-width: 559.98px) {
	#header [data-device="mobile"] div:has(> .ct-header-cta) { gap: 6px; }
	#header [data-device="mobile"] div:has(> .ct-header-cta) > * { margin-inline: 0 !important; }
	#header [data-device="mobile"] .ct-header-search { min-width: 36px; }
	#header [data-device="mobile"] .ct-button.fgc-header-cta { font-size: 14px !important; padding-inline: 14px !important; white-space: nowrap; }
	#header [data-device="mobile"] .ct-button.fgc-header-cta::after { content: none; }
}
/* Small phones: the button gets its own full-width row under the logo row */
@media (max-width: 479.98px) {
	#header [data-device="mobile"] [data-row="middle"] { height: auto; --height: auto; }
	#header [data-device="mobile"] [data-row="middle"] > .ct-container { display: flex; flex-wrap: wrap; align-items: center; column-gap: 6px; row-gap: 10px; height: auto; min-height: 0; padding-top: 10px; padding-bottom: 12px; }
	#header [data-device="mobile"] [data-row="middle"] [data-column="start"] { flex: 1 1 0; min-width: 0; }
	#header [data-device="mobile"] [data-row="middle"] [data-column="end"],
	#header [data-device="mobile"] [data-row="middle"] [data-column="end"] > [data-items] { display: contents; }
	#header [data-device="mobile"] .ct-header-search { order: 2; }
	#header [data-device="mobile"] .ct-header-trigger { order: 3; }
	#header [data-device="mobile"] .ct-header-cta { order: 4; flex: 0 0 100%; margin: 0 !important; }
	#header [data-device="mobile"] .ct-header-cta .ct-button.fgc-header-cta { display: flex; width: 100%; min-height: 44px; justify-content: center; font-size: 15px !important; }
	#header [data-device="mobile"] .site-title { max-width: none; }
	html { scroll-padding-top: calc(var(--admin-bar, 0px) + 140px); }
}
@media (max-width: 359.98px) {
	#header [data-device="mobile"] .site-title { font-size: 14px; }
}
/* Hovering the active item: switch to the solid hover pill so text stays readable */
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor):is(:hover, .ct-active) > .ct-menu-link::before,
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > .ct-menu-link:focus-visible::before { background: var(--nav); }
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor):is(:hover, .ct-active) > .ct-menu-link { color: var(--nav-on) !important; }

/* =====================================================================
   HEADER MAIN ROW ON INK #151A30 (10 Oct 2026, owner request)
   Matches the Ink top bar, footer and dark panels. White text; Lens hover pills;
   active page = Slate pill; logo on a white tile as in the footer; Sun focus rings.
   ===================================================================== */
.ct-header [data-row*="middle"] { background-color: var(--fgc-ink) !important; }
.ct-header [data-row*="top"] { box-shadow: inset 0 -1px 0 var(--fgc-slate); }
/* Logo on a white tile (same treatment as the footer brand) */
#header .site-logo-container img { box-sizing: border-box; padding: 4px; border-radius: 12px; background: var(--fgc-white); }
/* Company name */
.ct-header .site-title a,
.ct-header .site-title a:hover { color: var(--fgc-white); }
.ct-header .site-title a:focus-visible,
#header .site-logo-container:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 3px; border-radius: 6px; }
/* Top-level menu links */
.ct-header .header-menu-1 > ul > li > .ct-menu-link { color: var(--fgc-white); }
.ct-header .header-menu-1 > ul > li > .ct-menu-link:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 2px; border-radius: 10px; }
.ct-header .header-menu-1 .ct-toggle-dropdown-desktop-ghost:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 2px; border-radius: 6px; }
/* Active page: Slate pill, White bold text, Lens-colour bar */
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > .ct-menu-link { color: var(--fgc-white); }
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > .ct-menu-link::before { background: var(--fgc-slate); }
/* Hovering the active item still shows its solid Lens pill */
.ct-header .header-menu-1 > ul > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor):is(:hover, .ct-active) > .ct-menu-link::before { background: var(--nav); }
/* Search and menu icons */
.ct-header .ct-header-search,
.ct-header [data-id="trigger"].ct-header-trigger,
.ct-header button.ct-header-trigger { --theme-icon-color: var(--fgc-white); --theme-icon-hover-color: var(--fgc-sun); color: var(--fgc-white); }
.ct-header .ct-header-search:focus-visible,
.ct-header .ct-header-trigger:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 2px; border-radius: 8px; }
/* Book Consultation: Coral; on hover Sun with Ink text (the old Ink hover would vanish on Ink) */
.ct-header [data-id="button"] .ct-button:hover,
.ct-header [data-id="button"] .ct-button:focus-visible { background-color: var(--fgc-sun); color: var(--fgc-ink); }
.ct-header [data-id="button"] .ct-button:focus-visible { outline: 3px solid var(--fgc-white); outline-offset: 2px; }
/* Scrolled state: a stronger shadow reads better under a dark bar */
.fgc-scrolled #header [data-row*="middle"] { box-shadow: 0 6px 18px rgba(21, 26, 48, 0.28); }

/* ===== Dropdown bullets: emojis for Services and Resources items (10 Oct 2026).
   Replace the coloured dots. Static: no hover, focus or active effect on the emoji itself.
   Hidden from screen readers via the alt-text syntax ( / "" ). ===== */
:is(.svc, .svc-all, .res) > .ct-menu-link::before,
:is(.svc, .svc-all, .res) > .ct-menu-link:is(:hover, :focus, :focus-visible, :active)::before,
#offcanvas :is(.svc, .svc-all, .res).current-menu-item > .ct-menu-link::before,
.ct-header .header-menu-1 .sub-menu :is(.svc, .svc-all, .res) > .ct-menu-link:is(:hover, :focus-visible)::before {
	position: static !important;
	inset: auto !important;
	flex: 0 0 auto !important;
	width: 1.4em !important;
	height: auto !important;
	margin-right: 10px !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	outline: none !important;
	transform: none !important;
	transition: none !important;
	animation: none !important;
	filter: none !important;
	opacity: 1 !important;
	font-size: 17px;
	line-height: 1;
	text-align: center;
	color: initial;
}
.svc-immigration > .ct-menu-link::before { content: "🛂" / "" !important; }
.svc-appeals > .ct-menu-link::before { content: "⚖️" / "" !important; }
.svc-career > .ct-menu-link::before { content: "💼" / "" !important; }
.svc-education > .ct-menu-link::before { content: "🎓" / "" !important; }
.svc-business > .ct-menu-link::before { content: "🚀" / "" !important; }
.svc-relocation > .ct-menu-link::before { content: "🏡" / "" !important; }
.svc-local > .ct-menu-link::before { content: "📍" / "" !important; }
.svc-consultation > .ct-menu-link::before { content: "📋" / "" !important; }
.svc-digital > .ct-menu-link::before { content: "💻" / "" !important; }
.svc-all > .ct-menu-link::before { content: "🧭" / "" !important; }
.res-guides > .ct-menu-link::before { content: "📘" / "" !important; }
.res-news > .ct-menu-link::before { content: "📰" / "" !important; }
.res-faqs > .ct-menu-link::before { content: "❓" / "" !important; }
.res-community > .ct-menu-link::before { content: "🤝" / "" !important; }
:is(.svc, .svc-all, .res) > .ct-menu-link { display: flex; align-items: center; }

/* ===== FAQ plus/minus icons: Lens colours per question, a different colour when opened (10 Oct 2026) ===== */
.fgc-faqs .fgc-faq { --faq-c: var(--fgc-coral); --faq-bar: var(--fgc-white); --faq-open: var(--fgc-teal); --faq-open-bar: var(--fgc-white); }
.fgc-faqs .fgc-faq:nth-of-type(4n+2) { --faq-c: var(--fgc-sun); --faq-bar: var(--fgc-ink); --faq-open: var(--fgc-blue); --faq-open-bar: var(--fgc-white); }
.fgc-faqs .fgc-faq:nth-of-type(4n+3) { --faq-c: var(--fgc-teal); --faq-bar: var(--fgc-white); --faq-open: var(--fgc-plum); --faq-open-bar: var(--fgc-white); }
.fgc-faqs .fgc-faq:nth-of-type(4n+4) { --faq-c: var(--fgc-blue); --faq-bar: var(--fgc-white); --faq-open: var(--fgc-coral); --faq-open-bar: var(--fgc-white); }
.fgc-faqs .fgc-faq__icon { background: var(--faq-c, var(--fgc-coral)); }
.fgc-faqs .fgc-faq__icon::before,
.fgc-faqs .fgc-faq__icon::after { background: var(--faq-bar, var(--fgc-white)); }
.fgc-faqs .fgc-faq[open] .fgc-faq__icon { background: var(--faq-open, var(--fgc-ink)); }
.fgc-faqs .fgc-faq[open] .fgc-faq__icon::before,
.fgc-faqs .fgc-faq[open] .fgc-faq__icon::after { background: var(--faq-open-bar, var(--fgc-white)); }
.fgc-faqs .fgc-faq[open] { box-shadow: inset 4px 0 0 var(--faq-open, var(--fgc-coral)); }
.fgc-faqs .fgc-faq__q:focus-visible .fgc-faq__icon { outline: 3px solid var(--fgc-ink); outline-offset: 2px; }

/* =====================================================================
   CONTACT AND SOCIAL ICONS (10 Oct 2026): recognisable icons next to email, phone,
   WhatsApp, Facebook, Instagram, TikTok, YouTube and map links in the top bar, footer,
   community strip, contact page, notes and buttons. Official brand marks (Simple Icons)
   in their brand colours where they sit on light or dark backgrounds; inside coloured
   buttons they follow the button text colour so they stay legible. Decorative only.
   ===================================================================== */
a[href^="mailto:"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E"); }
a[href^="tel:"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }
a:is([href*="wa.me/"],[href*="chat.whatsapp.com"]) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%3E%3C/svg%3E"); }
a[href*="facebook.com"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E"); }
a[href*="instagram.com"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077'/%3E%3C/svg%3E"); }
a[href*="tiktok.com"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E"); }
a[href*="youtube.com"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E"); }
a[href*="google.com/maps"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E"); }
a:is([href*="wa.me/"],[href*="chat.whatsapp.com"]) { --ico-c: #25D366; }
a[href*="facebook.com"] { --ico-c: #0866FF; }
a[href*="instagram.com"] { --ico-c: #FF0069; }
a[href*="tiktok.com"] { --ico-c: #000000; }
a[href*="youtube.com"] { --ico-c: #FF0000; }
a[href*="google.com/maps"] { --ico-c: #EA4335; }
:is(.fgc-topbar, .fgc-footer-contact li:not(.fgc-footer-address), .fgc-hub-strip__links, .fgc-social-list, .fgc-panel__note, .fgc-cta__note, .fgc-contact-note) a:is([href^="mailto:"], [href^="tel:"], :is([href*="wa.me/"],[href*="chat.whatsapp.com"]), [href*="facebook.com"], [href*="instagram.com"], [href*="tiktok.com"], [href*="youtube.com"], [href*="google.com/maps"])::before,
.elementor-button:is([href^="mailto:"], [href^="tel:"], :is([href*="wa.me/"],[href*="chat.whatsapp.com"]), [href*="facebook.com"], [href*="instagram.com"], [href*="tiktok.com"], [href*="youtube.com"], [href*="google.com/maps"]) .elementor-button-text::before {
	content: "";
	display: inline-block;
	flex: 0 0 auto;
	width: 1.15em;
	height: 1.15em;
	margin-right: 0.45em;
	vertical-align: -0.2em;
	background-color: var(--ico-c, currentColor);
	-webkit-mask: var(--ico) center / contain no-repeat;
	mask: var(--ico) center / contain no-repeat;
}
:is(.fgc-topbar, .fgc-footer-contact li:not(.fgc-footer-address), .fgc-hub-strip__links, .fgc-social-list, .fgc-panel__note, .fgc-cta__note, .fgc-contact-note) a:is([href^="mailto:"], [href^="tel:"], :is([href*="wa.me/"],[href*="chat.whatsapp.com"]), [href*="facebook.com"], [href*="instagram.com"], [href*="tiktok.com"], [href*="youtube.com"], [href*="google.com/maps"]) { text-decoration-skip-ink: auto; }
/* Inside buttons the icon follows the button text colour */
.elementor-button:is([href^="mailto:"], [href^="tel:"], :is([href*="wa.me/"],[href*="chat.whatsapp.com"]), [href*="facebook.com"], [href*="instagram.com"], [href*="tiktok.com"], [href*="youtube.com"], [href*="google.com/maps"]) .elementor-button-text::before { background-color: currentColor; }
/* Dark backgrounds: TikTok's black mark and plain email/phone glyphs switch to White */
:is(.ct-header .fgc-topbar, .ct-footer [data-row*="middle"], .fgc-dark) a[href*="tiktok.com"]::before { background-color: var(--fgc-white); }
/* Community buttons: on hover the icon follows the White hover text */
.fgc-hub-btn:is(:hover, :focus-visible)::before { background-color: currentColor !important; }
.fgc-hub-btn { gap: 0; }
/* Footer address: Google-Maps-style red pin */
.ct-footer .fgc-footer-address a::before { background: none; background-color: #EA4335; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center / contain no-repeat; }
/* Footer socials: each network's own glyph colour (Blocksy's icon colour variable was overriding it) */
.ct-footer [data-id="socials"] .ct-social-box a[data-network="facebook"] { --fgc-brand: #0866FF; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="instagram"] { --fgc-brand: #FF0069; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="tiktok"] { --fgc-brand: #000000; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="youtube"] { --fgc-brand: #FF0000; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="whatsapp"] { --fgc-brand: #25D366; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network] svg,
.ct-footer [data-id="socials"] .ct-social-box a[data-network]:hover svg { fill: var(--fgc-brand) !important; }
/* Contact page tiles: official WhatsApp mark on WhatsApp green, mail and map pin */
.fgc-contact-item--email { --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E"); }
.fgc-contact-item--whatsapp { --tile: #25D366; --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%3E%3C/svg%3E"); }
.fgc-contact-item--location { --tile: #EA4335; --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E"); }
.fgc-contact-item--phone { --tile: var(--fgc-teal); --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFFFFF' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }


/* 'Based in Finland · Serving Worldwide': Finnish flag and globe instead of the dot (10 Oct 2026). The flag is a small image because Windows does not draw flag emojis. */
.fgc-topbar__place::before, #offcanvas .fgc-topbar__place::before { content: none !important; display: none !important; }
.fgc-flag-fi { display: inline-block; width: 1.3em; height: 0.8em; margin-right: 0.45em; vertical-align: -0.05em; border-radius: 2px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 11'%3E%3Crect width='18' height='11' fill='%23FFFFFF'/%3E%3Crect x='5' width='3' height='11' fill='%23002F6C'/%3E%3Crect y='4' width='18' height='3' fill='%23002F6C'/%3E%3C/svg%3E") center / cover no-repeat; box-shadow: 0 0 0 1px rgba(21, 26, 48, 0.25); }
.fgc-globe { display: inline-block; margin-right: 0.35em; font-size: 1.05em; line-height: 1; vertical-align: -0.05em; }
.fgc-place-part { white-space: nowrap; }


/* ---------- Empty topic pages: message instead of a search box (11 Oct 2026) ---------- */
.fgc-empty-topic { max-width: 640px; margin: 8px auto 0; padding: 24px 28px; background: #FFFFFF; border: 1px solid #DCDCE6; border-radius: 12px; text-align: center; }
.fgc-empty-topic__title { margin: 0 0 8px; font-weight: 700; font-size: 18px; color: #151A30; }
.fgc-empty-topic__links { margin: 0; color: #4A5068; }
.fgc-empty-topic__links a { color: #2152C8; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fgc-empty-topic__links a:hover, .fgc-empty-topic__links a:focus-visible { color: #151A30; }


/* ==========================================================
   CONTENT INTEGRATION (11 Oct 2026): package stages, preparation,
   good to know, How We Work timeline, comparison, service finder.
   FGC Spectrum tokens only.
   ========================================================== */

/* Package stages (service pages) */
.fgc-stages { counter-reset: none; list-style: none; margin: 0; padding: 0; display: grid; gap: 0; max-width: 920px; }
.fgc-stage { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 20px; margin: 0; padding: 0 0 28px; }
.fgc-stage:last-child { padding-bottom: 0; }
.fgc-stage::before { content: ""; position: absolute; left: 27px; top: 52px; bottom: 4px; width: 2px; background: var(--fgc-line); }
.fgc-stage:last-child::before { display: none; }
.fgc-stage__num { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--svc, var(--fgc-ink)); color: var(--fgc-white); font-size: 20px; font-weight: 800; line-height: 1; position: relative; z-index: 1; }
.svc-education .fgc-stage__num { color: var(--fgc-ink); }
.fgc-stage__body { padding: 20px 24px 22px; background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius); }
.fgc-stage__title { margin: 0 0 6px; font-size: 20px; line-height: 1.3; font-weight: 800; color: var(--fgc-ink); }
.fgc-stage__body p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-stage__body p + p { margin-top: 10px; }
.fgc-stage__dep { font-size: 15px !important; color: var(--fgc-slate) !important; }
.fgc-stage__dep strong { color: var(--fgc-ink); }
@media (max-width: 600px) {
	.fgc-stage { grid-template-columns: 40px 1fr; gap: 12px; }
	.fgc-stage__num { width: 40px; height: 40px; font-size: 17px; }
	.fgc-stage::before { left: 19px; top: 40px; }
	.fgc-stage__body { padding: 16px 18px 18px; }
}

/* Preparation + good to know */
.fgc-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.fgc-split--single { grid-template-columns: minmax(0, 720px); }
@media (max-width: 900px) { .fgc-split { grid-template-columns: 1fr; } }
.fgc-prep, .fgc-goodtoknow { position: relative; overflow: hidden; padding: 36px 32px 32px; background: var(--fgc-cream); border-radius: var(--fgc-radius); }
.fgc-prep::before, .fgc-goodtoknow::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--svc, var(--fgc-ink)); }
.fgc-goodtoknow { background: var(--fgc-cream); }
.fgc-goodtoknow .fgc-mf { background: var(--fgc-white); }
.fgc-bg-cream .fgc-goodtoknow { background: var(--fgc-white); }
.fgc-bg-cream .fgc-prep { background: var(--fgc-white); }
@media (max-width: 600px) { .fgc-prep, .fgc-goodtoknow { padding: 30px 22px 24px; } }
.fgc-prep__title { margin: 0 0 16px; font-size: 21px; line-height: 1.3; font-weight: 800; color: var(--fgc-ink); }
.fgc-prep__note { margin: 16px 0 0; font-size: 15px; line-height: 1.55; color: var(--fgc-ink); }
.fgc-prep__note a { color: var(--fgc-blue); font-weight: 700; }
.fgc-ticklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fgc-ticklist li { position: relative; margin: 0; padding-left: 32px; font-size: 17px; line-height: 1.5; color: var(--fgc-ink); }
.fgc-ticklist li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%; background: var(--svc, var(--fgc-teal)); }
.fgc-ticklist li::after { content: ""; position: absolute; left: 7px; top: 7px; width: 8px; height: 5px; border-left: 2px solid var(--fgc-white); border-bottom: 2px solid var(--fgc-white); transform: rotate(-45deg); }
.svc-education .fgc-ticklist li::after { border-color: var(--fgc-ink); }
.fgc-mf-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.fgc-mf { margin: 0; padding: 16px 18px; background: var(--fgc-white); border-radius: 12px; border: 1px solid var(--fgc-line); }
.fgc-mf p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--fgc-ink); }
.fgc-mf__assume { color: var(--fgc-slate) !important; }
.fgc-mf__fact { margin-top: 10px !important; }
.fgc-mf__tag { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.fgc-mf__assume .fgc-mf__tag { color: var(--fgc-coral); }
.fgc-mf__fact .fgc-mf__tag { color: var(--fgc-teal); }
.fgc-mf-list--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 900px) { .fgc-mf-list--grid { grid-template-columns: 1fr; } }
.fgc-linklist { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fgc-linklist a, .fgc-finder__link { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 16px; border: 2px solid var(--fgc-line); border-radius: 999px; background: var(--fgc-white); color: var(--fgc-ink); font-size: 15px; font-weight: 700; line-height: 1.25; text-decoration: none; }
.fgc-linklist a:hover, .fgc-linklist a:focus-visible, .fgc-finder__link:hover, .fgc-finder__link:focus-visible { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-linklist a:focus-visible, .fgc-finder__link:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }

/* Service finder (Services page) */
.fgc-finder { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .fgc-finder { grid-template-columns: 1fr; } }
.fgc-finder__item { margin: 0; padding: 20px 22px; background: var(--fgc-white); border: 1px solid var(--fgc-line); border-left: 5px solid var(--fgc-coral); border-radius: 0 12px 12px 0; }
.fgc-finder__item:nth-child(4n+2) { border-left-color: var(--fgc-sun); }
.fgc-finder__item:nth-child(4n+3) { border-left-color: var(--fgc-teal); }
.fgc-finder__item:nth-child(4n+4) { border-left-color: var(--fgc-blue); }
.fgc-finder__q { margin: 0 0 12px; font-size: 18px; line-height: 1.4; font-weight: 800; color: var(--fgc-ink); }
.fgc-finder__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }

/* How We Work timeline */
.fgc-tl-nav ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fgc-tl-nav li { margin: 0; }
.fgc-tl-nav a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 16px 6px 6px; border: 2px solid var(--fgc-line); border-radius: 999px; background: var(--fgc-white); color: var(--fgc-ink); font-size: 15px; font-weight: 700; text-decoration: none; }
.fgc-tl-nav a:hover, .fgc-tl-nav a:focus-visible { border-color: var(--fgc-ink); background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-tl-nav a:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
.fgc-tl-nav__num { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--fgc-ink); color: var(--fgc-white); font-size: 14px; font-weight: 800; }
.fgc-tl-nav li:nth-child(4n+1) .fgc-tl-nav__num { background: var(--fgc-coral); }
.fgc-tl-nav li:nth-child(4n+2) .fgc-tl-nav__num { background: var(--fgc-sun); color: var(--fgc-ink); }
.fgc-tl-nav li:nth-child(4n+3) .fgc-tl-nav__num { background: var(--fgc-teal); }
.fgc-tl-nav li:nth-child(4n+4) .fgc-tl-nav__num { background: var(--fgc-blue); }
.fgc-tl { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 20px; }
.fgc-tl__stage { margin: 0; padding: 28px 28px 26px; background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius); scroll-margin-top: 140px; transition: box-shadow 0.3s var(--fgc-ease), border-color 0.3s var(--fgc-ease); --stage: var(--fgc-coral); }
.fgc-tl__stage:nth-child(4n+2) { --stage: var(--fgc-sun); }
.fgc-tl__stage:nth-child(4n+3) { --stage: var(--fgc-teal); }
.fgc-tl__stage:nth-child(4n+4) { --stage: var(--fgc-blue); }
.fgc-tl__stage:target { border-color: var(--fgc-ink); box-shadow: 0 0 0 3px var(--stage), var(--fgc-shadow); }
@media (prefers-reduced-motion: reduce) { .fgc-tl__stage { transition: none; } }
.fgc-tl__head { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.fgc-tl__num { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: var(--stage); color: var(--fgc-white); font-size: 18px; font-weight: 800; }
.fgc-tl__stage:nth-child(4n+2) .fgc-tl__num { color: var(--fgc-ink); }
.fgc-tl__title { margin: 0; font-size: 22px; line-height: 1.3; font-weight: 800; color: var(--fgc-ink); }
.fgc-tl__lead { margin: 0 0 18px; font-size: 17px; line-height: 1.6; color: var(--fgc-ink); }
.fgc-roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fgc-roles > .fgc-role:nth-child(2):last-child { grid-column: span 2; }
@media (max-width: 900px) { .fgc-roles { grid-template-columns: 1fr; } .fgc-roles > .fgc-role:nth-child(2):last-child { grid-column: auto; } }
.fgc-role { padding: 16px 18px; border-radius: 12px; background: var(--fgc-cream); }
.fgc-role--you { background: var(--fgc-mist); }
.fgc-role--others { background: var(--fgc-white); border: 2px dashed var(--fgc-line); }
.fgc-role__label { margin: 0 0 8px; font-size: 13px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fgc-ink); }
.fgc-role--fgc .fgc-role__label::before, .fgc-role--you .fgc-role__label::before, .fgc-role--others .fgc-role__label::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 50%; background: var(--fgc-coral); vertical-align: 0; }
.fgc-role--you .fgc-role__label::before { background: var(--fgc-blue); }
.fgc-role--others .fgc-role__label::before { background: var(--fgc-slate); }
.fgc-role ul { margin: 0; padding-left: 20px; }
.fgc-role li, .fgc-role p { margin: 0 0 6px; font-size: 16px; line-height: 1.5; color: var(--fgc-ink); }
.fgc-role li:last-child, .fgc-role p:last-child { margin-bottom: 0; }
@media (max-width: 600px) { .fgc-tl__stage { padding: 22px 18px 20px; } .fgc-tl__title { font-size: 20px; } }

/* Comparison table */
.fgc-table-wrap { overflow-x: auto; border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius); background: var(--fgc-white); }
.fgc-compare { width: 100%; min-width: 560px; margin: 0; border-collapse: collapse; font-size: 16px; line-height: 1.5; color: var(--fgc-ink); }
.fgc-compare th, .fgc-compare td { padding: 16px 18px; border: 0; border-bottom: 1px solid var(--fgc-line); text-align: left; vertical-align: top; background: transparent; }
.fgc-compare tbody tr:last-child th, .fgc-compare tbody tr:last-child td { border-bottom: 0; }
.fgc-compare thead th { background: var(--fgc-ink); color: var(--fgc-white); font-size: 17px; font-weight: 800; }
.fgc-compare thead th:nth-child(2) { box-shadow: inset 0 -5px 0 var(--fgc-coral); }
.fgc-compare thead th:nth-child(3) { box-shadow: inset 0 -5px 0 var(--fgc-teal); }
.fgc-compare tbody th { width: 22%; font-weight: 800; background: var(--fgc-mist); }

@media (max-width: 640px) {
	.fgc-table-wrap { overflow: visible; border: 0; background: transparent; }
	.fgc-compare { min-width: 0; }
	.fgc-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.fgc-compare tr { display: block; margin: 0 0 16px; border: 1px solid var(--fgc-line); border-radius: 12px; overflow: hidden; background: var(--fgc-white); }
	.fgc-compare tbody th, .fgc-compare td { display: block; width: auto; border-bottom: 1px solid var(--fgc-line); }
	.fgc-compare tbody th { background: var(--fgc-ink); color: var(--fgc-white); }
	.fgc-compare td::before { content: attr(data-label); display: block; margin-bottom: 4px; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fgc-coral); }
	.fgc-compare td[data-label="Service package"]::before { color: var(--fgc-teal); }
	.fgc-compare td[data-label="Both"]::before { content: none; }
	.fgc-compare tr td:last-child { border-bottom: 0; }
}


/* ==========================================================
   SEARCH PAGER (11 Oct 2026) and FOOTER COMPANY DETAILS
   ========================================================== */
.fgc-pager { margin-top: 40px; padding: 22px 24px 24px; background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: var(--fgc-radius); box-shadow: var(--fgc-shadow); }
.fgc-pager__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 18px; }
.fgc-pager__status { margin: 0; font-size: 16px; line-height: 1.4; color: var(--fgc-ink); }
.fgc-pager__status strong { font-weight: 800; }
.fgc-pager__range { margin-left: 10px; padding-left: 10px; border-left: 2px solid var(--fgc-line); font-size: 14px; color: var(--fgc-slate); }
.fgc-pager__bar { flex: 1 1 180px; max-width: 320px; height: 6px; border-radius: 999px; background: var(--fgc-mist); overflow: hidden; }
.fgc-pager__bar span { display: block; height: 100%; border-radius: 999px; background: var(--fgc-teal); animation: fgc-pager-grow 0.6s var(--fgc-ease) both; transform-origin: left center; }
@keyframes fgc-pager-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.fgc-pager__row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.fgc-pager__pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.fgc-pager__pages li { margin: 0; padding: 0; }
.fgc-pager__num { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 10px; border-radius: 12px; color: var(--fgc-ink); font-size: 16px; font-weight: 700; line-height: 1; text-decoration: none; transition: background-color 0.2s var(--fgc-ease), color 0.2s var(--fgc-ease); }
a.fgc-pager__num:hover { background: var(--fgc-mist); color: var(--fgc-ink); }
.fgc-pager__num.current { background: var(--fgc-ink); color: var(--fgc-white); box-shadow: inset 0 -3px 0 var(--fgc-sun); }
.fgc-pager__num.dots { min-width: 28px; padding: 0; color: var(--fgc-slate); }
.fgc-pager__step { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0 20px; border: 2px solid var(--fgc-ink); border-radius: 999px; background: var(--fgc-white); color: var(--fgc-ink); font-size: 16px; font-weight: 700; line-height: 1; text-decoration: none; transition: background-color 0.2s var(--fgc-ease), color 0.2s var(--fgc-ease); }
a.fgc-pager__step:hover { background: var(--fgc-ink); color: var(--fgc-white); }
.fgc-pager__arrow { display: inline-block; font-size: 18px; transition: transform 0.2s var(--fgc-ease); }
a.fgc-pager__step--prev:hover .fgc-pager__arrow { transform: translateX(-3px); }
a.fgc-pager__step--next:hover .fgc-pager__arrow { transform: translateX(3px); }
.fgc-pager__step.is-disabled { border-color: var(--fgc-line); color: var(--fgc-slate); cursor: default; }
.fgc-pager a:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 2px; }
@media (max-width: 640px) {
	.fgc-pager { padding: 18px 16px 18px; }
	.fgc-pager__top { justify-content: center; text-align: center; }
	.fgc-pager__status { width: 100%; }
	.fgc-pager__range { display: block; margin: 4px 0 0; padding: 0; border: 0; }
	.fgc-pager__bar { max-width: none; flex-basis: 100%; }
	.fgc-pager__row { grid-template-columns: 1fr 1fr; }
	.fgc-pager__pages { grid-column: 1 / -1; grid-row: 1; }
	.fgc-pager__step { width: 100%; }
	.fgc-pager__pages { flex-wrap: nowrap; gap: 2px; }
	.fgc-pager__num { min-width: 36px; height: 40px; padding: 0 6px; }
	.fgc-pager__num.dots { min-width: 20px; }
}
@media (max-width: 380px) { .fgc-pager__pages { display: none; } }
@media (prefers-reduced-motion: reduce) { .fgc-pager__bar span { animation: none; } .fgc-pager__num, .fgc-pager__step, .fgc-pager__arrow { transition: none; } }

.fgc-footer-company { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--fgc-slate); }
.fgc-footer-company__id { margin: 0 0 10px; font-size: 15px; line-height: 1.5; color: var(--fgc-white); }
.fgc-footer-company__label { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fgc-line); }
.fgc-footer-company__value { font-weight: 800; letter-spacing: 0.02em; }
.fgc-footer-company__links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 0; list-style: none; }
.fgc-footer-company__links li { margin: 0; }
.fgc-footer-company__links a { color: var(--fgc-white); font-size: 15px; font-weight: 600; text-decoration: underline; text-decoration-color: var(--fgc-sun); text-underline-offset: 4px; }
.fgc-footer-company__links a::after { content: "\2197"; display: inline-block; margin-left: 4px; font-size: 13px; color: var(--fgc-sun); }
.fgc-footer-company__links a:hover, .fgc-footer-company__links a:focus-visible { color: var(--fgc-sun); }


/* =====================================================================
   PERMANENT RESIDENCE & CITIZENSHIP (11 Oct 2026): Plum service colour,
   Plum ring with a Sun centre, emoji in the Services dropdown.
   ===================================================================== */
.svc-pr { --svc: var(--fgc-plum); }
.svc-pr > .ct-menu-link::before { content: "🏛️" / "" !important; }
.svc-pr .fgc-eyebrow--dot .elementor-heading-title::before { background: var(--fgc-sun); box-shadow: inset 0 0 0 3px var(--fgc-plum); }
.svc-pr .fgc-eyebrow .elementor-heading-title { color: var(--fgc-plum); }
.svc-pr.fgc-dark .fgc-eyebrow .elementor-heading-title,
.svc-pr .fgc-dark .fgc-eyebrow .elementor-heading-title { color: var(--fgc-sun); }
/* ===== Services flyout (11 Oct 2026): Career, Education and Business open sideways from
   Immigration & Residence Permits. Parent stays marked while its flyout is open. ===== */
.ct-header .header-menu-1 .sub-menu .menu-item-has-children > .sub-menu { min-width: 280px; transform: translateX(-6px); }
.ct-header .header-menu-1 .sub-menu .menu-item-has-children.ct-active > .sub-menu { transform: none; }
.ct-header .header-menu-1 .sub-menu .menu-item-has-children.ct-active > .ct-sub-menu-parent > .ct-menu-link { background: var(--fgc-mist); box-shadow: inset 3px 0 0 var(--svc, var(--fgc-coral)); }
.ct-header .header-menu-1 .sub-menu .menu-item-has-children.ct-active > .ct-sub-menu-parent > .ct-menu-link:hover { background: var(--svc, var(--fgc-blue)); color: var(--svc-on, var(--fgc-white)) !important; }
.ct-header .header-menu-1 .sub-menu .ct-sub-menu-parent .ct-toggle-dropdown-desktop svg,
.ct-header .header-menu-1 .sub-menu .ct-sub-menu-parent .ct-menu-link > svg { flex: 0 0 auto; }
@media (prefers-reduced-motion: reduce) { .ct-header .header-menu-1 .sub-menu .menu-item-has-children > .sub-menu { transform: none; } }
/* Mobile menu: nested services indented under their parent */
#offcanvas .mobile-menu .sub-menu .sub-menu { margin-left: 14px; padding-left: 10px; border-left: 2px solid var(--fgc-line); }
/* Mobile menu: a parent item's link sits inside .ct-sub-menu-parent, so give it the same emoji bullet */
#offcanvas :is(.svc, .svc-all, .res) > .ct-sub-menu-parent > .ct-menu-link::before {
	content: "";
	display: block;
	position: static !important;
	flex: 0 0 auto !important;
	width: 1.4em !important;
	height: auto !important;
	margin-right: 10px !important;
	background: none !important;
	box-shadow: none !important;
	font-size: 17px;
	line-height: 1;
	text-align: center;
}
#offcanvas .svc-immigration > .ct-sub-menu-parent > .ct-menu-link::before { content: "🛂" / "" !important; }

.fgc-svcnav a[href*="/services/permanent-residence-citizenship/"] { --svc: var(--fgc-plum); }
.fgc-svcnav a[href*="/services/permanent-residence-citizenship/"]::before { background: var(--fgc-sun); box-shadow: inset 0 0 0 3px var(--fgc-plum); }


/* ===== FAMILY MEMBERS SERVICE (11 Oct 2026): Teal service colour, Teal ring with a Coral centre. ===== */
.svc-family { --svc: var(--fgc-teal); }
.svc-family > .ct-menu-link::before { content: "\1F46A" / "" !important; }
.svc-family .fgc-eyebrow--dot .elementor-heading-title::before { background: var(--fgc-coral); box-shadow: inset 0 0 0 3px var(--fgc-teal); }
.svc-family .fgc-eyebrow .elementor-heading-title { color: var(--fgc-teal); }
.svc-family.fgc-dark .fgc-eyebrow .elementor-heading-title,
.svc-family .fgc-dark .fgc-eyebrow .elementor-heading-title { color: var(--fgc-sun); }
.fgc-svcnav a[href*="/services/family-members/"] { --svc: var(--fgc-teal); }
.fgc-svcnav a[href*="/services/family-members/"]::before { background: var(--fgc-coral); box-shadow: inset 0 0 0 3px var(--fgc-teal); }
/* Situation cards that link to a pathway */
a.fgc-card--area { text-decoration: none; color: inherit; cursor: pointer; }
a.fgc-card--area:hover, a.fgc-card--area:focus-visible { transform: translateY(-4px); box-shadow: 0 0 0 2px var(--svc, var(--fgc-coral)), var(--fgc-shadow); }
a.fgc-card--area .fgc-card__text p:last-child::after { content: " \2192"; font-weight: 800; color: var(--svc, var(--fgc-coral)); }

/* =====================================================================
   CONSISTENT SERVICE DOTS (13 Oct 2026): every service dot is one solid
   circle in the service colour (no rings, no multi-colour), and every
   arrow in the service lists is Coral.
   ===================================================================== */
.fgc-svcnav .elementor-icon-list-item > a { --fgc-dot: var(--svc, var(--fgc-ink)); }
.fgc-svcnav .elementor-icon-list-item > a[href*="/services/consultation-documentation/"] { --fgc-dot: var(--fgc-sun); }
.fgc-svcnav .elementor-icon-list-item > a[href*="/services/digital-marketing/"] { --fgc-dot: var(--fgc-ink); }
.fgc-svcnav .elementor-icon-list-item > a::before {
	flex: 0 0 12px; width: 12px; height: 12px; border-radius: 50%;
	background: var(--fgc-dot) !important; box-shadow: none !important;
}
[class*="svc-"] .fgc-eyebrow--dot { --fgc-dot: var(--svc, var(--fgc-coral)); }
.svc-consultation .fgc-eyebrow--dot { --fgc-dot: var(--fgc-sun); }
.svc-digital .fgc-eyebrow--dot { --fgc-dot: var(--fgc-ink); }
[class*="svc-"] .fgc-eyebrow--dot .elementor-heading-title::before {
	background: var(--fgc-dot) !important; box-shadow: none !important;
}
.fgc-tfilter__btn[class*="svc-"]::before { box-shadow: none; }
.fgc-svcnav .elementor-icon-list-item > a::after { color: var(--fgc-coral) !important; }

/* =====================================================================
   SOCIAL BADGES (13 Oct 2026): full-colour round network logos in the top bar and footer.
   Files: FGC Site Core assets/social/*.svg (Simple Icons marks). Brand logos are the only
   place gradients and non-Spectrum colours appear.
   ===================================================================== */
.fgc-topbar__social { display: flex; align-items: center; gap: 8px; }
.fgc-topbar__social a.fgc-soc { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; text-decoration: none !important; transition: transform 0.2s ease; }
.fgc-topbar__social a.fgc-soc::before { content: none !important; display: none !important; }
.fgc-topbar__social a.fgc-soc img { display: block; width: 24px; height: 24px; }
.fgc-topbar__social a.fgc-soc:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 1px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .fgc-topbar__social a.fgc-soc:hover { transform: translateY(-2px); } }
.fgc-topbar { flex-wrap: wrap; row-gap: 8px; }
.fgc-topbar__contact { align-items: center; }
#offcanvas .fgc-topbar__contact { align-items: flex-start; }
#offcanvas .fgc-topbar__social { gap: 12px; margin-top: 4px; }
#offcanvas .fgc-topbar__social a.fgc-soc { width: 40px; height: 40px; }
#offcanvas .fgc-topbar__social a.fgc-soc img { width: 36px; height: 36px; }

.ct-footer [data-id="socials"] .ct-social-box a[data-network] { width: 44px; height: 44px; background: transparent center / 44px 44px no-repeat !important; box-shadow: none; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network] .ct-icon-container { visibility: hidden; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="facebook"] { background-image: url("/wp-content/plugins/fgc-site-core/assets/social/facebook.svg?v=1") !important; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="instagram"] { background-image: url("/wp-content/plugins/fgc-site-core/assets/social/instagram.svg?v=1") !important; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="tiktok"] { background-image: url("/wp-content/plugins/fgc-site-core/assets/social/tiktok.svg?v=1") !important; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="youtube"] { background-image: url("/wp-content/plugins/fgc-site-core/assets/social/youtube.svg?v=1") !important; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network="whatsapp"] { background-image: url("/wp-content/plugins/fgc-site-core/assets/social/whatsapp.svg?v=1") !important; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network]:hover,
.ct-footer [data-id="socials"] .ct-social-box a[data-network]:focus-visible { box-shadow: 0 0 0 3px var(--fgc-sun); }
/* Top bar (13 Oct 2026): email and phone sit under 'Based in Finland · Serving Worldwide'; WhatsApp text link removed (badge stays on the right). */
.fgc-topbar__info { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.fgc-topbar__info .fgc-topbar__contact { gap: 20px; flex-wrap: wrap; }
#offcanvas .fgc-topbar__info { gap: 12px; }
#header [data-row="top"] { --height: 64px; }
#header [data-row="top"] > .ct-container { height: 64px; min-height: 64px; box-sizing: border-box; }
#header [data-row="top"] .fgc-topbar__info { gap: 4px; }
/* Footer social hover (13 Oct 2026): no coloured ring on hover, a small bounce instead.
   The Sun ring stays for keyboard focus only. */
.ct-footer [data-id="socials"] .ct-social-box a[data-network]:hover { box-shadow: none !important; }
.ct-footer [data-id="socials"] .ct-social-box a[data-network]:focus-visible { box-shadow: 0 0 0 3px var(--fgc-sun) !important; }
@keyframes fgc-soc-bounce {
	0% { transform: translateY(0) scale(1) rotate(0); }
	35% { transform: translateY(-6px) scale(1.1) rotate(-6deg); }
	60% { transform: translateY(-3px) scale(1.08) rotate(5deg); }
	100% { transform: translateY(-4px) scale(1.08) rotate(0); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.ct-footer [data-id="socials"] .ct-social-box a[data-network]:hover { animation: fgc-soc-bounce 0.45s ease-out forwards; }
}

/* =====================================================================
   PHOTOGRAPHY (13 Oct 2026): hero photos and service-card photos.
   Licensed photos (Unsplash License) from the Media Library, 4:3 heroes and
   16:9 card crops. A solid offset block in the page or service colour frames
   each hero photo (no gradients). Text stays live HTML; photos never carry text.
   ===================================================================== */
.fgc-hero__media { position: relative; width: 100%; --fgc-frame: var(--svc, var(--fgc-sun)); }
.fgc-hero__media::before {
	content: "";
	position: absolute;
	inset: 16px 16px -16px -16px;
	border-radius: 24px;
	background: var(--fgc-frame);
}
.fgc-hero__media .elementor-widget-image { position: relative; z-index: 1; width: 100%; }
.fgc-hero__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 24px;
	background: var(--fgc-mist);
}
.page-id-1374 .fgc-hero__media { --fgc-frame: var(--fgc-sun); }
.page-id-1375 .fgc-hero__media,
.page-id-1623 .fgc-hero__media { --fgc-frame: var(--fgc-blue); }
.page-id-1383 .fgc-hero__media,
.page-id-1620 .fgc-hero__media { --fgc-frame: var(--fgc-teal); }
.page-id-1384 .fgc-hero__media,
.page-id-1389 .fgc-hero__media { --fgc-frame: var(--fgc-plum); }
.page-id-1385 .fgc-hero__media { --fgc-frame: var(--fgc-coral); }
.svc-digital .fgc-hero__media { --fgc-frame: var(--fgc-sun); }
.svc-consultation .fgc-hero__media { --fgc-frame: var(--fgc-sun); }

@media (min-width: 1000px) {
	.fgc-hero:has(.fgc-hero__media)::after { content: none; display: none; }
	.fgc-hero:has(.fgc-hero__media) > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 64px !important;
	}
	.fgc-hero:has(.fgc-hero__media) > .e-con-inner > .e-con:not(.fgc-hero__media) { width: auto !important; flex: 1 1 0 !important; min-width: 0; max-width: 680px; }
	.fgc-hero > .e-con-inner > .e-con.fgc-hero__media { width: min(42%, 480px) !important; flex: 0 0 auto !important; margin-right: 8px; }
}
@media (max-width: 999px) {
	.fgc-hero > .e-con-inner > .e-con.fgc-hero__media { margin: 36px 0 12px 12px; width: calc(100% - 12px) !important; max-width: 640px; }
	.fgc-hero__media::before { inset: 12px 12px -12px -12px; border-radius: 20px; }
	.fgc-hero__media img { aspect-ratio: 3 / 2; border-radius: 20px; }
	/* Book a consultation: keep the request form high on small screens */
	.page-id-1385 .fgc-hero__media { display: none; }
}
@media (prefers-reduced-motion: no-preference) {
	.fgc-hero__media { animation: fgc-hero-in 0.7s var(--fgc-ease) 0.22s both; }
}

/* Service cards with a photo: photo bleeds to the card edges under the colour bar,
   icon tile overlaps the photo. Photo is decorative (empty alt); the title names the card. */
.fgc-card--photo::before { z-index: 2; }
.fgc-card--photo > .fgc-card__media {
	margin: calc(-1 * var(--padding-top, 0px)) calc(-1 * var(--padding-right, 0px)) 0 calc(-1 * var(--padding-left, 0px)) !important;
	width: calc(100% + var(--padding-left, 0px) + var(--padding-right, 0px)) !important;
	max-width: none !important;
	overflow: hidden;
	line-height: 0;
}
.fgc-card--photo > .fgc-card__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: var(--fgc-mist);
	transition: transform 0.6s var(--fgc-ease);
}
.fgc-card--photo > .fgc-card__icon { position: relative; z-index: 2; margin-top: -42px !important; }
.fgc-card--photo > .fgc-card__icon .elementor-icon { box-shadow: 0 0 0 4px var(--svc-surface, var(--fgc-cream)); }
.fgc-bg-cream .fgc-card--photo > .fgc-card__icon .elementor-icon { box-shadow: 0 0 0 4px var(--fgc-white); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	a.fgc-card--photo:hover > .fgc-card__media img { transform: scale(1.05); }
}
@media (prefers-reduced-motion: no-preference) {
	a.fgc-card--photo:focus-visible > .fgc-card__media img { transform: scale(1.05); }
}
@media (max-width: 599px) {
	.fgc-card--photo > .fgc-card__media img { aspect-ratio: 2 / 1; }
}


/* =====================================================================
   BIG HERO PHOTOS, PHOTO BANDS AND VIDEO (13 Oct 2026, stage 2)
   Main pages (Home, Services, About, How We Work, Guides, News, Community):
   full-width photo hero with the heading on a Cream card. Service pages keep the
   side photo. Photo bands and silent videos add context inside sections.
   Solid colours only; the card's top stripe is the four-block Lens stripe.
   ===================================================================== */
.fgc-hero--big::before, .fgc-hero--big::after { content: none !important; display: none !important; }
.fgc-hero--big .fgc-hero__media::before { content: none; display: none; }
.fgc-hero--big .fgc-hero__media img { border-radius: 0; background: var(--fgc-ink); }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) {
	position: relative;
	z-index: 1;
	background: var(--fgc-cream);
	border-radius: 24px;
	box-shadow: 0 24px 60px rgba(21, 26, 48, 0.22);
	overflow: hidden;
}
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media)::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 6px;
	background: var(--fgc-lens);
}
@media (min-width: 1000px) {
	.e-con.fgc-hero--big { min-height: clamp(580px, 76vh, 780px); justify-content: center; }
	.fgc-hero--big > .e-con-inner { position: static; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; }
	.fgc-hero--big > .e-con-inner > .e-con.fgc-hero__media {
		position: absolute !important;
		inset: 0;
		width: 100% !important;
		max-width: none;
		height: 100%;
		margin: 0 !important;
		z-index: 0;
		animation: none;
	}
	.fgc-hero--big .fgc-hero__media .elementor-widget-image { position: absolute; inset: 0; height: 100%; }
	.fgc-hero--big .fgc-hero__media img { width: 100%; height: 100% !important; aspect-ratio: auto; object-fit: cover; object-position: var(--fgc-focus, 50% 50%); }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { flex: 0 1 620px !important; max-width: 620px; padding: 44px 44px 40px !important; }
}
@media (max-width: 999px) {
	.e-con.fgc-hero--big, .fgc-hero--big > .e-con-inner { padding-top: 0 !important; }
	.fgc-hero--big > .e-con-inner > .e-con.fgc-hero__media {
		order: -1;
		margin: 0 -24px 0 -24px !important;
		width: calc(100% + 48px) !important;
		max-width: none;
		animation: none;
	}
	.fgc-hero--big .fgc-hero__media img { aspect-ratio: 4 / 3; border-radius: 0; object-position: var(--fgc-focus, 50% 50%); }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { margin-top: -56px; padding: 32px 24px 28px !important; }
}
@media (min-width: 600px) and (max-width: 999px) {
	.fgc-hero--big .fgc-hero__media img { aspect-ratio: 16 / 9; }
}
.page-id-1384 .fgc-hero--big { --fgc-focus: 50% 35%; }
.page-id-1389 .fgc-hero--big { --fgc-focus: 30% 50%; }
.page-id-1383 .fgc-hero--big { --fgc-focus: 50% 45%; }

/* Photo bands inside sections: wide, rounded, optional location caption */
.fgc-media-band { width: 100%; margin-top: 8px; }
.fgc-photo-band img, .fgc-video__frame video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 21 / 9;
	object-fit: cover;
	border-radius: 24px;
	background: var(--fgc-mist);
}
.fgc-photo-band figure, .fgc-video { margin: 0; }
.fgc-photo-band .widget-image-caption, .fgc-video__caption {
	margin-top: 10px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--fgc-slate);
	text-align: left;
}
.fgc-photo-band .widget-image-caption::before, .fgc-video__caption::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--svc, var(--fgc-coral));
	vertical-align: 1px;
}
.fgc-dark .fgc-photo-band .widget-image-caption, .fgc-dark .fgc-video__caption { color: var(--fgc-mist); }
@media (max-width: 767px) {
	.fgc-photo-band img, .fgc-video__frame video { aspect-ratio: 3 / 2; border-radius: 20px; }
}

/* Silent video: poster first, Play/Pause button (keyboard and touch) */
.fgc-video__frame { position: relative; }
.fgc-video__toggle {
	position: absolute;
	right: 16px;
	bottom: 16px;
	display: none;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px 0 12px;
	border: 0;
	border-radius: 999px;
	background: var(--fgc-ink);
	color: var(--fgc-white);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 700;
	cursor: pointer;
}
.fgc-video.has-js .fgc-video__toggle { display: inline-flex; }
.fgc-video__toggle:hover { background: var(--fgc-coral); }
.fgc-video__toggle:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 3px; }
.fgc-video__icon { position: relative; width: 14px; height: 14px; }
.fgc-video__icon::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--fgc-white);
	clip-path: polygon(15% 0, 100% 50%, 15% 100%);
}
.fgc-video.is-playing .fgc-video__icon::before { clip-path: none; inset: 0 auto 0 1px; width: 4px; box-shadow: 7px 0 0 var(--fgc-white); }

/* =====================================================================
   HUMAN TOUCH (15 Oct 2026): fewer template patterns.
   - Small uppercase labels above section headings are hidden (the heading says it);
     kept on the home hero and inside cards. Service heroes already show breadcrumbs.
   - Hero points are plain text with ticks, not pills.
   - Information cards (not links) read as a simple list with a rule above each item
     instead of boxed tiles with icon blocks and colour bars.
   - No Lens stripe on the big hero card.
   Guides, News, posts, archives and search keep their existing look.
   ===================================================================== */
body:not(.page-id-1620, .page-id-1623, .single-post, .archive, .blog, .search) .elementor-widget-heading.fgc-eyebrow:not(.fgc-hero .fgc-eyebrow):not(.fgc-card .fgc-eyebrow) { display: none !important; }
body:not(.page-id-1620, .page-id-1623) .fgc-hero:has(.fgc-breadcrumbs) .elementor-widget-heading.fgc-eyebrow { display: none !important; }

.fgc-points .elementor-icon-list-items { gap: 6px 22px !important; }
.fgc-points .elementor-icon-list-item { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; }
.fgc-points .elementor-icon-list-text { font-weight: 600 !important; color: var(--fgc-slate) !important; }

body:not(.page-id-1620, .page-id-1623) :is(div.e-con.fgc-card, a.e-con.fgc-card--area):not(.fgc-card--photo) {
	background: transparent !important;
	border: 0 !important;
	border-top: 2px solid var(--fgc-line) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 20px 4px 4px 0 !important;
	transform: none !important;
}
body:not(.page-id-1620, .page-id-1623) :is(div.e-con.fgc-card, a.e-con.fgc-card--area):not(.fgc-card--photo)::before { content: none !important; display: none !important; }
body:not(.page-id-1620, .page-id-1623) :is(div.e-con.fgc-card, a.e-con.fgc-card--area):not(.fgc-card--photo) .fgc-card__icon .elementor-icon { width: 36px; height: 36px; border-radius: 10px; font-size: 16px; }
body:not(.page-id-1620, .page-id-1623) :is(div.e-con.fgc-card, a.e-con.fgc-card--area):not(.fgc-card--photo) .fgc-card__icon .elementor-icon svg { width: 16px; height: 16px; }
.fgc-dark div.e-con.fgc-card:not(.fgc-card--photo) { border-top-color: rgba(255, 255, 255, 0.22) !important; }

.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media)::before { content: none !important; display: none !important; }
/* Linked area cards: flat like the rest, title underlines on hover (15 Oct 2026) */
a.e-con.fgc-card--area:hover .fgc-card__title .elementor-heading-title, a.e-con.fgc-card--area:focus-visible .fgc-card__title .elementor-heading-title { text-decoration: underline; text-underline-offset: 3px; }

/* =====================================================================
   STAGE 3 PHOTOS AND HERO VIDEO (15 Oct 2026)
   Topic photos inside sections: beside stage lists (sticky on desktop),
   under the text column of two-column sections, a three-city strip on
   Local Services, and a full-HD background video in the Home hero.
   ===================================================================== */
.fgc-split-photo { margin-top: 28px; }
.fgc-split-photo img, .fgc-withphoto__img img, .fgc-strip-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 20px;
	background: var(--fgc-mist);
}
.fgc-split-photo figure, .fgc-withphoto__img figure, .fgc-strip-photo figure { margin: 0; }
.fgc-split-photo .widget-image-caption, .fgc-withphoto__img .widget-image-caption, .fgc-strip-photo .widget-image-caption {
	margin-top: 10px;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.45;
	color: var(--fgc-slate);
	text-align: left;
}
.fgc-strip-photo .widget-image-caption a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.fgc-strip-photo .widget-image-caption a:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 2px; }
.e-con.fgc-withphoto { gap: 48px !important; align-items: flex-start !important; flex-wrap: nowrap !important; }
.e-con.fgc-withphoto > .fgc-withphoto__main { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
.e-con.fgc-withphoto > .fgc-withphoto__media { flex: 0 0 34% !important; width: 34% !important; position: sticky; top: 120px; }
.e-con.fgc-photo-strip { gap: 20px !important; margin-top: 8px; flex-wrap: nowrap !important; }
.e-con.fgc-photo-strip > .elementor-widget { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
@media (max-width: 999px) {
	.e-con.fgc-withphoto { flex-direction: column !important; gap: 28px !important; }
	.e-con.fgc-withphoto > .fgc-withphoto__media { position: static; width: 100% !important; max-width: 640px; flex: none !important; }
	.fgc-withphoto__img img { aspect-ratio: 16 / 9; }
	.page-id-1386 .fgc-hero__media, .page-id-1387 .fgc-hero__media { display: none; }
}
@media (max-width: 767px) {
	.e-con.fgc-photo-strip { flex-direction: column !important; gap: 24px !important; }
	.fgc-split-photo img, .fgc-strip-photo img { aspect-ratio: 3 / 2; }
}
.page-id-1386 .fgc-hero__media { --fgc-frame: var(--fgc-teal); }
.page-id-1387 .fgc-hero__media { --fgc-frame: var(--fgc-blue); }

/* Home hero video: the poster image is shown first; the muted video fades in once it plays */
.fgc-video--hero, .fgc-video--hero .fgc-video__frame { position: relative; width: 100%; height: 100%; margin: 0; }
.fgc-video--hero .fgc-video__poster, .fgc-video--hero video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: 50% 50%;
	border-radius: 0 !important;
	aspect-ratio: auto !important;
	background: var(--fgc-ink);
}
.fgc-video--hero video { opacity: 0; transition: opacity 0.8s ease; }
.fgc-video--hero.has-played video { opacity: 1; }
.fgc-video--hero .fgc-video__toggle { right: 24px; bottom: 24px; z-index: 2; }
.fgc-hero--big .fgc-hero__media .elementor-widget-shortcode, .fgc-hero--big .fgc-hero__media .elementor-shortcode { height: 100%; }
@media (min-width: 1000px) {
	.fgc-hero--big .fgc-hero__media .elementor-widget-shortcode { position: absolute; inset: 0; }
}
@media (max-width: 999px) {
	.fgc-hero--big .fgc-video--hero .fgc-video__frame { height: auto; aspect-ratio: 4 / 3; }
	.fgc-video--hero .fgc-video__toggle { right: 16px; bottom: 72px; }
}
@media (min-width: 600px) and (max-width: 999px) {
	.fgc-hero--big .fgc-video--hero .fgc-video__frame { aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) {
	.fgc-video--hero video { transition: none; }
}
/* =====================================================================
   SECTION RHYTHM (15 Oct 2026)
   One vertical rhythm for every page section. When two sections in a row
   share the same background (class fgc-sec-same, set per page), the second
   one only adds a small top space, so there is no double gap.
   ===================================================================== */
:root { --fgc-sec-y: 88px; --fgc-sec-y-same: 24px; }
@media (max-width: 1024px) { :root { --fgc-sec-y: 72px; --fgc-sec-y-same: 16px; } }
@media (max-width: 767px) { :root { --fgc-sec-y: 52px; --fgc-sec-y-same: 8px; } }
.elementor > .e-con:not(.fgc-hero) { --padding-top: var(--fgc-sec-y) !important; --padding-bottom: var(--fgc-sec-y) !important; }
.elementor > .e-con.fgc-sec-same:not(.fgc-hero) { --padding-top: var(--fgc-sec-y-same) !important; }
/* =====================================================================
   HORIZONTAL HERO CARD (15 Oct 2026)
   Main pages with a big photo or video hero: the text card is a wide, low
   band near the bottom of the picture, in see-through Ink so the photo shows
   through. Heading and intro on the left, buttons on the right. Solid Ink on
   phones and tablets, where the card sits under the picture.
   ===================================================================== */
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) {
	background: var(--fgc-ink) !important;
	color: var(--fgc-white);
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: 0 24px 60px rgba(21, 26, 48, 0.28) !important;
}
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-heading-title { color: var(--fgc-white) !important; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-heading-title .fgc-hl { color: var(--fgc-sun) !important; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead p { color: rgba(255, 255, 255, 0.88) !important; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-eyebrow .elementor-heading-title { color: var(--fgc-sun) !important; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-breadcrumbs .ct-breadcrumbs { color: rgba(255, 255, 255, 0.72); }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-breadcrumbs .ct-breadcrumbs a { color: var(--fgc-white); }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-breadcrumbs .ct-breadcrumbs a:hover { color: var(--fgc-sun); }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .ct-breadcrumbs .last-item, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .ct-breadcrumbs [aria-current] { color: rgba(255, 255, 255, 0.86); }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-btn--secondary .elementor-button, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-btn--text .elementor-button { background: transparent; color: var(--fgc-white) !important; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.78); }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-btn--secondary .elementor-button:hover, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-btn--secondary .elementor-button:focus-visible, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-btn--text .elementor-button:hover, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-btn--text .elementor-button:focus-visible { background: var(--fgc-white); color: var(--fgc-ink) !important; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-button:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 3px; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-points .elementor-icon-list-text { color: rgba(255, 255, 255, 0.9) !important; }
.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-points .elementor-icon-list-icon svg, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-points .elementor-icon-list-icon i { fill: var(--fgc-sun) !important; color: var(--fgc-sun) !important; }
@media (min-width: 1000px) {
	.e-con.fgc-hero--big { min-height: clamp(560px, 74vh, 760px); }
	.fgc-hero--big > .e-con-inner { align-items: flex-end !important; justify-content: center !important; padding-bottom: 8px; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: none !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 56px;
		row-gap: 12px;
		align-items: end;
		padding: 36px 44px 34px !important;
		background: rgba(21, 26, 48, 0.78) !important;
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
	}
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > * { grid-column: 1; margin: 0 !important; min-width: 0; max-width: 760px; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-actions { grid-column: 2; grid-row: 1 / span 3; align-self: end; justify-content: flex-end !important; flex-wrap: nowrap !important; max-width: none; }
	.page-id-1620 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-actions, .page-id-1623 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-actions { grid-row: 1 / span 4; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points { grid-column: 1 / -1; max-width: none; margin-top: 10px !important; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points .elementor-icon-list-items { display: flex !important; flex-direction: row !important; flex-wrap: wrap; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-widget-heading:has(h1) .elementor-heading-title { font-size: clamp(2.25rem, 3.3vw, 3.25rem) !important; line-height: 1.08 !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead { max-width: 64ch; }
}
@media (min-width: 1000px) and (max-width: 1199px) {
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { grid-template-columns: minmax(0, 1fr); }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-actions { grid-column: 1; grid-row: auto; justify-content: flex-start !important; margin-top: 8px !important; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	@media (min-width: 1000px) { .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { background: rgba(21, 26, 48, 0.9) !important; } }
}

/* VIDEO CONTROLS REMOVED (15 Oct 2026): no Play/Pause button on any video; click or tap the video to pause or play */
.fgc-video__toggle { display: none !important; }
.fgc-video.has-js .fgc-video__frame { cursor: default; }

/* CENTRED HERO CARD (15 Oct 2026): on desktop the hero card sits in the middle of the photo/video, narrower and lighter so more of the picture shows; everything centred. */
@media (min-width: 1000px) {
	.e-con.fgc-hero--big { min-height: clamp(560px, 78vh, 780px); }
	.fgc-hero--big > .e-con-inner { align-items: center !important; justify-content: center !important; padding-bottom: 0; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 14px !important;
		text-align: center;
		flex: 0 1 920px !important;
		width: 100% !important;
		max-width: 920px !important;
		margin: 0 auto !important;
		padding: 44px 56px 40px !important;
		background: rgba(21, 26, 48, 0.66) !important;
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > * { max-width: 100% !important; width: auto !important; align-self: center !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-heading-title, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead p { text-align: center !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead { max-width: 640px !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .ct-breadcrumbs { justify-content: center; text-align: center; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-eyebrow .elementor-heading-title { justify-content: center; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-widget-heading:has(h1) .elementor-heading-title { font-size: clamp(2.4rem, 3.8vw, 3.5rem) !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-actions { justify-content: center !important; flex-wrap: wrap !important; margin-top: 10px !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points { width: 100% !important; margin-top: 8px !important; padding-top: 16px; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points .elementor-icon-list-items { justify-content: center !important; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	@media (min-width: 1000px) { .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { background: rgba(21, 26, 48, 0.86) !important; } }
}

/* HERO CARD VERTICAL CENTRE (15 Oct 2026): the card's box fills the whole hero and centres the card, so it sits exactly halfway down the photo/video (header padding no longer pushes it down). */
@media (min-width: 1000px) {
	.e-con.fgc-hero--big { position: relative; min-height: clamp(640px, 80vh, 820px) !important; }
	.e-con.fgc-hero--big > .e-con-inner {
		position: absolute !important;
		inset: 0;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 24px !important;
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: center !important;
	}
}

/* COMPACT HERO CARD (15 Oct 2026): lower card, same size and position on every big-hero page. */
@media (min-width: 1000px) {
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { flex: 0 1 960px !important; max-width: 960px !important; padding: 28px 48px 26px !important; gap: 10px !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-widget-heading:has(h1) .elementor-heading-title { font-size: clamp(2rem, 3vw, 2.875rem) !important; line-height: 1.1 !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead { max-width: 720px !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead, .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead p { font-size: 1.0625rem !important; line-height: 1.55 !important; margin: 0 !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-breadcrumbs .ct-breadcrumbs { margin-bottom: 0; font-size: 13px; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-actions { margin-top: 6px !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points { margin-top: 4px !important; padding-top: 12px !important; }
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points .elementor-icon-list-text { font-size: 0.9375rem !important; }
	.page-id-1620 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-eyebrow, .page-id-1623 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-eyebrow { display: none !important; }
}

/* =====================================================================
   FINLAND GRAPHICS (15 Oct 2026): world map, flag ribbon, official
   organisations. Names and links only, never the organisations' logos.
   ===================================================================== */
.fgc-world { margin: 0; padding: 28px 28px 20px; background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: 24px; }
.fgc-world img { display: block; width: 100%; height: auto; }
.fgc-world__caption { margin-top: 12px; font-size: 0.875rem; font-weight: 600; color: var(--fgc-slate); }
.fgc-world__caption::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--fgc-coral); vertical-align: 1px; }
.fgc-dark .fgc-world { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.14); }
.fgc-dark .fgc-world__caption { color: var(--fgc-mist); }

.fgc-flags { display: flex; align-items: center; gap: 18px; padding: 14px 0; }
.fgc-flags__fi { flex: 0 0 auto; position: relative; z-index: 1; }
.fgc-flags__fi img { display: block; width: 72px; height: 72px; border-radius: 50%; box-shadow: 0 0 0 4px var(--fgc-white), 0 0 0 6px var(--fgc-blue); }
.fgc-flags__track { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.fgc-flags__row { display: flex; gap: 12px; width: max-content; }
.fgc-flags__row img { display: block; width: 44px; height: 44px; border-radius: 50%; box-shadow: 0 0 0 2px var(--fgc-white), 0 2px 8px rgba(21, 26, 48, 0.12); }
@media (prefers-reduced-motion: no-preference) {
	.fgc-flags__row { animation: fgc-flags-run 70s linear infinite; }
	.fgc-flags:hover .fgc-flags__row { animation-play-state: paused; }
}
@keyframes fgc-flags-run { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.fgc-flags__row { flex-wrap: wrap; width: auto; }
	.fgc-flags__row img:nth-child(n+38) { display: none; }
}
.fgc-flags__note { margin: 6px 0 0; font-size: 0.9375rem; font-weight: 600; color: var(--fgc-slate); }

.fgc-orgs { width: 100%; }
.fgc-orgs__title { margin: 0 0 14px; font-size: 1.0625rem; font-weight: 800; color: var(--fgc-ink); }
.fgc-orgs__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.fgc-org { display: flex; gap: 14px; align-items: flex-start; padding: 18px; background: var(--fgc-white); border: 1px solid var(--fgc-line); border-radius: 18px; }
.fgc-org__mark { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 52px; padding: 0 8px; border-radius: 14px; font-size: 0.875rem; font-weight: 900; letter-spacing: 0.01em; color: var(--fgc-white); background: var(--fgc-blue); }
.fgc-org--teal .fgc-org__mark { background: var(--fgc-teal); }
.fgc-org--coral .fgc-org__mark { background: var(--fgc-coral); }
.fgc-org--plum .fgc-org__mark { background: var(--fgc-plum); }
.fgc-org--sun .fgc-org__mark { background: var(--fgc-sun); color: var(--fgc-ink); }
.fgc-org__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fgc-org__name { font-weight: 800; color: var(--fgc-ink); line-height: 1.3; }
.fgc-org__fi { font-size: 0.8125rem; font-weight: 600; color: var(--fgc-slate); font-style: italic; }
.fgc-org__what { margin-top: 4px; font-size: 0.9375rem; line-height: 1.5; color: var(--fgc-slate); }
.fgc-org__link { margin-top: 6px; font-size: 0.9375rem; font-weight: 700; color: var(--fgc-blue); text-decoration: underline; text-underline-offset: 3px; }
.fgc-org__link::after { content: " \2197"; }
.fgc-org__link:hover { color: var(--fgc-ink); }
.fgc-org__link:focus-visible { outline: 3px solid var(--fgc-sun); outline-offset: 2px; border-radius: 4px; }
.fgc-orgs__note { margin: 16px 0 0; font-size: 0.875rem; color: var(--fgc-slate); }
.fgc-orgs--compact { margin-top: 24px; }
.fgc-orgs--compact .fgc-orgs__list { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.fgc-bg-cream .fgc-org, .fgc-bg-cream .fgc-world { background: var(--fgc-white); }
.fgc-officials-split { gap: 40px !important; align-items: flex-start !important; }
.fgc-officials-split > .fgc-officials-split__media { flex: 0 0 32% !important; width: 32% !important; position: sticky; top: 120px; }
.fgc-officials-split > .fgc-officials-split__main { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
@media (max-width: 999px) {
	.fgc-officials-split { flex-direction: column !important; }
	.fgc-officials-split > .fgc-officials-split__media { position: static; width: 100% !important; max-width: 640px; flex: none !important; }
}
@media (max-width: 600px) {
	.fgc-flags__fi img { width: 56px; height: 56px; }
	.fgc-flags__row img { width: 36px; height: 36px; }
	.fgc-world { padding: 16px 12px 14px; border-radius: 18px; }
}
.fgc-officials-split--solo > .fgc-officials-split__main { flex: 1 1 100% !important; width: 100% !important; }

.page-id-1605 .fgc-hero--big { --fgc-focus: 50% 40%; }

/* Tagline emoji (15 Oct 2026) */
.fgc-emoji { display: inline-block; margin-right: 0.35em; font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif; font-style: normal; line-height: 1; }
.fgc-emoji--after { margin-right: 0; margin-left: 0.35em; }

/* HERO PHOTO CREDIT (16 Oct 2026): visible credit for CC BY hero photos */
.fgc-hero__img--credit figure, .fgc-hero__img--credit .wp-caption { position: relative; margin: 0; height: 100%; }
.fgc-hero__img--credit figcaption, .fgc-hero__img--credit .widget-image-caption { position: absolute; right: 12px; bottom: 12px; left: auto; z-index: 3; max-width: calc(100% - 24px); margin: 0 !important; padding: 4px 10px; border-radius: 6px; background: rgba(21, 26, 48, 0.72); color: var(--fgc-white) !important; font-size: 12px !important; line-height: 1.4; text-align: right; }
.fgc-hero__img--credit figcaption a, .fgc-hero__img--credit .widget-image-caption a { color: var(--fgc-white) !important; text-decoration: underline; }

/* MOBILE HERO VIDEO HEIGHT (16 Oct 2026): below 1000px the hero video box collapsed to zero height, so the text card slid up under the header. Give it an explicit height matching its 4:3 (phones) or 16:9 (tablets) frame. */
@media (max-width: 999px) {
	.fgc-hero--big .fgc-hero__media > .fgc-hero__video, .fgc-hero--big .fgc-hero__media .elementor-widget-shortcode:has(.fgc-video--hero) { height: 75vw !important; flex: none !important; }
	.fgc-hero--big .fgc-hero__media .elementor-widget-shortcode:has(.fgc-video--hero) .elementor-shortcode { height: 100% !important; }
}
@media (min-width: 600px) and (max-width: 999px) {
	.fgc-hero--big .fgc-hero__media > .fgc-hero__video, .fgc-hero--big .fgc-hero__media .elementor-widget-shortcode:has(.fgc-video--hero) { height: 56.25vw !important; }
}
/* LOCATION LINE IN THE MOBILE MENU AND FOOTER (16 Oct 2026): two neat lines, no stray dot */
#offcanvas .fgc-topbar__place, .ct-footer .fgc-footer-place { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px !important; }
#offcanvas .fgc-place-part, .ct-footer .fgc-place-part { display: block !important; white-space: nowrap; }
#offcanvas .fgc-place-sep, .ct-footer .fgc-place-sep { display: none !important; }
#offcanvas .fgc-topbar__contact a, .ct-footer .fgc-footer-contact a[href^="mailto:"] { display: inline-flex; align-items: center; max-width: 100%; }
#offcanvas .fgc-topbar__contact a[href^="mailto:"] { font-size: 14.5px; }

/* HERO CARD 85% (16 Oct 2026): on desktop the big-hero card is 15% smaller in every dimension (text, buttons, padding, width), keeping its proportions. */
@media (min-width: 1000px) {
	.fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { zoom: 0.85; }
}
/* HERO CARD RAISED (16 Oct 2026): the card sits about 40px above the vertical centre of the photo/video */
@media (min-width: 1000px) {
	.e-con.fgc-hero--big > .e-con-inner { padding: 24px 24px 104px !important; }
}

/* Phones: no pointer cursor on videos (no pause control) */
@media (max-width: 767px) { .fgc-video, .fgc-video * { cursor: default !important; } }

/* Hero framing for the 16 Oct photos: show the lower part so the faces sit above the centred card */
.page-id-1605 .fgc-hero--big .fgc-hero__img img { object-position: 50% 100% !important; }


/* Collaboration | Promotion dropdown bullets (16 Oct 2026) */
.res-co-biz > .ct-menu-link::before { content: "\1F3E2" / "" !important; }
.res-co-ind > .ct-menu-link::before { content: "\1F64B" / "" !important; }
/* How We Work and Testimonials moved under Resources (16 Oct 2026) */
.res-how > .ct-menu-link::before { content: "\1F9ED" / "" !important; }
.res-testi > .ct-menu-link::before { content: "\1F4AC" / "" !important; }


/* NAVIGATION FIT (16 Oct 2026): room for "Collaboration | Promotion" in the main menu.
   Wide screens: the header row may use up to 1440 px. Medium desktops: the site name beside the logo is
   visually hidden (the logo stays; screen readers still hear the name) and menu spacing is a little tighter. */
@media (min-width: 1500px) {
	#header [data-row*="middle"] > .ct-container { max-width: 1440px; }
}
/* 16 Oct 2026: How We Work and Testimonials moved under Resources, so the site name is hidden only below 1200 px now. */
@media (min-width: 1000px) and (max-width: 1199.98px) {
	#header [data-row*="middle"] .site-title-container { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	#header [data-id="menu"] > ul > li > .ct-menu-link { padding-left: 9px !important; padding-right: 9px !important; }
}
@media (min-width: 1000px) and (max-width: 1199.98px) {
	#header [data-id="menu"] > ul > li > .ct-menu-link { padding-left: 11px !important; padding-right: 11px !important; font-size: 14px !important; }
}


/* NAVIGATION SPACING (16 Oct 2026): even gaps in the desktop header.
   The menu is centred between the site name and the search icon; every menu label, the search icon and the
   button sit 32 px apart (dropdown arrows count as part of their label). */
@media (min-width: 1000px) {
	#header [data-device="desktop"] [data-row*="middle"] > .ct-container { grid-template-columns: auto 1fr !important; }
	#header [data-device="desktop"] [data-row*="middle"] [data-column="end"] > [data-items] { width: 100%; }
	#header [data-device="desktop"] [data-row*="middle"] [data-id="menu"] { margin-inline: auto !important; }
	#header [data-device="desktop"] [data-id="menu"] > ul > li > .ct-menu-link .ct-toggle-dropdown-desktop { margin-inline-start: 7px !important; }
	#header [data-device="desktop"] [data-row*="middle"] [data-id="search"] { margin-inline: 8px !important; }
}
@media (min-width: 1280px) {
	#header [data-device="desktop"] [data-id="menu"] > ul > li > .ct-menu-link { padding-left: 16px !important; padding-right: 16px !important; }
}
@media (min-width: 1200px) and (max-width: 1279.98px) {
	#header [data-device="desktop"] [data-id="menu"] > ul > li > .ct-menu-link { padding-left: 14px !important; padding-right: 14px !important; }
}

/* HERO CARD: LEFT, COMPACT, NO BUTTONS (17 Oct 2026). Services, About, How We Work, Testimonials. The card hugs its text, sits on the left edge of the page grid and is lower. */
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .e-con.fgc-hero--big > .e-con-inner { justify-content: flex-start !important; padding-left: max(24px, calc((100% - 1200px) / 2)) !important; padding-right: max(24px, calc((100% - 1200px) / 2)) !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { zoom: 1; flex: 0 1 auto !important; width: fit-content !important; max-width: min(680px, 100%) !important; margin: 0 !important; align-items: flex-start !important; text-align: left !important; padding: 20px 28px 22px !important; gap: 6px !important; border-radius: 20px; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > * { align-self: flex-start !important; width: auto !important; max-width: 100% !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-heading-title, :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead, :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead p { text-align: left !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .ct-breadcrumbs { justify-content: flex-start; text-align: left; font-size: 12.5px; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-widget-heading:has(h1) .elementor-heading-title { font-size: clamp(1.5rem, 2.2vw, 2rem) !important; line-height: 1.15 !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead { max-width: none !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead, :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead p { font-size: 0.975rem !important; line-height: 1.5 !important; }
@media (max-width: 767px) { :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { padding: 16px 18px 18px !important; max-width: 100% !important; width: 100% !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .elementor-widget-heading:has(h1) .elementor-heading-title { font-size: 1.4rem !important; } }
@media (max-width: 1100px) { :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .e-con.fgc-hero--big { padding-left: 0 !important; padding-right: 0 !important; } :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .e-con.fgc-hero--big > .e-con-inner { padding-left: 24px !important; padding-right: 24px !important; } }
@media (max-width: 767px) { :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .e-con.fgc-hero--big > .e-con-inner { padding-left: 16px !important; padding-right: 16px !important; } }
/* Home hero points: one compact left-aligned row (17 Oct 2026) */
.page-id-1374 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points { margin-top: 2px !important; padding-top: 10px !important; width: 100% !important; }
.page-id-1374 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points .elementor-icon-list-items { justify-content: flex-start !important; gap: 4px 20px !important; }
.page-id-1374 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points .elementor-icon-list-item { width: auto !important; margin: 0 !important; }
.page-id-1374 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) > .fgc-points .elementor-icon-list-text { font-size: 0.875rem !important; }
.page-id-1374 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { max-width: min(790px, 100%) !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead, :is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) .fgc-lead p { max-width: none !important; width: 100% !important; }
/* ABOUT HERO PHOTO: slightly soft focus (17 Oct 2026). A light blur keeps the card text easy to read. The slight scale hides the blurred edge. Remove these lines to make the photo sharp. */
.page-id-1384 .fgc-hero--big .fgc-hero__img img { object-position: 50% 50% !important; filter: blur(3px); transform: scale(1.04); }

/* ===== Services pages: modern sliding cards (17 Oct 2026, owner's request) =====
   Narrower cards, a card look with a different Spectrum colour per card, pointer on clickable cards, slimmer modern arrows. No gradients. */
body .fgc-rail-on:has(> :is(.fgc-card--area, a.fgc-card--topic, .fgc-journey__step, .fgc-path__step, .fgc-callout, .fgc-px__dl > li, .fgc-px__ol > li)) { --rail-n: 4.2; --rail-gap: 18px; --rail-min: 236px; }
body .fgc-rail-on.fgc-rail__track.e-grid { width: min(100%, 1224px) !important; margin-left: auto !important; margin-right: auto !important; }
body .fgc-rail-ctrl { max-width: 1216px; margin-left: auto; margin-right: auto; }
@media (max-width: 1100px) { body .fgc-rail-on:has(> :is(.fgc-card--area, a.fgc-card--topic, .fgc-journey__step, .fgc-path__step, .fgc-callout)) { --rail-n: 3.2; } }
@media (max-width: 800px) { body .fgc-rail-on:has(> :is(.fgc-card--area, a.fgc-card--topic, .fgc-journey__step, .fgc-path__step, .fgc-callout)) { --rail-n: 2.2; } }
@media (max-width: 767px) { body .fgc-rail-on:has(> :is(.fgc-card--area, a.fgc-card--topic, .fgc-journey__step, .fgc-path__step, .fgc-callout)) { --rail-n: 1.25; --rail-min: 0px; } }
body .fgc-rail__track > :nth-child(5n+1) { --cc: var(--fgc-blue); --cci: #fff; }
body .fgc-rail__track > :nth-child(5n+2) { --cc: var(--fgc-plum); --cci: #fff; }
body .fgc-rail__track > :nth-child(5n+3) { --cc: var(--fgc-teal); --cci: #fff; }
body .fgc-rail__track > :nth-child(5n+4) { --cc: var(--fgc-coral); --cci: #fff; }
body .fgc-rail__track > :nth-child(5n+5) { --cc: var(--fgc-sun); --cci: var(--fgc-ink); }
body .fgc-rail-on .fgc-rail__track > :is(.e-con.fgc-card--area.fgc-card, .fgc-path__step, .fgc-callout, .fgc-px__dl > li, .fgc-px__ol > li),
body .fgc-rail-on.fgc-rail__track > :is(.e-con.fgc-card--area.fgc-card, .fgc-path__step, .fgc-callout),
body :is(.fgc-px__dl, .fgc-px__ol).fgc-rail-on.fgc-rail__track > li {
	background: var(--fgc-white) !important;
	border: 1px solid var(--fgc-line) !important;
	border-top: 4px solid var(--cc, var(--fgc-blue)) !important;
	border-radius: 18px !important;
	padding: 20px 20px 18px !important;
	box-shadow: 0 10px 24px -18px rgba(21, 26, 48, 0.45) !important;
	gap: 8px !important;
	transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area { cursor: pointer; }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area:hover,
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area:focus-visible {
	transform: translateY(-4px) !important;
	border-color: var(--cc) !important;
	box-shadow: 0 16px 30px -16px rgba(21, 26, 48, 0.5) !important;
}
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area:focus-visible { outline: 3px solid var(--fgc-blue); outline-offset: 3px; }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area .fgc-card__text p:last-child::after { color: var(--cc); }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area .fgc-card__icon .elementor-icon { width: 44px; height: 44px; border-radius: 13px; background: var(--cc) !important; color: var(--cci) !important; }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area .fgc-card__icon .elementor-icon svg { width: 20px; height: 20px; fill: currentColor !important; }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area .fgc-card__title .elementor-heading-title { font-size: 1.15rem; }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area .fgc-card__text, body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a.e-con.fgc-card--area .fgc-card__text p { font-size: 0.95rem; line-height: 1.5; }

/* Slimmer, modern arrows (all rails) */
.fgc-rail-arrow.fgc-rail-arrow {
	width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important;
	border: 1px solid rgba(21, 26, 48, 0.12) !important;
	background: rgba(255, 255, 255, 0.94) !important;
	box-shadow: 0 10px 24px -10px rgba(21, 26, 48, 0.4), 0 1px 2px rgba(21, 26, 48, 0.1) !important;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.fgc-rail-arrow .fgc-rail-ico { width: 20px !important; height: 20px !important; }
.fgc-rail-arrow .fgc-rail-ico path { stroke-width: 2.1; }
.fgc-rail-arrow.fgc-rail-arrow:hover:not(:disabled) { transform: scale(1.08); border-color: var(--fgc-ink) !important; }
.fgc-rail-arrow.fgc-rail-arrow:disabled { opacity: 0 !important; }
.fgc-rail-hint { background: var(--fgc-white); border: 1px solid var(--fgc-line); font-weight: 700; font-size: 14px; }
.fgc-rail-bar { height: 4px; }
body .fgc-stages.fgc-rail-on { --rail-n: 2.4; --rail-min: 280px; }
body .fgc-stages.fgc-rail-on .fgc-stage__body { border-top: 4px solid var(--cc, var(--fgc-blue)); }
body .fgc-stages.fgc-rail-on .fgc-stage__num { background: var(--cc, var(--fgc-blue)); color: var(--cci, #fff); }

@media (min-width: 1320px) {
	.fgc-rail-arrow--side.fgc-rail-arrow--prev { translate: -16px 0; }
	.fgc-rail-arrow--side.fgc-rail-arrow--next { translate: 16px 0; }
}

/* Pointer on every clickable rail card, all pages */
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > a { cursor: pointer; }

body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > div.e-con.fgc-card--area .fgc-card__icon .elementor-icon { width: 44px; height: 44px; border-radius: 13px; background: var(--cc) !important; color: var(--cci) !important; }
body :is(.fgc-rail-on .fgc-rail__track, .fgc-rail-on.fgc-rail__track) > div.e-con.fgc-card--area .fgc-card__icon .elementor-icon svg { width: 20px; height: 20px; fill: currentColor !important; }

/* Numbered step cards: each step takes its own Spectrum colour */
body .fgc-rail-on .fgc-rail__track > .fgc-journey__step, body .fgc-rail-on.fgc-rail__track > .fgc-journey__step { border-top: 4px solid var(--cc, var(--fgc-blue)) !important; }
body .fgc-rail-on .fgc-journey__step .fgc-journey__num .elementor-heading-title, body .fgc-rail-on .fgc-path__step .fgc-path__num .elementor-heading-title { background: var(--cc, var(--fgc-blue)) !important; color: var(--cci, #fff) !important; }

/* ===== Compact rail cards: about 30% shorter (17 Oct 2026, owner's request). No text removed: smaller photos, tighter padding, slightly smaller text. ===== */
body .fgc-rail-on .fgc-rail__track > a.fgc-card--photo, body .fgc-rail-on.fgc-rail__track > a.fgc-card--photo { padding: 0 16px 16px !important; gap: 6px !important; }
body .fgc-rail-on a.fgc-card--photo .fgc-card__media img { height: 116px !important; width: 100% !important; object-fit: cover !important; }
body .fgc-rail-on a.fgc-card--photo .fgc-card__title .elementor-heading-title { font-size: 1.1rem !important; line-height: 1.25 !important; }
body .fgc-rail-on a.fgc-card--photo .fgc-card__text, body .fgc-rail-on a.fgc-card--photo .fgc-card__text p { font-size: 0.9rem !important; line-height: 1.45 !important; }
body .fgc-rail-on a.fgc-card--photo .fgc-card__meta p { font-size: 0.8rem !important; line-height: 1.35 !important; margin: 0 !important; }
body .fgc-rail-on a.fgc-card--photo .fgc-card__more { margin: 0 !important; }
body .fgc-rail-on a.fgc-card--photo .fgc-card__icon .elementor-icon { width: 40px !important; height: 40px !important; }

body .fgc-rail-on:has(> .fgc-card--detail) { --rail-n: 3.2; --rail-min: 300px; }
body .fgc-rail-on .fgc-rail__track > .fgc-card--detail, body .fgc-rail-on.fgc-rail__track > .fgc-card--detail { padding: 16px 18px 14px !important; gap: 6px !important; }
body .fgc-rail-on .fgc-card--detail .fgc-card__title .elementor-heading-title { font-size: 1.05rem !important; line-height: 1.25 !important; }
body .fgc-rail-on .fgc-card--detail .fgc-card__text, body .fgc-rail-on .fgc-card--detail .fgc-card__text p, body .fgc-rail-on .fgc-card--detail .fgc-card__text li { font-size: 0.88rem !important; line-height: 1.42 !important; }
body .fgc-rail-on .fgc-card--detail .fgc-card__text p { margin: 0 0 6px !important; }
body .fgc-rail-on .fgc-card--detail .fgc-card__text ul { margin: 0 0 6px !important; padding-left: 18px !important; }
body .fgc-rail-on .fgc-card--detail .fgc-card__text li { margin: 0 0 2px !important; }

body .fgc-rail-on .fgc-rail__track > .fgc-callout, body .fgc-rail-on.fgc-rail__track > .fgc-callout { padding: 16px 18px 14px !important; gap: 6px !important; }
body .fgc-rail-on .fgc-callout p, body .fgc-rail-on .fgc-callout li { font-size: 0.9rem !important; line-height: 1.45 !important; }

body .fgc-rail-on .entry-card { padding: 16px !important; }
body .fgc-rail-on .entry-card .ct-media-container img { height: 140px !important; object-fit: cover !important; }
body .fgc-rail-on .entry-card .entry-title { font-size: 1.05rem !important; line-height: 1.3 !important; }
body .fgc-rail-on .entry-card .entry-excerpt, body .fgc-rail-on .entry-card .entry-excerpt p { font-size: 0.88rem !important; line-height: 1.45 !important; }

body .fgc-news-list.fgc-rail-on .fgc-news-card__img { height: 140px !important; object-fit: cover !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__body { padding: 14px 16px 16px !important; gap: 6px !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__title { font-size: 1.05rem !important; line-height: 1.3 !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__excerpt { font-size: 0.88rem !important; line-height: 1.45 !important; }

body .fgc-testimonials__grid.fgc-rail-on .fgc-testimonial { padding: 18px 20px 16px !important; }
body .fgc-testimonials__grid.fgc-rail-on .fgc-testimonial__quote, body .fgc-testimonials__grid.fgc-rail-on .fgc-testimonial__quote p { font-size: 15px !important; line-height: 1.42 !important; }
body .fgc-testimonials__grid.fgc-rail-on .fgc-testimonial__meta { margin-top: 12px !important; padding-top: 10px !important; }

body .fgc-stages.fgc-rail-on .fgc-stage__body { padding: 14px 16px !important; }
body .fgc-stages.fgc-rail-on .fgc-stage__title { font-size: 1.05rem !important; line-height: 1.25 !important; }
body .fgc-stages.fgc-rail-on .fgc-stage__body p { font-size: 0.88rem !important; line-height: 1.42 !important; }
/* Compact pass 2 */
body .fgc-rail-on.fgc-rail-on:has(> .fgc-card--detail.fgc-card--area) { --rail-n: 3.2; --rail-min: 300px; }
@media (max-width: 1100px) { body .fgc-rail-on.fgc-rail-on:has(> .fgc-card--detail.fgc-card--area) { --rail-n: 2.2; } }
@media (max-width: 767px) { body .fgc-rail-on.fgc-rail-on:has(> .fgc-card--detail.fgc-card--area) { --rail-n: 1.2; --rail-min: 0px; } }
body .fgc-rail-on .fgc-rail__track > .fgc-callout, body .fgc-rail-on.fgc-rail__track > .fgc-callout { padding: 12px 16px 12px !important; gap: 4px !important; }
body .fgc-rail-on .fgc-callout p, body .fgc-rail-on .fgc-callout li { font-size: 0.86rem !important; line-height: 1.4 !important; margin-bottom: 4px !important; }
body .fgc-rail-on .entry-card .ct-media-container img { height: 118px !important; }
body .fgc-rail-on .entry-card .entry-title { font-size: 1rem !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__img { height: 112px !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__meta { line-height: 1.35 !important; font-size: 13px !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__excerpt { font-size: 0.85rem !important; line-height: 1.4 !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__title { font-size: 1rem !important; }
@media (min-width: 1025px) { body .fgc-testimonials__grid.fgc-rail.fgc-rail-on { --rail-n: 2.3; } }
body .fgc-testimonials__grid.fgc-rail-on .fgc-testimonial__quote, body .fgc-testimonials__grid.fgc-rail-on .fgc-testimonial__quote p { font-size: 14.5px !important; line-height: 1.4 !important; }
@media (min-width: 1025px) { body .fgc-testimonials__grid.fgc-rail.fgc-rail-on { --rail-n: 2.05; } body .fgc-news-list.fgc-rail.fgc-rail-on { --rail-n: 2.9; } body .fgc-rail-on .entry-card { } }

body .fgc-news-list.fgc-rail-on .fgc-news-card__media { aspect-ratio: auto !important; height: 120px !important; padding: 0 !important; }
body .fgc-news-list.fgc-rail-on .fgc-news-card__img { height: 100% !important; width: 100% !important; }
body .fgc-rail-on .entry-card .ct-media-container { aspect-ratio: auto !important; height: 124px !important; padding: 0 !important; }
body .fgc-rail-on .entry-card .ct-media-container img { height: 100% !important; width: 100% !important; }

/* One single scrolling row everywhere (17 Oct 2026, owner's request): no two-row rails */
@media (min-width: 768px) {
	body .fgc-rail--2row.fgc-rail-on .fgc-rail__track, body .fgc-rail--2row.fgc-rail-on.fgc-rail__track { grid-template-rows: none !important; grid-auto-flow: column !important; }
}

/* Official-organisation cards: compact (17 Oct 2026, owner's request). Logo mark and name share the top row; the description and link use the full card width. No text removed. */
body .fgc-orgs .fgc-org { display: grid !important; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; row-gap: 2px; align-items: center; padding: 14px 16px 14px !important; }
body .fgc-orgs .fgc-org__body { display: contents !important; }
body .fgc-orgs .fgc-org__mark { grid-column: 1; grid-row: 1 / span 2; min-width: 46px; height: 46px; border-radius: 12px; font-size: 0.8rem; }
body .fgc-orgs .fgc-org__name { grid-column: 2; grid-row: 1; font-size: 1rem; line-height: 1.25; align-self: end; }
body .fgc-orgs .fgc-org__fi { grid-column: 2; grid-row: 2; font-size: 0.78rem; line-height: 1.3; align-self: start; }
body .fgc-orgs .fgc-org__what { grid-column: 1 / -1; margin-top: 8px; font-size: 0.875rem; line-height: 1.42; align-self: start; }
body .fgc-orgs .fgc-org__link { grid-column: 1 / -1; margin-top: 4px; font-size: 0.875rem; align-self: start; justify-self: start; }
body .fgc-orgs .fgc-org { align-content: start; }
/* Builder / calculator questions: titles line up with their answer buttons (the theme pulled every legend 15px left) and spacing is even (17 Oct 2026) */
body .fgc-co-q legend, body .fgc-ec-calc__in legend { margin-left: 0 !important; margin-inline-start: 0 !important; padding: 0 !important; }
body .fgc-co-q legend { font-size: 15px; line-height: 1.3; margin-bottom: 10px; }
body .fgc-co-build__q { gap: 20px; padding: 22px 24px 24px; }
body .fgc-co-q .fgc-ec-chips { gap: 10px; margin-bottom: 0 !important; }
@media (max-width: 767px) { body .fgc-co-build__q { gap: 16px; padding: 16px; } }
/* Hero cards: slightly see-through Ink (86%) with a very light blur, soft shadow and a slim Lens stripe on top (17 Oct 2026). */
body .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) {
	background: rgba(21, 26, 48, 0.86) !important;
	-webkit-backdrop-filter: blur(4px) !important;
	backdrop-filter: blur(4px) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	box-shadow: 0 18px 44px -12px rgba(21, 26, 48, 0.55) !important;
	overflow: hidden;
}
body .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media)::before {
	content: "" !important;
	display: block !important;
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--fgc-lens);
}
/* Hero cards hug their text (17 Oct 2026): fgc-rail.js trims the card to its longest line */
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389) .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { --fgc-herofit: 1; max-width: min(640px, 100%) !important; }
:is(.page-id-1375, .page-id-1384, .page-id-1383, .page-id-1605, .page-id-1374, .page-id-2642, .page-id-2644, .page-id-2646, .page-id-1620, .page-id-1623, .page-id-1389).page-id-1374 .fgc-hero--big > .e-con-inner > .e-con:not(.fgc-hero__media) { max-width: min(790px, 100%) !important; }

/* Footer on phones: tidy address card and legal row */
@media (max-width:689px){
.ct-footer .fgc-footer-contact .fgc-footer-address{margin-top:16px}
.ct-footer .fgc-footer-address a{display:flex;width:100%;box-sizing:border-box;text-align:left;align-items:flex-start;gap:3px;min-height:0;padding:16px 18px 16px 52px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;font-size:15px;line-height:1.5}
.ct-footer .fgc-footer-address a::before{top:17px;left:18px;width:24px;height:24px}
.ct-footer .fgc-footer-address__label{margin-bottom:4px}
.ct-footer .fgc-footer-address__cta{margin-top:10px}
.ct-footer [data-row="bottom"] .ct-container{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:20px;padding-bottom:24px;border-top:1px solid rgba(255,255,255,.14)}
.ct-footer [data-row="bottom"] [data-column]{width:100%;margin:0}
.ct-footer [data-row="bottom"] .ct-footer-copyright{font-size:14px;line-height:1.5;text-align:left;opacity:.85}
.ct-footer [data-row="bottom"] .footer-menu-inline .menu{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none}
.ct-footer [data-row="bottom"] .footer-menu-inline .menu>li{margin:0;padding:0}
.ct-footer [data-row="bottom"] .footer-menu-inline .ct-menu-link{display:inline-flex;align-items:center;min-height:36px;padding:0;font-size:14px;font-weight:700;line-height:1.3;text-decoration:underline;text-decoration-color:var(--fgc-sun);text-underline-offset:4px}
}

/* Numbered rail cards: badge sits above the title, no connector line through the text (17 Oct 2026) */
body .fgc-rail-on .fgc-rail__track > :is(.fgc-journey__step, .fgc-path__step), body .fgc-rail-on.fgc-rail__track > :is(.fgc-journey__step, .fgc-path__step){padding:64px 20px 18px !important;min-height:0 !important}
body .fgc-rail-on :is(.fgc-journey__step, .fgc-path__step)::after, body .fgc-rail-on:is(.fgc-journey__step, .fgc-path__step)::after{display:none !important;content:none !important}
body .fgc-rail-on :is(.fgc-journey__step, .fgc-path__step) :is(.fgc-journey__num, .fgc-path__num){left:18px !important;top:12px !important}
body .fgc-rail-on .fgc-rail__track > .fgc-px__ol > li, body .fgc-px__ol.fgc-rail-on > li, body .fgc-rail-on .fgc-rail__track > li:is(.fgc-px__ol > li), body .fgc-px__ol.fgc-rail-on.fgc-rail__track > li{padding:56px 20px 18px !important}
body .fgc-px__ol.fgc-rail-on > li::before, body .fgc-px__ol.fgc-rail-on.fgc-rail__track > li::before{left:20px !important;top:14px !important;width:30px !important;height:30px !important;background:var(--cc,var(--fgc-blue)) !important;color:var(--cci,#fff) !important}

/* boost specificity for numbered step cards */
body .fgc-rail-on.fgc-rail__track > .e-con.fgc-path__step.fgc-path__step.fgc-path__step, body .fgc-rail-on .fgc-rail__track > .e-con.fgc-path__step.fgc-path__step.fgc-path__step, body .fgc-rail-on.fgc-rail__track > .e-con.fgc-journey__step.fgc-journey__step.fgc-journey__step, body .fgc-rail-on .fgc-rail__track > .e-con.fgc-journey__step.fgc-journey__step.fgc-journey__step{padding:64px 20px 18px !important}

/* Phone menu contact panel: email on one line (17 Oct 2026) */
@media (max-width:689px){
#offcanvas .fgc-topbar__contact a[href^="mailto:"], #offcanvas .fgc-topbar a[href^="mailto:"]{white-space:nowrap !important;overflow-wrap:normal !important;word-break:normal !important;font-size:clamp(11px,3.55vw,14.5px) !important;letter-spacing:0 !important;max-width:100%}
}

/* All form legends: no theme pull-left, consistent type (18 Oct 2026) */
body :is(.fgc-t__q, .fgc-sf__match, .fgc-co-q, .fgc-ec-calc__in, .fgc-ec-check__g, .fgc-cf, .wpforms-container) legend, body .entry-content fieldset > legend{margin-left:0 !important;margin-inline-start:0 !important}
body .fgc-t__q legend{padding:0 !important;font-size:15px;line-height:1.3;margin-bottom:10px}

/* Stacked contact links: even, tight spacing (18 Oct 2026) */
body .fgc-co-contact{gap:0 !important}
body .fgc-co-contact li{margin:0 !important;padding:0 !important}
body .fgc-co-contact a{min-height:40px}

body .fgc-co-build__list:not(:has(*)){display:none !important;margin:0 !important}

body .wpforms-container fieldset > legend{padding-left:0 !important;padding-right:0 !important;margin-left:0 !important}

/* Contact icons stay glued to their number / email (never stranded at a line end) */
:is(.fgc-panel__note, .fgc-cta__note, .fgc-contact-note) a:is([href^="mailto:"], [href^="tel:"], [href*="wa.me/"], [href*="chat.whatsapp.com"]) { display: inline-block; max-width: 100%; overflow-wrap: anywhere; vertical-align: top; }
:is(.fgc-panel__note, .fgc-cta__note, .fgc-contact-note) a[href^="mailto:"] { font-size: min(1em, 4.1vw); }
:is(.fgc-panel__note, .fgc-cta__note, .fgc-contact-note) a:is([href^="mailto:"], [href^="tel:"], [href*="wa.me/"])::before { vertical-align: -0.2em; }

/* Mobile: journey step cards sit tidy at every width (badge in flow, no extra offsets); footer copyright goes below the legal links on phones */
@media (min-width: 1px) {
  body .fgc-rail-on.fgc-rail__track > .e-con.fgc-journey__step.fgc-journey__step.fgc-journey__step.fgc-journey__step { padding: 22px 20px 20px !important; }
  body .fgc-journey__step.fgc-journey__step > .elementor-element:first-child { top: 0 !important; left: 0 !important; }
  body .fgc-journey__step.fgc-journey__step .elementor-heading-title:is(p) { margin-bottom: 4px !important; }
}

@media (max-width: 689px) {
  .ct-footer .ct-container > div:has(> .ct-footer-copyright) { order: 3; }
  .ct-footer .ct-container > div:not(:has(> .ct-footer-copyright)) { order: 1; }
}

/* Desktop: top contact bar uses the same width as the main header row, so everything lines up with the logo and the button */
@media (min-width: 1500px) {
  #header [data-row*="top"] > .ct-container { max-width: 1440px; }
}
@media (min-width: 1000px) {
  #header [data-row*="top"] .fgc-topbar__social { margin-right: -10px; }
}

/* Desktop: card rails start at the same left edge as their heading (no centred inset) */
@media (min-width: 1000px) {
  body .fgc-rail-host > .fgc-rail-on.fgc-rail__track { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
}
@media (min-width: 1000px) {
  body .fgc-rail-host > .fgc-rail-ctrl { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
}

/* Desktop: sliding sections stay compact (about 1100px) instead of spanning the whole page */
@media (min-width: 1000px) {
  body .fgc-rail-host { max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; }
  body .fgc-rail-host.e-con-boxed { max-width: 1248px !important; }
}

/* FGC mobile stage buttons: tidy wrapping */
.fgc-m-steps .fgc-m-steps__bar{flex-wrap:nowrap;gap:12px}
.fgc-m-steps .fgc-m-steps__btn.fgc-m-steps__btn{line-height:1.25;padding:10px 18px;min-height:48px;text-align:left;white-space:normal;justify-content:center;flex:0 1 auto}
.fgc-m-steps .fgc-m-steps__btn--prev.fgc-m-steps__btn--prev{flex:0 0 auto}
.fgc-m-steps .fgc-m-steps__btn--next.fgc-m-steps__btn--next{flex:1 1 0;min-width:0;justify-content:space-between;border-radius:24px}

/* Hero cards sit in the bottom-left corner of the hero photo (desktop) */
@media (min-width:1000px){
 body .e-con.fgc-hero--big{justify-content:flex-end !important;padding-bottom:48px !important}
 body .fgc-hero--big > .e-con-inner{align-items:flex-end !important;justify-content:flex-start !important}
}

@media (min-width:1000px){
 html body .e-con.fgc-hero--big.fgc-hero--big > .e-con-inner{align-items:flex-end !important;flex:0 0 auto !important;height:auto !important;padding-bottom:0 !important;margin-top:auto;margin-bottom:76px !important}
}

@media (min-width:1300px){ html body .e-con.fgc-hero--big.fgc-hero--big > .e-con-inner{margin-left:-32px !important} }

/* Hero photo always fills the whole hero (inner wrapper must not be its positioning box) */
@media (min-width:1000px){ html body .e-con.fgc-hero--big.fgc-hero--big > .e-con-inner{position:static !important} }

/* Hero card at the owner-marked spot: set in from the left and lifted, scaling with the photo (photo still fills the hero) */
@media (min-width:1000px){
 html body .e-con.fgc-hero--big.fgc-hero--big > .e-con-inner{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;padding-left:calc(clamp(24px,6.4vw,160px) - 24px) !important;padding-right:24px !important;margin-bottom:calc(clamp(76px,9.5vw,200px) - 48px) !important;box-sizing:border-box}
}

/* News key-facts box now sits above the Sources list: space above and below */
.fgc-factbox { margin: 40px 0 8px; }
.fgc-factbox + h2 { margin-top: 40px; }

/* Photo under the article title */
.fgc-hero-image { margin: 24px 0 8px; }
.fgc-hero-image img { display: block; width: 100%; height: auto; border-radius: var(--fgc-radius); }
