.fripf-form-wrap {
	--fripf-primary: #066693;
	--fripf-secondary: #0e9f9a;
	--fripf-text: #18252d;
	--fripf-muted: #5c6c76;
	--fripf-border: #d7e2e8;
	--fripf-surface: #ffffff;
	--fripf-soft: #f5fafc;
	--fripf-danger: #a93232;
	--fripf-success: #17694f;

	box-sizing: border-box;
	width: min(100%, 920px);
	margin-block: 24px;
	margin-inline: auto;
	padding: 16px;
	border: 1px solid var(--fripf-border);
	border-radius: 8px;
	background: linear-gradient(180deg, var(--fripf-soft) 0%, var(--fripf-surface) 36%);
	color: var(--fripf-text);
	font-family: "Alexandria", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	letter-spacing: 0;
	text-align: start;
}

.fripf-form-wrap *,
.fripf-form-wrap *::before,
.fripf-form-wrap *::after {
	box-sizing: border-box;
	letter-spacing: 0;
}

.fripf-lang-ar {
	direction: rtl;
	text-align: right;
}

.fripf-lang-en {
	direction: ltr;
	text-align: left;
}

.fripf-header {
	position: relative;
	padding-block: 8px 18px;
	border-block-end: 1px solid var(--fripf-border);
}

.fripf-logo {
	display: block;
	max-width: 150px;
	max-height: 68px;
	margin-block-end: 14px;
	object-fit: contain;
}

.fripf-header h2 {
	margin-block: 0 10px;
	color: var(--fripf-text);
	font-size: 1.38rem;
	font-weight: 700;
	line-height: 1.4;
}

.fripf-header p {
	max-width: 760px;
	margin-block: 0;
	color: var(--fripf-muted);
	font-size: 0.96rem;
	line-height: 1.8;
}

.fripf-language-switcher {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
	margin-block-end: 12px;
}

.fripf-lang-ar .fripf-language-switcher {
	justify-content: flex-start;
}

.fripf-language-switcher a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding-block: 7px;
	padding-inline: 12px;
	border: 1px solid var(--fripf-border);
	border-radius: 8px;
	background: #ffffff;
	color: var(--fripf-primary);
	font-size: 0.86rem;
	font-weight: 700;
	text-decoration: none;
}

.fripf-language-switcher a:hover,
.fripf-language-switcher a:focus,
.fripf-language-switcher a.is-active {
	border-color: var(--fripf-primary);
	background: var(--fripf-primary);
	color: #ffffff;
	text-decoration: none;
}

.fripf-progress {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin-block: 18px;
	margin-inline: 0;
	padding: 0;
	list-style: none;
	counter-reset: fripf-step;
}

.fripf-progress li {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding-block: 8px;
	padding-inline: 10px;
	border: 1px solid rgba(6, 102, 147, 0.16);
	border-radius: 8px;
	background: rgba(6, 102, 147, 0.06);
	color: var(--fripf-primary);
	font-size: 0.86rem;
	font-weight: 700;
	cursor: default;
}

.fripf-progress li::before {
	counter-increment: fripf-step;
	content: counter(fripf-step);
	display: inline-grid;
	place-items: center;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--fripf-primary);
	color: #ffffff;
	font-size: 0.76rem;
}

.fripf-progress li.is-active {
	border-color: var(--fripf-primary);
	background: #ffffff;
	color: var(--fripf-text);
}

.fripf-progress li.is-complete {
	border-color: rgba(14, 159, 154, 0.28);
	background: rgba(14, 159, 154, 0.08);
	color: #17694f;
	cursor: pointer;
}

.fripf-progress li.is-complete::before {
	background: var(--fripf-secondary);
	content: "✓";
}

.fripf-form {
	margin: 0;
}

.fripf-section {
	margin-block: 16px;
	padding: 16px;
	border: 1px solid var(--fripf-border);
	border-radius: 8px;
	background: #ffffff;
}

.fripf-section h3 {
	margin-block: 0 14px;
	padding-block-end: 10px;
	border-block-end: 1px solid var(--fripf-border);
	color: var(--fripf-primary);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.5;
}

.fripf-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}

.fripf-field {
	margin: 0;
}

.fripf-field-full {
	grid-column: 1 / -1;
}

.fripf-field label,
.fripf-label {
	display: block;
	margin-block-end: 7px;
	color: #24323b;
	font-size: 0.94rem;
	font-weight: 700;
	line-height: 1.55;
}

.fripf-required {
	color: var(--fripf-danger);
}

.fripf-field input[type="text"],
.fripf-field input[type="email"],
.fripf-field input[type="number"],
.fripf-field input[type="file"],
.fripf-field select,
.fripf-field textarea {
	width: 100%;
	min-height: 46px;
	padding-block: 10px;
	padding-inline: 12px;
	border: 1px solid #b9cbd3;
	border-radius: 8px;
	background: #ffffff;
	color: var(--fripf-text);
	font: inherit;
	font-size: 0.95rem;
	line-height: 1.5;
	text-align: start;
}

.fripf-field textarea {
	min-height: 116px;
	resize: vertical;
}

.fripf-field input:focus,
.fripf-field select:focus,
.fripf-field textarea:focus,
.fripf-submit:focus,
.fripf-language-switcher a:focus {
	border-color: var(--fripf-primary);
	outline: 3px solid rgba(6, 102, 147, 0.16);
	outline-offset: 1px;
}

.fripf-field [aria-invalid="true"] {
	border-color: var(--fripf-danger);
}

.fripf-client-invalid .fripf-choice {
	border-color: rgba(169, 50, 50, 0.55);
}

.fripf-choice-row,
.fripf-checkbox-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
}

.fripf-choice {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	min-height: 42px;
	padding-block: 10px;
	padding-inline: 11px;
	border: 1px solid var(--fripf-border);
	border-radius: 8px;
	background: #fbfdfe;
	color: var(--fripf-text);
	cursor: pointer;
}

.fripf-choice input {
	flex: 0 0 auto;
	margin-block-start: 3px;
}

.fripf-helper,
.fripf-counter {
	display: block;
	margin-block-start: 6px;
	color: var(--fripf-muted);
	font-size: 0.82rem;
	line-height: 1.6;
}

.fripf-counter {
	color: var(--fripf-primary);
}

.fripf-field-error {
	display: block;
	margin-block-start: 6px;
	color: var(--fripf-danger);
	font-size: 0.84rem;
	font-weight: 700;
}

.fripf-errors,
.fripf-success {
	margin-block: 18px;
	padding-block: 14px;
	padding-inline: 14px;
	border-radius: 8px;
	line-height: 1.7;
}

.fripf-errors {
	border: 1px solid #e7b9b9;
	background: #fff5f5;
	color: #762626;
}

.fripf-errors ul {
	margin-block: 0;
	margin-inline-start: 18px;
	padding: 0;
}

.fripf-lang-ar .fripf-errors ul {
	margin-inline-start: 0;
	margin-inline-end: 18px;
}

.fripf-success {
	border: 1px solid #b9dfd5;
	background: #effaf7;
	color: var(--fripf-success);
}

.fripf-success strong,
.fripf-success span {
	display: block;
}

.fripf-privacy {
	margin-block: 16px 0;
	color: var(--fripf-muted);
	font-size: 0.86rem;
	line-height: 1.7;
}

.fripf-actions {
	display: grid;
	gap: 12px;
	margin-block-start: 18px;
}

.fripf-stage-status {
	display: block;
	color: var(--fripf-muted);
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.5;
}

.fripf-stage-nav {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

.fripf-stage-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding-block: 11px;
	padding-inline: 18px;
	border: 1px solid var(--fripf-primary);
	border-radius: 8px;
	background: #ffffff;
	color: var(--fripf-primary);
	font: inherit;
	font-weight: 700;
	line-height: 1.25;
	cursor: pointer;
}

.fripf-stage-button:hover,
.fripf-stage-button:focus {
	background: rgba(6, 102, 147, 0.08);
}

.fripf-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	padding-block: 12px;
	padding-inline: 22px;
	border: 1px solid var(--fripf-primary);
	border-radius: 8px;
	background: var(--fripf-primary);
	color: #ffffff;
	font: inherit;
	font-weight: 700;
	line-height: 1.25;
	cursor: pointer;
}

.fripf-submit:hover {
	border-color: #044f72;
	background: #044f72;
}

.fripf-submit.is-submitting {
	opacity: 0.72;
	cursor: progress;
}

.fripf-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.fripf-turnstile {
	margin-block-start: 16px;
}

@media (min-width: 640px) {
	.fripf-form-wrap {
		padding: 24px;
	}

	.fripf-header h2 {
		font-size: 1.8rem;
	}

	.fripf-progress {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fripf-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fripf-checkbox-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fripf-submit {
		width: auto;
		min-width: 220px;
	}

	.fripf-stage-nav {
		display: flex;
		justify-content: space-between;
	}

	.fripf-stage-button {
		min-width: 160px;
	}
}

@media (min-width: 900px) {
	.fripf-progress {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fripf-form-wrap {
		padding: 30px;
	}
}

@media (max-width: 520px) {
	.fripf-form-wrap {
		margin-block: 14px;
		padding: 14px;
	}

	.fripf-section {
		padding: 13px;
	}

	.fripf-language-switcher a {
		flex: 1 1 0;
	}
}
