/*
Theme Name: MusorExpress
Theme URI: https://trash.ddev.site
Author: MusorExpress
Description: Static HTML layout from source_html migrated to WordPress (classic theme).
Version: 1.0.3
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: musorexpress
*/

/* Base styles are loaded per page from assets/css/{slug}.css */

/*
 * Logged-in users: keep fixed chrome below the WordPress admin bar.
 * Per-page CSS sets header / mobile UI to top: 0; these rules override with higher specificity.
 */
body.admin-bar #site-header {
	top: 32px;
}

body.admin-bar .mobile-overlay {
	top: 32px;
}

body.admin-bar .mobile-menu {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar #site-header {
		top: 46px;
	}

	body.admin-bar .mobile-overlay {
		top: 46px;
	}

	body.admin-bar .mobile-menu {
		top: 46px;
	}
}

/* Contact Form 7 callback (shared across page CSS bundles) */
.popup-cf7-slot[hidden] {
	display: none !important;
}

/* ===== Popup (#popup): match source_html copy + CF7 spacing (same rhythm as hero card) ===== */
#popup.popup-overlay .popup > h2,
#popup .popup > h2 {
	font-family: "Unbounded", sans-serif;
	font-size: 20px;
	margin: 0 0 8px;
	padding: 0;
	line-height: 1.25;
	font-weight: 700;
	color: var(--text, #1a1a1a);
}

#popup.popup-overlay .popup > p,
#popup .popup > p {
	color: var(--muted, #6b6b6b);
	font-size: 14px;
	margin: 0 0 24px;
	padding: 0;
	line-height: 1.45;
}

#popup .popup .popup-cf7-slot {
	margin: 0;
	padding: 0;
}

#popup .popup .musorexpress-cf7-wrap {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7 {
	margin: 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form {
	margin: 0;
	position: relative;
}

#popup .popup .musorexpress-cf7-wrap form.wpcf7-form.musorexpress-cf7-callback {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	row-gap: 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form > p {
	margin: 0;
	padding: 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form-control-wrap {
	display: block;
	margin: 0 0 12px;
	padding: 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form-control-wrap:has(.wpcf7-acceptance) {
	margin: 10px 0 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) .wpcf7-spinner {
	order: 2;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) .wpcf7-submit {
	order: 1;
}

#popup .popup .musorexpress-cf7-wrap form.wpcf7-form:not(.submitting) .wpcf7-spinner {
	display: none !important;
}

#popup .popup .musorexpress-cf7-wrap form.wpcf7-form.submitting .wpcf7-spinner {
	display: inline-block !important;
	visibility: visible;
	align-self: center;
	margin: 10px 0 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7 > .wpcf7-spinner {
	display: none !important;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7:has(form.wpcf7-form.submitting) > .wpcf7-spinner {
	display: inline-block !important;
	visibility: visible;
	margin: 10px auto 0;
}

#popup .popup .musorexpress-cf7-wrap input.form-input,
#popup .popup .musorexpress-cf7-wrap input.wpcf7-text,
#popup .popup .musorexpress-cf7-wrap input.wpcf7-form-control.wpcf7-tel,
#popup .popup .musorexpress-cf7-wrap input[type="tel"],
#popup .popup .musorexpress-cf7-wrap input[type="text"] {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	border: 2px solid var(--border, #e0dfda);
	border-radius: 10px;
	padding: 14px 16px;
	font-size: 16px;
	line-height: 1.25;
	outline: none;
	font-family: "Onest", sans-serif;
	margin: 0;
	transition: border-color 0.2s;
	background: var(--white, #fff);
	color: var(--text, #1a1a1a);
	-webkit-appearance: none;
	appearance: none;
}

#popup .popup .musorexpress-cf7-wrap input.form-input:focus,
#popup .popup .musorexpress-cf7-wrap input.wpcf7-form-control.wpcf7-tel:focus,
#popup .popup .musorexpress-cf7-wrap input[type="tel"]:focus,
#popup .popup .musorexpress-cf7-wrap input[type="text"]:focus {
	border-color: var(--orange, #f4500a);
}

#popup .popup .musorexpress-cf7-wrap input.wpcf7-submit,
#popup .popup .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	display: block;
	padding: 14px 16px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	font-family: "Onest", sans-serif;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	background: var(--orange, #f4500a);
	color: var(--white, #fff);
	margin: 0;
	transition: background 0.2s, transform 0.1s;
	-webkit-appearance: none;
	appearance: none;
}

#popup .popup .musorexpress-cf7-wrap input.wpcf7-submit:hover,
#popup .popup .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit:hover {
	background: var(--orange-dark, #c93e05);
}

#popup .popup .musorexpress-cf7-wrap input.wpcf7-submit:active,
#popup .popup .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit:active {
	transform: scale(0.98);
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item {
	display: block;
	margin: 0;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label::before,
#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label::after {
	content: none;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance label {
	display: grid;
	grid-template-columns: 16px 1fr;
	column-gap: 8px;
	align-items: start;
	font-size: 11px;
	line-height: 1.35;
	color: var(--muted, #6b6b6b);
	margin: 0;
	padding: 0;
	cursor: pointer;
	position: relative;
	min-height: 18px;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label {
	grid-column: 2;
	grid-row: 1;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 1px;
	width: 16px;
	height: 16px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance label::before {
	content: "";
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	border-radius: 4px;
	border: 2px solid var(--border, #e0dfda);
	background: var(--white, #fff);
	box-sizing: border-box;
	transition: border-color 0.2s, background 0.2s;
	pointer-events: none;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance label:has(input:checked)::before {
	background: var(--orange, #f4500a);
	border-color: var(--orange, #f4500a);
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance label:has(input:checked)::after {
	content: "";
	position: absolute;
	left: 8px;
	top: 9px;
	width: 4px;
	height: 7px;
	margin: 0;
	padding: 0;
	border: 2px solid #fff;
	border-top: none;
	border-left: none;
	transform: translate(-50%, -50%) rotate(45deg);
	transform-origin: center center;
	pointer-events: none;
	box-sizing: border-box;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label a {
	color: inherit;
	text-decoration: underline;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label a:hover {
	color: var(--orange, #f4500a);
}

#popup .popup .musorexpress-cf7-wrap .wpcf7-acceptance label:focus-within {
	outline: 2px solid var(--orange, #f4500a);
	outline-offset: 2px;
	border-radius: 4px;
}

#popup .popup .musorexpress-cf7-wrap .wpcf7 form .wpcf7-response-output {
	margin: 10px 0 0;
	padding: 0;
	font-size: 12px;
	line-height: 1.35;
}

/*
 * Bottom capture + CF7 — match source_html: phone + .btn-main in one row, .form-agree below.
 * Overrides per-page .bottom-form-row { display:flex } (single CF7 child made layout wrong).
 */
#primary section.bottom-capture .bottom-capture-inner > h2,
section.bottom-capture .bottom-capture-inner > h2 {
	font-family: "Unbounded", sans-serif;
	font-size: clamp(20px, 3vw, 32px);
	font-weight: 900;
	color: #fff;
	margin: 0 0 10px;
	padding: 0;
	line-height: 1.2;
}

#primary section.bottom-capture .bottom-capture-inner > h2 em,
section.bottom-capture .bottom-capture-inner > h2 em {
	color: var(--orange, #f4500a);
	font-style: normal;
}

#primary section.bottom-capture .bottom-capture-inner > p,
section.bottom-capture .bottom-capture-inner > p {
	color: rgba(255, 255, 255, 0.55);
	font-size: 15px;
	margin: 0 0 32px;
	padding: 0;
	line-height: 1.5;
}

section.bottom-capture .bottom-form-row.bottom-form-row--cf7 {
	display: block;
	max-width: 520px;
	margin: 0 auto 12px;
}

section.bottom-capture .bottom-form-row--cf7 .musorexpress-cf7-wrap,
section.bottom-capture .bottom-form-row--cf7 .wpcf7 {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-form {
	margin: 0;
	position: relative;
}

section.bottom-capture .bottom-form-row--cf7 form.wpcf7-form.musorexpress-cf7-callback {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	align-items: stretch;
	width: 100%;
	margin: 0;
	padding: 0;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p {
	margin: 0;
	padding: 0;
}

/* CF7 with wpcf7_autop off: tel / acceptance are often direct form > .wpcf7-form-control-wrap (no <p>). */
section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-tel),
section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(input[type="tel"]),
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-form-control-wrap .wpcf7-tel),
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(input[type="tel"]) {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
}

section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-tel),
section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(input[type="tel"]),
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-form-control-wrap .wpcf7-tel) .wpcf7-form-control-wrap,
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(input[type="tel"]) .wpcf7-form-control-wrap {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
	min-width: 0;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-submit) {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: stretch;
	margin: 0;
	padding: 0;
}

section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-acceptance),
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-acceptance) {
	grid-column: 1 / -1;
	grid-row: 2;
	margin: 10px 0 0;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
}

/* Do not stretch acceptance row to full inner width; keep block visually centered (static .form-agree). */
section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-acceptance) .wpcf7-form-control.wpcf7-acceptance,
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-acceptance) > .wpcf7-form-control-wrap {
	width: fit-content;
	max-width: 100%;
	margin: 0;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-form p:has(.wpcf7-submit) .wpcf7-spinner {
	order: 2;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-form p:has(.wpcf7-submit) .wpcf7-submit {
	order: 1;
}

section.bottom-capture .bottom-form-row--cf7 form.wpcf7-form:not(.submitting) .wpcf7-spinner {
	display: none !important;
}

section.bottom-capture .bottom-form-row--cf7 form.wpcf7-form.submitting .wpcf7-spinner {
	display: inline-block !important;
	visibility: visible;
	align-self: center;
	margin: 8px 0 0;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7 > .wpcf7-spinner {
	display: none !important;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7:has(form.wpcf7-form.submitting) > .wpcf7-spinner {
	display: inline-block !important;
	visibility: visible;
	margin: 8px auto 0;
}

section.bottom-capture .bottom-form-row--cf7 input.form-input,
section.bottom-capture .bottom-form-row--cf7 input.wpcf7-text,
section.bottom-capture .bottom-form-row--cf7 input.wpcf7-form-control.wpcf7-tel,
section.bottom-capture .bottom-form-row--cf7 input[type="tel"],
section.bottom-capture .bottom-form-row--cf7 input[type="text"],
section.bottom-capture .bottom-form-row--cf7 input[type="email"],
section.bottom-capture .bottom-form-row--cf7 input[type="number"] {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	flex: 1 1 auto;
	background: rgba(255, 255, 255, 0.08);
	border: 2px solid rgba(255, 255, 255, 0.15);
	border-radius: 10px;
	padding: 15px 18px;
	font-size: 16px;
	line-height: 1.25;
	color: #fff;
	outline: none;
	font-family: "Onest", sans-serif;
	margin: 0;
	transition: border-color 0.2s;
	-webkit-appearance: none;
	appearance: none;
}

section.bottom-capture .bottom-form-row--cf7 input::placeholder {
	color: rgba(255, 255, 255, 0.35);
}

section.bottom-capture .bottom-form-row--cf7 input.form-input:focus,
section.bottom-capture .bottom-form-row--cf7 input.wpcf7-form-control.wpcf7-tel:focus,
section.bottom-capture .bottom-form-row--cf7 input[type="tel"]:focus,
section.bottom-capture .bottom-form-row--cf7 input[type="text"]:focus,
section.bottom-capture .bottom-form-row--cf7 input[type="email"]:focus,
section.bottom-capture .bottom-form-row--cf7 input[type="number"]:focus {
	border-color: var(--orange, #f4500a);
}

section.bottom-capture .bottom-form-row--cf7 input.wpcf7-submit,
section.bottom-capture .bottom-form-row--cf7 input[type="submit"].wpcf7-submit {
	width: auto;
	min-width: 0;
	box-sizing: border-box;
	display: block;
	align-self: stretch;
	background: var(--orange, #f4500a);
	color: #fff;
	border: none;
	border-radius: 10px;
	padding: 15px 24px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	font-family: "Onest", sans-serif;
	cursor: pointer;
	margin: 0;
	white-space: nowrap;
	transition: background 0.2s, transform 0.1s;
	-webkit-appearance: none;
	appearance: none;
}

section.bottom-capture .bottom-form-row--cf7 input.wpcf7-submit:hover,
section.bottom-capture .bottom-form-row--cf7 input[type="submit"].wpcf7-submit:hover {
	background: var(--orange-dark, #c93e05);
}

section.bottom-capture .bottom-form-row--cf7 input.wpcf7-submit:active,
section.bottom-capture .bottom-form-row--cf7 input[type="submit"].wpcf7-submit:active {
	transform: scale(0.98);
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance .wpcf7-list-item {
	display: inline-block;
	width: auto;
	max-width: 100%;
	margin: 0;
	vertical-align: top;
}

section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-acceptance) .wpcf7-form-control.wpcf7-acceptance,
section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-acceptance) .wpcf7-form-control.wpcf7-acceptance {
	display: inline-block;
	width: auto;
	max-width: 100%;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance .wpcf7-list-item-label::before,
section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance .wpcf7-list-item-label::after {
	content: none;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance label {
	display: inline-grid;
	grid-template-columns: 16px max-content;
	column-gap: 8px;
	align-items: start;
	justify-items: start;
	font-size: 11px;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.35);
	margin: 0;
	padding: 0;
	cursor: pointer;
	position: relative;
	min-height: 18px;
	text-align: left;
	vertical-align: top;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance .wpcf7-list-item-label {
	grid-column: 2;
	grid-row: 1;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 1px;
	width: 16px;
	height: 16px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance label::before {
	content: "";
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	border-radius: 4px;
	border: 2px solid rgba(255, 255, 255, 0.2);
	background: transparent;
	box-sizing: border-box;
	transition: border-color 0.2s, background 0.2s;
	pointer-events: none;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance label:has(input:checked)::before {
	background: var(--orange, #f4500a);
	border-color: var(--orange, #f4500a);
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance label:has(input:checked)::after {
	content: "";
	position: absolute;
	left: 8px;
	top: 9px;
	width: 4px;
	height: 7px;
	margin: 0;
	padding: 0;
	border: 2px solid #fff;
	border-top: none;
	border-left: none;
	transform: translate(-50%, -50%) rotate(45deg);
	transform-origin: center center;
	pointer-events: none;
	box-sizing: border-box;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance .wpcf7-list-item-label a {
	color: inherit;
	text-decoration: underline;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance .wpcf7-list-item-label a:hover {
	color: var(--orange, #f4500a);
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7-acceptance label:focus-within {
	outline: 2px solid var(--orange, #f4500a);
	outline-offset: 2px;
	border-radius: 4px;
}

section.bottom-capture .bottom-form-row--cf7 .wpcf7 form .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 0;
	font-size: 12px;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.45);
	border: none;
	text-align: center;
}

@media screen and (max-width: 900px) {
	section.bottom-capture .bottom-form-row--cf7 form.wpcf7-form.musorexpress-cf7-callback {
		grid-template-columns: 1fr;
	}

	section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-tel),
	section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(input[type="tel"]),
	section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-form-control-wrap .wpcf7-tel),
	section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(input[type="tel"]) {
		grid-column: 1;
		grid-row: 1;
	}

	section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-submit) {
		grid-column: 1;
		grid-row: 2;
	}

	section.bottom-capture .bottom-form-row--cf7 form.musorexpress-cf7-callback > .wpcf7-form-control-wrap:has(.wpcf7-acceptance),
	section.bottom-capture .bottom-form-row--cf7 .wpcf7-form > p:has(.wpcf7-acceptance) {
		grid-column: 1;
		grid-row: 3;
	}

	section.bottom-capture .bottom-form-row--cf7 input.wpcf7-submit,
	section.bottom-capture .bottom-form-row--cf7 input[type="submit"].wpcf7-submit {
		width: 100%;
		white-space: normal;
	}
}

/*
 * Hero capture card + CF7 — match source_html spacing (vivoz-musora-moscow).
 * Use section.hero (DOM path) + #primary where present. CF7 spinner stays in
 * layout while visibility:hidden; collapse unless form.submitting.
 */
#primary section.hero .capture-form > h3,
section.hero .capture-form > h3 {
	font-family: "Unbounded", sans-serif;
	font-size: 16px;
	margin: 0 0 6px;
	padding: 0;
	line-height: 1.25;
	font-weight: 700;
	color: var(--text, #1a1a1a);
}

#primary section.hero .capture-form > p,
section.hero .capture-form > p {
	font-size: 13px;
	color: var(--muted, #6b6b6b);
	margin: 0 0 20px;
	padding: 0;
	line-height: 1.45;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap,
section.hero .capture-form .musorexpress-cf7-wrap {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7 {
	margin: 0;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form {
	margin: 0;
	position: relative;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap form.wpcf7-form.musorexpress-cf7-callback,
section.hero .capture-form .musorexpress-cf7-wrap form.wpcf7-form.musorexpress-cf7-callback {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	row-gap: 0;
}

/* CF7 autop <p> — zero vertical padding/margin */
#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form > p,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form > p {
	margin: 0;
	padding: 0;
}

/* Phone row: same as .form-input { margin-bottom: 12px } on the field */
#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form-control-wrap,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form-control-wrap {
	display: block;
	margin: 0 0 12px;
	padding: 0;
}

/* [submit] is not inside a .wpcf7-form-control-wrap — spacing only on phone + acceptance */
#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form-control-wrap:has(.wpcf7-acceptance),
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form-control-wrap:has(.wpcf7-acceptance) {
	margin: 10px 0 0;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit),
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) .wpcf7-spinner,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) .wpcf7-spinner {
	order: 2;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) .wpcf7-submit,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-form p:has(.wpcf7-submit) .wpcf7-submit {
	order: 1;
}

/*
 * Hidden spinner still reserves a box (visibility:hidden). Remove from flow
 * until CF7 sets form.submitting.
 */
#primary section.hero .capture-form .musorexpress-cf7-wrap form.wpcf7-form:not(.submitting) .wpcf7-spinner,
section.hero .capture-form .musorexpress-cf7-wrap form.wpcf7-form:not(.submitting) .wpcf7-spinner {
	display: none !important;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap form.wpcf7-form.submitting .wpcf7-spinner,
section.hero .capture-form .musorexpress-cf7-wrap form.wpcf7-form.submitting .wpcf7-spinner {
	display: inline-block !important;
	visibility: visible;
	align-self: center;
	margin: 10px 0 0;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7 > .wpcf7-spinner,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7 > .wpcf7-spinner {
	display: none !important;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7:has(form.wpcf7-form.submitting) > .wpcf7-spinner,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7:has(form.wpcf7-form.submitting) > .wpcf7-spinner {
	display: inline-block !important;
	visibility: visible;
	margin: 10px auto 0;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap input.form-input,
#primary section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-text,
#primary section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-form-control.wpcf7-tel,
#primary section.hero .capture-form .musorexpress-cf7-wrap input[type="tel"],
section.hero .capture-form .musorexpress-cf7-wrap input.form-input,
section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-text,
section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-form-control.wpcf7-tel,
section.hero .capture-form .musorexpress-cf7-wrap input[type="tel"] {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	border: 2px solid var(--border, #e0dfda);
	border-radius: 10px;
	padding: 14px 16px;
	font-size: 16px;
	line-height: 1.25;
	outline: none;
	font-family: "Onest", sans-serif;
	margin: 0;
	transition: border-color 0.2s;
	background: var(--white, #fff);
	color: var(--text, #1a1a1a);
	-webkit-appearance: none;
	appearance: none;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap input.form-input:focus,
#primary section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-form-control.wpcf7-tel:focus,
#primary section.hero .capture-form .musorexpress-cf7-wrap input[type="tel"]:focus,
section.hero .capture-form .musorexpress-cf7-wrap input.form-input:focus,
section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-form-control.wpcf7-tel:focus,
section.hero .capture-form .musorexpress-cf7-wrap input[type="tel"]:focus {
	border-color: var(--orange, #f4500a);
}

/* Same vertical rhythm as static <button class="btn-main" style="width:100%; padding:14px"> */
#primary section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-submit,
#primary section.hero .capture-form .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit,
section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-submit,
section.hero .capture-form .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	display: block;
	padding: 14px 16px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	font-family: "Onest", sans-serif;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	background: var(--orange, #f4500a);
	color: var(--white, #fff);
	margin: 0;
	transition: background 0.2s, transform 0.1s;
	-webkit-appearance: none;
	appearance: none;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-submit:hover,
#primary section.hero .capture-form .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit:hover,
section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-submit:hover,
section.hero .capture-form .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit:hover {
	background: var(--orange-dark, #c93e05);
}

#primary section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-submit:active,
#primary section.hero .capture-form .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit:active,
section.hero .capture-form .musorexpress-cf7-wrap input.wpcf7-submit:active,
section.hero .capture-form .musorexpress-cf7-wrap input[type="submit"].wpcf7-submit:active {
	transform: scale(0.98);
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item {
	display: block;
	margin: 0;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label::before,
#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label::after,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label::before,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label::after {
	content: none;
}

/* Same geometry as static .form-agree + .form-agree-box (16px cell, tick centered in cell) */
#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label {
	display: grid;
	grid-template-columns: 16px 1fr;
	column-gap: 8px;
	align-items: start;
	font-size: 11px;
	line-height: 1.35;
	color: var(--muted, #6b6b6b);
	margin: 0;
	padding: 0;
	cursor: pointer;
	position: relative;
	min-height: 18px;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label {
	grid-column: 2;
	grid-row: 1;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance input[type="checkbox"],
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 1px;
	width: 16px;
	height: 16px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label::before,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label::before {
	content: "";
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	border-radius: 4px;
	border: 2px solid var(--border, #e0dfda);
	background: var(--white, #fff);
	box-sizing: border-box;
	transition: border-color 0.2s, background 0.2s;
	pointer-events: none;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label:has(input:checked)::before,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label:has(input:checked)::before {
	background: var(--orange, #f4500a);
	border-color: var(--orange, #f4500a);
}

/* Tick centered in 16x16 box (box top at 1px => vertical center 9px) */
#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label:has(input:checked)::after,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label:has(input:checked)::after {
	content: "";
	position: absolute;
	left: 8px;
	top: 9px;
	width: 4px;
	height: 7px;
	margin: 0;
	padding: 0;
	border: 2px solid #fff;
	border-top: none;
	border-left: none;
	transform: translate(-50%, -50%) rotate(45deg);
	transform-origin: center center;
	pointer-events: none;
	box-sizing: border-box;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label a,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label a {
	color: inherit;
	text-decoration: underline;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label a:hover,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance .wpcf7-list-item-label a:hover {
	color: var(--orange, #f4500a);
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label:focus-within,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7-acceptance label:focus-within {
	outline: 2px solid var(--orange, #f4500a);
	outline-offset: 2px;
	border-radius: 4px;
}

#primary section.hero .capture-form .musorexpress-cf7-wrap .wpcf7 form .wpcf7-response-output,
section.hero .capture-form .musorexpress-cf7-wrap .wpcf7 form .wpcf7-response-output {
	margin: 10px 0 0;
	padding: 0;
	font-size: 12px;
	line-height: 1.35;
}

.musorexpress-cf7-wrap .wpcf7-response-output {
	margin: 12px 0 0;
}

/* Primary header: "Наши работы" highlight (loaded on every page via site-header) */
#site-header .nav-link.nav-works {
	position: relative;
	background: linear-gradient(135deg, rgba(244, 80, 10, 0.25), rgba(244, 80, 10, 0.1));
	border: 1px solid rgba(244, 80, 10, 0.4);
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.95) !important;
	font-weight: 600 !important;
	overflow: hidden;
	transition: all 0.2s !important;
}

#site-header .nav-link.nav-works::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
	transform: translateX(-100%);
	transition: transform 0.6s;
}

#site-header .nav-link.nav-works:hover {
	background: linear-gradient(135deg, rgba(244, 80, 10, 0.5), rgba(244, 80, 10, 0.3)) !important;
	border-color: var(--orange, #f4500a) !important;
	color: var(--white, #fff) !important;
	box-shadow: 0 0 16px rgba(244, 80, 10, 0.35);
}

#site-header .nav-link.nav-works:hover::before {
	transform: translateX(100%);
}

#site-header .nav-works-dot {
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--orange, #f4500a);
	margin-right: 5px;
	margin-bottom: 1px;
	vertical-align: middle;
	box-shadow: 0 0 0 0 rgba(244, 80, 10, 0.6);
	animation: musorexpress-pulse-dot 1.8s ease-in-out infinite;
}

@keyframes musorexpress-pulse-dot {
	0%,
	100% {
		box-shadow: 0 0 0 0 rgba(244, 80, 10, 0.6);
		transform: scale(1);
	}
	50% {
		box-shadow: 0 0 0 5px rgba(244, 80, 10, 0);
		transform: scale(1.15);
	}
}

.mobile-menu .mob-link.mob-link-works {
	background: rgba(244, 80, 10, 0.12);
	border: 1px solid rgba(244, 80, 10, 0.25);
	color: var(--orange, #f4500a) !important;
}

.mobile-menu .mob-link.mob-link-works:hover {
	background: rgba(244, 80, 10, 0.2) !important;
}
