/* Emitide — wholesale page and trade application form.
   Layers on top of assets/v2.css and reuses its tokens where they exist,
   with literal fallbacks so nothing collapses if a token is renamed.
   No text-transform:uppercase anywhere near a compound name. */

/* The theme gives page content `p { margin-bottom: 0; max-width: 586px }`, which
   turns consecutive paragraphs into a run-on and squashes any full-width form
   field built on a <p>. Restore the rhythm here only. :where() keeps this at
   zero specificity so every rule below still wins on the elements it owns. */
.emi-ws-body :where(.emi-pagebody p) { margin-bottom: 1.05em; }
.emi-ws-body :where(.emi-pagebody h2) { margin-bottom: 22px; }

.emi-ws-lede p { max-width: 68ch; }

/* Where-we-are-today block. Deleted from the page the week the first
   certificate publishes — see the note in the page copy. */
.emi-ws-state {
	border-left: 3px solid var(--accent, #4E7A5F);
	background: var(--surface-2, #E9ECE3);
	border-radius: 0 12px 12px 0;
	padding: 22px 26px;
	margin: 0 0 8px;
}
.emi-ws-state p { max-width: 68ch; margin: 0 0 12px; }
.emi-ws-state p:last-child { margin-bottom: 0; }

/* Two-column "who this is for / who it is not" */
.emi-ws-two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	align-items: start;
}
.emi-ws-card {
	background: var(--surface, #FBFCF9);
	border: 1px solid var(--border, rgba(30, 38, 33, .12));
	border-radius: 14px;
	padding: 26px 28px;
}
.emi-ws-card h3 { margin: 0 0 14px; font-size: 19px; letter-spacing: -.3px; }
.emi-ws-card ul { margin: 0; padding-left: 18px; }
.emi-ws-card li { margin-bottom: 10px; line-height: 1.55; }
.emi-ws-card--no { background: transparent; }
.emi-ws-card--no li::marker { color: var(--muted, #67716A); }
.emi-ws-after { margin-top: 18px; max-width: 68ch; color: var(--muted, #67716A); }

/* Changes / does not change */
.emi-ws-defs { margin: 0; }
.emi-ws-defs dt {
	font-weight: 600;
	margin-top: 20px;
	letter-spacing: -.2px;
}
.emi-ws-defs dt:first-child { margin-top: 0; }
.emi-ws-defs dd { margin: 6px 0 0; max-width: 68ch; line-height: 1.6; }

/* Numbered process */
.emi-ws-steps { counter-reset: ws; list-style: none; margin: 0; padding: 0; }
.emi-ws-steps li {
	counter-increment: ws;
	position: relative;
	padding-left: 46px;
	margin-bottom: 20px;
	max-width: 68ch;
	line-height: 1.6;
}
.emi-ws-steps li::before {
	content: counter(ws);
	position: absolute;
	left: 0;
	top: -1px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--accent, #4E7A5F);
	color: var(--on-accent, #fff);
	font-family: var(--mono, ui-monospace, "IBM Plex Mono", monospace);
	font-size: 13px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ------------------------------------------------------------------ *
 * The application form
 * ------------------------------------------------------------------ */
.emi-ws-form { max-width: 780px; margin-top: 4px; }

.emi-ws-fs {
	border: 1px solid var(--border, rgba(30, 38, 33, .12));
	border-radius: 14px;
	padding: 24px 26px 10px;
	margin: 0 0 22px;
	background: var(--surface, #FBFCF9);
}
.emi-ws-fs legend {
	font-family: var(--mono, ui-monospace, "IBM Plex Mono", monospace);
	font-size: 11px;
	letter-spacing: .14em;
	color: var(--muted, #67716A);
	padding: 0 10px;
	margin-left: -4px;
}

.emi-ws-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 22px;
}
.emi-ws-f {
	margin: 0 0 18px;
	max-width: none; /* theme caps page paragraphs at 586px */
	display: flex;
	flex-direction: column;
}
.emi-ws-f--wide { grid-column: 1 / -1; }

.emi-ws-f label {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 7px;
	line-height: 1.4;
}
.emi-ws-f .req { color: var(--accent, #4E7A5F); }

.emi-ws-f input[type="text"],
.emi-ws-f input[type="email"],
.emi-ws-f input[type="url"],
.emi-ws-f select,
.emi-ws-f textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 15px;
	color: var(--fg, #1E2621);
	background: var(--bg, #F4F5F1);
	border: 1px solid var(--border, rgba(30, 38, 33, .18));
	border-radius: 9px;
	padding: 11px 13px;
	transition: border-color .16s, box-shadow .16s;
}
.emi-ws-f textarea { resize: vertical; line-height: 1.55; }
.emi-ws-f input:focus,
.emi-ws-f select:focus,
.emi-ws-f textarea:focus {
	outline: none;
	border-color: var(--accent, #4E7A5F);
	box-shadow: 0 0 0 3px rgba(78, 122, 95, .16);
}

.emi-ws-sub,
.emi-ws-hint {
	font-size: 13px;
	line-height: 1.5;
	color: var(--muted, #67716A);
	margin-top: 7px;
}
.emi-ws-hint { max-width: 68ch; margin: 4px 0 18px; }

/* Declarations — never pre-ticked, and the label is the hit area. */
.emi-ws-fs--dec { background: var(--surface-2, #E9ECE3); }
.emi-ws-check {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0 0 16px;
	max-width: 68ch;
}
.emi-ws-check input {
	margin: 3px 0 0;
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	accent-color: var(--accent, #4E7A5F);
}
.emi-ws-check label { font-size: 14.5px; line-height: 1.55; }

.emi-ws-err {
	background: #FBEDEC;
	border: 1px solid #E0B4AE;
	border-radius: 10px;
	padding: 13px 16px;
	margin: 0 0 22px;
	font-size: 14.5px;
	color: #7A2E24;
}

.emi-ws-submit { margin: 4px 0 12px; }
.emi-ws-fine {
	font-size: 13px;
	line-height: 1.55;
	color: var(--muted, #67716A);
	max-width: 68ch;
	margin: 0;
}

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.emi-ws-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.emi-ws-done {
	border: 1px solid var(--border, rgba(30, 38, 33, .12));
	border-left: 3px solid var(--accent, #4E7A5F);
	border-radius: 0 14px 14px 0;
	background: var(--surface, #FBFCF9);
	padding: 30px 32px;
	max-width: 780px;
}
.emi-ws-done h2 { margin: 6px 0 12px; }
.emi-ws-done p { max-width: 64ch; }

@media (max-width: 720px) {
	.emi-ws-two,
	.emi-ws-grid { grid-template-columns: 1fr; }
	.emi-ws-fs { padding: 20px 18px 6px; }
	.emi-ws-card { padding: 22px 20px; }
	.emi-ws-done { padding: 24px 20px; }
}
