:root {
	--carina-font: "GT Haptik", system-ui, sans-serif;
	--carina-green: #339f2f;
	--carina-purple: #3c1c65;
	--carina-purple-panel: #321856;
	--carina-purple-header: #351959;
	--carina-accent: #45ff3e;
	--carina-black: #1f1c1c;
	--carina-white: #ffffff;
	--sp-tp: 20px;
	--sp-btm: 20px;
	--sp-left: 20px;
	--sp-rt: 20px;
	--nav-gap: clamp(0.75rem, 2vw, 2.5rem);
	--type-body: clamp(1.125rem, 0.75rem + 1.2vw, 1.625rem);
	--type-body-line: 1.45;
	--type-lead: clamp(1.375rem, 0.95rem + 1.55vw, 1.75rem);
	--type-nav: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
	--type-nav-mobile: 1.25rem;
	--type-logo: clamp(0.9375rem, 1.5vw, 1.125rem);
	--type-section: clamp(2.125rem, 1.35rem + 2.6vw, 3.25rem);
	--type-mid: clamp(1.875rem, 1.1rem + 3.2vw, 3rem);
	--type-display: clamp(2.75rem, 1.5rem + 5vw, 5rem);
	--type-display-sm: clamp(2.25rem, 1.25rem + 4vw, 3.75rem);
	--type-slider: clamp(3.5rem, min(14vw, 14vh), 13rem);
	--type-slider-mobile: clamp(2.75rem, 16vw, 5rem);
	--gap-section: clamp(1.5rem, 3vw, 2.75rem);
	--gap-block: clamp(2rem, 5vw, 4rem);
	--gap-stack-lg: clamp(2rem, 5vw, 3.5rem);
	--gap-faq-title: clamp(2.5rem, 6vw, 4.5rem);
	--inset-panel: clamp(1.25rem, 3vw, 2rem);
	--section-pad-extra: clamp(1.25rem, 4vw, 3.5rem);
	--stack-sm: 0.75rem;
	--stack-md: clamp(1rem, 2vw, 1.5rem);
	--carina-stack-gap: clamp(0.5rem, 1vw, 0.75rem);
	--nav-link: var(--type-nav);
	--header-top: 10px;
	--header-bar-height: 60px;
	--header-float: calc(var(--header-top) + var(--header-bar-height));
	--carina-text: var(--type-body);
	--carina-text-line: var(--type-body-line);
	--scroll-extra-offset: -10px;
	--scroll-offset: calc(var(--header-float) + var(--scroll-extra-offset));
}

@media (min-width: 768px) {
	:root {
		--sp-tp: 40px;
		--sp-btm: 40px;
		--sp-left: 40px;
		--sp-rt: 40px;
		/* Tablet+ — base clamps stay small on phone; iPad reads closer to desktop */
		--type-body: clamp(1.125rem, 0.65rem + 1.35vw, 1.625rem);
		--type-lead: clamp(1.375rem, 0.95rem + 1.6vw, 1.75rem);
		--type-section: clamp(2.125rem, 1.35rem + 2.8vw, 3.25rem);
		--type-display-sm: clamp(2.375rem, 1.35rem + 4.2vw, 3.75rem);
		--type-display: clamp(2.875rem, 1.45rem + 5.5vw, 5rem);
		--type-nav: clamp(0.9375rem, 0.85rem + 0.45vw, 1rem);
	}
}

@media (min-width: 1200px) {
	:root {
		--sp-tp: 60px;
		--sp-btm: 60px;
		--sp-left: 60px;
		--sp-rt: 60px;
	}
}

html {
	scroll-behavior: smooth;
}

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

body {
	color: var(--carina-black);
	margin: 0;
	padding: 0;
}

#about,
#approach,
#offer,
#faq,
#contact,
#hero {
	scroll-margin-top: var(--scroll-offset);
}

body.admin-bar #about,
body.admin-bar #approach,
body.admin-bar #offer,
body.admin-bar #faq,
body.admin-bar #contact,
body.admin-bar #hero {
	scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--scroll-offset));
}

@media screen and (max-width: 782px) {
	body.admin-bar #about,
	body.admin-bar #approach,
	body.admin-bar #offer,
	body.admin-bar #faq,
	body.admin-bar #contact,
	body.admin-bar #hero {
		scroll-margin-top: calc(46px + var(--scroll-offset));
	}
}

body.carina-front-page {
	background: var(--carina-white);
	font-family: var(--carina-font);
	font-size: var(--carina-text);
	line-height: var(--carina-text-line);
	font-weight: 400;
}

/* Keep GT Haptik on form controls; heading weights are set per component */
body.carina-front-page :is(h1, h2, h3, h4, h5, h6, button, input, select, textarea) {
	font-family: inherit;
}

/* Default body copy — same size in all WYSIWYG / prose blocks */
body.carina-front-page .approach__bullets,
body.carina-front-page .faq__answer,
body.carina-front-page .contact__details {
	font-size: var(--carina-text);
	line-height: var(--carina-text-line);
}

body.carina-front-page .about__bio-answer p,
body.carina-front-page .approach__intro p,
body.carina-front-page .approach__intro-col2 p,
body.carina-front-page .approach__bullets p,
body.carina-front-page .offer__card-body p,
body.carina-front-page .faq__answer p {
	margin: 0 0 var(--stack-sm);
}

body.carina-front-page .about__bio-answer p:last-child,
body.carina-front-page .approach__intro p:last-child,
body.carina-front-page .approach__intro-col2 p:last-child,
body.carina-front-page .approach__bullets p:last-child,
body.carina-front-page .offer__card-body p:last-child,
body.carina-front-page .faq__answer p:last-child {
	margin-bottom: 0;
}

/* WYSIWYG — preserve bold, italic, and soft line breaks from the editor */
body.carina-front-page .about__bio-answer strong,
body.carina-front-page .about__bio-answer b,
body.carina-front-page .approach__intro strong,
body.carina-front-page .approach__intro b,
body.carina-front-page .approach__intro-col2 strong,
body.carina-front-page .approach__intro-col2 b,
body.carina-front-page .approach__bullets strong,
body.carina-front-page .approach__bullets b,
body.carina-front-page .offer__intro strong,
body.carina-front-page .offer__intro b,
body.carina-front-page .offer__card-body strong,
body.carina-front-page .offer__card-body b,
body.carina-front-page .faq__answer strong,
body.carina-front-page .faq__answer b {
	font-weight: 700;
}

body.carina-front-page .about__bio-answer em,
body.carina-front-page .approach__intro em,
body.carina-front-page .approach__intro-col2 em,
body.carina-front-page .approach__bullets em,
body.carina-front-page .offer__intro em,
body.carina-front-page .offer__card-body em,
body.carina-front-page .faq__answer em {
	font-style: italic;
}

.about__inner,
.approach__inner,
.offer__inner,
.faq__inner,
.carina-footer__inner {
	padding: var(--sp-tp) var(--sp-rt) var(--sp-btm) var(--sp-left);
}

/* Header — Figma Header.php: full-width purple bar, logo left, nav right */
.carina-header,
.site-header.carina-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	margin-inline: 0;
	padding: 0;
	color: var(--carina-white);
}

body.carina-front-page .carina-header,
body.carina-front-page .site-header.carina-header {
	width: 100%;
	max-width: none;
	padding-block-start: var(--header-top);
	padding-inline: var(--sp-left);
	background: transparent;
}

/* Logged-in WP admin bar — sticky header sits below toolbar */
body.admin-bar .carina-header,
body.admin-bar .site-header.carina-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar .carina-header,
	body.admin-bar .site-header.carina-header {
		top: 46px;
	}
}

.site-header__shell {
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
}

.site-header__inner {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nav-gap);
	flex: 1;
	width: 100%;
	min-width: 0;
	height: var(--header-bar-height);
	margin: 0;
	padding: 0 20px;
	background: var(--carina-purple-header);
}

.site-header__home {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	flex-shrink: 0;
	color: inherit;
	text-decoration: none;
	transition: color 0.25s ease;
}

.site-header__home:hover,
.site-header__home:focus-visible {
	color: var(--carina-accent);
}

.site-header__logo-mark {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
	object-fit: contain;
}

.site-header__logo-mark--fallback {
	background: var(--carina-accent);
}

.site-header__title {
	font-weight: 700;
	font-size: var(--type-logo);
	line-height: 1.2;
	letter-spacing: -0.01em;
	white-space: nowrap;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0.65rem 1rem;
	overflow: visible;
	clip: auto;
	white-space: normal;
	border-radius: 2px;
	background: var(--carina-purple);
	color: var(--carina-white);
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 0 0 3px var(--carina-accent);
}

.site-header__end {
	display: flex;
	align-items: center;
	gap: var(--nav-gap);
	min-width: 0;
	margin-left: auto;
}

.site-header__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--nav-gap);
	min-width: 0;
}

/* Hamburger — phones only; bars absolutely centred for a clean X morph */
.site-header__toggle {
	display: none;
	position: relative;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: none;
	background: transparent;
	box-shadow: none;
	color: var(--carina-white);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.site-header__toggle-bar {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 1.375rem;
	height: 2px;
	margin: 0;
	border-radius: 1px;
	background: currentColor;
	transform-origin: center;
	transition: transform 0.3s ease, opacity 0.2s ease;
}

.site-header__toggle-bar:nth-child(1) {
	transform: translate(-50%, calc(-50% - 6px));
}

.site-header__toggle-bar:nth-child(2) {
	transform: translate(-50%, -50%);
}

.site-header__toggle-bar:nth-child(3) {
	transform: translate(-50%, calc(-50% + 6px));
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(1) {
	transform: translate(-50%, -50%) rotate(45deg);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(2) {
	opacity: 0;
	transform: translate(-50%, -50%) scaleX(0);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(3) {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.carina-header button.site-header__toggle,
.carina-header button.site-header__toggle:hover,
.carina-header button.site-header__toggle:focus,
.carina-header button.site-header__toggle:focus-visible,
.carina-header button.site-header__toggle:active {
	border: none;
	background: transparent;
	box-shadow: none;
	color: var(--carina-white);
}

@media (min-width: 768px) {
	.carina-header .site-header__toggle {
		display: none;
		visibility: hidden;
		pointer-events: none;
	}

	.site-header__nav {
		display: flex;
		flex-wrap: wrap;
		width: auto;
		order: unset;
		padding: 0;
	}

	.site-header__menu {
		flex-direction: row;
		align-items: center;
		width: auto;
		gap: var(--nav-gap);
	}

	.site-header__menu li {
		display: flex;
		align-items: center;
		margin: 0;
		padding: 0;
	}

	.site-header__menu a,
	.site-header__languages-trigger {
		font-size: var(--nav-link);
		font-weight: 700;
		line-height: 1;
	}

	.site-header__menu a {
		display: inline-flex;
		align-items: center;
		padding: 0;
	}

	.site-header__end > .site-header__languages {
		display: flex;
		align-items: center;
		background: transparent;
		padding: 0;
		height: auto;
	}

	.site-header__languages-trigger {
		display: inline-flex;
		align-items: center;
		height: auto;
		-webkit-appearance: none;
		appearance: none;
	}

	.site-header__languages-mobile {
		display: none;
	}
}

.site-header__menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--nav-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__menu a {
	color: inherit;
	text-decoration: none;
	font-weight: 700;
	font-size: var(--nav-link);
	line-height: 1;
	white-space: nowrap;
	transition: color 0.25s ease;
}

.site-header__menu a:hover,
.site-header__menu a:focus-visible {
	color: var(--carina-accent);
}

/* Languages — inline with nav on desktop; flat list in mobile nav */
.site-header__languages {
	position: relative;
	flex-shrink: 0;
	display: none;
	align-items: center;
	margin: 0;
	padding: 0;
	background: transparent;
	color: inherit;
}

.site-header__languages-trigger {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	cursor: pointer;
	list-style: none;
	font-weight: 700;
	font-size: var(--nav-link);
	line-height: 1;
	white-space: nowrap;
	-webkit-appearance: none;
	appearance: none;
	transition: color 0.25s ease;
}

.site-header__languages-trigger::-webkit-details-marker {
	display: none;
}

.site-header__languages-trigger:hover,
.site-header__languages-trigger:focus-visible,
.site-header__languages[open] .site-header__languages-trigger {
	color: var(--carina-accent);
}

.site-header__languages-panel {
	position: absolute;
	top: 100%;
	right: 0;
	left: auto;
	z-index: 1001;
	display: none;
	min-width: max-content;
	padding: 0.375rem 0.5rem;
	background: var(--carina-purple-panel);
	border: none;
	text-align: center;
}

.site-header__languages[open] .site-header__languages-panel {
	display: block;
}

.site-header__languages-panel ul {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__languages-panel li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__languages-panel li::marker {
	content: none;
}

.site-header__languages-panel a {
	display: block;
	color: inherit;
	text-decoration: none;
	font-weight: 700;
	font-size: var(--nav-link);
	white-space: nowrap;
	text-align: center;
	transition: color 0.25s ease;
}

.site-header__languages-panel a:hover,
.site-header__languages-panel a:focus-visible {
	color: var(--carina-accent);
}

.site-header__languages .lang-item.current-lang a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Mobile — languages as flat list inside the hamburger nav */
.site-header__languages-mobile {
	display: none;
	width: 100%;
}

.site-header__languages-mobile ul,
.site-header__languages-mobile li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__languages-mobile li::marker {
	display: none;
	content: "";
}

.site-header__languages-mobile .lang-item a {
	color: var(--carina-white);
	text-decoration: none;
	font-weight: 700;
}

.site-header__languages-mobile .lang-item.current-lang a {
	color: var(--carina-accent);
	text-decoration: none;
}

body.carina-front-page .site-header__inner {
	flex: 1;
}

/* Hero — Figma Hero.php */
.hero {
	background: var(--carina-green);
	color: var(--carina-white);
	width: 100%;
	max-width: none;
	min-height: clamp(28rem, 52vw, 40.5rem);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

body.carina-front-page .hero {
	margin-top: calc(-1 * var(--header-float));
	padding-top: var(--header-float);
	box-sizing: border-box;
}

.hero__inner {
	width: 100%;
	padding: var(--gap-block) var(--sp-rt) var(--gap-block) var(--sp-left);
}

.hero__title {
	margin: 0;
	font-size: var(--type-display);
	font-weight: 700;
	line-height: 1.05;
	text-transform: lowercase;
	letter-spacing: -0.02em;
}

.hero__subtitle {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: var(--stack-sm) 0 0;
	color: var(--carina-purple);
	font-size: var(--type-mid);
	font-weight: 400;
	line-height: 1.2;
}

.hero__subtitle-line {
	display: block;
	margin: 0;
}

/* About — 15% attribution | 85% quote + content */
.about {
	color: var(--carina-purple);
}

.about__inner {
	display: grid;
	grid-template-columns: 15% 75%;
	gap: clamp(1rem, 3vw, 2rem);
	align-items: start;
}

.about__aside {
	min-width: 0;
	max-width: 20ch;
}

.about__main {
	min-width: 0;
}

.about__quote-attribution {
	max-width: 15ch;
	font-size: var(--type-nav);
	line-height: 1.35;
	margin: 0;
}

body.carina-front-page .about__quote-text {
	margin: 0 0 clamp(4rem, 10vw, 6.5rem);
	font-size: var(--type-display-sm);
	font-weight: 400;
	line-height: 1.1;
	color: var(--carina-purple);
}

.about__figure {
	min-width: 0;
}

.about__portrait {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Portrait with hover reveal: second image stacked behind, same box. */
.about__figure--has-reveal {
	position: relative;
	overflow: hidden;
}

.about__figure--has-reveal .about__portrait--front {
	position: relative;
	z-index: 1;
}

.about__figure--has-reveal .about__portrait.about__portrait--reveal {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Pixel reveal canvas (assets/js/about-reveal.js) — cleared when idle. */
.about__reveal-canvas {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

/* About — portrait left, bio accordions right (no panel background) */
.about__profile {
	margin-top: var(--gap-stack-lg);
	margin-left: 0;
	margin-right: auto;
	max-width: 100%;
}

.about__profile-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
	gap: clamp(1.5rem, 4vw, 2.5rem);
	align-items: start;
	justify-items: start;
}

.about__profile-media {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(1rem, 3vw, 1.5rem);
	min-width: 0;
	justify-self: start;
}

.about__profile-media .about__portrait {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.about__portrait-text {
	width: 100%;
	margin: 0;
	font-size: var(--type-nav);
	font-weight: 400;
	line-height: var(--type-body-line);
	color: var(--carina-purple);
}

.about__portrait-text > :first-child {
	margin-top: 0;
}

.about__portrait-text > :last-child {
	margin-bottom: 0;
}

.about__portrait-text :is(h1, h2, h3, h4, p) {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	margin: 0 0 var(--stack-sm);
}

.about__profile-accordions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--carina-stack-gap);
	min-width: 0;
	justify-self: start;
	width: 100%;
	max-width: 100%;
	color: var(--carina-purple);
}

.about__bio-item {
	background: var(--carina-white);
	color: var(--carina-purple);
	border: 2px solid var(--carina-purple);
}

.about__bio-item:not([open]) .about__bio-answer {
	display: none;
}

.about__profile .about__bio-question.faq__question {
	color: var(--carina-purple);
	border: none;
}

.about__profile .faq__toggle {
	background: var(--carina-purple);
	color: var(--carina-accent);
}

.about__bio-answer {
	padding: 0 1.5rem 1.25rem;
	font-size: var(--carina-text);
	line-height: var(--carina-text-line);
	color: var(--carina-purple);
}

.about__bio-answer p {
	margin: 0 0 var(--stack-sm);
}

.about__bio-answer p:last-child {
	margin-bottom: 0;
}

/* Methods — two columns: copy left, bullets right */
.approach {
	background: var(--carina-purple);
	color: var(--carina-white);
	overflow-x: clip;
	overflow-x: visible;
}

.approach__inner {
	position: relative;
	z-index: 3; /* text and bullet box stay above hands that overhang the slider */
	display: block;
	padding-top: calc(var(--sp-tp) + var(--section-pad-extra));
	padding-bottom: calc(var(--sp-btm) + clamp(4rem, 18vw, 12rem));
}

.approach__heading {
	margin: 0 0 var(--gap-section);
	font-size: var(--type-section);
	font-weight: 700;
	line-height: 1.1;
}

.approach__copy {
	display: flex;
	flex-direction: column;
	gap: var(--gap-block);
}

.approach__intro-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--gap-block);
	align-items: start;
}

.approach__intro,
.approach__intro-col2,
.approach__bullets {
	min-width: 0;
}

/* methods_bullets WYSIWYG: lead <p> then one <p> per line — single panel */
.approach__bullets {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	box-sizing: border-box;
	padding: var(--inset-panel);
	background: var(--carina-purple-panel);
	text-align: left;
}

body.carina-front-page .approach__intro,
body.carina-front-page .approach__intro-col2 {
	font-size: var(--type-lead);
	line-height: var(--type-body-line);
}

.approach__bullets ul {
	display: flex;
	flex-direction: column;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.approach__bullets li {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.65em;
	text-align: left;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0;
}

.approach__bullets li::before {
	content: "";
	flex: 0 0 0.45em;
	width: 0.45em;
	height: 0.45em;
	margin-top: calc((1em * var(--carina-text-line) - 0.45em) / 2);
	background: var(--carina-accent);
	border-radius: 0;
}

.approach__bullets li:last-child {
	margin-bottom: 0;
}

.approach__bullets p:not(:first-child) {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.65em;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

.approach__bullets p:not(:first-child)::before {
	content: "";
	flex: 0 0 0.45em;
	width: 0.45em;
	height: 0.45em;
	margin-top: calc((1em * var(--carina-text-line) - 0.45em) / 2);
	background: var(--carina-accent);
	border-radius: 0;
}

body.carina-front-page .approach__bullets > p {
	margin: 0;
}

body.carina-front-page .approach__bullets p:first-child {
	box-sizing: border-box;
	width: 100%;
	padding: 0;
	background: none;
	text-align: left;
	font-size: var(--type-lead);
	line-height: var(--type-body-line);
	font-weight: 700;
	margin: 0 0 var(--stack-sm);
}

/* Slider — green panel aligned to layout margins.
 * Hand overhang + green panel + bottom spacing fit into one screen below the header. */
.slider {
	--hand-overhang: clamp(2.5rem, 10vh, 7rem);
	--slider-height: max(18rem, min(clamp(20rem, 36vw, 38rem), calc(0.8 * 100vh - var(--header-float) - var(--hand-overhang) - var(--sp-btm))));
	position: relative;
	margin-top: var(--gap-section);
	padding: 0 var(--sp-rt) var(--sp-btm) var(--sp-left);
	overflow-x: clip; /* wide hands end at the screen edge */
	overflow-y: visible;
}

@supports (height: 100svh) {
	.slider {
		--slider-height: max(18rem, min(clamp(20rem, 36vw, 38rem), calc(0.8 * 100svh - var(--header-float) - var(--hand-overhang) - var(--sp-btm))));
	}
}

.slider__green-bg {
	position: absolute;
	top: 0;
	right: var(--sp-rt);
	bottom: var(--sp-btm);
	left: var(--sp-left);
	z-index: 0;
	background: var(--carina-green);
}

.slider__viewport {
	position: relative;
	z-index: 2;
	height: var(--slider-height);
	overflow: visible;
}

.slider__track {
	position: relative;
	width: 100%;
	height: 100%;
}

.slider--slide .slider__track {
	display: flex;
	transition: transform 0.6s ease;
}

.slider--slide .slider__slide {
	position: relative;
	flex: 0 0 100%;
	min-width: 0;
	opacity: 1;
	pointer-events: auto;
}

.slider--fade .slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.8s ease-in-out;
	z-index: 1;
}

.slider--fade .slider__slide.is-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 2;
}

/* Hand sits on the green panel (bottom-anchored) and peeks out above it
 * by --hand-overhang. Sized by height so it never outgrows its band. */
.slider__slide-media {
	position: absolute;
	top: calc(-1 * var(--hand-overhang));
	right: 2%;
	bottom: 18%;
	left: 2%;
	z-index: 1;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	pointer-events: none;
}

.slider__hand {
	display: block;
	width: auto;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	object-position: center bottom;
}

.slider__hand-wrap {
	display: contents;
}

/* Per-slide width from ACF (--slide-hand-width on .slider__slide-media) caps the hand width. */
.slider__slide-media[style*="--slide-hand-width"] .slider__hand {
	max-width: var(--slide-hand-width);
}

/* Vertical hand tweak from ACF (e.g. -10% = further up, 5% = further down). */
.slider__slide-media--hand-offset {
	top: calc(-1 * var(--hand-overhang) + var(--slide-hand-margin-top));
	bottom: calc(18% - var(--slide-hand-margin-top));
}

.slider__slide-text {
	position: absolute;
	/* Align with green panel (same inset as .slider__green-bg). */
	left: 0;
	right: 0;
	bottom: clamp(3rem, 11%, 5.5rem);
	z-index: 2;
	padding-left: 0;
	color: var(--carina-white);
	font-size: var(--type-slider);
	font-weight: 400;
	line-height: 0.85;
	pointer-events: none;
}

.slider__slide-line {
	display: block;
}

.slider__dots {
	position: absolute;
	right: var(--sp-rt);
	bottom: var(--sp-btm);
	left: var(--sp-left);
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0 0 0.25rem;
}

.slider__dots .slider__dot {
	display: block;
	flex-shrink: 0;
	width: 1.75rem;
	height: 2px;
	min-width: 1.75rem;
	min-height: 2px;
	max-height: 2px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	outline: 0;
	box-shadow: none;
	background-color: rgba(255, 255, 255, 0.35);
	background-image: none;
	cursor: pointer;
	overflow: hidden;
	line-height: 0;
	font-size: 0;
	vertical-align: top;
}

.slider__dots .slider__dot:hover {
	background-color: rgba(255, 255, 255, 0.55);
}

.slider__dots .slider__dot:focus-visible {
	outline: 2px solid var(--carina-accent);
	outline-offset: 4px;
	background-color: rgba(255, 255, 255, 0.55);
}

.slider__dots .slider__dot.is-active,
.slider__dots .slider__dot.is-active:hover,
.slider__dots .slider__dot.is-active:focus-visible {
	width: 2.25rem;
	min-width: 2.25rem;
	border: 0;
	background-color: var(--carina-white);
}

/* Offer — white section; intro + service grid read as one block */
.offer {
	background: var(--carina-white);
	color: var(--carina-purple);
}

.offer__inner {
	padding-top: calc(var(--sp-tp) + var(--section-pad-extra));
}

.offer__panel {
	box-sizing: border-box;
}

.offer__header {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--carina-stack-gap);
	align-items: start;
}

.offer__header:not(:has(.offer__intro)) .offer__heading,
.offer__header:not(:has(.offer__heading)) .offer__intro {
	grid-column: 1 / -1;
}

.offer__heading {
	margin: 0;
	color: var(--carina-purple);
	font-size: var(--type-section);
	font-weight: 700;
	line-height: 1.1;
	text-wrap: balance;
}

.offer__intro {
	min-width: 0;
	font-size: var(--type-lead);
	line-height: var(--type-body-line);
	color: var(--carina-purple);
}

.offer__intro p {
	margin: 0 0 var(--stack-sm);
}

.offer__intro p:last-child {
	margin-bottom: 0;
}

.offer__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	column-gap: var(--carina-stack-gap);
	row-gap: var(--carina-stack-gap);
	padding-block: var(--gap-block);
}

.offer__panel:not(:has(.offer__header)) .offer__grid {
	padding-top: 0;
}

.offer__card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: var(--inset-panel);
	background: var(--carina-purple);
	color: var(--carina-white);
	font-size: var(--carina-text);
}

.offer__card-title {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 0 0 1rem;
	font-size: 1.12em;
	font-weight: 700;
	line-height: 1.2;
	text-wrap: balance;
	color: var(--carina-accent);
}

.offer__card-title::before {
	content: "";
	flex: 0 0 0.45em;
	width: 0.45em;
	height: 0.45em;
	margin-top: calc((1.2em - 0.45em) / 2);
	background: currentColor;
}

.offer__card-body {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 1em;
	line-height: var(--carina-text-line);
	color: var(--carina-white);
}

.offer__card-price {
	margin: 0;
	margin-top: auto;
	padding-top: clamp(1rem, 2vw, 1.25rem);
	font-size: 1em;
	font-weight: 700;
	color: var(--carina-white);
}

/* FAQ — bordered question toggles answer open/closed */
.faq {
	background: var(--carina-green);
	color: var(--carina-white);
}

.faq__inner {
	padding-top: calc(var(--sp-tp) + var(--section-pad-extra));
	padding-bottom: calc(var(--sp-btm) + var(--section-pad-extra));
}

.faq__list {
	display: flex;
	flex-direction: column;
	gap: var(--carina-stack-gap);
}

.faq__heading {
	display: flex;
	flex-direction: column;
	gap: clamp(0.35rem, 1vw, 0.75rem);
	max-width: min(90vw, 52rem);
	margin: 0 0 var(--gap-faq-title);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.faq__heading-line {
	display: block;
}

.faq__heading-line--primary {
	font-size: var(--type-display);
}

.faq__heading-line--secondary {
	font-size: var(--type-mid);
	font-weight: 400;
	line-height: 1.15;
	opacity: 0.92;
}

.faq__item {
	background: var(--carina-white);
	color: var(--carina-purple);
	border: none;
}

.faq .faq__question {
	border: none;
	color: var(--carina-purple);
}

.faq .faq__toggle {
	background: var(--carina-purple);
	color: var(--carina-accent);
}

.faq__question {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
	font-size: var(--carina-text);
	font-weight: 700;
	line-height: var(--carina-text-line);
	cursor: pointer;
	list-style: none;
	border: 2px solid var(--carina-white);
	border-radius: 0;
}

.faq__question > span:first-child {
	flex: 1;
	min-width: 0;
	padding: 1rem 1.5rem;
}

.faq__question::-webkit-details-marker,
.faq__question::marker {
	display: none;
	content: "";
}

.faq__toggle {
	--faq-toggle-size: clamp(3.25rem, 12vw, 4.5rem);
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	align-self: stretch;
	width: auto;
	min-width: var(--faq-toggle-size);
	height: auto;
	min-height: var(--faq-toggle-size);
	aspect-ratio: 1;
	margin: 0;
	background: var(--carina-purple);
	color: var(--carina-white);
	border-radius: 0;
}

.faq__toggle-icon {
	--faq-plus-arm: clamp(1.25rem, 4vw, 1.75rem);
	--faq-plus-stroke: clamp(2.5px, 0.22vw, 3.5px);
	position: relative;
	display: block;
	width: var(--faq-plus-arm);
	height: var(--faq-plus-arm);
	flex-shrink: 0;
	transform-origin: 50% 50%;
	transition: transform 0.2s ease;
}

.faq__toggle-icon::before,
.faq__toggle-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	background: currentColor;
	transform: translate(-50%, -50%);
}

.faq__toggle-icon::before {
	width: var(--faq-plus-arm);
	height: var(--faq-plus-stroke);
}

.faq__toggle-icon::after {
	width: var(--faq-plus-stroke);
	height: var(--faq-plus-arm);
}

.faq__item[open] .faq__toggle-icon,
.about__bio-item[open] .faq__toggle-icon {
	transform: rotate(45deg);
}

.faq__answer {
	padding: 1rem 1.5rem 1.25rem;
	font-size: var(--carina-text);
	line-height: var(--carina-text-line);
	color: var(--carina-purple);
}

.faq__answer p {
	margin: 0 0 var(--stack-sm);
}

.faq__answer p:last-child {
	margin-bottom: 0;
}

/* Contact — green band, boxed purple panel (square corners) */
.contact {
	background: var(--carina-green);
	padding: 0;
}

.contact__panel {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	background: var(--carina-purple);
	color: var(--carina-white);
	border: none;
	border-radius: 0;
	text-align: center;
}

.contact__inner {
	width: 100%;
	padding: clamp(3rem, 12vw, 6.5rem) clamp(1.25rem, 4vw, 2rem);
}

.contact__headings {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--stack-sm);
	margin: 0 0 var(--gap-section);
}

.contact__flag {
	display: block;
	margin: 0;
	font-size: var(--carina-text);
	line-height: var(--carina-text-line);
	white-space: nowrap;
}

.contact__cta {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 22em;
	margin: 0 auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
	font-size: var(--type-display-sm);
	font-weight: 700;
	line-height: 1.15;
	text-wrap: balance;
}

@media (max-width: 990px) {
	.contact__cta {
		max-width: 16em;
	}
}

.contact__details {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--inset-panel);
}

.contact__email,
.contact__phone {
	display: block;
	color: var(--carina-white);
	text-decoration: underline;
}

.contact__email:hover,
.contact__email:focus-visible,
.contact__phone:hover,
.contact__phone:focus-visible {
	color: var(--carina-accent);
}

/* Legal pages — Datenschutz / Impressum: centered readable column */
.legal-page {
	padding-top: calc(var(--header-float) + clamp(2rem, 5vw, 3.5rem));
	padding-bottom: clamp(3rem, 8vw, 5rem);
	background: var(--carina-white);
	color: var(--carina-purple);
}

.legal-page__inner {
	width: min(100% - 2 * var(--sp-left), 42rem);
	margin-inline: auto;
}

.legal-page__header {
	margin: 0 0 clamp(1.75rem, 4vw, 2.5rem);
}

.legal-page__title {
	margin: 0;
	font-size: var(--type-section);
	font-weight: 700;
	line-height: 1.15;
	color: var(--carina-purple);
}

.legal-page__content {
	font-size: var(--carina-text);
	line-height: var(--type-body-line);
}

.legal-page__content > *:first-child {
	margin-top: 0;
}

.legal-page__content > *:last-child {
	margin-bottom: 0;
}

/* Section headings ~ offer card titles (1.12em of body) */
.legal-page__content h2 {
	margin: clamp(1.5rem, 3.5vw, 2rem) 0 var(--stack-sm);
	font-size: 1.12em;
	font-weight: 700;
	line-height: 1.2;
	color: var(--carina-purple);
}

.legal-page__content h3 {
	margin: clamp(1.15rem, 2.5vw, 1.5rem) 0 var(--stack-sm);
	font-size: 1em;
	font-weight: 700;
	line-height: 1.25;
	color: var(--carina-purple);
}

.legal-page__content p,
.legal-page__content ul,
.legal-page__content ol {
	margin: 0 0 var(--stack-md);
}

.legal-page__content ul,
.legal-page__content ol {
	padding-left: 1.25em;
}

.legal-page__content li {
	margin: 0 0 var(--stack-sm);
}

.legal-page__content a {
	color: var(--carina-purple);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.legal-page__content a:hover,
.legal-page__content a:focus-visible {
	color: var(--carina-green);
}

.legal-page__content .has-small-font-size,
.legal-page__content .legal-page__meta {
	font-size: var(--type-nav);
	line-height: 1.45;
	opacity: 0.85;
}

/* Footer — copyright left, legal menu right */
body.carina-front-page .site-footer.carina-footer {
	border-top: 1px solid #e4ebf3;
	padding: 0;
	font-size: var(--type-nav);
	line-height: 1.5;
}

.carina-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.carina-footer__copyright {
	margin: 0;
}

.carina-footer__legal {
	margin-left: auto;
}

.carina-footer__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--type-nav);
}

.carina-footer a {
	color: inherit;
	text-decoration: none;
}

.carina-footer a:hover,
.carina-footer a:focus-visible {
	color: var(--carina-green);
}

@media (max-width: 767px) {
	:root {
		--carina-stack-gap: 0.5rem;
		--type-body-line: 1.5;
		--carina-text-line: 1.5;
	}

	body.carina-front-page .site-footer.carina-footer,
	body.carina-front-page .carina-footer__menu {
		font-size: 1rem;
	}

	.site-header__shell {
		flex-wrap: wrap;
	}

	.site-header__inner {
		flex-wrap: wrap;
		min-height: var(--header-bar-height);
		height: auto;
		padding-bottom: 0;
	}

	.site-header__toggle {
		display: flex;
		order: 1;
		margin-left: auto;
	}

	.site-header__end {
		order: 2;
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		margin-left: 0;
	}

	.site-header__nav {
		display: none;
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		justify-content: flex-start;
		gap: 1rem;
		padding: 0.5rem 0 1rem;
	}

	.site-header__nav.is-open {
		display: flex;
	}

	.site-header__menu {
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		gap: 1rem;
	}

	.site-header__nav a {
		display: block;
		padding: 0;
		font-size: var(--type-nav-mobile);
		line-height: 1.4;
		font-weight: 700;
		color: var(--carina-white);
		text-decoration: none;
		white-space: normal;
	}

	.site-header__languages-mobile .lang-item.current-lang a {
		color: var(--carina-accent);
		text-decoration: none;
	}

	.site-header__languages-mobile {
		display: block;
		width: 100%;
		margin-top: 0;
		padding-top: 1rem;
		border-top: 1px solid rgba(255, 255, 255, 0.2);
	}

	.site-header__languages-mobile .site-header__menu--languages {
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		gap: 1rem;
		margin: 0;
		padding: 0;
		border: none;
		list-style: none;
	}

	.site-header__end > .site-header__languages {
		display: none;
	}

	.approach__intro-row {
		grid-template-columns: 1fr;
	}

	.offer__header {
		grid-template-columns: 1fr;
	}

	.offer__grid {
		grid-template-columns: 1fr;
	}

	body.carina-front-page .offer__card {
		font-size: var(--type-lead);
		line-height: var(--type-body-line);
	}

	.slider__slide-text {
		font-size: var(--type-slider-mobile);
	}
}

/* Tablet — portrait | bio side by side (uses full content width) */
@media (min-width: 768px) and (max-width: 1199px) {
	.about__inner {
		grid-template-columns: 1fr;
	}

	.about__profile-layout {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.about__profile-media,
	.about__profile-accordions {
		width: 100%;
		max-width: none;
	}
}

/* Mobile — portrait above bio; cap width, always flush left */
@media (max-width: 767px) {
	.about__inner {
		grid-template-columns: 1fr;
	}

	.about__profile-layout {
		grid-template-columns: 1fr;
		justify-items: start;
		width: 100%;
	}

	.about__profile-media,
	.about__profile-accordions {
		width: min(80vw, 100%);
		max-width: min(80vw, 100%);
		margin-inline: 0;
		justify-self: start;
		box-sizing: border-box;
	}

	.about__profile-media .about__portrait,
	.about__profile-media .about__figure {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: auto;
	}
}

/* Mobile portrait — hands capped at 80vw (except full-width vw hands). */
@media (max-width: 767px) and (orientation: portrait) {
	.slider__slide-media:not(.slider__slide-media--bleed) .slider__hand {
		max-width: 80vw;
	}
}

