/*!
 * ProForm Persian — front-end styles. Author: Hamidreza Miklani (حمیدرضا میکلانی)
 * Everything is scoped under .pfp-wrap and driven by CSS variables (set per form from the style settings),
 * written with logical properties so that RTL (default) and LTR both work without a second file.
 */
.pfp-wrap {
	--pfp-primary: #2563eb;
	--pfp-text: #1f2937;
	--pfp-bg: transparent;
	--pfp-border: #cbd5e1;
	--pfp-error: #b91c1c;
	--pfp-success: #15803d;
	--pfp-btn-bg: var(--pfp-primary);
	--pfp-btn-text: #fff;
	--pfp-radius: 8px;
	--pfp-gap: 16px;
	--pfp-max-width: 760px;
	--pfp-font-size: 15px;
	--pfp-label-size: 14px;
	--pfp-btn-size: 15px;
	--pfp-font: inherit;

	box-sizing: border-box;
	max-inline-size: var(--pfp-max-width);
	margin-inline: auto;
	padding: var(--pfp-padding, 0);
	border-radius: var(--pfp-radius);
	color: var(--pfp-text);
	background: var(--pfp-bg);
	font-family: var(--pfp-font);
	font-size: var(--pfp-font-size);
	line-height: 1.7;
	text-align: start;
}
.pfp-wrap *, .pfp-wrap *::before, .pfp-wrap *::after { box-sizing: border-box; }
.pfp-wrap [hidden] { display: none !important; }

.pfp-title { margin: 0 0 .5em; font-size: 1.35em; line-height: 1.4; color: inherit; }
.pfp-description { margin-block: 0 1.2em; opacity: .9; }
.pfp-notice { padding: .7em 1em; border: 1px dashed var(--pfp-border); border-radius: var(--pfp-radius); }

/* ---- layout: 12-col-less simple grid with percentage widths */
.pfp-fields { display: flex; flex-wrap: wrap; gap: var(--pfp-gap); margin-block: 0 var(--pfp-gap); }
.pfp-field { flex: 1 1 100%; min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.pfp-w-half { flex-basis: calc(50% - var(--pfp-gap) / 2); }
.pfp-w-third { flex-basis: calc(33.333% - var(--pfp-gap) * 2 / 3); }
.pfp-w-two_thirds { flex-basis: calc(66.666% - var(--pfp-gap) / 3); }
.pfp-w-full { flex-basis: 100%; }
.pfp-single .pfp-field { flex-basis: 100%; }
@media (max-width: 640px) {
	.pfp-m-full, .pfp-w-half, .pfp-w-third, .pfp-w-two_thirds { flex-basis: 100%; }
}

/* ---- labels, help, errors */
.pfp-label, .pfp-fieldset > legend { display: block; margin: 0 0 .35em; padding: 0; font-size: var(--pfp-label-size); font-weight: 600; }
.pfp-fieldset { margin: 0; padding: 0; border: 0; min-inline-size: 0; }
.pfp-req { color: var(--pfp-error); margin-inline-start: .15em; }
.pfp-help, .pfp-filehelp { margin: 0 0 .4em; font-size: .88em; opacity: .75; }
.pfp-error { min-block-size: 0; margin-block-start: .3em; font-size: .88em; color: var(--pfp-error); }
.pfp-error:empty { display: none; }
.pfp-field.has-error .pfp-input, .pfp-field.has-error .pfp-select { border-color: var(--pfp-error); }
.pfp-sr-only { position: absolute !important; inline-size: 1px; block-size: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---- controls */
.pfp-input, .pfp-select, .pfp-textarea {
	display: block; inline-size: 100%; min-block-size: 44px; margin: 0; padding: .55em .8em;
	font: inherit; color: inherit; background: #fff;
	border: 1px solid var(--pfp-border); border-radius: var(--pfp-radius);
	appearance: none; -webkit-appearance: none; transition: border-color .15s, box-shadow .15s;
}
.pfp-select { background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-inline-end: 2em; }
[dir="rtl"] .pfp-select { background-position: 18px 55%, 13px 55%; padding-inline-start: 2em; padding-inline-end: .8em; }
/* Pin the size of dropdowns: themes often enlarge <select>, and on phones the list follows the select's font size. */
.pfp-wrap .pfp-select { font-size: var(--pfp-font-size); line-height: 1.5; text-overflow: ellipsis; }
.pfp-wrap .pfp-select option { font-size: min(var(--pfp-font-size), 16px); line-height: 1.5; padding: .3em .6em; }
.pfp-textarea { min-block-size: 110px; resize: vertical; }
.pfp-input:focus, .pfp-select:focus, .pfp-textarea:focus { outline: 0; border-color: var(--pfp-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pfp-primary) 25%, transparent); }
.pfp-input::placeholder { opacity: .55; }
.pfp-input[dir="ltr"] { text-align: start; }
[dir="rtl"] .pfp-input[dir="ltr"]::placeholder { text-align: right; }
.pfp-select-search { margin-block-end: .4em; }
.pfp-file { padding: .5em; }

.pfp-choices { display: flex; flex-direction: column; gap: .45em; }
.pfp-choice { display: flex; align-items: flex-start; gap: .55em; cursor: pointer; line-height: 1.5; }
.pfp-choice input { flex: none; inline-size: 1.15em; block-size: 1.15em; margin: .2em 0 0; accent-color: var(--pfp-primary); }
.pfp-consent { padding: .2em 0; }

.pfp-subfields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--pfp-gap) / 2); }
.pfp-sub-full { grid-column: 1 / -1; }
@media (max-width: 520px) { .pfp-subfields { grid-template-columns: 1fr; } }

.pfp-section { margin-block-start: .6em; }
.pfp-section-title, .pfp-heading { margin: 0; font-size: 1.1em; font-weight: 700; padding-block-end: .35em; border-block-end: 1px solid var(--pfp-border); }
fieldset.pfp-section { padding: 0; }
.pfp-divider { border: 0; border-block-start: 1px solid var(--pfp-border); margin: .4em 0; }

/* ---- rating (stars via CSS; keyboard accessible radio inputs) */
.pfp-rating { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .15em; }
.pfp-rating input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; }
.pfp-rating label { cursor: pointer; font-size: 1.9em; line-height: 1; color: #cbd5e1; transition: color .1s; }
.pfp-rating label::before { content: "\2605"; }
.pfp-rating input:checked ~ label, .pfp-rating label:hover, .pfp-rating label:hover ~ label { color: #f59e0b; }
.pfp-rating input:focus-visible + label { outline: 2px solid var(--pfp-primary); outline-offset: 2px; border-radius: 4px; }

.pfp-scale { display: flex; flex-wrap: wrap; gap: .35em; }
.pfp-scale-item input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; }
.pfp-scale-item label { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 2.6em; block-size: 2.6em; padding: 0 .5em; cursor: pointer; border: 1px solid var(--pfp-border); border-radius: var(--pfp-radius); background: #fff; }
.pfp-scale-item input:checked + label { background: var(--pfp-primary); border-color: var(--pfp-primary); color: #fff; }
.pfp-scale-item input:focus-visible + label { outline: 2px solid var(--pfp-primary); outline-offset: 2px; }
.pfp-scale-labels { display: flex; justify-content: space-between; margin-block-start: .3em; font-size: .85em; opacity: .75; }

.pfp-calc-wrap { display: inline-flex; align-items: baseline; gap: .4em; font-weight: 700; font-size: 1.15em; }
.pfp-calc { unicode-bidi: plaintext; }

/* ---- captcha, otp */
.pfp-captcha { display: flex; flex-wrap: wrap; align-items: center; gap: .6em; }
.pfp-captcha-answer { inline-size: 7em; }
.pfp-captcha-expr { font-weight: 700; letter-spacing: .05em; }
.pfp-otp { margin-block-start: .6em; padding: .7em; border: 1px dashed var(--pfp-border); border-radius: var(--pfp-radius); }
.pfp-otp-row { display: flex; flex-wrap: wrap; gap: .5em; align-items: center; }
.pfp-otp-code { margin-block-start: .5em; }
.pfp-otp-input { inline-size: 10em; letter-spacing: .2em; text-align: center; }
.pfp-otp-status { margin-block-start: .4em; font-size: .9em; }
.pfp-otp-status.is-error { color: var(--pfp-error); }
.pfp-otp-status.is-ok { color: var(--pfp-success); font-weight: 600; }
.pfp-otp.is-verified { border-style: solid; border-color: var(--pfp-success); }

/* ---- steps, progress */
.pfp-progress { display: flex; gap: .4em; margin: 0 0 1.2em; padding: 0; list-style: none; counter-reset: none; }
.pfp-progress-item { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: .25em; font-size: .85em; text-align: center; opacity: .55; }
.pfp-progress-num { display: inline-flex; align-items: center; justify-content: center; inline-size: 2em; block-size: 2em; border-radius: 50%; border: 2px solid var(--pfp-border); background: #fff; font-weight: 700; }
.pfp-progress-item.is-current, .pfp-progress-item.is-done { opacity: 1; }
.pfp-progress-item.is-current .pfp-progress-num { border-color: var(--pfp-primary); color: var(--pfp-primary); }
.pfp-progress-item.is-done .pfp-progress-num { background: var(--pfp-primary); border-color: var(--pfp-primary); color: #fff; }
.pfp-progress-bar { gap: 3px; }
.pfp-progress-bar .pfp-progress-item { block-size: 6px; border-radius: 3px; background: var(--pfp-border); opacity: 1; }
.pfp-progress-bar .pfp-progress-item.is-current, .pfp-progress-bar .pfp-progress-item.is-done { background: var(--pfp-primary); }
.pfp-progress-bar .pfp-progress-num, .pfp-progress-bar .pfp-progress-title { display: none; }
@media (max-width: 520px) { .pfp-progress-steps .pfp-progress-title { display: none; } }
.pfp-step-title { margin: 0 0 .8em; font-size: 1.1em; }

.pfp-summary-list { margin: 0; }
.pfp-summary-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4em 1em; padding: .55em 0; border-block-end: 1px solid var(--pfp-border); }
.pfp-summary-row dt { flex: 0 0 38%; font-weight: 600; }
.pfp-summary-row dd { flex: 1 1 40%; margin: 0; overflow-wrap: anywhere; }
.pfp-link { padding: 0; font: inherit; color: var(--pfp-primary); background: none; border: 0; cursor: pointer; text-decoration: underline; }
.pfp-restored { margin-block-end: 1em; padding: .6em .9em; border-radius: var(--pfp-radius); background: color-mix(in srgb, var(--pfp-primary) 10%, transparent); font-size: .9em; }

/* ---- actions, messages */
.pfp-actions { display: flex; flex-wrap: wrap; gap: .6em; margin-block-start: var(--pfp-gap); }
.pfp-btn {
	display: inline-flex; align-items: center; justify-content: center; min-block-size: 46px; padding: .6em 1.6em;
	font: inherit; font-size: var(--pfp-btn-size); font-weight: 700; line-height: 1.3; cursor: pointer;
	color: var(--pfp-btn-text); background: var(--pfp-btn-bg); border: 1px solid transparent; border-radius: var(--pfp-radius);
	transition: filter .15s, opacity .15s;
}
.pfp-btn:hover:not(:disabled) { filter: brightness(.93); }
.pfp-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--pfp-primary) 40%, transparent); outline-offset: 2px; }
.pfp-btn:disabled { opacity: .6; cursor: not-allowed; }
.pfp-btn-secondary { color: var(--pfp-text); background: #fff; border-color: var(--pfp-border); }
.pfp-form.is-busy { opacity: .85; }
@media (max-width: 520px) { .pfp-actions .pfp-btn { flex: 1 1 100%; } }

.pfp-message { margin-block-start: var(--pfp-gap); padding: .7em 1em; border-radius: var(--pfp-radius); border: 1px solid var(--pfp-border); }
.pfp-message.is-error { color: var(--pfp-error); border-color: var(--pfp-error); background: color-mix(in srgb, var(--pfp-error) 7%, transparent); }
.pfp-message.is-info { color: var(--pfp-text); background: color-mix(in srgb, var(--pfp-primary) 8%, transparent); }
.pfp-success { padding: 1em 1.2em; color: var(--pfp-success); border: 1px solid var(--pfp-success); border-radius: var(--pfp-radius); background: color-mix(in srgb, var(--pfp-success) 8%, transparent); font-weight: 600; }
.pfp-success[hidden] { display: none; }
.pfp-success.has-icon { position: relative; padding-inline-start: 3.4em; }
.pfp-success.has-icon::before { content: "\2713"; position: absolute; inset-block-start: .9em; inset-inline-start: 1em; inline-size: 1.7em; block-size: 1.7em; display: grid; place-items: center; border-radius: 50%; background: var(--pfp-success); color: #fff; font-size: 1em; font-weight: 700; line-height: 1; }
.pfp-success-title { display: block; margin-block-end: .25em; font-size: 1.1em; }
.pfp-success-text { white-space: pre-line; }
.pfp-success-text a { color: inherit; text-decoration: underline; }
.pfp-success .pfp-again { margin-block-start: .8em; }
.pfp-success-actions { display: flex; flex-wrap: wrap; gap: .6em; margin-block-start: .8em; }
.pfp-success-actions .pfp-btn { text-decoration: none; }
.pfp-success-actions .pfp-btn:not(.pfp-btn-secondary) { color: var(--pfp-btn-text); }
@media (max-width: 520px) { .pfp-success-actions .pfp-btn { flex: 1 1 100%; } }
.pfp-testresult { margin-block-start: var(--pfp-gap); padding: 1em; border: 1px dashed var(--pfp-primary); border-radius: var(--pfp-radius); }
.pfp-noscript { color: var(--pfp-error); }

/* honeypot: off-screen, never display:none (some bots skip those) */
.pfp-hp { position: absolute !important; inset-inline-start: -9999px; inline-size: 1px; block-size: 1px; overflow: hidden; }

@media (prefers-reduced-motion: reduce) { .pfp-wrap * { transition: none !important; scroll-behavior: auto !important; } }
@media (prefers-color-scheme: dark) {
	.pfp-wrap.pfp-auto-dark { --pfp-text: #e5e7eb; --pfp-border: #475569; }
	.pfp-wrap.pfp-auto-dark .pfp-input, .pfp-wrap.pfp-auto-dark .pfp-select, .pfp-wrap.pfp-auto-dark .pfp-btn-secondary, .pfp-wrap.pfp-auto-dark .pfp-scale-item label, .pfp-wrap.pfp-auto-dark .pfp-progress-num { background: #1e293b; }
}


/* ---------------------------------------------------------------- modal trigger button
   The button sits outside .pfp-wrap, so it carries its own defaults; the form's colours arrive in its style attribute. */
.pfp-trigger {
	--pfp-primary: #2563eb; --pfp-btn-bg: var(--pfp-primary); --pfp-btn-text: #fff; --pfp-radius: 8px; --pfp-btn-size: 15px; --pfp-font: inherit;
	position: relative; overflow: hidden; isolation: isolate; box-sizing: border-box;
	min-block-size: 46px; padding: .65em 1.8em; font-family: var(--pfp-font);
	box-shadow: 0 1px 2px rgba(15, 23, 42, .18), 0 6px 14px -6px color-mix(in srgb, var(--pfp-btn-bg) 70%, transparent);
	transition: translate .15s ease, box-shadow .15s ease, filter .15s ease;
}
.pfp-trigger:hover:not(:disabled) { translate: 0 -2px; filter: brightness(1.05); box-shadow: 0 2px 4px rgba(15, 23, 42, .18), 0 12px 22px -8px color-mix(in srgb, var(--pfp-btn-bg) 80%, transparent); }
.pfp-trigger:active:not(:disabled) { translate: 0 1px; filter: brightness(.95); box-shadow: 0 1px 2px rgba(15, 23, 42, .2); }
.pfp-trigger-text { position: relative; z-index: 1; }
.pfp-trigger-sm { min-block-size: 36px; padding: .4em 1.2em; font-size: .88em; }
.pfp-trigger-lg { min-block-size: 56px; padding: .8em 2.4em; font-size: 1.15em; }
.pfp-trigger-wrap { display: flex; }
.pfp-trigger-wrap.pfp-align-start { justify-content: flex-start; }
.pfp-trigger-wrap.pfp-align-center { justify-content: center; }
.pfp-trigger-wrap.pfp-align-end { justify-content: flex-end; }

/* Effects (combine one movement + one ring + shine, e.g. effect="bounce glow shine"). */
.pfp-trigger { animation: var(--pfp-fx-move, none), var(--pfp-fx-ring, none); }
.pfp-fx-shake  { --pfp-fx-move: pfp-fx-shake 4s ease-in-out infinite; }
.pfp-fx-bounce { --pfp-fx-move: pfp-fx-bounce 3s ease-in-out infinite; }
.pfp-fx-float  { --pfp-fx-move: pfp-fx-float 3.2s ease-in-out infinite; }
.pfp-fx-pulse  { --pfp-fx-ring: pfp-fx-pulse 2.2s ease-out infinite; }
.pfp-fx-glow   { --pfp-fx-ring: pfp-fx-glow 2.4s ease-in-out infinite; }
.pfp-fx-shine::after {
	content: ""; position: absolute; z-index: 0; inset-block: 0; inset-inline-start: -70%; inline-size: 45%; pointer-events: none;
	background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, .55) 50%, transparent 100%); transform: skewX(-20deg);
	animation: pfp-fx-shine 3.4s ease-in-out infinite;
}
.pfp-trigger:hover { animation: none; }
@keyframes pfp-fx-shake {
	0%, 70%, 100% { transform: none; }
	74%, 82%, 90% { transform: translateX(-5px) rotate(-1.5deg); }
	78%, 86%, 94% { transform: translateX(5px) rotate(1.5deg); }
}
@keyframes pfp-fx-bounce {
	0%, 60%, 100% { transform: none; animation-timing-function: ease-out; }
	70% { transform: translateY(-14px); animation-timing-function: ease-in; }
	80% { transform: none; }
	88% { transform: translateY(-6px); animation-timing-function: ease-in; }
	94% { transform: none; }
}
@keyframes pfp-fx-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes pfp-fx-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--pfp-btn-bg) 60%, transparent); }
	70%, 100% { box-shadow: 0 0 0 16px color-mix(in srgb, var(--pfp-btn-bg) 0%, transparent); }
}
@keyframes pfp-fx-glow {
	0%, 100% { box-shadow: 0 0 6px color-mix(in srgb, var(--pfp-btn-bg) 45%, transparent); }
	50% { box-shadow: 0 0 22px 4px color-mix(in srgb, var(--pfp-btn-bg) 85%, transparent); }
}
@keyframes pfp-fx-shine { 0%, 55% { inset-inline-start: -70%; } 100% { inset-inline-start: 130%; } }
@media (prefers-reduced-motion: reduce) {
	.pfp-trigger, .pfp-trigger::after { animation: none !important; transition: none; }
}

/* ---------------------------------------------------------------- pop-up window (modal) */
.pfp-modal-open { cursor: pointer; }
.pfp-modal-link { cursor: pointer; text-decoration: underline; }
html.pfp-modal-lock { overflow: hidden; }
.pfp-modal {
	position: fixed; inset: 0; z-index: 100000;
	display: none; align-items: center; justify-content: center;
	padding: 16px; box-sizing: border-box;
}
.pfp-modal.is-open { display: flex; }
.pfp-modal[hidden] { display: none !important; }
.pfp-modal-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .6); }
.pfp-modal-dialog {
	position: relative; box-sizing: border-box;
	inline-size: min(var(--pfp-modal-width, 680px), 100%);
	max-block-size: calc(100vh - 32px); max-block-size: calc(100dvh - 32px);
	overflow-y: auto; overscroll-behavior: contain;
	background: #fff; color: #1f2937;
	border-radius: 14px; padding: 56px 24px 24px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}
.pfp-modal-dialog:focus { outline: none; }
.pfp-modal-dialog .pfp-wrap { max-inline-size: none; margin: 0; padding: 0; } /* the window has its own padding */
.pfp-modal-close {
	position: absolute; inset-block-start: 12px; left: 12px; z-index: 2;
	display: grid; place-items: center; inline-size: 36px; block-size: 36px; padding: 0;
	border: 1px solid #e2e8f0; border-radius: 50%; background: #f8fafc; color: #475569;
	font-size: 22px; line-height: 1; cursor: pointer; box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
	transition: background .15s, color .15s, border-color .15s, transform .15s;
}
.pfp-modal-dialog:has(.pfp-wrap[dir="ltr"]) .pfp-modal-close { left: auto; right: 12px; }
.pfp-modal-close:hover { background: #fee2e2; border-color: #fecaca; color: #b91c1c; transform: rotate(90deg); }
.pfp-modal-close:focus-visible { outline: 3px solid color-mix(in srgb, #2563eb 45%, transparent); outline-offset: 2px; background: #fee2e2; color: #b91c1c; }
@media (prefers-reduced-motion: reduce) { .pfp-modal-close:hover { transform: none; } }
.pfp-modal .pfp-jd-pop { z-index: 100001; }
@media (prefers-reduced-motion: no-preference) {
	.pfp-modal.is-open .pfp-modal-dialog { animation: pfp-modal-in .18s ease-out; }
	@keyframes pfp-modal-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
}
@media (max-width: 520px) {
	.pfp-modal { padding: 0; align-items: flex-end; }
	.pfp-modal-dialog { inline-size: 100%; max-block-size: 94vh; max-block-size: 94dvh; border-end-start-radius: 0; border-end-end-radius: 0; padding: 54px 16px 20px; }
}
