/* City License Manager — public forms (Proposal Builder Pro intake styling) */

.clm-form { --clm-accent: #1d4ed8; max-width: 820px; margin: 0 auto; font-size: 15px; color: #374151; }
.clm-form, .clm-form * { box-sizing: border-box; }

/* Section cards */
.clm-form fieldset {
	background: #fff; border: 1px solid #e7e9ee; border-radius: 14px;
	padding: 26px 28px 12px; margin: 0 0 20px; min-width: 0;
	box-shadow: 0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.07);
}
.clm-form legend {
	float: left; width: 100%; padding: 0; margin: 0 0 18px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .09em;
	text-transform: uppercase; color: #111827;
}
.clm-form fieldset > legend + * { clear: both; }
@media (max-width: 599px) { .clm-form fieldset { padding: 20px 18px 8px; } }

/* Grid */
.clm-grid { clear: both; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 22px; }
/* 4 tracks: fields take half (2), full (all) or quarter (1) — e.g. State + ZIP share a half. */
.clm-grid > * { grid-column: span 2; }
.clm-grid > .clm-quarter { grid-column: span 1; }
.clm-grid > .clm-span2 { grid-column: 1 / -1; }
@media (max-width: 599px) {
	.clm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
	.clm-grid > * { grid-column: 1 / -1; }
	.clm-grid > .clm-quarter { grid-column: span 1; }
}
.clm-span2 { grid-column: 1 / -1; }

/* Fields */
.clm-field { margin: 0 0 16px; }
.clm-field > label { display: block; font-size: 13px; font-weight: 600; color: #374151; letter-spacing: .01em; }
.clm-req { color: #dc2626; }
.clm-hint { display: block; font-weight: 400; font-size: 12.5px; color: #8a919d; margin-top: 4px; }

.clm-form .clm-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.clm-form .clm-field select,
.clm-form .clm-field textarea {
	width: 100%; margin-top: 6px; padding: 11px 14px; background: #fff; color: #111827;
	border: 1px solid #e2e5ea !important; border-radius: 9px !important;
	box-shadow: 0 1px 1px rgba(16,24,40,.03) !important;
	font-size: 15px; line-height: 1.35; height: auto; min-height: 46px;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.clm-form .clm-field select {
	appearance: none; -webkit-appearance: none; height: 46px; padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center;
}
.clm-form .clm-field textarea { min-height: 110px; }
.clm-form .clm-field input:focus, .clm-form .clm-field select:focus, .clm-form .clm-field textarea:focus {
	border-color: var(--clm-accent) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--clm-accent) 14%, transparent) !important;
	outline: none;
}
.clm-form input[type="file"] { width: 100%; margin-top: 8px; font-size: 13.5px; color: #4b5563; }

/* Checkbox rows (spayed/neutered, etc.) */
.clm-check > label {
	display: flex; align-items: center; gap: 10px; margin-top: 6px; padding: 12px 14px;
	border: 1px solid #e2e5ea; border-radius: 9px; background: #fff;
	font-size: 14.5px; font-weight: 600; color: #374151; cursor: pointer;
	transition: border-color .12s ease, background .12s ease;
}
.clm-check > label:has(input:checked) {
	border-color: var(--clm-accent);
	background: color-mix(in srgb, var(--clm-accent) 6%, white);
}
.clm-check input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--clm-accent); flex: 0 0 18px; }
.clm-check .clm-hint { display: inline; margin: 0; }

/* Item sub-cards (Dog 1, Dog 2…) */
.clm-item { position: relative; background: #fafbfd; border: 1px solid #e7e9ee; border-radius: 12px; padding: 18px 18px 4px; margin-bottom: 16px; }
.clm-items > .clm-item:only-child { background: transparent; border: 0; padding: 0; margin-bottom: 0; }
.clm-item-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.clm-item-title { font-weight: 700; font-size: 15.5px; color: #111827; }
.clm-remove-item { background: none; border: 0; font-size: 22px; line-height: 1; cursor: pointer; color: #9ca3af; padding: 0 4px; }
.clm-remove-item:hover { color: #dc2626; }

.clm-add-btn {
	display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px;
	background: #fff; border: 1px dashed #c7cdd6; border-radius: 10px;
	font-size: 14px; font-weight: 650; color: #374151; cursor: pointer;
	transition: border-color .12s ease, color .12s ease;
}
.clm-add-btn:hover { border-color: var(--clm-accent); color: var(--clm-accent); background: #fff; }

/* Total */
.clm-total {
	background: color-mix(in srgb, var(--clm-accent) 6%, white);
	border: 1px solid color-mix(in srgb, var(--clm-accent) 22%, white);
	border-radius: 12px; padding: 16px 22px; margin: 0 0 20px;
}
.clm-total-line { font-size: 15px; font-weight: 600; color: #374151; }
.clm-total-amt { font-size: 22px; font-weight: 750; color: #111827; margin-left: 6px; }
.clm-fee-note { font-size: 12.5px; color: #6b7280; margin-top: 5px; }

/* Submit */
.clm-submit button {
	display: inline-block; width: 100%; max-width: 460px;
	background: var(--clm-accent) !important; color: #fff !important;
	border: 0 !important; border-radius: 10px !important; padding: 15px 28px !important;
	font-size: 15.5px; font-weight: 650; letter-spacing: .01em; line-height: 1.2;
	cursor: pointer; box-shadow: 0 1px 2px rgba(16,24,40,.15);
	transition: filter .12s ease; text-transform: none;
}
.clm-submit button:hover { filter: brightness(.9); }

/* Notices */
.clm-notice { border: 1px solid; border-radius: 12px; padding: 16px 20px; margin-bottom: 18px; font-size: 14.5px; }
.clm-notice-success { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.clm-notice-info { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.clm-notice-error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

.clm-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }
.clm-fine { font-size: 12.5px; color: #8a919d; }

/* 2.2 — intro, help text, Yes/No pills, certification */
.clm-intro, .clm-after { font-size: 14.5px; line-height: 1.6; }
.clm-intro { background: #fff; border: 1px solid #e7e9ee; border-left: 4px solid var(--clm-accent); border-radius: 12px; padding: 16px 22px; margin: 0 0 20px; color: #374151; }
.clm-intro p, .clm-after p { margin: 0 0 8px; }
.clm-intro p:last-child, .clm-after p:last-child { margin-bottom: 0; }
.clm-after { margin-top: 10px; }
.clm-help { display: block; font-size: 12.5px; color: #6b7280; margin-top: 6px; line-height: 1.45; }
.clm-field[hidden] { display: none !important; }
.clm-q { display: block; font-size: 13.5px; font-weight: 600; color: #374151; margin-bottom: 8px; }
.clm-yesno { display: inline-flex; gap: 8px; }
.clm-yesno label {
	display: inline-flex; align-items: center; gap: 8px; min-width: 88px; padding: 10px 16px;
	border: 1px solid #e2e5ea; border-radius: 9px; background: #fff; cursor: pointer;
	font-size: 14.5px; font-weight: 600; color: #374151; transition: border-color .12s ease, background .12s ease;
}
.clm-yesno label:has(input:checked) { border-color: var(--clm-accent); background: color-mix(in srgb, var(--clm-accent) 6%, white); }
.clm-form .clm-yesno input { width: 17px; height: 17px; min-height: 0; margin: 0; padding: 0; flex: 0 0 17px; box-shadow: none; accent-color: var(--clm-accent); }
.clm-f-yesno { padding-bottom: 14px; border-bottom: 1px dashed #eef0f3; }
.clm-fee-exempt > label { align-items: flex-start; font-weight: 500; font-size: 13.5px; line-height: 1.5; }
.clm-fee-exempt input[type="checkbox"] { margin-top: 2px; }
.clm-certify-text { font-size: 13.5px; line-height: 1.6; color: #4b5563; background: #fafbfd; border: 1px solid #eef0f3; border-radius: 10px; padding: 14px 18px; margin-bottom: 16px; }
.clm-certify-text p { margin: 0 0 10px; }
.clm-certify-text p:last-child { margin-bottom: 0; }
.clm-form .clm-signature { font-family: "Segoe Script", "Brush Script MT", cursive; font-size: 19px !important; }
.clm-form input[readonly] { background: #f6f7f9 !important; color: #6b7280 !important; }
.clm-field > label.clm-later { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 14px; font-weight: 600; color: #374151; cursor: pointer; }
.clm-later input { width: 17px; height: 17px; margin: 0; accent-color: var(--clm-accent); }
.clm-later-reason { margin-top: 10px; }
.clm-later-reason[hidden] { display: none !important; }
.clm-form .clm-field input[type="date"] { height: 46px; padding-top: 0 !important; padding-bottom: 0 !important; }
.clm-form .clm-field textarea { font-family: inherit; }
.clm-fee-note-custom { font-size: 13px; line-height: 1.55; color: #4b5563; margin-top: 8px; }
.clm-fee-note-custom p { margin: 0 0 6px; }
.clm-fee-note-custom p:last-child { margin-bottom: 0; }
