.ecm-marketplace,
.ecm-dashboard,
.ecm-detail,
.ecm-checkout {
	--ecm-ink: #202a27;
	--ecm-muted: #66736d;
	--ecm-line: #d8e0dc;
	--ecm-paper: #fbfcfa;
	--ecm-accent: #176b58;
	--ecm-highlight: #f0b557;
	color: var(--ecm-ink);
	font: inherit;
	margin-inline: auto;
	max-width: 1200px;
	padding: 1.5rem 1rem 3rem;
}
.ecm-marketplace h1,
.ecm-detail h1,
.ecm-dashboard h2 { font-size: clamp(1.65rem, 1.8rem, 2rem); line-height: 1.2; margin: 0 0 1.25rem; }
.ecm-form,
.ecm-filters { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ecm-form { border-top: 1px solid var(--ecm-line); margin: 1.5rem 0; padding-top: 1.5rem; }
.ecm-form h2,
.ecm-form h3,
.ecm-form p,
.ecm-form button,
.ecm-form .ecm-image-row,
.ecm-form .ecm-privacy { grid-column: 1 / -1; }
.ecm-form label,
.ecm-filters label { color: var(--ecm-muted); display: grid; font-size: .9rem; gap: .4rem; }
.ecm-form input,
.ecm-form select,
.ecm-form textarea,
.ecm-filters input,
.ecm-filters select { background: #fff; border: 1px solid var(--ecm-line); border-radius: 3px; box-sizing: border-box; color: var(--ecm-ink); font: inherit; min-height: 2.75rem; padding: .65rem .75rem; width: 100%; }
.ecm-form textarea { min-height: 6rem; }
.ecm-form button,
.ecm-filters button,
.ecm-button,
.ecm-payment-start button,
.ecm-checkout button { background: var(--ecm-accent); border: 0; border-radius: 3px; color: #fff; cursor: pointer; display: inline-block; font: inherit; font-weight: 650; padding: .8rem 1.1rem; text-decoration: none; width: fit-content; }
.ecm-form button:hover,
.ecm-filters button:hover,
.ecm-button:hover,
.ecm-checkout button:hover { background: #105443; color: #fff; }
.ecm-filters { align-items: end; background: var(--ecm-paper); border-block: 1px solid var(--ecm-line); margin-bottom: 1.5rem; padding: 1rem 0; }
.ecm-filters a { align-self: center; color: var(--ecm-accent); }
.ecm-property-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ecm-property-card { border: 1px solid var(--ecm-line); border-radius: 4px; min-width: 0; overflow: hidden; }
.ecm-property-card__image { aspect-ratio: 16 / 10; background: #e8eeeb; display: block; overflow: hidden; }
.ecm-property-card__image img { height: 100%; object-fit: cover; width: 100%; }
.ecm-property-card__body { padding: 1rem; }
.ecm-property-card h2 { font-size: 1.1rem; line-height: 1.35; margin: .4rem 0; }
.ecm-property-card a { color: inherit; text-decoration: none; }
.ecm-eyebrow { color: var(--ecm-accent); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.ecm-price { color: var(--ecm-ink); font-size: 1.25rem; font-weight: 750; }
.ecm-gallery { display: grid; gap: .5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.5rem 0; }
.ecm-gallery img { aspect-ratio: 4 / 3; border-radius: 3px; height: 100%; object-fit: cover; width: 100%; }
.ecm-specs { border-block: 1px solid var(--ecm-line); display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 1.25rem 0; }
.ecm-specs dt { color: var(--ecm-muted); font-size: .82rem; }
.ecm-specs dd { font-weight: 650; margin: .2rem 0 0; }
.ecm-description { line-height: 1.75; max-width: 75ch; }
.ecm-listing { border-top: 1px solid var(--ecm-line); padding: 1rem 0; }
.ecm-listing h4 { display: inline-block; margin: 0 1rem .5rem 0; }
.ecm-status { background: #edf2ef; border-radius: 2px; display: inline-block; font-size: .8rem; padding: .3rem .55rem; }
.ecm-status--declined,
.ecm-notice--error { background: #fff1eb; color: #963d20; }
.ecm-status--approved,
.ecm-notice--success { background: #eaf5ef; color: #176b58; }
.ecm-privacy,
.ecm-notice { color: var(--ecm-muted); font-size: .9rem; padding: .8rem; }
.ecm-notice { border-left: 3px solid var(--ecm-highlight); margin: 1rem 0; }
.ecm-image-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.ecm-image-row img { height: 80px; object-fit: cover; width: 80px; }
.ecm-gallery-edit { border: 1px solid var(--ecm-line); display: grid; gap: .6rem; grid-column: 1 / -1; padding: .8rem; }
.ecm-gallery-edit__item { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; }
.ecm-gallery-edit__item img { height: 64px; object-fit: cover; width: 80px; }
.ecm-gallery-edit__item label { align-items: center; display: flex; gap: .35rem; }
.ecm-gallery-edit__item input[type="number"] { min-height: 2rem; width: 5rem; }
.ecm-pagination { display: flex; gap: .5rem; margin-top: 1.5rem; }
.ecm-pagination a { border: 1px solid var(--ecm-line); padding: .45rem .7rem; text-decoration: none; }
.ecm-pagination [aria-current="page"] { background: var(--ecm-accent); color: #fff; }
[hidden] { display: none !important; }

/* Marketplace login page — matches the Euphoria Capital theme (navy, gold, Playfair/Manrope). */
#ecm-account-access {
	--ecm-ink: #1a1a1a;
	--ecm-deep: #101a25;
	--ecm-gold: #b8860b;
	--ecm-gold-bright: #d5aa3c;
	--ecm-gold-text: #8d6505;
	--ecm-muted: #5d636b;
	--ecm-line: rgba(26, 26, 26, .14);
	--ecm-paper: #fff;
	--ecm-accent: var(--ecm-deep);
	--ecm-highlight: var(--ecm-gold);
	color: var(--ecm-ink);
	display: grid;
	gap: 3.5rem;
	grid-template-columns: minmax(0, 1fr);
	margin-top: 0;
}
#ecm-account-access * { box-sizing: border-box; }

/* Sign-in card */
#ecm-account-access .ecm-login-card {
	background: var(--ecm-paper);
	border: 1px solid var(--ecm-line);
	box-shadow: 0 40px 70px -50px rgba(16, 26, 37, .45);
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
}
#ecm-account-access .ecm-login-card__intro {
	background: var(--ecm-deep);
	background-image: radial-gradient(circle at 100% 0, rgba(213, 170, 60, .22), transparent 55%);
	color: rgba(243, 239, 231, .82);
	display: flex;
	flex-direction: column;
	font-size: .95rem;
	padding: 2.75rem 2.25rem;
}
#ecm-account-access .ecm-login-card__eyebrow {
	color: var(--ecm-gold-bright);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .16em;
	margin: 0 0 1rem;
	text-transform: uppercase;
}
/* !important only to beat the theme's `.ecm-account-access h2 { font-size/margin !important }` underline heading style. */
#ecm-account-access .ecm-login-card__intro h2 { border: 0; color: #fff; font-size: clamp(2rem, 4vw, 2.5rem) !important; line-height: 1.1; margin: 0 0 1rem !important; padding: 0; }
#ecm-account-access .ecm-login-card__intro p { margin: 0 0 1.75rem; }
#ecm-account-access .ecm-login-card__intro ul { border-top: 1px solid rgba(243, 239, 231, .16); display: grid; gap: .8rem; list-style: none; margin: auto 0 0; padding: 1.5rem 0 0; }
#ecm-account-access .ecm-login-card__intro li { padding-left: 1.75rem; position: relative; }
#ecm-account-access .ecm-login-card__intro li::before {
	border: 1px solid var(--ecm-gold-bright);
	border-radius: 50%;
	color: var(--ecm-gold-bright);
	content: "\2713";
	font-size: .65rem;
	height: 1.1rem;
	left: 0;
	line-height: 1.05rem;
	position: absolute;
	text-align: center;
	top: .2rem;
	width: 1.1rem;
}
#ecm-account-access .ecm-login-section { padding: 2.75rem 2.5rem; }
#ecm-account-access .ecm-login-section h3 { font-family: var(--ec-display, Georgia, serif); font-size: 1.6rem; font-weight: 400; line-height: 1.2; margin: 0 0 1.75rem; }
#ecm-account-access .ecm-login-section form { margin: 0; }
#ecm-account-access .ecm-login-section p { margin: 0 0 1.1rem; }

/* Labels and inputs (WordPress login form and OTP phone form) */
#ecm-account-access .ecm-login-section label {
	color: var(--ecm-muted);
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	margin-bottom: .45rem;
	text-transform: uppercase;
}
#ecm-account-access .ecm-login-section .required { color: var(--ecm-gold); }
#ecm-account-access .ecm-login-section input[type="text"],
#ecm-account-access .ecm-login-section input[type="password"],
#ecm-account-access .ecm-login-section input[type="tel"],
#ecm-account-access .ecm-form input,
#ecm-account-access .ecm-form select,
#ecm-account-access .ecm-form textarea {
	background: #fff;
	border: 1px solid var(--ecm-line);
	border-radius: 0;
	box-shadow: none;
	color: var(--ecm-ink);
	font: inherit;
	font-size: 1rem;
	min-height: 3rem;
	padding: .7rem .9rem;
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
}
#ecm-account-access .ecm-login-section input:focus,
#ecm-account-access .ecm-form input:focus,
#ecm-account-access .ecm-form select:focus,
#ecm-account-access .ecm-form textarea:focus {
	border-color: var(--ecm-gold);
	box-shadow: 0 0 0 3px rgba(184, 134, 11, .16);
	outline: 0;
}
#ecm-account-access .ecm-login-section .login-remember label {
	align-items: center;
	color: var(--ecm-muted);
	cursor: pointer;
	display: inline-flex;
	font-size: .9rem;
	font-weight: 500;
	gap: .55rem;
	letter-spacing: 0;
	margin: 0;
	text-transform: none;
}
#ecm-account-access .ecm-login-section .login-remember input { accent-color: var(--ecm-gold); height: 1rem; margin: 0; width: 1rem; }
#ecm-account-access .ecm-login-section .login-submit { margin-bottom: 0; }

/* Buttons: gold primary, navy outline secondary */
#ecm-account-access .ecm-login-section #wp-submit,
#ecm-account-access .ecm-login-section button.button.xoo-ml-login-otp-btn,
#ecm-account-access .ecm-login-section button.button.xoo-ml-open-lwo-btn,
#ecm-account-access .ecm-login-section button.button.xoo-ml-low-back,
#ecm-account-access .ecm-form button {
	align-items: center;
	background: var(--ecm-gold);
	border: 1px solid var(--ecm-gold);
	border-radius: 0;
	box-shadow: none;
	color: #191919;
	cursor: pointer;
	display: flex;
	font: inherit;
	font-size: .75rem;
	font-weight: 800;
	gap: .6rem;
	justify-content: center;
	letter-spacing: .12em;
	line-height: 1.2;
	margin: 0;
	min-height: 3.1rem;
	padding: .9rem 1.25rem;
	text-shadow: none;
	text-transform: uppercase;
	transition: background-color .25s, border-color .25s, color .25s, transform .25s;
	width: 100%;
}
#ecm-account-access .ecm-login-section #wp-submit:hover,
#ecm-account-access .ecm-login-section button.button.xoo-ml-login-otp-btn:hover,
#ecm-account-access .ecm-form button:hover {
	background: var(--ecm-gold-bright);
	border-color: var(--ecm-gold-bright);
	color: #191919;
	transform: translateY(-2px);
}
#ecm-account-access .ecm-login-section button.button.xoo-ml-open-lwo-btn,
#ecm-account-access .ecm-login-section button.button.xoo-ml-low-back {
	background: transparent;
	border-color: var(--ecm-deep);
	color: var(--ecm-deep);
}
#ecm-account-access .ecm-login-section button.button.xoo-ml-open-lwo-btn:hover,
#ecm-account-access .ecm-login-section button.button.xoo-ml-low-back:hover {
	background: var(--ecm-deep);
	color: #fff;
	transform: translateY(-2px);
}
#ecm-account-access .ecm-login-section button.button.xoo-ml-open-lwo-btn::before {
	content: "\f470"; /* dashicons-smartphone */
	font: normal 1.15rem/1 dashicons;
	letter-spacing: 0;
}
#ecm-account-access .ecm-login-section button.button.xoo-ml-low-back::before {
	content: "\f466"; /* dashicons-email */
	font: normal 1.1rem/1 dashicons;
	letter-spacing: 0;
}
#ecm-account-access .ecm-login-section #wp-submit:focus-visible,
#ecm-account-access .ecm-login-section button:focus-visible,
#ecm-account-access .ecm-form button:focus-visible,
#ecm-account-access .ecm-registration-option summary:focus-visible { outline: 2px solid var(--ecm-gold); outline-offset: 3px; }

/* "Or" divider between sign-in methods */
#ecm-account-access .ecm-login-section span.xoo-ml-or {
	align-items: center;
	border: 0;
	border-radius: 0;
	color: var(--ecm-muted);
	display: flex;
	font-size: .7rem;
	font-weight: 700;
	gap: 1rem;
	height: auto;
	letter-spacing: .16em;
	line-height: 1;
	margin: 1.5rem 0;
	text-transform: uppercase;
	width: auto;
}
#ecm-account-access .ecm-login-section span.xoo-ml-or::before,
#ecm-account-access .ecm-login-section span.xoo-ml-or::after { background: var(--ecm-line); content: ""; flex: 1; height: 1px; }

/* OTP phone form (inserted by the OTP plugin's script) */
#ecm-account-access form.xoo-lwo-form { margin: 0; }
#ecm-account-access .xoo-ml-phinput-cont { margin-bottom: 1.1rem; }
#ecm-account-access .xoo-ml-has-cc { gap: .6rem; }
#ecm-account-access .xoo-ml-phone-cc + .select2 .select2-selection.select2-selection--single { align-items: center; border: 1px solid var(--ecm-line); border-radius: 0; display: flex; height: 3rem; }
#ecm-account-access .xoo-ml-inline-otp-cont { margin: 0 0 1.1rem; }
#ecm-account-access .xoo-ml-ioc-input input.xoo-ml-otp-input { font-size: 1.15rem; letter-spacing: .35em; padding-right: 6rem; }
#ecm-account-access span.xoo-ml-otp-submit-btn,
#ecm-account-access span.xoo-ml-reg-phone-change { color: var(--ecm-gold-text); font-size: .72rem; letter-spacing: .1em; right: 1rem; }
#ecm-account-access .xoo-ml-inline-otp-cont span.xoo-ml-otp-no-txt { color: var(--ecm-muted); font-weight: 500; margin-top: .5rem; }
#ecm-account-access a.xoo-ml-otp-resend-link { color: var(--ecm-gold-text); font-size: .85rem; font-weight: 600; }
#ecm-account-access .xoo-ml-otp-resend-timer { color: var(--ecm-muted); font-size: .85rem; margin-left: .35rem; }
#ecm-account-access .xoo-ml-notice-error,
#ecm-account-access .xoo-ml-notice-success { border: 0; border-left: 3px solid; border-radius: 0; font-size: .9rem; margin: .9rem 0; padding: .75rem 1rem; }
#ecm-account-access .xoo-ml-notice-error { background: #fbefeb; border-color: #b4472a; color: #8a3018; }
#ecm-account-access .xoo-ml-notice-success { background: #f4f0e3; border-color: var(--ecm-gold); color: #5c4306; }
#ecm-account-access .xoo-ml-recaptcha { height: 0; }

/* Registration options */
#ecm-account-access .ecm-registration-options h2 { border: 0; margin: 0 0 .35rem !important; padding: 0; }
#ecm-account-access .ecm-registration-options__lede { color: var(--ecm-muted); margin: 0 0 1.5rem; }
#ecm-account-access .ecm-registration-option {
	background: var(--ecm-paper);
	border: 1px solid var(--ecm-line);
	margin-bottom: 1rem;
	transition: border-color .25s, box-shadow .25s;
}
#ecm-account-access .ecm-registration-option:hover,
#ecm-account-access .ecm-registration-option[open] { border-color: rgba(184, 134, 11, .55); }
#ecm-account-access .ecm-registration-option[open] { box-shadow: 0 30px 60px -45px rgba(16, 26, 37, .4); }
#ecm-account-access .ecm-registration-option summary {
	color: var(--ecm-ink);
	cursor: pointer;
	display: grid;
	font: 400 1rem/1.5 var(--ec-body, inherit);
	gap: .2rem;
	letter-spacing: 0;
	list-style: none;
	padding: 1.4rem 4rem 1.4rem 1.6rem;
	position: relative;
}
#ecm-account-access .ecm-registration-option summary::-webkit-details-marker { display: none; }
#ecm-account-access .ecm-registration-option summary::after {
	border: 1px solid var(--ecm-line);
	border-radius: 50%;
	color: var(--ecm-gold-text);
	content: "+";
	font-size: 1.25rem;
	height: 2.2rem;
	line-height: 2.05rem;
	position: absolute;
	right: 1.4rem;
	text-align: center;
	top: 50%;
	transform: translateY(-50%);
	transition: transform .25s, background-color .25s, color .25s;
	width: 2.2rem;
}
#ecm-account-access .ecm-registration-option[open] summary::after { content: "+"; background: var(--ecm-deep); border-color: var(--ecm-deep); color: #fff; transform: translateY(-50%) rotate(45deg); }
#ecm-account-access .ecm-registration-option__title { font-family: var(--ec-display, Georgia, serif); font-size: 1.35rem; line-height: 1.25; }
#ecm-account-access .ecm-registration-option__desc { color: var(--ecm-muted); font-size: .92rem; }
#ecm-account-access .ecm-registration-option .ecm-form { border-top: 1px solid var(--ecm-line); gap: 1.1rem 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 1.6rem; padding: 1.6rem 0; }
#ecm-account-access .ecm-form label { color: var(--ecm-muted); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
#ecm-account-access .ecm-form .ecm-privacy { background: var(--ecm-paper); border-left: 3px solid var(--ecm-gold); color: var(--ecm-muted); font-size: .88rem; margin: 0; padding: .4rem 0 .4rem 1rem; }
#ecm-account-access .ecm-form button { width: 100%; }
#ecm-account-access .ecm-login-link { display: none; }

@media (max-width: 760px) {
	#ecm-account-access { gap: 2.5rem; }
	#ecm-account-access .ecm-login-card { grid-template-columns: minmax(0, 1fr); }
	#ecm-account-access .ecm-login-card__intro { padding: 2rem 1.5rem; }
	#ecm-account-access .ecm-login-card__intro ul { margin-top: 0; }
	#ecm-account-access .ecm-login-section { padding: 2rem 1.5rem; }
	#ecm-account-access .ecm-registration-option summary { padding: 1.2rem 3.75rem 1.2rem 1.25rem; }
	#ecm-account-access .ecm-registration-option summary::after { right: 1.1rem; }
	#ecm-account-access .ecm-registration-option .ecm-form { grid-template-columns: minmax(0, 1fr); margin: 0 1.25rem; }
}
/* Seller property submission — navy / gold Euphoria Capital styling. */
.ecm-submit {
	--ecm-ink: #1a1a1a;
	--ecm-deep: #101a25;
	--ecm-gold: #b8860b;
	--ecm-gold-bright: #d5aa3c;
	--ecm-gold-text: #8d6505;
	--ecm-gold-soft: #faf5e8;
	--ecm-muted: #5d636b;
	--ecm-line: rgba(26, 26, 26, .12);
	--ecm-bg: #f6f4ef;
	color: var(--ecm-ink);
	margin-inline: auto;
	max-width: 1040px;
	padding: 1.5rem 1rem 4rem;
}
.ecm-submit * { box-sizing: border-box; }

/* Hero */
.ecm-submit__hero {
	background: var(--ecm-deep);
	background-image: radial-gradient(circle at 100% 0, rgba(213, 170, 60, .28), transparent 50%), radial-gradient(circle at 0 100%, rgba(213, 170, 60, .1), transparent 45%);
	color: rgba(243, 239, 231, .8);
	margin-bottom: 1.75rem;
	overflow: hidden;
	padding: 2.25rem 2.5rem 2rem;
	position: relative;
}
.ecm-submit__back { color: rgba(243, 239, 231, .7); display: inline-block; font-size: .85rem; margin-bottom: 1.5rem; text-decoration: none; transition: color .2s; }
.ecm-submit__back:hover { color: var(--ecm-gold-bright); }
.ecm-submit__eyebrow { color: var(--ecm-gold-bright); font-size: .7rem; font-weight: 800; letter-spacing: .16em; margin: 0 0 .75rem; text-transform: uppercase; }
.ecm-submit__hero h1 { border: 0; color: #fff; font-family: var(--ec-display, Georgia, serif); font-size: clamp(1.9rem, 4vw, 2.6rem) !important; font-weight: 400; line-height: 1.1; margin: 0 0 .75rem !important; padding: 0; }
.ecm-submit__lede { font-size: .98rem; margin: 0 0 1.75rem; max-width: 56ch; }

/* Progress steps */
.ecm-steps { border-top: 1px solid rgba(243, 239, 231, .14); counter-reset: none; display: flex; flex-wrap: wrap; gap: .75rem 2rem; list-style: none; margin: 0; padding: 1.4rem 0 0; }
.ecm-steps__item { align-items: center; color: rgba(243, 239, 231, .55); display: flex; font-size: .85rem; font-weight: 600; gap: .6rem; margin: 0; }
.ecm-steps__num { align-items: center; border: 1px solid rgba(243, 239, 231, .3); border-radius: 50%; display: inline-flex; font-size: .78rem; height: 1.9rem; justify-content: center; width: 1.9rem; }
.ecm-steps__item.is-current { color: #fff; }
.ecm-steps__item.is-current .ecm-steps__num { background: var(--ecm-gold); border-color: var(--ecm-gold); color: #191919; box-shadow: 0 0 0 4px rgba(213, 170, 60, .2); }
.ecm-steps__item.is-done { color: var(--ecm-gold-bright); }
.ecm-steps__item.is-done .ecm-steps__num { border-color: var(--ecm-gold-bright); color: var(--ecm-gold-bright); }

/* Section cards */
.ecm-property-form { display: grid; gap: 1.25rem; margin: 0; }
.ecm-submit .ecm-card {
	background: #fff;
	border: 1px solid var(--ecm-line);
	box-shadow: 0 24px 50px -40px rgba(16, 26, 37, .35);
	margin: 0;
	min-width: 0;
	padding: 1.75rem 2rem 2rem;
	transition: border-color .25s, box-shadow .25s;
}
.ecm-submit .ecm-card:focus-within { border-color: rgba(184, 134, 11, .45); box-shadow: 0 30px 60px -40px rgba(16, 26, 37, .45); }
.ecm-card__head { align-items: center; display: flex; float: left; gap: 1rem; margin: 0 0 1.5rem; padding: 0; width: 100%; }
.ecm-card__head + * { clear: both; }
.ecm-card__num { align-items: center; background: var(--ecm-gold-soft); border: 1px solid rgba(184, 134, 11, .3); color: var(--ecm-gold-text); display: inline-flex; flex: none; font-size: .8rem; font-weight: 800; height: 2.6rem; justify-content: center; letter-spacing: .05em; width: 2.6rem; }
.ecm-card__head strong { color: var(--ecm-ink); display: block; font-family: var(--ec-display, Georgia, serif); font-size: 1.3rem; font-weight: 400; line-height: 1.25; }
.ecm-card__head small { color: var(--ecm-muted); display: block; font-size: .88rem; margin-top: .15rem; }

/* Field grid */
.ecm-grid { display: grid; gap: 1.1rem 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ecm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ecm-field { display: grid; gap: .45rem; margin: 0; min-width: 0; }
.ecm-field--full { grid-column: 1 / -1; }
.ecm-field__label { color: var(--ecm-muted); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ecm-field__label em { color: var(--ecm-gold); font-style: normal; }
.ecm-submit input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.ecm-submit select,
.ecm-submit textarea {
	background: #fcfbf8;
	border: 1px solid var(--ecm-line);
	border-radius: 0;
	box-shadow: none;
	color: var(--ecm-ink);
	font: inherit;
	font-size: 1rem;
	margin: 0;
	min-height: 3rem;
	padding: .7rem .9rem;
	transition: border-color .2s, box-shadow .2s, background-color .2s;
	width: 100%;
}
.ecm-submit textarea { line-height: 1.6; min-height: 7rem; resize: vertical; }
.ecm-submit input::placeholder,
.ecm-submit textarea::placeholder { color: #a0a5ab; }
.ecm-submit input:hover,
.ecm-submit select:hover,
.ecm-submit textarea:hover { border-color: rgba(26, 26, 26, .25); }
.ecm-submit input:focus,
.ecm-submit select:focus,
.ecm-submit textarea:focus { background: #fff; border-color: var(--ecm-gold); box-shadow: 0 0 0 3px rgba(184, 134, 11, .16); outline: 0; }

/* Price with currency prefix */
.ecm-affix { display: flex; }
.ecm-affix__text { align-items: center; background: var(--ecm-deep); color: var(--ecm-gold-bright); display: flex; font-size: 1.1rem; font-weight: 700; padding: 0 1rem; }
.ecm-submit .ecm-affix input { font-size: 1.15rem !important; font-weight: 700; }

/* Category picker cards */
.ecm-category-picker { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 1.5rem; }
.ecm-category-option { cursor: pointer; display: block; margin: 0; position: relative; }
.ecm-category-option input { opacity: 0; pointer-events: none; position: absolute; }
.ecm-category-option__box { align-items: center; background: #fcfbf8; border: 1px solid var(--ecm-line); display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.4rem 1rem; text-align: center; transition: border-color .2s, background-color .2s, box-shadow .2s, transform .2s; }
.ecm-category-option__box svg { fill: none; height: 2.25rem; margin-bottom: .35rem; stroke: var(--ecm-gold-text); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; width: 2.25rem; }
.ecm-category-option__box strong { font-size: 1rem; }
.ecm-category-option__box small { color: var(--ecm-muted); font-size: .82rem; }
.ecm-category-option:hover .ecm-category-option__box { border-color: rgba(184, 134, 11, .5); transform: translateY(-2px); }
.ecm-category-option input:focus-visible + .ecm-category-option__box { outline: 2px solid var(--ecm-gold); outline-offset: 3px; }
.ecm-category-option input:checked + .ecm-category-option__box { background: var(--ecm-deep); border-color: var(--ecm-deep); box-shadow: 0 20px 40px -24px rgba(16, 26, 37, .6); color: #fff; }
.ecm-category-option input:checked + .ecm-category-option__box svg { stroke: var(--ecm-gold-bright); }
.ecm-category-option input:checked + .ecm-category-option__box small { color: rgba(243, 239, 231, .7); }

/* Photo upload */
.ecm-dropzone { align-items: center; background: var(--ecm-gold-soft); border: 2px dashed rgba(184, 134, 11, .45); cursor: pointer; display: flex; flex-direction: column; gap: .35rem; margin: 0; padding: 2.25rem 1rem; position: relative; text-align: center; transition: background-color .2s, border-color .2s; }
.ecm-dropzone:hover,
.ecm-dropzone.is-dragging,
.ecm-dropzone:focus-within { background: #f5ecd3; border-color: var(--ecm-gold); }
.ecm-dropzone input { cursor: pointer; height: 100%; inset: 0; opacity: 0; position: absolute; width: 100%; }
.ecm-dropzone svg { fill: none; height: 2.5rem; stroke: var(--ecm-gold-text); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; width: 2.5rem; }
.ecm-dropzone strong { color: var(--ecm-ink); font-size: 1rem; }
.ecm-dropzone small { color: var(--ecm-muted); font-size: .85rem; }
.ecm-upload-preview { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); margin-top: .9rem; }
.ecm-upload-preview:empty { display: none; }
.ecm-upload-preview img { aspect-ratio: 4 / 3; border: 1px solid var(--ecm-line); height: auto; object-fit: cover; width: 100%; }

/* Existing gallery */
.ecm-submit .ecm-gallery-edit { border: 0; display: block; margin-top: 1.5rem; padding: 0; }
.ecm-gallery-edit__title { color: var(--ecm-muted); font-size: .72rem; font-weight: 700; letter-spacing: .1em; margin: 0 0 .75rem; text-transform: uppercase; }
.ecm-gallery-edit__grid { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.ecm-submit .ecm-gallery-edit__item { background: #fcfbf8; border: 1px solid var(--ecm-line); display: block; position: relative; }
.ecm-submit .ecm-gallery-edit__item img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
.ecm-gallery-edit__cover { background: var(--ecm-gold); color: #191919; font-size: .65rem; font-weight: 800; left: .5rem; letter-spacing: .1em; padding: .25rem .5rem; position: absolute; text-transform: uppercase; top: .5rem; }
.ecm-gallery-edit__controls { align-items: center; display: flex; gap: .5rem; justify-content: space-between; padding: .55rem .6rem; }
.ecm-gallery-edit__controls label { align-items: center; color: var(--ecm-muted); display: flex; font-size: .8rem; gap: .35rem; margin: 0; }
.ecm-submit .ecm-gallery-edit__controls input[type="number"] { min-height: 2rem; padding: .25rem .4rem; width: 3.5rem; }
.ecm-gallery-edit__remove input { accent-color: #b4472a; }
.ecm-gallery-edit__item:has(.ecm-gallery-edit__remove input:checked) img { filter: grayscale(1); opacity: .4; }

/* Sticky submit bar */
.ecm-submit-bar { align-items: center; background: #fff; border: 1px solid var(--ecm-line); border-top: 3px solid var(--ecm-gold); bottom: 0; box-shadow: 0 -20px 40px -30px rgba(16, 26, 37, .35); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.1rem 1.5rem; position: sticky; z-index: 5; }
.ecm-submit-bar__note { align-items: flex-start; color: var(--ecm-muted); display: flex; font-size: .85rem; gap: .6rem; margin: 0; max-width: 60ch; }
.ecm-submit-bar__note svg { fill: none; flex: none; height: 1.3rem; stroke: var(--ecm-gold-text); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; width: 1.3rem; }
.ecm-submit button[type="submit"] {
	background: var(--ecm-gold);
	border: 1px solid var(--ecm-gold);
	border-radius: 0;
	color: #191919;
	cursor: pointer;
	flex: none;
	font: inherit;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	min-height: 3.1rem;
	padding: .9rem 1.6rem;
	text-transform: uppercase;
	transition: background-color .25s, border-color .25s, transform .25s;
	width: auto;
}
.ecm-submit button[type="submit"]:hover { background: var(--ecm-gold-bright); border-color: var(--ecm-gold-bright); color: #191919; transform: translateY(-2px); }
.ecm-submit button[type="submit"]:focus-visible { outline: 2px solid var(--ecm-gold); outline-offset: 3px; }

/* Listing fee card */
.ecm-submit .ecm-payment-start { align-items: center; background: var(--ecm-gold-soft); border: 1px solid rgba(184, 134, 11, .35); border-left: 4px solid var(--ecm-gold); display: flex; gap: 1.5rem; justify-content: space-between; margin: 0 0 1.25rem; padding: 1.4rem 1.75rem; }
.ecm-payment-start__text p { margin: 0; }
.ecm-payment-start__label { color: var(--ecm-gold-text); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ecm-payment-start__amount { font-family: var(--ec-display, Georgia, serif); font-size: 1.8rem; line-height: 1.3; }
.ecm-payment-start__note { color: var(--ecm-muted); font-size: .85rem; }
.ecm-submit .ecm-payment-start button[type="submit"] { background: var(--ecm-deep); border-color: var(--ecm-deep); color: #fff; }
.ecm-submit .ecm-payment-start button[type="submit"]:hover { background: #1d2c3d; color: #fff; }

.ecm-submit .ecm-notice { background: #fff; border: 1px solid var(--ecm-line); border-left: 4px solid var(--ecm-gold); margin: 0 0 1.25rem; padding: 1rem 1.25rem; }
.ecm-submit .ecm-notice--success { background: #eef6f1; border-left-color: #176b58; color: #145c4b; }
.ecm-submit .ecm-notice--error { background: #fbefeb; border-left-color: #b4472a; color: #8a3018; }

@media (max-width: 760px) {
	.ecm-submit { padding-inline: .75rem; }
	.ecm-submit__hero { padding: 1.75rem 1.5rem; }
	.ecm-submit .ecm-card { padding: 1.4rem 1.25rem 1.5rem; }
	.ecm-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ecm-submit-bar,
	.ecm-submit .ecm-payment-start { align-items: stretch; flex-direction: column; gap: 1rem; }
	.ecm-submit button[type="submit"] { width: 100%; }
}
@media (max-width: 560px) {
	.ecm-grid,
	.ecm-grid--3 { grid-template-columns: minmax(0, 1fr); }
	.ecm-category-picker { gap: .5rem; }
	.ecm-category-option__box { padding: 1rem .4rem; }
	.ecm-category-option__box small { display: none; }
	.ecm-steps { gap: .6rem 1.25rem; }
}

@media (max-width: 760px) {
	.ecm-property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ecm-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.ecm-form,
	.ecm-filters { grid-template-columns: minmax(0, 1fr); }
	.ecm-property-grid { grid-template-columns: minmax(0, 1fr); }
	.ecm-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}