/* Shared public form language. The calculator is the visual source of truth. */
:root {
	--site-radius-control: 4px;
	--site-radius-surface: 8px;
	--site-radius-media: 12px;
	--site-form-accent: #f68b1e;
	--site-form-accent-hover: #ffa742;
	--site-form-ink: #333;
	--site-form-muted: #666;
	--site-form-line: #ddd;
	--site-form-height: 44px;
	--site-form-radius: var(--site-radius-control);
	--site-control-height: 44px;
	--site-focus-ring: 0 0 0 3px rgba(246,139,30,.14);
	--site-motion-fast: 180ms ease;
}

.site-form {
	font-family: museo_sans_cyrl300, sans-serif;
}

.site-form label {
	font-family: museo_sans_cyrl500, sans-serif;
	font-weight: 500;
}

.site-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.site-form select,
.site-form textarea,
.site-form .calc-cta-input,
.site-form .calc-cta-textarea,
.site-form .consultant-input {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--site-form-height);
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--site-form-line);
	border-radius: var(--site-form-radius);
	background: #fff;
	box-shadow: none;
	color: var(--site-form-ink);
	font: 15px/1.45 museo_sans_cyrl300, sans-serif;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.site-form select {
	padding-right: 42px;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23878787' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}

/* Enhanced select. The native control remains the form value source. */
.site-select {
	position: relative;
	width: 100%;
	z-index: 1;
}

.site-select.is-open {
	z-index: 40;
}

.site-select > select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	white-space: nowrap !important;
}

.site-select__button {
	display: flex;
	box-sizing: border-box;
	width: 100%;
	min-height: var(--site-control-height);
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 0 13px;
	border: 1px solid var(--site-form-line) !important;
	border-radius: var(--site-radius-control) !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--site-form-ink) !important;
	font: 15px/1.35 museo_sans_cyrl300, sans-serif !important;
	text-align: left;
	text-shadow: none !important;
	cursor: pointer;
	transition: border-color var(--site-motion-fast), box-shadow var(--site-motion-fast);
}

.site-select__button:hover {
	border-color: var(--site-form-accent-hover) !important;
}

.site-select__button:focus-visible,
.site-select.is-open .site-select__button {
	border-color: var(--site-form-accent) !important;
	box-shadow: var(--site-focus-ring) !important;
	outline: 0;
}

.site-select.is-open .site-select__button {
	border-bottom-right-radius: 0 !important;
	border-bottom-left-radius: 0 !important;
}

.site-select__value {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-select__chevron {
	width: 9px;
	height: 9px;
	flex: 0 0 auto;
	margin: -4px 3px 0 0;
	border-right: 1px solid #878787;
	border-bottom: 1px solid #878787;
	transform: rotate(45deg);
	transition: transform var(--site-motion-fast), margin var(--site-motion-fast);
}

.site-select.is-open .site-select__chevron {
	margin: 4px 3px 0 0;
	transform: rotate(225deg);
}

.site-select__list {
	position: absolute;
	top: calc(100% - 1px);
	right: 0;
	left: 0;
	max-height: min(320px, 45vh);
	overflow-x: hidden;
	overflow-y: auto;
	padding: 4px 0;
	border: 1px solid var(--site-form-accent);
	border-radius: 0 0 var(--site-radius-control) var(--site-radius-control);
	background: #fff;
	box-shadow: 0 6px 8px rgba(0,0,0,.08);
}

.site-select__list[hidden] {
	display: none;
}

.site-select__option {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 38px;
	padding: 8px 12px;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--site-form-ink) !important;
	font: 15px/1.4 museo_sans_cyrl300, sans-serif !important;
	text-align: left;
	text-shadow: none !important;
	cursor: pointer;
}

.site-select__option:hover,
.site-select__option:focus-visible {
	background: #fff5ea !important;
	color: #d96f0c !important;
	outline: 0;
}

.site-select__option.is-selected {
	color: #d96f0c !important;
	font-family: museo_sans_cyrl500, sans-serif !important;
}

.site-select__option[aria-disabled="true"] {
	color: #888 !important;
	cursor: not-allowed;
}

.site-select.is-disabled {
	opacity: .65;
}

.site-form textarea,
.site-form .calc-cta-textarea,
.site-form .consultant-input {
	min-height: 96px;
	resize: vertical;
}

.site-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
.site-form select:hover,
.site-form textarea:hover,
.site-form .jq-selectbox__select:hover,
.site-form .jq-file:hover .jq-file__name {
	border-color: var(--site-form-accent-hover);
}

.site-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
.site-form select:focus,
.site-form textarea:focus,
.site-form .calc-cta-input:focus,
.site-form .calc-cta-textarea:focus,
.site-form .consultant-input:focus {
	border-color: var(--site-form-accent);
	box-shadow: 0 0 0 3px rgba(246,139,30,.14);
	outline: 0;
}

.site-form input::placeholder,
.site-form textarea::placeholder {
	color: #666;
	opacity: 1;
}

.site-form input:disabled,
.site-form select:disabled,
.site-form textarea:disabled {
	background: #f5f5f5;
	color: #777;
	cursor: not-allowed;
}

/* jquery.formstyler selects: same geometry as the calculator, usable at 44 px. */
.site-form .jq-selectbox {
	width: 100%;
	min-height: var(--site-form-height);
	margin: 0;
}

.site-form .jq-selectbox__select {
	box-sizing: border-box;
	height: var(--site-form-height);
	padding: 0 44px 0 12px;
	border-color: var(--site-form-line);
	border-radius: var(--site-form-radius);
	color: var(--site-form-ink);
	font: 15px/42px museo_sans_cyrl300, sans-serif;
}

.site-form .jq-selectbox__trigger {
	width: 42px;
}

.site-form .jq-selectbox__trigger-arrow {
	top: 18px;
	right: 12px;
}

.site-form .jq-selectbox.focused .jq-selectbox__select,
.site-form .jq-selectbox.opened .jq-selectbox__select {
	border-color: var(--site-form-accent);
	box-shadow: 0 0 0 3px rgba(246,139,30,.14);
}

.site-form .jq-selectbox.opened .jq-selectbox__select {
	border-bottom-right-radius: 0;
	border-bottom-left-radius: 0;
}

.site-form .jq-selectbox__dropdown {
	top: 43px;
	border-color: var(--site-form-accent);
	border-radius: 0 0 var(--site-form-radius) var(--site-form-radius);
	background: #fff;
	font: 15px/1.35 museo_sans_cyrl300, sans-serif;
}

.site-form .jq-selectbox li {
	min-height: 22px;
	padding: 9px 12px;
	color: var(--site-form-ink);
}

.site-form .jq-selectbox li.selected,
.site-form .jq-selectbox li:hover {
	background: #fff5ea;
	color: #d96f0c;
}

/* Custom file picker; the native input remains keyboard and screen-reader accessible. */
.site-file {
	display: grid;
	grid-template-columns:auto minmax(0,1fr);
	min-height: var(--site-form-height);
	border: 1px solid var(--site-form-line);
	border-radius: var(--site-form-radius);
	background: #fff;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.site-file:focus-within {
	border-color: var(--site-form-accent);
	box-shadow: 0 0 0 3px rgba(246,139,30,.14);
}

.site-file input[type="file"] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.site-file__button {
	display: inline-flex !important;
	min-height: 42px;
	align-items: center;
	gap: 7px;
	padding: 0 14px;
	margin: 0 !important;
	border-right: 1px solid var(--site-form-accent);
	border-radius: 2px 0 0 2px;
	background: var(--site-form-accent);
	color: #fff !important;
	font: 15px/1 museo_sans_cyrl500, sans-serif !important;
	cursor: pointer;
	transition: background-color .18s ease;
}

.site-file__button:hover {
	background: var(--site-form-accent-hover);
}

.site-file__button .material-symbols-outlined {
	color: #fff !important;
	font-size: 20px;
	font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 20;
}

.site-file__name {
	display: block;
	min-width: 0;
	overflow: hidden;
	padding: 11px 12px;
	color: var(--site-form-muted);
	font-size: 15px;
	line-height: 20px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-file.has-file .site-file__name {
	color: var(--site-form-ink);
}

.site-form button[type="submit"],
.site-form .calc-cta-submit,
.site-form .consultant-send,
.site-form #designer-send {
	min-height: var(--site-form-height);
	border: 1px solid var(--site-form-accent);
	border-radius: var(--site-form-radius);
	background: var(--site-form-accent);
	box-shadow: none;
	color: #fff;
	font: 15px/1 museo_sans_cyrl500, sans-serif;
	text-shadow: none;
	transition: background-color .18s ease, border-color .18s ease;
}

.site-form button[type="submit"]:hover,
.site-form .calc-cta-submit:hover,
.site-form .consultant-send:hover,
.site-form #designer-send:hover {
	border-color: var(--site-form-accent-hover);
	background: var(--site-form-accent-hover);
}

.site-form button:focus-visible,
.site-form input:focus-visible,
.site-form select:focus-visible,
.site-form textarea:focus-visible,
.site-form .site-file__button:focus-visible {
	outline: 3px solid rgba(246,139,30,.32);
	outline-offset: 2px;
}

.site-form button:disabled {
	cursor: wait;
	opacity: .62;
}

/* Calculator-derived action geometry across public surfaces. */
:where(
	.service-button,
	.actions-cta__btn,
	.calc-cta__btn,
	.calc-cta-submit,
	.knowledge-button,
	.knowledge-search button,
	.portfolio-cta__btn,
	.error-page__btn,
	.simple-calc-primary-btn,
	.simple-calc-secondary-btn,
	.simple-calc-back-btn,
	.designer-btn,
	.consultant-order__btn,
	.btn-send
) {
	min-height: var(--site-control-height);
	border-radius: var(--site-radius-control) !important;
	font-family: museo_sans_cyrl500, sans-serif;
}

:where(
	.service-button,
	.actions-cta__btn,
	.calc-cta__btn,
	.calc-cta-submit,
	.knowledge-button,
	.knowledge-search button,
	.portfolio-cta__btn,
	.error-page__btn,
	.simple-calc-primary-btn,
	.simple-calc-secondary-btn,
	.simple-calc-back-btn,
	.designer-btn,
	.consultant-order__btn,
	.btn-send
):focus-visible {
	outline: 3px solid rgba(246,139,30,.32);
	outline-offset: 2px;
}

/* Button state contract: link colors must never leak into filled actions. */
:where(
	.actions-cta__btn,
	.calc-cta__btn,
	.calc-cta-submit,
	.knowledge-button--primary,
	.knowledge-search button,
	.portfolio-cta__btn,
	.error-page__btn,
	.simple-calc-primary-btn,
	.designer-btn--primary,
	.consultant-order__btn,
	.btn-send
),
:where(
	.actions-cta__btn,
	.calc-cta__btn,
	.knowledge-button--primary,
	.portfolio-cta__btn,
	.error-page__btn,
	.simple-calc-primary-btn,
	.designer-btn--primary,
	.consultant-order__btn,
	.btn-send
):visited,
:where(
	.actions-cta__btn,
	.calc-cta__btn,
	.calc-cta-submit,
	.knowledge-button--primary,
	.knowledge-search button,
	.portfolio-cta__btn,
	.error-page__btn,
	.simple-calc-primary-btn,
	.designer-btn--primary,
	.consultant-order__btn,
	.btn-send
):hover,
:where(
	.actions-cta__btn,
	.calc-cta__btn,
	.calc-cta-submit,
	.knowledge-button--primary,
	.knowledge-search button,
	.portfolio-cta__btn,
	.error-page__btn,
	.simple-calc-primary-btn,
	.designer-btn--primary,
	.consultant-order__btn,
	.btn-send
):active {
	color: #fff !important;
}

/* Existing forms with later or more specific local rules. */
#brief-v2-form.site-form .field input[type="text"],
#brief-v2-form.site-form .field select,
#brief-v2-form.site-form .field textarea,
.designer-send.site-form .designer-field input,
.designer-send.site-form .designer-field select,
.designer-send.site-form .designer-field textarea {
	min-height: var(--site-form-height);
	padding: 10px 12px;
	border: 1px solid var(--site-form-line);
	border-radius: var(--site-form-radius);
	background: #fff;
	box-shadow: none;
	color: var(--site-form-ink);
	font: 15px/1.45 museo_sans_cyrl300, sans-serif;
}

#brief-v2-form.site-form .field input:focus,
#brief-v2-form.site-form .field select:focus,
#brief-v2-form.site-form .field textarea:focus,
.designer-send.site-form .designer-field input:focus,
.designer-send.site-form .designer-field select:focus,
.designer-send.site-form .designer-field textarea:focus {
	border-color: var(--site-form-accent);
	box-shadow: 0 0 0 3px rgba(246,139,30,.14);
	outline: 0;
}

@media (max-width: 480px) {
	.site-file {
		grid-template-columns: 1fr;
	}
	.site-file__button {
		justify-content: center;
		border-right: 0;
		border-bottom: 1px solid var(--site-form-accent);
		border-radius: 2px 2px 0 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-form input,
	.site-form select,
	.site-form textarea,
	.site-form button,
	.site-file,
	.site-file__button {
		transition: none;
	}
	.site-select__button,
	.site-select__chevron {
		transition: none;
	}
}
