/* Bitrix24 embedded forms — light skin, keep Bitrix layout/positioning intact */

.ibc-b24-form__embed {
	min-height: 1px;
}

.ibc-b24-form .b24-form-wrapper,
.ibc-b24-form .b24-form {
	width: 100% !important;
	max-width: 100% !important;
	background: transparent !important;
	box-shadow: none !important;
}

.ibc-b24-form .b24-form-header,
.ibc-b24-form .b24-form-header-title,
.ibc-b24-form .b24-form-header-description {
	display: none !important;
}

.ibc-b24-form .b24-form-content {
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

.ibc-b24-form .b24-form-field {
	margin-bottom: var(--ibc-space-16) !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Do not override display/position of control wrappers — icons & alerts depend on Bitrix layout */

.ibc-b24-form .b24-form-field-label,
.ibc-b24-form .b24-form-control-label {
	font-size: 14px !important;
	font-weight: 500 !important;
	color: var(--ibc-text-secondary) !important;
}

.ibc-b24-form .b24-form-control-label .b24-form-control-required,
.ibc-b24-form .b24-form-field-label .b24-form-control-required,
.ibc-b24-form .b24-form-control-required {
	color: #dc2626 !important;
}

.ibc-b24-form .b24-form-control,
.ibc-b24-form .b24-form-control-string input,
.ibc-b24-form .b24-form-control-text textarea,
.ibc-b24-form .b24-form-control-select select,
.ibc-b24-form .b24-form-control-list input,
.ibc-b24-form input[type='text'],
.ibc-b24-form input[type='tel'],
.ibc-b24-form input[type='email'],
.ibc-b24-form select,
.ibc-b24-form textarea {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	font-family: inherit !important;
	font-size: 15px !important;
	line-height: 1.4 !important;
	color: var(--ibc-accent) !important;
	background: var(--ibc-white) !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: var(--ibc-space-8) !important;
	box-shadow: none !important;
}

/* Match Bitrix 52px field height so clear/dropdown icons stay inside the border */
.ibc-b24-form .b24-form-control-string .b24-form-control,
.ibc-b24-form .b24-form-control-list .b24-form-control {
	height: 52px !important;
	min-height: 52px !important;
}

.ibc-b24-form .b24-form-icon-before,
.ibc-b24-form .b24-form-icon-after {
	height: 52px !important;
	top: 0 !important;
	bottom: auto !important;
	box-sizing: border-box !important;
	background: transparent !important;
}

.ibc-b24-form .b24-form-icon-remove,
.ibc-b24-form .b24-form-icon-clear {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: none !important;
}

.ibc-b24-form .b24-form-icon-remove:hover,
.ibc-b24-form .b24-form-icon-clear:hover,
.ibc-b24-form .b24-form-icon-after:hover,
.ibc-b24-form .b24-form-icon-before:hover {
	background: transparent !important;
	box-shadow: none !important;
}

.ibc-b24-form .b24-form-icon-remove:hover {
	opacity: 0.9 !important;
}

.ibc-b24-form .b24-form-icon-remove:focus,
.ibc-b24-form .b24-form-icon-remove:focus-visible,
.ibc-b24-form .b24-form-icon-clear:focus,
.ibc-b24-form .b24-form-icon-clear:focus-visible {
	outline: none !important;
	background: transparent !important;
	box-shadow: none !important;
}

.ibc-b24-form .b24-form-control:focus,
.ibc-b24-form .b24-form-control-string input:focus,
.ibc-b24-form .b24-form-control-text textarea:focus,
.ibc-b24-form .b24-form-control-list input:focus,
.ibc-b24-form input[type='text']:focus,
.ibc-b24-form input[type='tel']:focus,
.ibc-b24-form input[type='email']:focus,
.ibc-b24-form textarea:focus {
	border-color: var(--ibc-accent) !important;
	box-shadow: 0 0 0 3px rgba(7, 19, 87, 0.08) !important;
	outline: none !important;
}

.ibc-b24-form .b24-form-control-text textarea {
	min-height: 96px !important;
	resize: vertical !important;
}

.ibc-b24-form .b24-form-btn,
.ibc-b24-form .b24-form-btn button,
.ibc-b24-form button.b24-form-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 52px !important;
	padding: var(--ibc-space-16) var(--ibc-space-32) !important;
	font-family: inherit !important;
	font-size: var(--ibc-btn-size) !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	color: var(--ibc-white) !important;
	background: var(--ibc-accent) !important;
	border: 0 !important;
	border-radius: var(--ibc-space-12) !important;
	box-shadow: none !important;
	cursor: pointer !important;
}

.ibc-b24-form .b24-form-btn:hover,
.ibc-b24-form .b24-form-btn button:hover,
.ibc-b24-form button.b24-form-btn:hover {
	color: var(--ibc-accent) !important;
	background: var(--ibc-white) !important;
	border: 1.5px solid var(--ibc-accent) !important;
	box-shadow: none !important;
}

.ibc-b24-form--property {
	margin-bottom: 0 !important;
}

.ibc-b24-form--property .b24-form-btn-block {
	margin: 0 !important;
}

.ibc-b24-form--modal .b24-form-btn-block {
	margin-top: var(--ibc-space-4) !important;
}

.ibc-b24-form .b24-form-sign {
	display: none !important;
}

/* Property/modal: hide extra string field before consent */
.ibc-b24-form--modal .b24-form-field:has(#b24-form-field-7),
.ibc-b24-form--property .b24-form-field:has(#b24-form-field-7),
.ibc-b24-form--modal .b24-form-field-string:has(+ .b24-form-field-agreement),
.ibc-b24-form--property .b24-form-field-string:has(+ .b24-form-field-agreement) {
	display: none !important;
}

/* Consent checkbox — match design mockup */
.ibc-b24-form .b24-form-field-agreement {
	margin-bottom: var(--ibc-space-16) !important;
}

.ibc-b24-form .b24-form-field-agreement .b24-form-field-label {
	display: none !important;
}

.ibc-b24-form .b24-form-field-agreement .b24-form-control-container {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	margin: 0 !important;
	line-height: 1.45 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.ibc-b24-form .b24-form-field-agreement .b24-form-control,
.ibc-b24-form .b24-form-field-agreement label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	height: auto !important;
	min-height: 0 !important;
	cursor: pointer !important;
}

.ibc-b24-form .b24-form-field-agreement input[type='checkbox'] {
	appearance: none !important;
	-webkit-appearance: none !important;
	flex: 0 0 18px !important;
	width: 18px !important;
	height: 18px !important;
	min-width: 18px !important;
	min-height: 18px !important;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	background: var(--ibc-white) !important;
	border: 1.5px solid #cbd5e1 !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	cursor: pointer !important;
}

.ibc-b24-form .b24-form-field-agreement input[type='checkbox']:checked {
	background-color: var(--ibc-accent) !important;
	border-color: var(--ibc-accent) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5.2L4.2 8.4L11 1.6' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 12px 10px !important;
}

.ibc-b24-form .b24-form-field-agreement .b24-form-control-desc,
.ibc-b24-form .b24-form-field-agreement label,
.ibc-b24-form .b24-form-field-agreement .b24-form-control-agreement-text {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	font-size: 12px !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	color: var(--ibc-text-muted) !important;
	opacity: 1 !important;
}

.ibc-b24-form .b24-form-field-agreement .b24-form-control-required,
.ibc-b24-form .b24-form-field-agreement .b24-form-field-required {
	color: #dc2626 !important;
	font-size: 12px !important;
	line-height: inherit !important;
}

.ibc-b24-form .b24-form-field-agreement a,
.ibc-b24-form .b24-form-field-agreement .b24-form-field-agreement-link {
	color: var(--ibc-text-muted) !important;
	text-decoration: underline !important;
	font-size: inherit !important;
	line-height: inherit !important;
}

/* Homepage: full width only */
.ibc-b24-form--homepage,
.ibc-b24-form--homepage .ibc-b24-form__embed,
.ibc-b24-form--homepage .b24-form-wrapper,
.ibc-b24-form--homepage .b24-form,
.ibc-b24-form--homepage .b24-form-content,
.ibc-b24-form--homepage .b24-form-field,
.ibc-b24-form--homepage .b24-form-control-container,
.ibc-b24-form--homepage .b24-form-btn-block {
	width: 100% !important;
	max-width: 100% !important;
}

.ibc-b24-form--homepage .b24-form-control-text textarea,
.ibc-b24-form--homepage textarea {
	min-height: 120px !important;
}

.ibc-b24-form--homepage .b24-form-btn-block {
	margin: var(--ibc-space-8) 0 0 !important;
}

/* Success / error state screens */
.ibc-b24-form .b24-form-wrapper.b24-from-state-on {
	min-height: 360px !important;
}

.ibc-b24-form .b24-form-state-container,
.ibc-b24-form .b24-form-state-container .b24-form-state,
.ibc-b24-form .b24-form-state-container .b24-form-loader {
	background: var(--ibc-white) !important;
	border-radius: 16px !important;
}

.ibc-b24-form .b24-form-state-container .b24-form-success {
	background: linear-gradient(180deg, #f7f8fc 0%, #ffffff 55%) !important;
}

.ibc-b24-form .b24-form-inner-box,
.ibc-b24-form .b24-form-success-inner,
.ibc-b24-form .b24-form-state-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 420px !important;
	margin: 0 auto !important;
	padding: 32px 24px !important;
	text-align: center !important;
	position: relative !important;
	top: auto !important;
	transform: none !important;
}

.ibc-b24-form .b24-form-success-icon {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 88px !important;
	height: 88px !important;
	margin: 0 0 24px !important;
	background: var(--ibc-accent) !important;
	background-image: none !important;
	border-radius: 50% !important;
	box-shadow: 0 12px 28px rgba(7, 19, 87, 0.2) !important;
}

.ibc-b24-form .b24-form-success-icon::before {
	content: '' !important;
	display: block !important;
	width: 28px !important;
	height: 16px !important;
	margin-top: -4px !important;
	border-left: 3px solid #fff !important;
	border-bottom: 3px solid #fff !important;
	border-radius: 1px !important;
	transform: rotate(-45deg) !important;
	background: none !important;
}

.ibc-b24-form .b24-form-success-icon svg,
.ibc-b24-form .b24-form-success-icon img {
	display: none !important;
}

.ibc-b24-form .b24-form-success .b24-form-state-text,
.ibc-b24-form .b24-form-state-text {
	margin: 0 0 12px !important;
	font-family: inherit !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: -0.02em !important;
	color: var(--ibc-accent) !important;
	opacity: 1 !important;
}

.ibc-b24-form .b24-form-success .b24-form-state-text p,
.ibc-b24-form .b24-form-state-text p {
	margin: 0 !important;
	color: inherit !important;
}

.ibc-b24-form .b24-form-success .b24-form-state-text + .b24-form-state-text,
.ibc-b24-form .b24-form-success .b24-form-state-text p + p,
.ibc-b24-form .b24-form-success .b24-form-inner-box > p {
	margin: 0 !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--ibc-text-secondary) !important;
}

.ibc-b24-form .b24-form-success .b24-form-btn,
.ibc-b24-form .b24-form-state .b24-form-btn {
	width: auto !important;
	min-width: 200px !important;
	margin-top: 24px !important;
	padding: 14px 28px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #fff !important;
	background: var(--ibc-accent) !important;
	border: 1.5px solid var(--ibc-accent) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

.ibc-b24-form .b24-form-success .b24-form-btn:hover,
.ibc-b24-form .b24-form-state .b24-form-btn:hover {
	color: var(--ibc-accent) !important;
	background: #fff !important;
}

/* Error state — keep readable on brand palette */
.ibc-b24-form .b24-form-state-container .b24-form-error {
	background: #fff5f5 !important;
}

.ibc-b24-form .b24-form-error .b24-form-state-text {
	color: #b91c1c !important;
	opacity: 1 !important;
}

.ibc-b24-form .b24-form-error .b24-form-btn {
	color: #fff !important;
	background: var(--ibc-accent) !important;
	border-color: var(--ibc-accent) !important;
}

/* Bitrix consent popup (rendered on body, outside .ibc-b24-form) */
.b24-window-overlay {
	background: rgba(7, 19, 87, 0.55) !important;
}

.b24-window-popup,
.b24-window-popup-wrapper,
.b24-window-panel {
	--b24-primary-color: #071357;
	--b24-primary-hover-color: #0f1538;
	--b24-primary-text-color: #ffffff;
	--b24-text-color: #071357;
	--b24-popup-background-color: #ffffff;
	--b24-background-color: #ffffff;
	font-family: inherit !important;
}

.b24-window-popup-wrapper {
	max-width: 640px !important;
	overflow: hidden !important;
	border-radius: 12px !important;
	background: var(--ibc-white) !important;
	box-shadow: 0 24px 48px rgba(7, 19, 87, 0.18) !important;
}

.b24-window-popup-head,
.b24-window-header {
	margin: 0 !important;
	padding: 20px 56px 18px 24px !important;
	min-height: 0 !important;
	border-bottom: 1px solid #e2e8f0 !important;
	background: var(--ibc-white) !important;
}

.b24-window-popup-title,
.b24-window-header-title {
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	opacity: 1 !important;
	white-space: normal !important;
	color: var(--ibc-accent) !important;
}

.b24-window-popup-body,
.b24-window-scrollable {
	padding: 20px 24px !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	color: var(--ibc-text-secondary) !important;
	background: var(--ibc-white) !important;
}

.b24-window-popup-body p,
.b24-window-scrollable p {
	margin: 0 0 12px !important;
	color: var(--ibc-text-secondary) !important;
}

.b24-window-popup-body p:last-child,
.b24-window-scrollable p:last-child {
	margin-bottom: 0 !important;
}

.b24-window-close {
	top: 16px !important;
	right: 16px !important;
	width: 36px !important;
	height: 36px !important;
	opacity: 1 !important;
	background: var(--ibc-accent) !important;
	border-radius: 50% !important;
}

.b24-window-close:hover,
.b24-window-close:focus,
.b24-window-close:focus-visible {
	opacity: 1 !important;
	background: #0f1538 !important;
	outline: none !important;
}

.b24-window-close:before,
.b24-window-close:after {
	width: 2px !important;
	height: 14px !important;
	background: #fff !important;
}

/* Popup action buttons */
.b24-window-popup .b24-form-btn-block,
.b24-window-panel .b24-form-btn-block,
.b24-form-scroll-textable {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	padding: 16px 24px 24px !important;
	border-top: 1px solid #e2e8f0 !important;
	background: var(--ibc-white) !important;
}

.b24-window-popup .b24-form-btn,
.b24-window-panel .b24-form-btn,
.b24-form-scroll-textable .b24-form-btn {
	flex: 1 1 calc(50% - 6px) !important;
	width: auto !important;
	min-height: 48px !important;
	padding: 12px 20px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

.b24-window-popup .b24-form-btn:not(.b24-form-btn-border),
.b24-window-panel .b24-form-btn:not(.b24-form-btn-border),
.b24-form-scroll-textable .b24-form-btn:not(.b24-form-btn-border) {
	color: #fff !important;
	background: var(--ibc-accent) !important;
	border: 1.5px solid var(--ibc-accent) !important;
}

.b24-window-popup .b24-form-btn:not(.b24-form-btn-border):hover,
.b24-window-panel .b24-form-btn:not(.b24-form-btn-border):hover,
.b24-form-scroll-textable .b24-form-btn:not(.b24-form-btn-border):hover {
	color: var(--ibc-accent) !important;
	background: #fff !important;
}

.b24-window-popup .b24-form-btn.b24-form-btn-border,
.b24-window-panel .b24-form-btn.b24-form-btn-border,
.b24-form-scroll-textable .b24-form-btn.b24-form-btn-border {
	color: var(--ibc-accent) !important;
	background: #fff !important;
	border: 1.5px solid var(--ibc-accent) !important;
}

.b24-window-popup .b24-form-btn.b24-form-btn-border:hover,
.b24-window-panel .b24-form-btn.b24-form-btn-border:hover,
.b24-form-scroll-textable .b24-form-btn.b24-form-btn-border:hover {
	color: #fff !important;
	background: var(--ibc-accent) !important;
}

@media (max-width: 1024px) {
	.ibc-b24-form--modal .b24-form-field {
		margin-bottom: var(--ibc-space-12) !important;
	}

	.ibc-b24-form--modal .b24-form-field-label,
	.ibc-b24-form--modal .b24-form-control-label {
		font-size: 13px !important;
	}

	.ibc-b24-form--modal .b24-form-control,
	.ibc-b24-form--modal .b24-form-control-string input,
	.ibc-b24-form--modal .b24-form-control-text textarea,
	.ibc-b24-form--modal .b24-form-control-list input,
	.ibc-b24-form--modal input[type='text'],
	.ibc-b24-form--modal input[type='tel'],
	.ibc-b24-form--modal input[type='email'],
	.ibc-b24-form--modal textarea {
		font-size: 14px !important;
	}

	.ibc-b24-form--modal .b24-form-control-string .b24-form-control,
	.ibc-b24-form--modal .b24-form-control-list .b24-form-control {
		height: 40px !important;
		min-height: 40px !important;
	}

	.ibc-b24-form--modal .b24-form-icon-before,
	.ibc-b24-form--modal .b24-form-icon-after {
		height: 40px !important;
	}

	.ibc-b24-form--modal .b24-form-control-text textarea {
		min-height: 72px !important;
	}

	.ibc-b24-form--modal .b24-form-field-agreement {
		margin-bottom: var(--ibc-space-12) !important;
	}

	.ibc-b24-form--modal .b24-form-field-agreement .b24-form-control-desc,
	.ibc-b24-form--modal .b24-form-field-agreement label,
	.ibc-b24-form--modal .b24-form-field-agreement .b24-form-control-agreement-text {
		font-size: 11px !important;
		line-height: 1.35 !important;
	}

	.ibc-b24-form--modal .b24-form-btn,
	.ibc-b24-form--modal .b24-form-btn button,
	.ibc-b24-form--modal button.b24-form-btn {
		min-height: 40px !important;
		padding: var(--ibc-space-12) var(--ibc-space-16) !important;
		font-size: 14px !important;
	}
}

@media (max-width: 640px) {
	.b24-window-popup .b24-form-btn,
	.b24-window-panel .b24-form-btn,
	.b24-form-scroll-textable .b24-form-btn {
		flex-basis: 100% !important;
	}
}
