/* ── Fonts ─────────────────────────────────────────────────── */
@font-face {
	font-family: 'Onest';
	src: url('../../fonts/Onest-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Onest';
	src: url('../../fonts/Onest-Medium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Onest';
	src: url('../../fonts/Onest-SemiBold.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Onest';
	src: url('../../fonts/Onest-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ── Design tokens ─────────────────────────────────────────── */
:root {
	/* Colors */
	--color-black:        #181f1f;
	--color-dark-brown:   #565447;
	--color-green-dark:   #5c634c;
	--color-beige-warm:   #e9e0a8;
	--color-beige:        #f6f4e7;
	--color-beige-dark:   #e2e0d3;
	--color-green:        #f3f8e7;
	--color-green-btn:    #e3fca9;
	--color-green-accent: #9ad316;
	--color-blue:         #447de0;
	--color-gray:         #b6b6b6;
	--color-gray-light:   #a3a3a3;
	--color-white:        #ffffff;
	--color-stroke:       #edebde;

	/* Typography */
	--font-base: 'Onest', sans-serif;

	/* Font sizes */
	--text-h1:    62px;
	--text-h2:    38px;
	--text-h3:    28px;
	--text-h4:    22px;
	--text-quote: 22px;
	--text-body-l: 18px;
	--text-body-s: 14px;
	--text-btn:   16px;
	--text-xs:    12px;
	--text-label: 11px;

	/* Line heights */
	--lh-heading:  1.15;
	--lh-h1:       1.1;
	--lh-body:     1.6;
	--lh-quote:    1.35;
	--lh-btn:      1.25;

	/* Letter spacing */
	--ls-h1: -0.02em;
	--ls-h2: -0.02em;
	--ls-h3: -0.02em;
	--ls-h4: -0.01em;

	/* Layout */
	--section-gap: 140px;

	/* Radius */
	--radius-card:    22px;
	--radius-card-sm: 12px;
	--radius-pill:    50px;
	--radius-btn:     50px;
	--radius-icon:    8px;
}

/* ── Reset ─────────────────────────────────────────────────── */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}

body {
	font-family: var(--font-base);
	font-size: var(--text-body-s);
	font-weight: 400;
	line-height: var(--lh-body);
	color: var(--color-black);
	background-color: var(--color-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

a {
	color: inherit;
	text-decoration: none;
}

ul,
ol {
	list-style: none;
}

button {
	font-family: inherit;
	cursor: pointer;
	border: none;
	background: none;
}

/* ── Typography ────────────────────────────────────────────── */
.h1 {
	font-size: var(--text-h1);
	font-weight: 600;
	line-height: var(--lh-h1);
	letter-spacing: var(--ls-h1);
}

.h2 {
	font-size: var(--text-h2);
	font-weight: 600;
	line-height: var(--lh-heading);
	letter-spacing: var(--ls-h2);
}

.h3 {
	font-size: var(--text-h3);
	font-weight: 600;
	line-height: var(--lh-heading);
	letter-spacing: var(--ls-h3);
}

.h4 {
	font-size: var(--text-h4);
	font-weight: 600;
	line-height: var(--lh-heading);
	letter-spacing: var(--ls-h4);
}

/* ── Layout ────────────────────────────────────────────────── */
.container {
	width: 100%;
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
}

.container--header {
	max-width: 1420px;
}

/* ── Buttons ───────────────────────────────────────────────── */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-base);
	font-size: var(--text-btn);
	line-height: var(--lh-btn);
	border-radius: var(--radius-pill);
	cursor: pointer;
	transition: opacity 0.2s ease;
	white-space: nowrap;
}

.btn:hover {
	opacity: 0.88;
}

.btn--primary {
	background-color: var(--color-green-btn);
	color: var(--color-black);
	font-weight: 700;
	padding: 6px 6px 6px 22px;
	gap: 12px;
}

.btn--secondary {
	background-color: transparent;
	color: var(--color-green-btn);
	font-weight: 500;
	padding: 15px 22px;
	border: 1px solid rgba(227, 252, 169, 0.42);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.btn--secondary:hover {
	background-color: rgba(227, 252, 169, 0.42);
	border-color: rgba(227, 252, 169, 0.42);
	opacity: 1;
}

.btn--outline-dark {
	background-color: transparent;
	color: var(--color-dark-brown);
	font-weight: 500;
	padding: 15px 22px;
	border: 1px solid var(--color-dark-brown);
}

.btn__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	flex-shrink: 0;
}

.btn--primary .btn__icon {
	background-color: var(--color-black);
}

/* ── Header ────────────────────────────────────────────────── */
.site-header {
	position: relative;
	width: 100%;
	z-index: 100;
}

/* Over hero: absolute, transparent */
.has-hero .site-header {
	position: absolute;
	top: 0;
	left: 0;
}

/* Top bar */
.site-header__topbar {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-beige-warm);
	padding-block: 8px;
	padding-inline: 16px;
	text-align: center;
}

.site-header__topbar-text {
	font-size: var(--text-body-s);
	font-weight: 500;
	line-height: var(--lh-body);
	color: var(--color-black);
}

/* Nav */
.site-header__nav {
	background-color: var(--color-black);
	padding: 16px 0;
}

.has-hero .site-header__nav {
	background-color: transparent;
}

.site-header__nav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}

/* Logo — centered absolutely */
.site-header__logo {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	font-size: 20px;
	font-weight: 700;
	line-height: 0.8;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-white);
	white-space: nowrap;
}

/* Nav menu */
.site-header__menu-list {
	display: flex;
	align-items: center;
	gap: 18px;
}

.site-header__menu-list li a {
	font-size: var(--text-body-s);
	font-weight: 500;
	line-height: var(--lh-body);
	color: var(--color-white);
	transition: opacity 0.2s ease;
}

.site-header__menu-list li a:hover {
	opacity: 0.75;
}

/* CTA buttons */
.site-header__cta {
	display: flex;
	align-items: center;
	gap: 8px;
}

.site-header__cta .btn--secondary {
	padding: 11px 18px;
}

/* ── Hamburger button ──────────────────────────────────────── */
.site-header__hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 32px;
	height: 32px;
	background: none;
	border: none;
	padding: 4px;
	cursor: pointer;
	z-index: 110;
}

.site-header__hamburger span {
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--color-white);
	border-radius: 2px;
	transform-origin: center;
	transition: transform 0.28s ease, opacity 0.2s ease;
}

.site-header__hamburger[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.site-header__hamburger[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}

.site-header__hamburger[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ── Mobile nav drawer ─────────────────────────────────────── */
.site-header__mobile-nav {
	display: flex;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-black);
	z-index: 105;
	flex-direction: column;
	align-items: flex-start;
	gap: 40px;
	padding: 96px 32px 48px;
	overflow-y: auto;
	transform: translateX(-100%);
	visibility: hidden;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s linear 0.35s;
}

.site-header__mobile-nav.is-open {
	transform: translateX(0);
	visibility: visible;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s linear 0s;
}

.site-header__mobile-menu-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

.site-header__mobile-menu-list li a {
	display: block;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--color-white);
	padding-block: 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* ── Sticky header ─────────────────────────────────────────── */
.site-header.is-menu-open {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 110;
}

.site-header.is-sticky {
	position: fixed !important;
	top: 0;
	left: 0;
	width: 100%;
	animation: rp-header-in 0.28s ease both;
}

.site-header.is-sticky .site-header__nav {
	background-color: #565447cc;
}

@keyframes rp-header-in {
	from { transform: translateY(-100%); opacity: 0; }
	to   { transform: translateY(0);     opacity: 1; }
}

/* ── Popup / Modal ─────────────────────────────────────────── */
.rp-popup {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	inset: 0;
	z-index: 200;
	padding: 10vh 20px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
}

.rp-popup.is-open {
	opacity: 1;
	pointer-events: all;
}

.rp-popup__overlay {
	position: absolute;
	inset: 0;
	background-color: rgba(24, 31, 31, 0.72);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	cursor: pointer;
}

.rp-popup__box {
	position: relative;
	background-color: #f8f8f8;
	border-radius: 24px;
	padding: 32px;
	width: 100%;
	max-width: 835px;
	max-height: 80dvh;
	overflow-y: auto;
	z-index: 1;
	transform: translateY(20px);
	transition: transform 0.28s ease;
}

/* ── Popup title ──────────────────────────────────────────── */
.rp-popup__title {
	font-size: 28px;
	font-weight: 600;
	line-height: 1.18;
	color: var(--color-black);
	text-align: center;
	margin: 0 0 24px;
}

/* ── Popup form (JetFormBuilder) ──────────────────────────── */
.rp-popup__box .jet-form-builder__label {
	display: block;
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--color-black);
	text-align: left;
}

.rp-popup__box .jet-form-builder__required {
	color: #e21010;
}

/* text / select / textarea inputs */
.rp-popup__box .jet-form-builder__field:not(.checkradio-field):not(.range-field):not(.jet-form-builder-repeater):not(.wysiwyg-field):not([role="switch"]) {
	width: 100%;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.375;
	color: var(--color-black);
	background-color: var(--color-white);
	padding: 16px;
	margin: 0 0 16px;
	border: 1px solid #e5e6e5;
	border-radius: 8px;
	outline: none;
	color-scheme: normal;
	transition: border-color 0.2s ease;
}

.rp-popup__box .jet-form-builder__field:not(.checkradio-field):not(.range-field):not(.jet-form-builder-repeater):not(.wysiwyg-field):not([role="switch"]):focus {
	border-color: var(--color-black);
}

.rp-popup__box .jet-form-builder ::placeholder { color: #a4a4a4; }

.rp-popup__box .jet-form-builder__field.textarea-field {
	height: 150px;
	min-height: 150px;
	resize: vertical;
}

/* checkbox / radio */
.rp-popup__box .jet-form-builder__field-wrap label {
	font-size: 16px;
	font-weight: 400;
	line-height: 1.375;
	color: var(--color-black);
}

.rp-popup__box .jet-form-builder__field-wrap.checkradio-wrap span {
	gap: 8px;
}

.rp-popup__box .jet-form-builder__field-wrap span::before {
	flex-shrink: 0;
	width: 19px;
	height: 19px;
	border: 2px solid #a4a4a4;
	border-radius: 10%;
	background: transparent;
	transition: background-color 0.15s, border-color 0.15s;
}

.rp-popup__box .jet-form-builder__field-wrap label :not(:disabled):not(:checked):hover + span::before {
	border-color: var(--color-black);
}

.rp-popup__box .jet-form-builder__field-wrap label :checked + span::before {
	border-color: var(--color-black);
	background-color: var(--color-black);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 50%;
}

/* ── form__radio — card-style checkbox group ──────────────── */
.rp-popup__box .wp-block-group.form__radio .jet-form-builder__fields-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.rp-popup__box .wp-block-group.form__radio .jet-form-builder__field-wrap {
	width: calc(50% - 4px);
	box-sizing: border-box;
}

.rp-popup__box .wp-block-group.form__radio .jet-form-builder__field-label {
	display: inline-flex;
	align-items: center;
	width: 100%;
	padding: 16px;
	background: #fff;
	border: 1px solid #e5e6e5;
	border-radius: 8px;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color 0.2s;
}

.rp-popup__box .wp-block-group.form__radio .jet-form-builder__field-label:hover {
	border-color: var(--color-black);
}

.rp-popup__box .wp-block-group.form__radio .jet-form-builder__field-label:has(input:checked) {
	border-color: var(--color-black);
}

/* buttons */
.rp-popup__box .jet-form-builder__action-button,
.rp-popup__box .jet-form-builder__next-page {
	width: 100%;
	display: block;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.333;
	color: var(--color-black);
	background-color: #e3fca9;
	padding: 16px;
	border: 1px solid var(--color-black);
	border-radius: 8px;
	cursor: pointer;
	text-align: center;
	transition: background-color 0.3s ease;
}

.rp-popup__box .jet-form-builder__action-button:hover,
.rp-popup__box .jet-form-builder__next-page:hover {
	background-color: rgba(227, 252, 169, 0.42);
}

.rp-popup__box .jet-form-builder__prev-page {
	width: 100%;
	display: block;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.333;
	padding: 16px;
	border-radius: 8px;
	cursor: pointer;
	text-align: center;
	background: transparent;
	border: 1px solid #a4a4a4;
	color: var(--color-black);
	transition: border-color 0.2s ease;
}

.rp-popup__box .jet-form-builder__prev-page:hover {
	border-color: var(--color-black);
}

/* submit & navigation wrappers */
.rp-popup__box .jet-form-builder__submit-wrap {
	justify-content: stretch;
	align-items: stretch;
}

.rp-popup__box .jet-form-builder__submit-wrap > .jet-form-builder__submit {
	width: 100%;
}

.rp-popup__box .jet-form-builder__submit {
	justify-content: center;
}

.rp-popup__box .jet-form-builder__next-page-wrap {
	text-align: left;
}

.rp-popup__box .jet-form-builder-row .jet-form-builder__action-button-wrapper[data-type="next"],
.rp-popup__box .jet-form-builder-row .jet-form-builder__action-button-wrapper[data-type="prev"] {
	justify-content: center;
}

/* messages */
.rp-popup__box .jet-form-builder-message--success,
.rp-popup__box .jet-form-builder-message--error {
	text-align: center;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.18;
	border: none;
	padding: 0;
	margin: 0;
}

/* ── Progress pages ───────────────────────────────────────── */
.rp-popup__box .jet-form-builder-progress-pages {
	display: flex;
	align-items: center;
	margin: 0 0 24px;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--color-black);
}

.rp-popup__box .jet-form-builder-progress-pages__item--wrapper {
	display: flex;
	flex: 1;
	align-items: center;
	margin-bottom: 0;
}

.rp-popup__box .jet-form-builder-progress-pages__item--wrapper:last-child {
	flex: 0 0 auto;
}

.rp-popup__box .jet-form-builder-progress-pages__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 0;
}

.rp-popup__box .jet-form-builder-progress-pages__item--circle {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 2px solid #a4a4a4;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--color-black);
	background: var(--color-white);
	flex-shrink: 0;
}

.rp-popup__box .jet-form-builder-progress-pages__separator {
	flex: 1;
	height: 2px;
	min-height: 2px;
	background-color: #a4a4a4;
}

/* active step */
.rp-popup__box .jet-form-builder-progress-pages__item--wrapper.active-page .jet-form-builder-progress-pages__item--circle {
	border-color: #e3fca9;
}

.rp-popup__box .jet-form-builder-progress-pages__item--wrapper.active-page .jet-form-builder-progress-pages__separator {
	background-color: #e3fca9;
}

/* passed step */
.rp-popup__box .jet-form-builder-progress-pages__item--wrapper.passed-page .jet-form-builder-progress-pages__item--circle {
	border-color: #a4a4a4;
}

.rp-popup__box .jet-form-builder-progress-pages__item--wrapper.passed-page .jet-form-builder-progress-pages__separator {
	background-color: #a4a4a4;
}

/* ── Form rows ────────────────────────────────────────────── */
.rp-popup__box .jet-form-builder-row {
	padding: 0;
	margin: 0;
}

.rp-popup__box .jet-form-builder__fields-group {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0 8px;
}

.rp-popup__box .jet-form-builder__fields-group > .jet-form-builder-row {
	flex: 1 1 calc(50% - 4px);
	min-width: 160px;
}

.rp-popup.is-open .rp-popup__box {
	transform: translateY(0);
}

.rp-popup__close {
	position: absolute;
	top: 20px;
	right: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--color-beige);
	cursor: pointer;
	border: none;
	transition: background-color 0.2s ease;
	flex-shrink: 0;
}

.rp-popup__close:hover {
	background-color: var(--color-beige-dark);
}

/* ── Mobile: ≤ 1023px ──────────────────────────────────────── */
@media (max-width: 1023px) {
	.site-header__menu,
	.site-header__cta {
		display: none;
	}

	.site-header__hamburger {
		display: flex;
	}

	.rp-popup {
		padding: 8vh 24px;
	}

	.rp-popup__box {
		padding: 24px;
		max-width: 100%;
		border-radius: 20px;
	}
}

/* ── Mobile: ≤ 767px ───────────────────────────────────────── */
@media (max-width: 767px) {
	.rp-popup {
		padding: 6vh 16px;
	}

	.rp-popup__box {
		padding: 20px 16px;
		border-radius: 16px;
	}

	.rp-popup__close {
		top: 12px;
		right: 12px;
		width: 32px;
		height: 32px;
	}

	.rp-popup__title {
		padding-right: 36px;
	}

	.rp-popup__box .wp-block-group.form__radio .jet-form-builder__field-wrap {
		width: 100%;
	}
}

/* ── Footer ────────────────────────────────────────────────── */
.site-footer {
	background-color: #fbfbf8;
	border-radius: 47px 47px 0 0;
}

.site-footer__inner {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	padding: 75px 0 30px;
}

/* Copyright */
.site-footer__copyright {
	font-size: var(--text-xs);
	font-weight: 400;
	line-height: 18px;
	color: #6b7280;
	white-space: nowrap;
}

/* Footer menu */
.site-footer__menu-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
}

.site-footer__menu-list li a {
	font-size: 14px;
	font-weight: 400;
	line-height: 18px;
	color: var(--color-blue);
	transition: opacity 0.2s ease;
}

.site-footer__menu-list li a:hover {
	opacity: 0.75;
}

/* Data partner */
.site-footer__partner {
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-align: left;
}

.site-footer__partner p {
	font-size: var(--text-xs);
	line-height: 18px;
	color: #4b5563;
}

.site-footer__partner strong {
	font-weight: 700;
}

.site-footer__partner a {
	color: var(--color-blue);
	transition: opacity 0.2s ease;
}

.site-footer__partner a:hover {
	opacity: 0.75;
}

@media (max-width: 1023px) {
	.site-footer {
		border-radius: 24px 24px 0 0;
	}

	.site-footer__inner {
		flex-wrap: wrap;
		align-items: flex-start;
		padding: 48px 0 24px;
		gap: 16px 48px;
	}

	.site-footer__nav,
	.site-footer__partner {
		flex: 1;
		min-width: 0;
	}

	.site-footer__copyright {
		order: 3;
		width: 100%;
		margin-top: 16px;
		text-align: center;
	}
}

/* ── Utility ───────────────────────────────────────────────── */
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
