:root {
	--ocsc-green: #286822;
	--ocsc-green-deep: #173f14;
	--ocsc-off-white: #f6f4ee;
	--ocsc-graphite: #231f20;
	--ocsc-white: #ffffff;
}

.oc-analysis-modal[hidden] {
	display: none !important;
}

.oc-analysis-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: grid;
	place-items: center;
	padding: 24px;
}

.oc-analysis-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 22, 15, 0.74);
	backdrop-filter: blur(3px);
}

.oc-analysis-modal__dialog {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: min(100%, 760px);
	max-height: calc(100vh - 48px);
	overflow: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: clamp(28px, 4vw, 44px);
	border-radius: 16px;
	background: var(--ocsc-white);
	color: var(--ocsc-graphite);
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.25);
	outline: none;
}

.oc-analysis-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--ocsc-graphite);
	box-shadow: none;
	outline: none;
	font: inherit;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.oc-analysis-modal__close:hover {
	background: #eef4ec;
	color: var(--ocsc-green-deep);
	box-shadow: none;
	outline: none;
}

.oc-analysis-modal__close:focus-visible {
	background: #eef4ec;
	color: var(--ocsc-green-deep);
	box-shadow: inset 0 0 0 1px rgba(40, 104, 34, 0.24);
	outline: none;
}

.oc-analysis-modal a:focus-visible,
.oc-analysis-modal button:not(.oc-analysis-modal__close):focus-visible,
.oc-analysis-modal input:focus-visible,
.oc-analysis-modal select:focus-visible,
.oc-analysis-modal textarea:focus-visible {
	outline: 3px solid rgba(40, 104, 34, 0.28);
	outline-offset: 3px;
}

.oc-analysis-modal__eyebrow {
	margin: 0 48px 12px 0;
	color: var(--ocsc-green);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
}

.oc-analysis-modal__dialog h2 {
	max-width: 18ch;
	margin: 0;
	color: var(--ocsc-graphite);
	font-size: clamp(28px, 3.5vw, 38px);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.oc-analysis-modal__copy {
	max-width: 66ch;
	margin: 16px 0 0;
	color: #575256;
	font-size: 15.5px;
	line-height: 1.62;
}

.oc-analysis-modal__form-slot {
	display: grid;
	gap: 5px;
	margin-top: 28px;
	padding: 24px;
	border: 1px dashed rgba(40, 104, 34, 0.45);
	border-radius: 12px;
	background: var(--ocsc-off-white);
	text-align: center;
}

.oc-analysis-modal__form-slot span {
	color: var(--ocsc-green);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.oc-analysis-modal__form-slot strong {
	color: var(--ocsc-graphite);
	font-size: 18px;
}

.oc-analysis-modal__form-slot small {
	color: #6d686b;
	font-size: 13px;
	line-height: 1.5;
}

.oc-analysis-modal__form {
	margin-top: 24px;
}

.oc-analysis-modal__form .frm-fluent-form,
.oc-analysis-modal__form form[data-form_id] {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 14px;
	align-items: start;
	margin: 0;
}

.oc-analysis-modal__form .ff-el-group {
	min-width: 0;
	margin-bottom: 14px;
}

.oc-analysis-modal__form .ocff-step-1,
.oc-analysis-modal__form .ocff-step-2,
.oc-analysis-modal__form .ocff-next-nav,
.oc-analysis-modal__form .ocff-progress,
.oc-analysis-modal__form .ff_submit_btn_wrapper,
.oc-analysis-modal__form .ocff-back-nav {
	grid-column: 1 / -1;
}

.oc-analysis-modal__form .ocff-step-1:has([name="first_name"]),
.oc-analysis-modal__form .ocff-step-1:has([name="email"]),
.oc-analysis-modal__form .ocff-step-1:has([name="phone"]),
.oc-analysis-modal__form .ocff-step-1:has([name="company"]),
.oc-analysis-modal__form .ocff-step-2:has([name="operation_profile"]),
.oc-analysis-modal__form .ocff-step-2:has([name="unit_count"]) {
	grid-column: auto;
}

.oc-analysis-modal__form .ocff-step-hidden,
.oc-analysis-modal__form form[data-ocff-step="1"] .ff_submit_btn_wrapper {
	display: none !important;
}

.oc-analysis-modal__form .ocff-progress {
	display: grid;
	gap: 7px;
	margin: 0 0 18px;
}

.oc-analysis-modal__form .ocff-progress__text {
	color: var(--ocsc-green);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.3;
	text-transform: uppercase;
}

.oc-analysis-modal__form .ocff-progress__track {
	display: block;
	height: 3px;
	overflow: hidden;
	border-radius: 999px;
	background: #e7ece4;
}

.oc-analysis-modal__form .ocff-progress__bar {
	display: block;
	width: 100%;
	height: 100%;
	transform: scaleX(0.5);
	transform-origin: left center;
	border-radius: inherit;
	background: var(--ocsc-green);
	transition: transform 180ms ease;
}

.oc-analysis-modal__form .ff-el-input--label label,
.oc-analysis-modal__form .ff-el-form-control label,
.oc-analysis-modal__form .ff-el-group > label {
	color: var(--ocsc-graphite);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

.oc-analysis-modal__form .ff-el-input--label {
	margin-bottom: 6px;
}

.oc-analysis-modal__form input:not([type="checkbox"]):not([type="radio"]),
.oc-analysis-modal__form select,
.oc-analysis-modal__form textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #ccd6c9;
	border-radius: 8px;
	background: #fff;
	color: var(--ocsc-graphite);
	box-shadow: none;
	font: inherit;
	font-size: 14px;
	line-height: 1.4;
	transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.oc-analysis-modal__form textarea {
	min-height: 92px;
	resize: vertical;
}

.oc-analysis-modal__form input:not([type="checkbox"]):not([type="radio"]):hover,
.oc-analysis-modal__form select:hover,
.oc-analysis-modal__form textarea:hover {
	border-color: #aebba9;
}

.oc-analysis-modal__form input:not([type="checkbox"]):not([type="radio"]):focus,
.oc-analysis-modal__form select:focus,
.oc-analysis-modal__form textarea:focus {
	border-color: var(--ocsc-green);
	box-shadow: 0 0 0 3px rgba(40, 104, 34, 0.1);
	outline: none;
}

.oc-analysis-modal__form .ff-el-help-message,
.oc-analysis-modal__form .text-danger,
.oc-analysis-modal__form .error {
	font-size: 11.5px;
	line-height: 1.45;
}

.oc-analysis-modal__form .ff-el-help-message {
	margin-top: 5px;
	color: #777176;
}

.oc-analysis-modal__form .ff-el-is-error input,
.oc-analysis-modal__form .ff-el-is-error select,
.oc-analysis-modal__form .ff-el-is-error textarea {
	border-color: #a94343;
}

.oc-analysis-modal__form .ff-el-form-check {
	margin: 6px 0;
}

.oc-analysis-modal__form .ff-el-form-check label {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	color: #4f4a4e;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.48;
}

.oc-analysis-modal__form input[type="checkbox"],
.oc-analysis-modal__form input[type="radio"] {
	flex: 0 0 auto;
	margin-top: 2px;
	accent-color: var(--ocsc-green);
}

.oc-analysis-modal__form .ocff-consent {
	margin-top: 2px;
	padding-top: 10px;
	border-top: 1px solid #edf0eb;
}

.oc-analysis-modal__form .ocff-next-nav,
.oc-analysis-modal__form .ocff-back-nav {
	margin-top: 4px;
}

.oc-analysis-modal__form .ocff-next,
.oc-analysis-modal__form .ff-btn-submit,
.oc-analysis-modal__form button[type="submit"] {
	display: inline-flex;
	width: 100%;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 0;
	padding: 11px 16px;
	border: 1px solid var(--ocsc-green-deep);
	border-radius: 8px;
	background: var(--ocsc-green-deep);
	color: #fff;
	box-shadow: none;
	font: inherit;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.01em;
	line-height: 1.2;
	cursor: pointer;
	transition: background 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.oc-analysis-modal__form .ocff-next:hover,
.oc-analysis-modal__form .ff-btn-submit:hover,
.oc-analysis-modal__form button[type="submit"]:hover {
	border-color: #0f3010;
	background: #0f3010;
	transform: translateY(-1px);
}

.oc-analysis-modal__form .ocff-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 10px;
	padding: 4px 0;
	border: 0;
	background: transparent;
	color: var(--ocsc-green);
	box-shadow: none;
	font: inherit;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
	cursor: pointer;
}

.oc-analysis-modal__form .ocff-back:hover {
	color: var(--ocsc-green-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.oc-analysis-modal__note {
	margin: 16px 0 0;
	color: #777176;
	font-size: 11.5px;
	line-height: 1.55;
}

@media (max-width: 600px) {
	.oc-analysis-modal {
		align-items: end;
		padding: 10px 10px max(10px, env(safe-area-inset-bottom));
	}

	.oc-analysis-modal__dialog {
		width: 100%;
		max-height: min(94dvh, calc(100dvh - 20px));
		overflow-y: auto;
		overflow-x: hidden;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		scrollbar-gutter: stable;
		padding: 22px 18px max(22px, env(safe-area-inset-bottom));
		border-radius: 16px 16px 12px 12px;
	}

	.oc-analysis-modal__close {
		position: sticky;
		top: 0;
		right: auto;
		float: right;
		margin: 0 0 -40px auto;
		background: rgba(255, 255, 255, 0.94);
		box-shadow: 0 0 0 1px rgba(40, 104, 34, 0.14);
		backdrop-filter: blur(6px);
	}

	.oc-analysis-modal__eyebrow {
		margin-right: 48px;
	}

	.oc-analysis-modal__dialog h2 {
		max-width: 14ch;
		font-size: clamp(25px, 7.2vw, 30px);
		line-height: 1.06;
	}

	.oc-analysis-modal__copy {
		margin-top: 13px;
		font-size: 14.5px;
		line-height: 1.55;
	}

	.oc-analysis-modal__form {
		margin-top: 20px;
	}

	.oc-analysis-modal__form .frm-fluent-form,
	.oc-analysis-modal__form form[data-form_id] {
		grid-template-columns: 1fr;
	}

	.oc-analysis-modal__form .ocff-step-1,
	.oc-analysis-modal__form .ocff-step-2,
	.oc-analysis-modal__form .ocff-step-1:has([name="first_name"]),
	.oc-analysis-modal__form .ocff-step-1:has([name="email"]),
	.oc-analysis-modal__form .ocff-step-1:has([name="phone"]),
	.oc-analysis-modal__form .ocff-step-1:has([name="company"]),
	.oc-analysis-modal__form .ocff-step-2:has([name="operation_profile"]),
	.oc-analysis-modal__form .ocff-step-2:has([name="unit_count"]) {
		grid-column: 1;
	}

	.oc-analysis-modal__form .ff-el-group {
		margin-bottom: 12px;
	}

	.oc-analysis-modal__form input:not([type="checkbox"]):not([type="radio"]),
	.oc-analysis-modal__form select {
		min-height: 44px;
	}

	.oc-analysis-modal__form .ocff-progress {
		margin-bottom: 15px;
	}

	.oc-analysis-modal__note {
		margin-top: 14px;
	}

	.oc-analysis-modal__form-slot {
		padding: 18px 15px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.oc-analysis-modal *,
	.oc-analysis-modal *::before,
	.oc-analysis-modal *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Critical layout normalization: keep the modal centered and single-column even if stale theme CSS is served. */
@media (min-width: 701px) {
	.oc-analysis-modal__dialog {
		display: block !important;
		width: min(760px, calc(100vw - 48px)) !important;
		max-height: calc(100dvh - 48px) !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		padding: 34px 38px 32px !important;
	}
	.oc-analysis-modal__eyebrow,
	.oc-analysis-modal__dialog h2,
	.oc-analysis-modal__copy,
	.oc-analysis-modal__form,
	.oc-analysis-modal__note {
		display: block !important;
		grid-column: auto !important;
		grid-row: auto !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		border-left: 0 !important;
	}
	.oc-analysis-modal__dialog h2 {
		max-width: 20ch !important;
		font-size: 36px !important;
	}
	.oc-analysis-modal__copy {
		max-width: 62ch !important;
		margin-top: 12px !important;
	}
	.oc-analysis-modal__form {
		width: 100% !important;
		max-width: none !important;
		margin-top: 22px !important;
		overflow: visible !important;
	}
	.oc-analysis-modal__form .frm-fluent-form,
	.oc-analysis-modal__form form[data-form_id] {
		display: block !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}
	.oc-analysis-modal__form .ff-el-group,
	.oc-analysis-modal__form .ocff-step-1,
	.oc-analysis-modal__form .ocff-step-2,
	.oc-analysis-modal__form .ocff-next-nav,
	.oc-analysis-modal__form .ocff-progress,
	.oc-analysis-modal__form .ff_submit_btn_wrapper,
	.oc-analysis-modal__form .ocff-back-nav {
		width: 100% !important;
		max-width: none !important;
	}
	.oc-analysis-modal__note {
		max-width: 62ch !important;
		margin-top: 14px !important;
		padding-top: 14px !important;
		border-top: 1px solid #edf0eb !important;
	}
}
