/* ==========================================================================
   F&P Framer — global styles. Tokens come from theme.json; this file holds
   the Framer breakpoints (Phone <810, Tablet 810–1279, Desktop Small
   1280–1599, Desktop ≥1600), text styles, layout and all components.
   ========================================================================== */

:root {
	--fp-gutter: 16px;
	--fp-gap-section: 48px;
	--fp-pad-section: 80px;
	--fp-pad-wide: 80px;
	--fp-size-hero: 36px;
	--fp-size-statement: 36px;
	--fp-size-number: 80px;
	--fp-size-section: 32px;
	--fp-size-subsection: 24px;
	--fp-size-card: 20px;
	--fp-ls-display: -0.01em;
	--fp-color-night: #11181b;
	--fp-color-ink: #2c3f48;
	--fp-color-secondary: #596f7a;
	--fp-color-yellow: #ffd500;
	--fp-color-yellow-pressed: #eac400;
	--fp-color-surface: #f1f1f1;
	--fp-color-border: #dde3e6;
	--fp-color-secondary-dark: #a8b8c0;
	--fp-color-grid: rgba(0, 0, 0, 0.12);
	--fp-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--fp-spring: cubic-bezier(0.2, 0.9, 0.3, 1.05);
}

@media (min-width: 810px) {
	:root {
		--fp-gutter: 32px;
		--fp-gap-section: 64px;
		--fp-pad-section: 96px;
		--fp-pad-wide: 112px;
		--fp-size-hero: 48px;
		--fp-size-statement: 48px;
		--fp-size-number: 104px;
		--fp-size-section: 36px;
		--fp-size-subsection: 24px;
		--fp-size-card: 22px;
	}
}

@media (min-width: 1280px) {
	:root {
		--fp-gutter: 48px;
		--fp-gap-section: 96px;
		--fp-pad-section: 128px;
		--fp-pad-wide: 160px;
		--fp-size-hero: 56px;
		--fp-size-statement: 64px;
		--fp-size-number: 112px;
		--fp-size-section: 40px;
		--fp-size-subsection: 28px;
		--fp-size-card: 22px;
	}
}

@media (min-width: 1600px) {
	:root {
		--fp-size-hero: 64px;
		--fp-size-statement: 80px;
		--fp-size-number: 148px;
		--fp-size-section: 48px;
		--fp-size-subsection: 32px;
		--fp-size-card: 24px;
	}
}

/* ---------- base ---------- */

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-feature-settings: "cv03", "cv04", "cv09", "cv11"; /* DM Sans alternates, as in Framer */
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

::selection { background: var(--fp-color-yellow); color: var(--fp-color-night); }

a:focus-visible, button:focus-visible, [role="button"]:focus-visible, [tabindex]:focus-visible {
	outline: 2px solid var(--fp-color-ink);
	outline-offset: 3px;
	box-shadow: 0 0 0 3px #fff;
}

h1, h2, h3, h4, h5, h6, p { margin: 0; }

/* ---------- text styles (Framer presets) ---------- */

.fp-t-hero       { font: 600 var(--fp-size-hero)/1 "DM Sans", sans-serif; letter-spacing: var(--fp-ls-display); font-variation-settings: "opsz" 40; text-wrap: balance; }
.fp-t-statement  { font: 600 var(--fp-size-statement)/1.1 "DM Sans", sans-serif; letter-spacing: var(--fp-ls-display); font-variation-settings: "opsz" 40; }
.fp-t-number     { font: 400 var(--fp-size-number)/0.9 "DM Sans", sans-serif; letter-spacing: -0.04em; font-variation-settings: "opsz" 14; font-variant-numeric: tabular-nums; }
.fp-t-section    { font: 600 var(--fp-size-section)/1 "DM Sans", sans-serif; letter-spacing: var(--fp-ls-display); font-variation-settings: "opsz" 40; }
.fp-t-subsection { font: 600 var(--fp-size-subsection)/1.1 "DM Sans", sans-serif; letter-spacing: -0.005em; font-variation-settings: "opsz" 32; }
.fp-t-card       { font: 600 var(--fp-size-card)/1.3333 "DM Sans", sans-serif; letter-spacing: -0.005em; font-variation-settings: "opsz" 24; }
.fp-t-heading-small { font: 600 20px/1.4 "DM Sans", sans-serif; font-variation-settings: "opsz" 20; }
.fp-t-lead       { font: 400 20px/1.6 "DM Sans", sans-serif; }
.fp-t-large      { font: 400 18px/1.5556 "DM Sans", sans-serif; }
.fp-t-body       { font: 400 16px/1.5 "DM Sans", sans-serif; }
.fp-t-strong     { font: 600 16px/1.5 "DM Sans", sans-serif; }
.fp-t-small      { font: 400 14px/1.4 "DM Sans", sans-serif; }
.fp-t-small-strong { font: 600 14px/1.4286 "DM Sans", sans-serif; }
.fp-t-caption    { font: 400 12px/1.3333 "DM Sans", sans-serif; }
.fp-t-action     { font: 600 16px/1 "DM Sans", sans-serif; }
.fp-t-button     { font: 600 16px/24px "DM Sans", sans-serif; }
.fp-t-meta       { font: 400 14px/20px "DM Sans", sans-serif; }
.fp-t-footer-link{ font: 600 20px/28px "DM Sans", sans-serif; }
.fp-t-claim      { font: 400 18px/1.08 "DM Sans", sans-serif; }
.fp-t-eyebrow    { font: 400 12px/1.3333 "DM Mono", monospace; letter-spacing: 0.04em; text-transform: uppercase; }

.fp-c-white { color: #fff; }
.fp-c-night { color: var(--fp-color-night); }
.fp-c-ink { color: var(--fp-color-ink); }
.fp-c-secondary { color: var(--fp-color-secondary); }
.fp-c-secondary-dark { color: var(--fp-color-secondary-dark); }
.fp-c-yellow { color: var(--fp-color-yellow); }

.fp-t-hero .fp-line, .fp-t-section .fp-line { display: block; }

/* ---------- layout ---------- */

.fp-section {
	position: relative;
	width: 100%;
	box-sizing: border-box;
	padding-inline: var(--fp-gutter);
}

.fp-section > .fp-section__inner,
.fp-section__inner {
	max-width: 1600px;
	margin-inline: auto;
	box-sizing: border-box;
}

.fp-section--dark { background: var(--fp-color-night); color: #fff; }

.fp-stack { display: flex; flex-direction: column; }
.fp-row { display: flex; }
.fp-center { text-align: center; align-items: center; }

/* No block-gap margins between the template-level blocks (header, main, footer) */
.fp-v2 .wp-site-blocks > * { margin-block: 0; }

/* WordPress wrapper resets for our full-width sections */
.fp-v2 .wp-site-blocks > main > .wp-block-post-content > * { max-width: none; margin-inline: 0; }
.fp-v2 .wp-site-blocks > main > .fp-section,
.fp-v2 .wp-site-blocks .fp-section.alignfull {
	margin-inline: 0;
	max-width: none;
}

.fp-v2 .wp-block-group.fp-section { max-width: none; }
.fp-v2 .wp-block-group.fp-section > .wp-block-group:not([class*="__"]) { max-width: none; }

/* ---------- pixel icons ---------- */

.fp-pixel {
	--fp-pixel-size: 40px;
	--fp-pixel-cols: 7;
	--fp-pixel-unit: calc(2 * var(--fp-pixel-size) / (3 * var(--fp-pixel-cols) - 1));
	display: grid;
	grid-template-columns: repeat(var(--fp-pixel-cols), var(--fp-pixel-unit));
	grid-auto-rows: var(--fp-pixel-unit);
	gap: calc(var(--fp-pixel-unit) / 2);
	width: var(--fp-pixel-size);
	height: var(--fp-pixel-size);
	flex: none;
}

.fp-pixel > i {
	display: block;
	background: var(--fp-pixel-raster, var(--fp-color-grid));
}

.fp-pixel > i.is-on {
	background: var(--fp-pixel-motif, var(--fp-color-ink));
}

.fp-pixel-block { display: inline-block; }

/* ---------- appear / words ---------- */

[data-fp-appear] {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.4s var(--fp-spring), transform 0.4s var(--fp-spring);
}

[data-fp-appear].is-in { opacity: 1; transform: none; }

.fp-words-ready .fp-word {
	display: inline-block;
	opacity: 0;
	transform: translateY(10px);
	filter: blur(10px);
	transition: opacity 0.4s var(--fp-spring), transform 0.4s var(--fp-spring), filter 0.4s var(--fp-spring);
}

.fp-words-ready.is-in .fp-word { opacity: 1; transform: none; filter: none; }

@media (prefers-reduced-motion: reduce) {
	[data-fp-appear], .fp-words-ready .fp-word { opacity: 1; transform: none; filter: none; transition: none; }
}

/* ---------- button ---------- */

.fp-button {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	min-height: 48px;
	padding: 12px 16px;
	box-sizing: border-box;
	background: var(--fp-color-surface);
	color: var(--fp-color-night);
	text-decoration: none;
	font: 600 16px/24px "DM Sans", sans-serif;
	cursor: pointer;
	transition: background-color 0.2s var(--fp-ease), border-color 0.2s var(--fp-ease);
}

.fp-button--compact { padding: 12px; }
.fp-button--generous { padding: 12px 24px; }
.fp-button--outline { background: #fff; border: 1px solid var(--fp-color-secondary); }
.fp-button--outline-dark { background: transparent; border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
.fp-button--outline-dark .fp-pixel { --fp-pixel-motif: #fff; }
.fp-button--outline-dark:hover .fp-pixel, .fp-button--outline-dark:focus-visible .fp-pixel { --fp-pixel-motif: var(--fp-color-night); }
.fp-button--back { flex-direction: row; }

.fp-button:hover, .fp-button:focus-visible { background: var(--fp-color-yellow); border-color: var(--fp-color-yellow); color: var(--fp-color-night); }
.fp-button:active { background: var(--fp-color-yellow-pressed); border-color: var(--fp-color-yellow-pressed); }
.fp-button__icon { --fp-pixel-raster: transparent; }

.fp-button-block { display: inline-block; }

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

.fp-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 20;
	padding: 24px var(--fp-gutter) 0;
	color: #fff;
}

@media (min-width: 810px) { .fp-header { padding-top: 32px; } }
@media (min-width: 1280px) { .fp-header { padding-top: 40px; } }

.fp-header__inner {
	max-width: 1600px;
	margin-inline: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	min-height: 32px;
}

.fp-brand {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	color: #fff;
	text-decoration: none;
}

.fp-brand__logo { width: 57px; height: 32px; flex: none; }
.fp-brand__claim { font: 400 18px/19.44px "DM Sans", sans-serif; width: 120px; white-space: normal; }
.fp-brand { align-items: flex-start; }

.fp-header__nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fp-header__nav a, .fp-header__nav span {
	font: 600 16px/1 "DM Sans", sans-serif;
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s var(--fp-ease);
}

.fp-header__nav a:hover, .fp-header__nav a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }

.fp-header__toggle {
	display: none;
	background: none;
	border: 0;
	padding: 0 8px;
	height: 32px;
	color: #fff;
	font: 600 16px/1 "DM Sans", sans-serif;
	cursor: pointer;
}

.fp-header__mobile {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 25;
	background: var(--fp-color-night);
	padding: 8px var(--fp-gutter) 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
	box-shadow: 0 24px 48px rgba(17, 24, 27, 0.35);
}

.fp-header__mobile a, .fp-header__mobile span.fp-t-action {
	font: 600 16px/1 "DM Sans", sans-serif;
	color: #fff;
	text-decoration: none;
	padding: 4px 0;
}

.fp-header__mobile a:hover, .fp-header__mobile a:focus-visible { text-decoration: underline; text-underline-offset: 0.2em; }

.fp-header__mobile[hidden] { display: none; }
.fp-header.is-open { background: var(--fp-color-night); padding-bottom: 24px; }
.fp-lang__menu a[aria-current="true"] { background: var(--fp-color-surface); }
.fp-lang__menu .is-unavailable { opacity: 0.45; }

@media (max-width: 1279.98px) {
	.fp-brand__claim { display: none; }
	.fp-header__nav { display: none; }
	.fp-header__toggle { display: inline-flex; align-items: center; }
	body.fp-menu-open { overflow: hidden; }
}

@media (min-width: 1280px) { .fp-header__mobile { display: none !important; } }

/* language switch */
.fp-lang { position: relative; }
.fp-lang__button {
	display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; padding: 4px; border: 0; background: none; color: #fff; cursor: pointer;
}
.fp-lang__button img { width: 16px; height: 16px; display: block; }
.fp-lang__menu {
	position: absolute; right: 0; top: calc(100% + 12px); z-index: 30;
	min-width: 112px; padding: 6px; margin: 0; list-style: none;
	background: #fff; box-shadow: 0 8px 24px rgba(17, 24, 27, 0.16);
	opacity: 0; transform: translateY(-4px);
	transition: opacity 0.16s var(--fp-ease), transform 0.16s var(--fp-ease);
}
.fp-lang.is-open .fp-lang__menu { opacity: 1; transform: none; }
.fp-lang__menu a, .fp-lang__menu span {
	display: flex; align-items: center; gap: 12px; padding: 10px 12px;
	font: 600 16px/24px "DM Sans", sans-serif; color: var(--fp-color-night); text-decoration: none; white-space: nowrap;
	transition: background-color 0.16s var(--fp-ease);
}
.fp-lang__menu a:hover { background: var(--fp-color-surface); color: var(--fp-color-night); }
.fp-flag { width: 24px; height: 15px; flex: none; overflow: hidden; display: block; }
.fp-flag--de { background: linear-gradient(#000 0 33.3%, #dd0000 33.3% 66.6%, #ffce00 66.6%); }
.fp-flag--en { background: url(../images/flag-en.svg) center / cover no-repeat; }
.fp-header__mobile .fp-lang { padding-top: 8px; }
.fp-header__mobile .fp-lang__button { display: none; }
.fp-header__mobile .fp-lang__menu { position: static; display: block !important; opacity: 1; transform: none; box-shadow: none; width: 112px; box-sizing: border-box; }
.fp-header__mobile .fp-lang__menu[hidden] { display: block !important; }

/* ---------- hero ---------- */

.fp-hero {
	position: relative;
	overflow: hidden;
	background: var(--fp-color-night);
	color: #fff;
	margin: 0 !important;
}

.fp-hero__media { position: absolute; inset: 0; overflow: hidden; }
.fp-hero__image {
	position: absolute; left: 0; top: -34px; width: 100%; height: 121%;
	object-fit: cover; object-position: 50% 57%; will-change: transform;
}
.fp-hero__tint { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.15); }
.fp-hero__vignette {
	position: absolute; width: 1222px; height: 1222px; border-radius: 50%;
	background: var(--fp-color-night); opacity: 0.4; filter: blur(122px); pointer-events: none;
}
.fp-hero__vignette--left { left: -479px; top: -486px; }
.fp-hero__vignette--right { left: 1024px; top: -438px; }

.fp-hero__inner {
	position: relative; z-index: 1;
	max-width: 1600px; margin-inline: auto; box-sizing: border-box;
	min-height: 760px;
	padding: 120px var(--fp-gutter) 56px;
	display: flex; flex-direction: column; justify-content: flex-end;
}

.fp-hero__content { display: flex; flex-direction: column-reverse; gap: 32px; }
.fp-hero__text { display: flex; flex-direction: column; gap: 16px; }
.fp-hero__lead { max-width: 526px; }
.fp-hero__heart { flex: none; }

@media (min-width: 810px) {
	.fp-hero__inner { min-height: 820px; padding: 140px var(--fp-gutter) 120px; }
	.fp-hero__content { flex-direction: row; align-items: flex-start; justify-content: space-between; min-height: 264px; }
	.fp-hero__text { width: 70%; gap: 24px; }
}

@media (min-width: 1280px) {
	.fp-hero__inner { min-height: 880px; padding: 40px var(--fp-gutter) 176px; }
	.fp-hero__text { width: 59.2%; }
	.fp-hero__vignette--left { left: -479px; }
}

@media (max-width: 809.98px) {
	.fp-hero__vignette--left { width: 598px; height: 598px; left: -208px; top: auto; bottom: -200px; }
	.fp-hero__vignette--right { display: none; }
}

/* ---------- intro (centered) ---------- */

.fp-intro {
	padding-block: var(--fp-pad-section);
	display: flex; flex-direction: column; align-items: center;
	gap: var(--fp-gap-section);
}

.fp-intro__head { display: flex; flex-direction: column; gap: 24px; max-width: 736px; width: 100%; text-align: center; }
.fp-intro__head .fp-t-eyebrow { margin-bottom: -8px; }
.fp-intro__head p + p { margin-top: 0; }

/* ---------- product (JOYclub / JOYCE) ---------- */

.fp-product {
	padding: 0 var(--fp-gutter) var(--fp-pad-wide);
	display: flex; flex-direction: column; gap: 48px;
}

.fp-product__intro { display: flex; flex-direction: column; gap: 24px; align-self: flex-start; width: 100%; }
.fp-product__intro--wide { gap: 32px; }
.fp-product__logo { display: block; }
.fp-product__logo--joyclub { width: 221.5px; height: 48px; }
.fp-product__logo--joyce { width: auto; height: 72px; }
.fp-product__copy { display: flex; flex-direction: column; gap: 24px; max-width: 480px; }
.fp-product__body { display: flex; flex-direction: column; }
.fp-product__image {
	position: relative; overflow: hidden; aspect-ratio: 16 / 9; width: 100%;
	background: var(--fp-color-surface);
}
.fp-product__image img {
	position: absolute; left: 0; top: -13%; width: 100%; height: 135%;
	object-fit: cover; will-change: transform;
}
.fp-product__stats { display: flex; flex-direction: column; gap: 32px; padding-top: 48px; }
.fp-product__features { display: flex; flex-direction: column; gap: 40px; padding-top: 48px; }
.fp-product__features-row { display: flex; flex-direction: column; gap: 40px; }

@media (min-width: 810px) {
	.fp-product { flex-direction: row; gap: 32px; padding-right: 0; }
	.fp-product__intro { position: sticky; top: 48px; flex: 2 1 0; }
	.fp-product__copy { width: 80%; }
	.fp-product__body { flex: 3 1 0; }
	.fp-product__stats { flex-direction: row; padding-top: 96px; }
	.fp-product__stats > :first-child { width: 38.6%; }
	.fp-product__stats > :nth-child(2) { width: 48.8%; }
	.fp-product__stats--single > :first-child { width: 52.6%; }
	.fp-product__features { width: 80.7%; gap: 56px; padding-top: 96px; }
	.fp-product__features-row { flex-direction: row; gap: 32px; }
	.fp-product__features-row > * { flex: 1 1 0; }
}

@media (max-width: 809.98px) {
	.fp-product__image { aspect-ratio: auto; height: 513px; max-height: 60vw; min-height: 191px; }
	.fp-product__image img { top: 0; height: 100%; }
}

/* ---------- stat / feature ---------- */

.fp-stat { display: flex; flex-direction: column; gap: 16px; }
.fp-stat__row { display: flex; align-items: flex-start; gap: 16px; }
.fp-stat__number { display: block; color: var(--fp-color-night); }
.fp-stat__icon { padding-top: 0; }
.fp-stat__label { color: var(--fp-color-night); }
@media (min-width: 810px) { .fp-stat { gap: 48px; } }

.fp-feature { display: flex; flex-direction: column; gap: 16px; }
.fp-feature__title { color: var(--fp-color-night); }
.fp-feature__text { color: var(--fp-color-secondary); }

/* ---------- purpose ---------- */

.fp-purpose {
	position: relative; overflow: hidden;
	background: var(--fp-color-night); color: #fff;
	padding: 48px var(--fp-gutter);
	display: flex; flex-direction: column; gap: 80px;
	min-height: 600px;
}
.fp-purpose > .fp-color-field { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.fp-purpose__statement { position: relative; z-index: 1; color: #fff; }
.fp-purpose__grid { position: relative; z-index: 1; display: flex; flex-direction: column; }
.fp-purpose__spacer { display: none; }
.fp-purpose__content { display: flex; flex-direction: column; gap: 32px; max-width: 608px; }
.fp-purpose__footnote { padding-top: 48px; opacity: 0.4; }

@media (min-width: 810px) {
	.fp-purpose { gap: 100px; min-height: 900px; padding: 48px var(--fp-gutter); }
	.fp-purpose__grid { flex-direction: row; gap: 32px; }
	.fp-purpose__spacer { display: block; flex: 1 1 0; }
	.fp-purpose__side { flex: 1 1 0; }
	.fp-purpose__content { width: 82.6%; }
	.fp-purpose__footnote { padding-top: 144px; }
}

.fp-color-field { display: block; overflow: hidden; pointer-events: none; }
.fp-color-field svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* ---------- company (map, figures, contacts) ---------- */

.fp-company { display: flex; flex-direction: column; gap: 40px; width: 100%; max-width: 1504px; }
.fp-company__maps { position: relative; display: flex; flex-direction: column; gap: 16px; }
.fp-pixel-map { position: relative; width: 100%; height: var(--fp-map-height, 640px); overflow: hidden; }
.fp-pixel-map svg { display: block; width: 100%; height: 100%; }
.fp-company__maps .fp-pixel-map--europe { height: 358px; }
.fp-company__inset {
	background: #fff; padding: 12px 12px 0 0; box-sizing: border-box;
	width: 100%; height: 232px;
}
.fp-company__inset .fp-pixel-map { height: 100%; }
.fp-company__figures { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
.fp-company__contacts { display: grid; grid-template-columns: 1fr; gap: 32px; }

@media (min-width: 810px) {
	.fp-company { gap: 64px; }
	.fp-company__maps { display: block; height: 640px; overflow: hidden; }
	.fp-company__maps .fp-pixel-map--europe { height: 640px; }
	.fp-company__inset { position: absolute; left: 0; bottom: 0; width: 328px; height: 232px; }
	.fp-company__figures { grid-template-columns: repeat(4, 1fr); gap: 32px; }
	.fp-company__contacts { grid-template-columns: repeat(2, 1fr); gap: 64px; }
}

.fp-contact { display: flex; gap: 20px; align-items: flex-start; }
.fp-contact__image { width: 104px; height: 104px; object-fit: cover; flex: none; }
.fp-contact__body { display: flex; flex-direction: column; gap: 24px; flex: 1 1 0; }
.fp-contact__who { display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 810px) {
	.fp-contact { gap: 24px; }
	.fp-contact__image { width: 120px; height: 120px; }
}

/* ---------- employer ---------- */

.fp-employer { padding-block: var(--fp-pad-wide); display: flex; flex-direction: column; gap: var(--fp-gap-section); }
.fp-employer__intro { display: flex; gap: 32px; align-items: flex-start; }
.fp-employer__text { flex: 1 1 0; display: flex; flex-direction: column; gap: 24px; }
.fp-employer__head { display: flex; flex-direction: column; gap: 16px; }
.fp-employer__badge { flex: none; width: 80px; }
.fp-employer__badge img { width: 100%; height: auto; }
.fp-benefits { display: flex; flex-direction: column; gap: 40px; }

@media (min-width: 810px) {
	.fp-employer__intro > * { flex: 1 1 0; }
	.fp-employer__badge { display: flex; justify-content: flex-end; width: auto; }
	.fp-employer__badge img { width: 120px; }
	.fp-benefits { flex-direction: row; gap: 32px; }
	.fp-benefits > * { flex: 1 1 0; }
}

/* ---------- team carousel ---------- */

.fp-carousel {
	--fp-slide-anchor: var(--fp-gutter);
	--fp-slide-w: 300px; --fp-slide-h: 200px;
	--fp-slide-w-small: 220px; --fp-slide-h-small: 147px;
	--fp-slide-gap: 16px;
	position: relative; width: 100%; overflow: hidden;
	margin: 0 !important; max-width: none !important;
}
.fp-carousel__track { position: relative; width: 100%; height: 200px; }
.fp-carousel__slide {
	position: absolute; top: 0; margin: 0; padding: 0; border: 0; background: var(--fp-color-surface);
	overflow: hidden; cursor: pointer; display: block; box-sizing: border-box;
}
.fp-carousel__slide.is-active { cursor: default; z-index: 2; }
.fp-carousel__slide img { width: 100%; height: 100%; object-fit: cover; }

@media (min-width: 810px) {
	.fp-carousel { --fp-slide-w: 480px; --fp-slide-h: 320px; --fp-slide-w-small: 360px; --fp-slide-h-small: 240px; }
}
@media (min-width: 1280px) {
	.fp-carousel { --fp-slide-w: 540px; --fp-slide-h: 360px; --fp-slide-w-small: 540px; --fp-slide-h-small: 360px; --fp-slide-anchor: 48px; }
}

/* ---------- jobs ---------- */

.fp-jobs { padding: 0 var(--fp-gutter) var(--fp-pad-wide); display: flex; flex-direction: column; gap: var(--fp-gap-section); }
.fp-jobs__intro { display: flex; flex-direction: column; gap: 16px; }
.fp-jobs__locations { display: flex; flex-direction: column; gap: 64px; }
@media (min-width: 810px) { .fp-jobs__intro { width: 50%; } .fp-jobs__locations { gap: 40px; } }

.fp-jobs-location { display: flex; flex-direction: column; gap: 32px; }
.fp-jobs-location__intro { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.fp-jobs-location__text { max-width: 480px; }
.fp-jobs-location__list { display: flex; flex-direction: column; }

@media (min-width: 810px) {
	.fp-jobs-location { flex-direction: row; gap: 32px; }
	.fp-jobs-location__intro { width: 31.9%; flex: none; }
	.fp-jobs-location__text { width: 66%; }
	.fp-jobs-location__list { flex: 1 1 0; }
}

.fp-job { display: block; color: inherit; text-decoration: none; }
.fp-job__line { display: block; height: 1px; background: var(--fp-color-border); }
.fp-job__row { display: flex; gap: 16px; padding: 32px 0; align-items: flex-start; }
.fp-job__text { display: flex; flex-direction: column; gap: 4px; flex: 1 1 0; }
.fp-job__title { display: block; color: var(--fp-color-night); transition: color 0.2s var(--fp-ease); }
.fp-job__meta { display: block; font: 600 14px/1.4286 "DM Sans", sans-serif; color: #899ba5; }
.fp-job__open { display: block; padding: 8px 0; flex: none; }
.fp-job:hover .fp-job__title { color: var(--fp-color-ink); }
@media (min-width: 810px) { .fp-job__row { gap: 24px; } }

/* ---------- crosslinks ---------- */

.fp-crosslinks { padding: 0 var(--fp-gutter) var(--fp-pad-wide); display: flex; flex-direction: column; gap: 48px; }
.fp-crosslinks__intro { display: flex; flex-direction: column; gap: 16px; }
.fp-crosslinks__intro h2 { max-width: 992px; }
.fp-crosslinks__tiles { display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 810px) { .fp-crosslinks__tiles { flex-direction: row; gap: 32px; } .fp-crosslinks__tiles > * { flex: 1 1 0; } }

.fp-link-tile {
	display: flex; flex-direction: column; justify-content: space-between;
	min-height: 200px; padding: 24px; box-sizing: border-box;
	background: var(--fp-color-surface); color: var(--fp-color-night); text-decoration: none;
	transition: background-color 0.16s cubic-bezier(0.44, 0, 0.56, 1);
}
.fp-link-tile:hover, .fp-link-tile:focus-visible { background: var(--fp-color-yellow); color: var(--fp-color-night); }
.fp-link-tile__head { display: flex; align-items: center; gap: 24px; min-height: 40px; }
.fp-link-tile__title { flex: 1 1 0; color: var(--fp-color-night); }
.fp-link-tile__text { display: block; padding-top: 24px; color: var(--fp-color-night); }
@media (min-width: 1280px) { .fp-link-tile { min-height: 240px; padding: 32px; } }

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

.fp-footer { background: var(--fp-color-night); color: #fff; padding: 40px 0 24px; overflow: hidden; }
.fp-footer__inner { max-width: 1600px; margin-inline: auto; }
.fp-footer__nav { display: flex; flex-direction: column; gap: 48px; padding-inline: var(--fp-gutter); }
.fp-footer__brand { flex: 1 1 0; }
.fp-footer__columns { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 32px; flex: 1 1 0; }
.fp-footer__column { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fp-footer__column .fp-t-eyebrow { color: var(--fp-color-secondary-dark); min-height: 16px; }
.fp-footer__column a { font: 600 20px/28px "DM Sans", sans-serif; color: #fff; text-decoration: none; transition: color 0.2s var(--fp-ease); }
.fp-footer__column a:hover, .fp-footer__column a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
/* Framer: the pixel ticker layer is hidden, only its spacing remains */
.fp-footer__spacer { height: 96px; }
.fp-footer__bottom { display: flex; flex-direction: column; gap: 24px; padding-inline: var(--fp-gutter); }
.fp-footer__copy { color: var(--fp-color-secondary-dark); }
.fp-footer__top:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.fp-footer__top {
	display: inline-flex; align-items: center; gap: 16px; color: #fff; text-decoration: none;
	font: 600 14px/1.08 "DM Sans", sans-serif;
}

@media (min-width: 810px) {
	.fp-footer__columns { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
	.fp-footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; }
}
@media (min-width: 1280px) {
	.fp-footer { padding: 48px 0 27px; }
	.fp-footer__nav { flex-direction: row; gap: 32px; }
	.fp-footer__columns { display: flex; }
	.fp-footer__column { flex: 1 1 0; }
	.fp-footer__spacer { height: 246px; }
	.fp-footer__bottom { padding-top: 33px; }
}


/* ---------- inner pages ---------- */

.fp-page-head {
	background: var(--fp-color-night); color: #fff;
	padding: 140px var(--fp-gutter) 64px;
}
.fp-page-head__inner { max-width: 1600px; margin-inline: auto; display: flex; flex-direction: column; gap: 16px; }
.fp-page-head h1 { color: #fff; }
@media (min-width: 1280px) { .fp-page-head { padding: 160px var(--fp-gutter) 96px; } }

.fp-content { padding: 64px var(--fp-gutter) 96px; }
.fp-content > .wp-block-post-content, .fp-content__inner { max-width: 736px; margin-inline: auto; }
.fp-content .wp-block-post-content > * + * { margin-top: 24px; }
.fp-content .wp-block-post-content h2 { font-size: var(--fp-size-subsection); }
.fp-content .wp-block-post-content h3 { font-size: var(--fp-size-card); }
.fp-content .wp-block-post-content .alignwide { max-width: 1504px; margin-inline: calc(50% - min(752px, 50vw - var(--fp-gutter))); }
.fp-content .wp-block-post-content .alignfull { max-width: none; width: calc(100vw - 2 * var(--fp-gutter)); margin-inline: calc(50% - 50vw + var(--fp-gutter)); }

.fp-post-list { display: flex; flex-direction: column; gap: 48px; max-width: 736px; margin-inline: auto; }
.fp-post-list article { display: flex; flex-direction: column; gap: 12px; }
.fp-post-list h2 a { color: var(--fp-color-night); text-decoration: none; }
.fp-post-list h2 a:hover { color: var(--fp-color-ink); }

/* editor preview */
.fp-editor-preview .fp-hero { min-height: 400px; }
.editor-styles-wrapper .fp-header { position: relative; background: var(--fp-color-night); }

/* ---------- WordPress flow-layout reset inside Framer sections ----------
   Core adds margin-block-start: blockGap to every child of a flow group;
   our sections space children with flex/grid gaps instead. */
.fp-v2 .wp-block-group[class*="fp-"] > * { margin-block: 0; }
.fp-v2 .wp-block-group[class*="fp-"] > .wp-block-group { margin-block: 0; }
.fp-contact__body { align-items: flex-start; }
.fp-jobs-location__intro .fp-button, .fp-purpose__content .fp-pixel-block { align-self: flex-start; }
.fp-product__logo { align-self: flex-start; flex: none; }
.fp-product__logo--joyce { width: 58px; height: 72px; }
.fp-product__logo--joyclub { width: 222px; height: 48px; }

/* ---------- block editor preview ---------- */
.editor-styles-wrapper { font-feature-settings: "cv03", "cv04", "cv09", "cv11"; }
.editor-styles-wrapper .wp-block-group[class*="fp-"] > *,
.editor-styles-wrapper .fp-section > *, .editor-styles-wrapper .fp-employer > *, .editor-styles-wrapper .fp-jobs > *, .editor-styles-wrapper .fp-crosslinks > * { margin-block: 0; }
.editor-styles-wrapper [data-fp-appear] { opacity: 1; transform: none; }
.editor-styles-wrapper .fp-editor-preview { display: block; min-width: 0; }
.editor-styles-wrapper .fp-product__stats > .fp-editor-preview:first-child { width: 38.6%; }
.editor-styles-wrapper .fp-product__stats > .fp-editor-preview:nth-child(2) { width: 48.8%; }
.editor-styles-wrapper .fp-product__features-row > .fp-editor-preview, .editor-styles-wrapper .fp-benefits > .fp-editor-preview, .editor-styles-wrapper .fp-crosslinks__tiles > .fp-editor-preview { flex: 1 1 0; }
.editor-styles-wrapper .fp-crosslinks__tiles > .fp-editor-preview > .fp-link-tile { height: 100%; }
.editor-styles-wrapper .fp-pixel-map { background: repeating-conic-gradient(rgba(0,0,0,0.12) 0 25%, transparent 0 50%) 0 0 / 6px 6px; }
.editor-styles-wrapper .fp-pixel-map::after { content: "Pixelkarte (wird auf der Website gerendert)"; position: absolute; left: 16px; top: 16px; font: 400 12px/1.3 "DM Mono", monospace; color: var(--fp-color-secondary); }
.editor-styles-wrapper .fp-color-field { position: absolute; inset: 0; background: radial-gradient(circle at 90% 15%, rgba(255,0,98,0.55), transparent 40%), radial-gradient(circle at 5% 90%, rgba(255,213,0,0.45), transparent 35%), radial-gradient(circle at 35% 15%, rgba(255,43,0,0.45), transparent 35%), var(--fp-color-night); }
.editor-styles-wrapper .fp-purpose > .fp-editor-preview:first-child { position: absolute; inset: 0; z-index: 0; }
.editor-styles-wrapper .fp-carousel__track { display: flex; gap: 16px; height: auto !important; padding-left: var(--fp-slide-anchor); overflow: hidden; }
.editor-styles-wrapper .fp-carousel__slide { position: static; width: var(--fp-slide-w); height: var(--fp-slide-h); flex: none; }
.editor-styles-wrapper .fp-hero { min-height: 640px; }
.editor-styles-wrapper .fp-hero__inner { min-height: 640px; padding-top: 80px; }
.editor-styles-wrapper .wp-block-post-content > .fp-section, .editor-styles-wrapper .wp-block-post-content > .fp-employer, .editor-styles-wrapper .wp-block-post-content > .fp-jobs, .editor-styles-wrapper .wp-block-post-content > .fp-crosslinks { max-width: none; }
.editor-styles-wrapper .is-root-container > [data-type="fp-v2/section"], .editor-styles-wrapper .is-root-container > [data-type="fp-v2/hero"], .editor-styles-wrapper .is-root-container > [data-type="fp-v2/team-carousel"] { max-width: none; margin-inline: 0; }

/* ---------- media library images inside sections (core/image wrappers) ---------- */
figure.fp-product__logo { margin: 0; }
figure.fp-product__logo--joyclub img { width: 222px; height: 48px; }
figure.fp-product__logo--joyce img { width: 58px; height: 72px; }
.fp-product__image .wp-block-image { margin: 0; position: static; }
.fp-employer__badge .wp-block-image { margin: 0; }
.fp-employer__badge img { width: 80px; height: auto; }
@media (min-width: 810px) { .fp-employer__badge img { width: 120px; } }
.fp-contact__image--empty { display: block; background: var(--fp-color-surface); }
.fp-hero--no-image .fp-hero__vignette { display: none; }
.fp-carousel__empty { padding: 16px var(--fp-gutter); }

/* ==========================================================================
   Company section v2 (Framer "06 · Unternehmen · Karte, Fakten und Prinzipien")
   ========================================================================== */

.fp-layout-company { gap: 64px; }
@media (min-width: 1280px) { .fp-layout-company { gap: 96px; } }

.fp-principles { display: flex; flex-direction: column; gap: 32px; width: 100%; max-width: 1504px; }
@media (min-width: 810px) { .fp-principles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 32px; } }
@media (min-width: 1280px) { .fp-principles { display: flex; flex-direction: row; gap: 32px; } .fp-principles > * { flex: 1 1 0; } }

.fp-company-grid { display: flex; flex-direction: column; gap: 32px; width: 100%; max-width: 1504px; }
.fp-company-grid .fp-pixel-map--europe { height: 300px; }
.fp-company-grid .fp-pixel-map--central-america { height: 220px; }
.fp-company-grid__contacts { display: flex; flex-direction: column; gap: 32px; }
.fp-contacts { display: flex; flex-direction: column; gap: 32px; }
.fp-contacts > .fp-t-eyebrow { flex: 1 1 0; min-height: 16px; }
.fp-contacts > .fp-editor-preview, .fp-contacts > .fp-contact { flex: 2 1 0; }

@media (min-width: 810px) {
	.fp-company-grid .fp-pixel-map--europe { height: 440px; }
	.fp-company-grid .fp-pixel-map--central-america { width: 280px; height: 200px; }
	.fp-contacts { flex-direction: row; gap: 32px; align-items: flex-start; }
}

@media (min-width: 1280px) {
	.fp-company-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto auto; gap: 32px; }
	.fp-company-grid > .fp-kpi-cycle, .fp-company-grid > .fp-editor-preview:first-child { grid-column: 1; grid-row: 1; }
	.fp-company-grid .fp-pixel-map--europe, .fp-company-grid > .fp-editor-preview:nth-child(2) { grid-column: 2 / span 3; grid-row: 1; height: 616px; }
	.fp-company-grid .fp-pixel-map--central-america, .fp-company-grid > .fp-editor-preview:nth-child(3) { grid-column: 1; grid-row: 2; width: auto; height: 220px; }
	.fp-company-grid__contacts { grid-column: 2 / span 3; grid-row: 2; align-self: end; }
}

/* KPI cycle (Framer CompanyKpiCycle.tsx): five 3-second turns, 600 ms crossfade */
.fp-kpi-cycle { --fp-kpi-size: 56px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
.fp-kpi { display: flex; flex-direction: column; gap: 8px; color: var(--fp-color-surface); }
.fp-kpi__number { display: block; font: 400 var(--fp-kpi-size)/0.9 "DM Sans", sans-serif; letter-spacing: -0.04em; font-variation-settings: "opsz" 14; font-variant-numeric: tabular-nums; }
.fp-kpi__label { color: inherit; }
.fp-kpi[data-fp-kpi-row="0"] { color: var(--fp-color-night); }
@media (min-width: 810px) {
	.fp-kpi-cycle { --fp-kpi-size: 64px; }
	.fp-kpi { flex-direction: row; align-items: flex-start; }
	.fp-kpi__number { width: 104px; flex: none; }
}
@media (min-width: 1280px) {
	.fp-kpi-cycle { --fp-kpi-size: 88px; display: flex; flex-direction: column; gap: 16px; }
	.fp-kpi { gap: 16px; }
	.fp-kpi__number { width: auto; }
}
@keyframes fp-kpi-color { 0%, 16%, 100% { color: var(--fp-color-night); } 20%, 96% { color: var(--fp-color-surface); } }
@keyframes fp-kpi-size { 0%, 16%, 100% { font-size: calc(var(--fp-kpi-size) * 1.1); } 20%, 96% { font-size: calc(var(--fp-kpi-size) * 0.82); } }
[data-fp-kpi-cycle] .fp-kpi { animation: fp-kpi-color 15s ease-in-out infinite; animation-play-state: paused; animation-delay: var(--fp-kpi-delay, -15s); }
[data-fp-kpi-cycle] .fp-kpi__number { animation: fp-kpi-size 15s ease-in-out infinite; animation-play-state: paused; animation-delay: var(--fp-kpi-delay, -15s); }
[data-fp-kpi-cycle="running"] .fp-kpi, [data-fp-kpi-cycle="running"] .fp-kpi__number { animation-play-state: running; }
.fp-kpi[data-fp-kpi-row="0"] { --fp-kpi-delay: -15s; }
.fp-kpi[data-fp-kpi-row="1"] { --fp-kpi-delay: -12s; }
.fp-kpi[data-fp-kpi-row="2"] { --fp-kpi-delay: -9s; }
.fp-kpi[data-fp-kpi-row="3"] { --fp-kpi-delay: -6s; }
.fp-kpi[data-fp-kpi-row="4"] { --fp-kpi-delay: -3s; }
@media (prefers-reduced-motion: reduce) {
	[data-fp-kpi-cycle] .fp-kpi, [data-fp-kpi-cycle] .fp-kpi__number { animation: none; }
	.fp-kpi__number { font-size: calc(var(--fp-kpi-size) * 0.82); }
	.fp-kpi[data-fp-kpi-row="0"] .fp-kpi__number { font-size: calc(var(--fp-kpi-size) * 1.1); }
}

/* Contact card v2: name/role tight, body-style role, e-mail button */
.fp-contact__body { gap: 16px; }
.fp-contact__who { gap: 4px; }
.fp-contact__image { width: 80px; height: 80px; }
@media (min-width: 1280px) { .fp-contact { gap: 24px; } .fp-contact__image { width: 120px; height: 120px; } }
@media (min-width: 810px) and (max-width: 1279.98px) { .fp-contact { gap: 16px; } }

/* E-mail button: envelope with folding flap (Framer PixelMailHover.tsx) */
.fp-button--email .fp-mail { display: block; width: 20px; height: 20px; flex: none; color: var(--fp-color-ink); }
.fp-button--email .fp-mail svg { display: block; overflow: visible; }
.fp-button--email .fp-mail__flap { transform-box: view-box; transform-origin: 10px 7px; transform: rotateX(0deg); transition: transform 240ms var(--fp-ease); }
@media (hover: hover) { .fp-button--email:hover .fp-mail__flap { transform: rotateX(180deg); } }
.fp-button--email:focus-visible .fp-mail__flap { transform: rotateX(180deg); }
@media (prefers-reduced-motion: reduce) { .fp-button--email .fp-mail__flap { transition: none; } }

/* ==========================================================================
   Jobs: detail page, overview sections (Framer draft "jobs-agent")
   ========================================================================== */

/* ---------- job detail head ---------- */
.fp-job-head__inner { gap: 24px; }

.fp-job-head__subtitle { max-width: 736px; }
.fp-job-head__cta { padding-top: 8px; display: flex; flex-wrap: wrap; gap: 12px; }
.fp-job-content .wp-block-post-content > .fp-t-lead,
.fp-job-content .wp-block-post-content > .has-large-font-size,
.wp-block-post-content > p.has-large-font-size { font: 400 24px/1.4 "DM Sans", sans-serif; letter-spacing: -0.01em; color: var(--fp-color-night); margin-bottom: 8px; }
@media (max-width: 809px) {
	.fp-job-content .wp-block-post-content > .fp-t-lead,
	.fp-job-content .wp-block-post-content > .has-large-font-size,
	.wp-block-post-content > p.has-large-font-size { font-size: 20px; line-height: 1.45; }
}
.fp-job-content .wp-block-post-content h2 { font-size: var(--fp-size-subsection); line-height: 1.1; padding-top: 24px; }
.fp-job-content .wp-block-post-content ul { padding-left: 1.2em; }
.fp-job-content .wp-block-post-content li + li { margin-top: 8px; }

/* standard parts */
.fp-job-part { display: block; }
.fp-job-part__title { margin-bottom: 16px; }
.fp-job-part > * + * { margin-top: 16px; }
.fp-job-part__form { margin-top: 32px; }
.fp-job-part__contacts { display: grid; grid-template-columns: 1fr; gap: 32px; margin-top: 32px; }
@media (min-width: 810px) { .fp-job-part__contacts { grid-template-columns: repeat(2, 1fr); } }
.fp-contact--compact .fp-contact__image { width: 96px; height: 96px; }
.fp-contact--compact .fp-contact__body { gap: 12px; }
.fp-contact--compact .fp-contact__who { gap: 2px; }
.fp-contact__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
/* kununu card */
.fp-kununu { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px; padding: 32px; margin-top: 8px; background: var(--fp-color-surface); }
.fp-kununu__score { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.fp-kununu__number { font: 600 64px/1 "DM Sans", sans-serif; letter-spacing: -0.03em; color: var(--fp-color-night); margin: 0; }
.fp-kununu__of { font-size: 24px; letter-spacing: 0; color: var(--fp-color-secondary); font-weight: 400; }
.fp-kununu__stars { display: flex; gap: 6px; }
.fp-kununu__star { position: relative; display: block; }
.fp-kununu__star .fp-pixel > i.is-on { background: var(--fp-color-border); }
.fp-kununu__star-fill { position: absolute; inset: 0; clip-path: inset(0 calc((1 - var(--fp-star-fill, 1)) * 100%) 0 0); }
.fp-kununu__star-fill .fp-pixel > i.is-on { background: var(--fp-color-yellow); }
.fp-kununu__meta { margin: 4px 0 0; }
.fp-kununu__link { margin-top: 8px; }
.fp-kununu__badge { flex: none; }
.fp-kununu__badge-image { display: block; width: auto; height: 160px; }
@media (max-width: 809px) { .fp-kununu { padding: 24px; } .fp-kununu__badge-image { height: 120px; } .fp-kununu__number { font-size: 56px; } }
.fp-job-part__hint { font: 400 12px/1.4 "DM Mono", monospace; color: var(--fp-color-secondary); padding: 8px 12px; background: var(--fp-color-surface); margin-bottom: 12px; }

/* Contact Form 7 in the F&P look (application form inside a job part) */
.fp-job-part__form { margin-top: 32px; }
.fp-job-part .wpcf7-form { display: block; }
.fp-job-part .wpcf7-form > br, .fp-job-part .wpcf7-form div[style*="height"] { display: none; }
.fp-job-part .wpcf7-form fieldset { border: 0; padding: 0; margin: 0 0 40px; min-width: 0; }
.fp-job-part .wpcf7-form fieldset fieldset { margin-top: 8px; }
.fp-job-part .wpcf7-form legend { display: block; width: 100%; padding: 0 0 12px; margin: 0 0 24px; border-bottom: 1px solid var(--fp-color-border); font: 600 20px/1.3 "DM Sans", sans-serif; letter-spacing: -0.01em; color: var(--fp-color-night); }
.fp-job-part .wpcf7-form fieldset > div { margin-bottom: 24px; }
.fp-job-part .wpcf7-form fieldset > div:last-child { margin-bottom: 0; }
.fp-job-part .wpcf7-form label, .fp-job-part .wpcf7-form lable { display: block; font: 400 12px/1.4 "DM Mono", monospace; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fp-color-secondary); margin-bottom: 8px; }
.fp-job-part .wpcf7-form abbr { text-decoration: none; }
.fp-job-part .wpcf7-form p { font: 400 16px/1.5 "DM Sans", sans-serif; margin: 0 0 16px; }
.fp-job-part .wpcf7-form p.hint, .fp-job-part .wpcf7-form fieldset.hint p { font-size: 14px; color: var(--fp-color-secondary); margin: 0; }
.fp-job-part .wpcf7-form fieldset.hint { margin: -16px 0 24px; }
.fp-job-part .wpcf7-form-control-wrap { display: block; }
.fp-job-part .wpcf7-form input[type="text"], .fp-job-part .wpcf7-form input[type="email"], .fp-job-part .wpcf7-form input[type="tel"], .fp-job-part .wpcf7-form input[type="url"], .fp-job-part .wpcf7-form input[type="number"], .fp-job-part .wpcf7-form textarea, .fp-job-part .wpcf7-form select {
	display: block; width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 16px; margin: 0;
	border: 1px solid transparent; border-radius: 0; background: var(--fp-color-surface); appearance: none; -webkit-appearance: none;
	font: 400 16px/1.5 "DM Sans", sans-serif; color: var(--fp-color-night);
	transition: background-color 0.2s var(--fp-ease), border-color 0.2s var(--fp-ease);
}
.fp-job-part .wpcf7-form textarea { min-height: 144px; resize: vertical; }
.fp-job-part .wpcf7-form select { padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 7 7' shape-rendering='crispEdges' fill='%2311181b'%3E%3Crect x='1' y='2' width='1' height='1'/%3E%3Crect x='5' y='2' width='1' height='1'/%3E%3Crect x='2' y='3' width='1' height='1'/%3E%3Crect x='4' y='3' width='1' height='1'/%3E%3Crect x='3' y='4' width='1' height='1'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; cursor: pointer; }
.fp-job-part .wpcf7-form input:hover, .fp-job-part .wpcf7-form textarea:hover, .fp-job-part .wpcf7-form select:hover { border-color: var(--fp-color-border); }
.fp-job-part .wpcf7-form input:focus-visible, .fp-job-part .wpcf7-form textarea:focus-visible, .fp-job-part .wpcf7-form select:focus-visible { outline: 0; border-color: var(--fp-color-night); background: #fff; }
.fp-job-part .wpcf7-form input::placeholder, .fp-job-part .wpcf7-form textarea::placeholder { color: var(--fp-color-secondary); }

/* file upload: the native button becomes an outline button */
.fp-job-part .wpcf7-form input[type="file"] { display: block; width: 100%; box-sizing: border-box; padding: 8px; background: var(--fp-color-surface); font: 400 14px/1.4 "DM Sans", sans-serif; color: var(--fp-color-secondary); cursor: pointer; }
.fp-job-part .wpcf7-form input[type="file"]::file-selector-button { margin-right: 16px; padding: 8px 16px; border: 1px solid var(--fp-color-secondary); border-radius: 0; background: #fff; font: 600 14px/16px "DM Sans", sans-serif; color: var(--fp-color-night); cursor: pointer; transition: background-color 0.2s var(--fp-ease), border-color 0.2s var(--fp-ease); }
.fp-job-part .wpcf7-form input[type="file"]:hover::file-selector-button { background: var(--fp-color-yellow); border-color: var(--fp-color-yellow); }

/* quiz + acceptance */
.fp-job-part .wpcf7-form .wpcf7-quiz-label { display: block; font: 400 12px/1.4 "DM Mono", monospace; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fp-color-secondary); margin-bottom: 8px; }
.fp-job-part .wpcf7-form .pr .wpcf7-acceptance .wpcf7-list-item { display: flex; gap: 12px; align-items: flex-start; margin: 0; }
.fp-job-part .wpcf7-form .pr .wpcf7-list-item label { display: contents; }
.fp-job-part .wpcf7-form .pr .wpcf7-list-item-label { font: 400 14px/1.5 "DM Sans", sans-serif; text-transform: none; letter-spacing: 0; color: var(--fp-color-night); }
.fp-job-part .wpcf7-form input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 1px 0 0; border: 1px solid var(--fp-color-secondary); background: #fff; cursor: pointer; display: grid; place-content: center; }
.fp-job-part .wpcf7-form input[type="checkbox"]::before { content: ""; width: 10px; height: 10px; background: var(--fp-color-night); transform: scale(0); transition: transform 0.15s var(--fp-ease); }
.fp-job-part .wpcf7-form input[type="checkbox"]:checked::before { transform: scale(1); }
.fp-job-part .wpcf7-form input[type="checkbox"]:focus-visible { outline: 2px solid var(--fp-color-night); outline-offset: 2px; }
.fp-job-part .wpcf7-form .pr a { color: inherit; text-underline-offset: 0.2em; }

/* submit */
.fp-job-part .wpcf7-form fieldset.formnavi { margin-bottom: 0; display: flex; align-items: center; gap: 16px; }
.fp-job-part .wpcf7-form input[type="submit"] { display: inline-flex; align-items: center; min-height: 48px; padding: 12px 24px; border: 0; border-radius: 0; background: var(--fp-color-yellow); color: var(--fp-color-night); font: 600 16px/24px "DM Sans", sans-serif; cursor: pointer; transition: background-color 0.2s var(--fp-ease); }
.fp-job-part .wpcf7-form input[type="submit"]:hover, .fp-job-part .wpcf7-form input[type="submit"]:focus-visible { background: var(--fp-color-yellow-pressed); outline: 0; }
.fp-job-part .wpcf7-form .wpcf7-spinner { margin: 0; }

/* validation + response */
.fp-job-part .wpcf7-form .wpcf7-not-valid { border-color: #c8321e; }
.fp-job-part .wpcf7-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; font: 400 13px/1.4 "DM Sans", sans-serif; color: #c8321e; }
.fp-job-part .wpcf7-form .wpcf7-response-output { margin: 24px 0 0; padding: 16px; border: 1px solid var(--fp-color-border); font: 400 15px/1.5 "DM Sans", sans-serif; }
.fp-job-part .wpcf7-form.sent .wpcf7-response-output { border-color: var(--fp-color-night); background: var(--fp-color-surface); }
.fp-job-part .wpcf7-form.invalid .wpcf7-response-output, .fp-job-part .wpcf7-form.failed .wpcf7-response-output { border-color: #c8321e; color: #c8321e; }

/* ---------- overview: hero ---------- */
.fp-section--dark { background: var(--fp-color-night); color: #fff; }
.fp-jobs-hero { padding: 120px var(--fp-gutter) 64px; display: flex; flex-direction: column; gap: 48px; }
.fp-jobs-hero__grid { display: flex; flex-direction: column; gap: 32px; }
.fp-jobs-hero__text { display: flex; flex-direction: column; justify-content: flex-end; gap: 32px; }
.fp-jobs-hero__text .fp-t-hero { color: #fff; }
.fp-jobs-hero__facts { display: flex; flex-direction: column; gap: 24px; }
.fp-jobs-hero__image { width: 100%; height: 320px; overflow: hidden; background: var(--fp-color-ink); }
.fp-jobs-hero__image .wp-block-image, .fp-jobs-hero__image figure { margin: 0; height: 100%; }
.fp-jobs-hero__image img { width: 100%; height: 100%; object-fit: cover; image-rendering: pixelated; image-rendering: crisp-edges; }
@media (min-width: 810px) { .fp-jobs-hero { padding-top: 140px; } }
@media (min-width: 1280px) {
	.fp-jobs-hero { padding: 40px var(--fp-gutter) 96px; gap: 96px; }
	.fp-jobs-hero__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; padding-top: 96px; }
	.fp-jobs-hero__text { grid-column: 1 / span 7; }
	.fp-jobs-hero__image { grid-column: 9 / span 4; height: 560px; }
}

/* ---------- overview: culture ---------- */
.fp-culture { padding-block: var(--fp-pad-wide); display: flex; flex-direction: column; gap: var(--fp-gap-section); }
.fp-culture__grid { display: flex; flex-direction: column; gap: 32px; }
.fp-culture__intro { display: flex; flex-direction: column; gap: 16px; }
.fp-culture__text { display: flex; flex-direction: column; gap: 32px; }
.fp-culture__text p { font: 400 18px/1.5556 "DM Sans", sans-serif; }
.fp-culture__text a { color: var(--fp-color-night); }
.fp-culture__media { display: grid; grid-template-columns: 1fr; gap: 32px; }
.fp-culture__image { height: 320px; overflow: hidden; }
.fp-culture__image .wp-block-image { margin: 0; height: 100%; }
.fp-culture__image img { width: 100%; height: 100%; object-fit: cover; }
.fp-quote { margin: 0; display: flex; flex-direction: column; gap: 24px; }
.fp-quote__text { margin: 0; color: var(--fp-color-night); }
.fp-quote__icon { display: block; }
@media (min-width: 810px) { .fp-culture__media { grid-template-columns: repeat(2, 1fr); } .fp-culture__media > .fp-quote { grid-column: 1 / -1; } .fp-culture__image { height: 400px; } }
@media (min-width: 1280px) {
	.fp-culture__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; }
	.fp-culture__intro { grid-column: 1 / span 4; }
	.fp-culture__text { grid-column: 6 / span 7; padding-top: 8px; }
	.fp-culture__media { grid-template-columns: repeat(12, 1fr); }
	.fp-culture__media > .fp-quote, .fp-culture__media > .fp-editor-preview:first-child { grid-column: 1 / span 4; justify-content: space-between; padding-right: 32px; }
	.fp-culture__image { grid-column: span 4; height: 480px; }
}

/* ---------- overview: jobs list ---------- */
.fp-jobs__intro--row { display: flex; flex-direction: column; gap: 16px; }
.fp-jobs__intro--row .fp-jobs__intro { width: 100%; }
.fp-jobs-updated { white-space: nowrap; }
@media (min-width: 810px) { .fp-jobs__intro--row { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 32px; } .fp-jobs__intro--row .fp-jobs__intro { width: auto; max-width: 60%; } }
.fp-jobs-location__intro { padding-top: 0; }
@media (min-width: 810px) { .fp-jobs-overview .fp-jobs-location__intro { padding-top: 32px; } }
.fp-job--empty { padding: 32px 0; border-top: 1px solid var(--fp-color-border); }
.fp-jobs-location--initiative .fp-jobs-location__list > .fp-job__line:last-child { display: block; height: 1px; background: var(--fp-color-border); }

/* ---------- overview: process (dark) ---------- */
.fp-process { padding-block: var(--fp-pad-wide); display: flex; flex-direction: column; gap: var(--fp-gap-section); }
.fp-process__intro { display: flex; flex-direction: column; gap: 24px; }
.fp-process__intro .fp-t-section { color: #fff; }
.fp-process__head { display: flex; flex-direction: column; gap: 16px; }
.fp-process__duration { color: var(--fp-color-secondary-dark); }
@media (min-width: 1280px) { .fp-process__intro { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; } .fp-process__head { grid-column: 1 / span 7; } .fp-process__duration { grid-column: 9 / span 4; padding-top: 8px; } }
.fp-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.fp-step { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 32px 0 40px; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.fp-step__number, .fp-step__time { color: var(--fp-color-secondary-dark); }
.fp-step__title { color: #fff; }
.fp-step__text { color: var(--fp-color-secondary-dark); }
@media (min-width: 810px) { .fp-step { grid-template-columns: 48px 1fr 140px; grid-template-areas: "n t time" "n x time"; gap: 8px 32px; } .fp-step__number { grid-area: n; } .fp-step__title { grid-area: t; } .fp-step__text { grid-area: x; } .fp-step__time { grid-area: time; text-align: right; } }
@media (min-width: 1280px) { .fp-step { grid-template-columns: repeat(12, 1fr); grid-template-areas: "n t t t x x x x x time time time"; gap: 32px; } .fp-step__text { max-width: 560px; } }
.fp-process__contacts { display: grid; grid-template-columns: 1fr; gap: 32px; }
.fp-process__hint { display: flex; flex-direction: column; gap: 16px; }
.fp-process__hint .fp-t-card { color: #fff; }
.fp-process__hint .fp-t-small { color: var(--fp-color-secondary-dark); }
@media (min-width: 810px) { .fp-process__contacts { grid-template-columns: repeat(2, 1fr); } .fp-process__hint { grid-column: 1 / -1; } }
@media (min-width: 1280px) { .fp-process__contacts { grid-template-columns: repeat(12, 1fr); } .fp-process__contacts > *, .fp-process__contacts .fp-jobs-contacts > * { grid-column: span 4; } .fp-process__hint { grid-column: 9 / span 4; } }
.fp-section--dark .fp-contact--stacked .fp-contact__name { color: #fff; }
.fp-section--dark .fp-contact--stacked .fp-contact__role { color: var(--fp-color-secondary-dark); }
.fp-section--dark .fp-contact--stacked .fp-contact__link { color: #fff; }
.fp-contact--stacked { flex-direction: column; gap: 24px; }
.fp-contact--stacked .fp-contact__image { width: 224px; height: 224px; }
.fp-contact--stacked .fp-contact__who { gap: 0; }
.fp-contact--stacked .fp-contact__role { font: 400 12px/1.3333 "DM Mono", monospace; letter-spacing: 0.04em; text-transform: uppercase; }
.fp-contact--stacked .fp-contact__body { gap: 16px; }
.fp-jobs-contacts { display: contents; }
.fp-contact__links { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.fp-contact__links .fp-contact__link { white-space: nowrap; }
.fp-contact__link { text-decoration: none; color: var(--fp-color-night); }
.fp-contact__link:hover { text-decoration: underline; text-underline-offset: 0.2em; }

/* ---------- overview: faq ---------- */
.fp-faq-section { padding-block: var(--fp-pad-wide); display: flex; flex-direction: column; gap: var(--fp-gap-section); }
.fp-faq { display: flex; flex-direction: column; }
.fp-faq-item { display: grid; grid-template-columns: 1fr; gap: 16px; padding: 40px 0 48px; border-top: 1px solid var(--fp-color-border); }
.fp-faq-item__answer > * + * { margin-top: 16px; }
@media (min-width: 1280px) { .fp-faq-item { grid-template-columns: repeat(12, 1fr); gap: 32px; } .fp-faq-item__question { grid-column: 1 / span 5; } .fp-faq-item__answer { grid-column: 7 / span 6; } }
.editor-styles-wrapper .fp-editor-container { display: grid; gap: 16px; padding: 24px 0; border-top: 1px solid var(--fp-color-border); }

/* ---------- overview: benefits ---------- */
.fp-benefits-section { padding: 0 var(--fp-gutter) var(--fp-pad-wide); display: flex; flex-direction: column; gap: var(--fp-gap-section); }
.fp-benefits-section__intro { display: flex; flex-direction: column; gap: 32px; }
.fp-benefits-section__head { display: flex; flex-direction: column; gap: 16px; }
.fp-benefits-section__kununu { display: flex; align-items: flex-end; gap: 32px; }
.fp-benefits-section__kununu .fp-stat { gap: 16px; }
.fp-benefits-section__kununu .wp-block-image { margin: 0; width: 96px; }
.fp-benefits-grid { display: grid; grid-template-columns: 1fr; gap: 40px 32px; }
@media (min-width: 810px) { .fp-benefits-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) {
	.fp-benefits-section__intro { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: end; }
	.fp-benefits-section__head { grid-column: 1 / span 7; }
	.fp-benefits-section__kununu { grid-column: 9 / span 4; }
	.fp-benefits-grid { grid-template-columns: repeat(4, 1fr); gap: 64px 32px; }
}
.fp-benefits-section .fp-quote { padding-top: 40px; max-width: 60%; }
@media (max-width: 809.98px) { .fp-benefits-section .fp-quote { max-width: none; } }

/* jobs overview polish */
.fp-benefits-section__kununu .fp-stat__number { font-size: 104px; }
.fp-benefits-section__kununu .fp-stat__label { font: 400 14px/1.4 "DM Sans", sans-serif; color: var(--fp-color-secondary); max-width: 260px; }
.fp-culture__media > .fp-quote { justify-content: flex-start; }
.fp-culture__media > .fp-quote .fp-quote__text { margin-top: auto; }
@media (max-width: 1279.98px) { .fp-culture__media > .fp-quote .fp-quote__text { margin-top: 0; } .fp-benefits-section__kununu .fp-stat__number { font-size: 80px; } }
