/* =============================================================================
   Limitless Dental Landing
   -----------------------------------------------------------------------------
   Scoped to .ld-* so nothing here can leak into the Salient theme. Colors are
   inherited from the page wherever possible; only the accent is set, so the form
   sits inside the existing design rather than fighting it.
   ========================================================================== */

.ld-form-wrap {
	--ld-accent: #1f7ae0;
	--ld-accent-dark: #175fb0;
	--ld-ink: #1c2b36;
	--ld-muted: #5f6f7c;
	--ld-line: #d8e0e6;
	--ld-bad: #b3261e;

	max-width: 560px;
	margin: 0 auto;
	scroll-margin-top: 90px;
}

.ld-form {
	background: #fff;
	border: 1px solid var(--ld-line);
	border-radius: 12px;
	padding: clamp(1.25rem, 4vw, 2rem);
	box-shadow: 0 18px 40px -28px rgba(28, 43, 54, 0.55);
}

.ld-form__heading {
	margin: 0 0 0.35rem;
	font-size: clamp(1.25rem, 2.6vw, 1.6rem);
	line-height: 1.2;
	color: var(--ld-ink);
}

.ld-form__sub {
	margin: 0 0 1.25rem;
	color: var(--ld-muted);
	font-size: 0.95rem;
	line-height: 1.5;
}

.ld-field {
	margin-bottom: 0.9rem;
}

.ld-field label {
	display: block;
	margin-bottom: 0.3rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ld-ink);
}

.ld-opt {
	font-weight: 400;
	color: var(--ld-muted);
}

.ld-field input {
	width: 100%;
	box-sizing: border-box;
	/* 16px minimum, or iOS Safari zooms the whole page on focus. */
	font-size: 16px;
	line-height: 1.4;
	padding: 0.7rem 0.85rem;
	color: var(--ld-ink);
	background: #fff;
	border: 1px solid var(--ld-line);
	border-radius: 8px;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.ld-field input:focus {
	outline: none;
	border-color: var(--ld-accent);
	box-shadow: 0 0 0 3px rgba(31, 122, 224, 0.18);
}

.ld-field input[aria-invalid="true"] {
	border-color: var(--ld-bad);
	box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.12);
}

.ld-err {
	margin: 0.3rem 0 0;
	font-size: 0.8125rem;
	color: var(--ld-bad);
}

.ld-err:empty {
	display: none;
}

/* The honeypot. Off-screen rather than display:none — some bots skip hidden
   fields, but almost none skip ones that are merely positioned away. */
.ld-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ld-submit {
	display: block;
	width: 100%;
	margin-top: 0.4rem;
	padding: 0.95rem 1.25rem;
	font-size: 1.0625rem;
	font-weight: 700;
	color: #fff;
	background: var(--ld-accent);
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.15s, transform 0.12s;
}

.ld-submit:hover:not(:disabled) {
	background: var(--ld-accent-dark);
}

.ld-submit:active:not(:disabled) {
	transform: translateY(1px);
}

.ld-submit:disabled {
	opacity: 0.65;
	cursor: default;
}

.ld-form__note {
	margin: 0.85rem 0 0;
	font-size: 0.8125rem;
	color: var(--ld-muted);
	text-align: center;
}

.ld-form__note a {
	color: var(--ld-accent);
	font-weight: 600;
}

.ld-form__status {
	margin: 0.85rem 0 0;
	font-size: 0.9rem;
	text-align: center;
}

.ld-form__status:empty {
	display: none;
}

.ld-form__status.is-error {
	color: var(--ld-bad);
}

.ld-done {
	text-align: center;
	padding: 0.5rem 0;
}

.ld-done__head {
	margin: 0 0 0.5rem;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--ld-ink);
}

.ld-done p {
	color: var(--ld-muted);
	line-height: 1.55;
}

.ld-done__call a {
	color: var(--ld-accent);
	font-weight: 600;
}

/* ------------------------------------------------------- sticky call bar --- */

.ld-callbar {
	display: none;
}

@media (max-width: 782px) {
	.ld-callbar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1px;
		background: #cfd8de;
		box-shadow: 0 -6px 20px -10px rgba(28, 43, 54, 0.5);
		padding-bottom: env(safe-area-inset-bottom, 0);
	}

	.ld-callbar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.4rem;
		/* 48px minimum touch target */
		min-height: 52px;
		padding: 0.6rem 0.5rem;
		font-size: 0.95rem;
		font-weight: 700;
		text-decoration: none;
		text-align: center;
	}

	.ld-callbar__call {
		background: #12313f;
		color: #fff;
	}

	.ld-callbar__form {
		background: #1f7ae0;
		color: #fff;
	}

	.ld-callbar__icon {
		font-size: 1.05rem;
	}

	/* Keep the bar from covering the end of the page. */
	body {
		padding-bottom: 56px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ld-submit,
	.ld-field input {
		transition: none;
	}
}
