/* DigiSavvy Lead Widget — conversational lead qualifier.
   Brand styling via ACSS vars; custom values only for widget-specific layout/motion. */

.dgsw {
	--dgsw-col: 40rem;            /* form column — widget-specific layout value */
	--dgsw-warn-bg: #fbf1cf;     /* amber soft-warning (non-ACSS UI color) */
	--dgsw-warn-border: #e3c463;
	--dgsw-step-ease: var(--ease, cubic-bezier(.22,.61,.36,1));

	max-inline-size: var(--dgsw-col);
	margin-inline: auto;
	padding-block: var(--space-xl);
	color: var(--text-dark);
}

/* Progress */
.dgsw__progress {
	block-size: 4px;
	border-radius: var(--radius);
	background: var(--border-light);
	overflow: hidden;
	margin-block-end: var(--space-l);
}
.dgsw__progress-fill {
	display: block;
	block-size: 100%;
	inline-size: 0;
	background: var(--primary);
	border-radius: inherit;
	transition: inline-size .35s var(--dgsw-step-ease);
}

/* Steps */
.dgsw__form { position: relative; }
.dgsw-step { display: none; }
.dgsw-step.is-active {
	display: block;
	animation: dgsw-in .35s var(--dgsw-step-ease) both;
}
@keyframes dgsw-in {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: none; }
}

.dgsw-step__q {
	font-size: var(--h3);
	line-height: 1.1;
	font-weight: 600;
	margin: 0 0 var(--space-xs);
}
.dgsw-step__help {
	font-size: var(--text-m);
	color: var(--text-dark-muted);
	margin: 0 0 var(--space-m);
}
.dgsw-step__actions {
	margin-block-start: var(--space-m);
	display: flex;
	flex-direction: row-reverse; /* lone Continue sits right; Back (when present) sits left */
	justify-content: space-between;
	align-items: center;
}

/* Inputs — Typeform-style: borderless, large, baseline underline only */
.dgsw-input {
	inline-size: 100%;
	font-size: var(--text-xl);
	font-family: inherit;
	font-weight: 400;
	line-height: 1.3;
	color: var(--text-dark);
	background: transparent;
	border: none;
	border-block-end: 2px solid var(--border-color, var(--border-light));
	border-radius: 0;
	padding: var(--space-xs) 0;
	margin-block-end: var(--space-m);
	transition: border-color .2s var(--dgsw-step-ease);
}
.dgsw-input--area { resize: none; line-height: 1.4; }
.dgsw-input:focus {
	outline: none;
	border-block-end-color: var(--primary);
}
.dgsw-input::placeholder { color: var(--text-dark-muted); opacity: .55; }

/* Choice cards */
.dgsw-choices {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xs);
}
.dgsw-choices--2 { grid-template-columns: repeat(2, 1fr); }
.dgsw-choice {
	text-align: start;
	font-size: var(--text-l);
	font-family: inherit;
	font-weight: 500;
	color: var(--text-dark);
	background: #fff;
	border: 1.5px solid var(--border-color, var(--border-light));
	border-radius: var(--radius);
	padding: var(--space-m);
	cursor: pointer;
	transition: border-color .15s var(--dgsw-step-ease), background-color .15s var(--dgsw-step-ease), transform .15s var(--dgsw-step-ease);
}
.dgsw-choice:hover {
	border-color: var(--primary);
	transform: translateY(-2px);
}
.dgsw-choice:focus-visible {
	outline: none;
	border-color: var(--primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);
}
.dgsw-choice.is-selected {
	border-color: var(--primary);
	background: var(--cyan-soft, color-mix(in srgb, var(--primary) 12%, #fff));
}

/* Multi-select cards: checkbox badge in the trailing corner */
.dgsw-choice--multi {
	position: relative;
	padding-inline-end: calc(var(--space-m) + 2rem);
}
.dgsw-choice--multi::after {
	content: "";
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: var(--space-m);
	transform: translateY(-50%);
	inline-size: 1.4rem;
	block-size: 1.4rem;
	border: 2px solid var(--border-color, var(--border-light));
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: .8rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	transition: background-color .15s var(--dgsw-step-ease), border-color .15s var(--dgsw-step-ease);
}
.dgsw-choice--multi.is-selected::after {
	content: "✓";
	background: var(--primary);
	border-color: var(--primary);
}

/* "Select all that apply" hint under a choice group */
.dgsw-choices__hint {
	font-size: var(--text-s);
	color: var(--text-dark-muted);
	margin: var(--space-xs) 0 0;
}

/* Primary button (site convention: cyan fill, dark text for AA) */
.dgsw-btn {
	font-size: var(--text-m);
	font-family: inherit;
	font-weight: 600;
	color: var(--text-dark);
	background: var(--primary);
	border: none;
	border-radius: var(--radius);
	padding: var(--space-s) var(--space-l);
	cursor: pointer;
	transition: background-color .2s var(--dgsw-step-ease), transform .12s var(--dgsw-step-ease);
}
.dgsw-btn:hover { background: var(--primary-hover, var(--primary)); transform: translateY(-1px); }
.dgsw-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 40%, transparent); }
.dgsw-btn[disabled] { opacity: .6; cursor: progress; transform: none; }

/* Work-email soft-gate warning */
.dgsw-warn {
	background: var(--dgsw-warn-bg);
	border: 1px solid var(--dgsw-warn-border);
	border-radius: var(--radius);
	padding: var(--space-s) var(--space-m);
	margin-block-end: var(--space-s);
}
.dgsw-warn p { margin: 0 0 var(--space-xs); font-size: var(--text-s); color: var(--text-dark); }
.dgsw-warn__link {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	font-size: var(--text-s);
	font-weight: 600;
	color: var(--primary-ultra-dark);
	text-decoration: underline;
	cursor: pointer;
}

/* Field-level errors */
.dgsw-field-error {
	font-size: var(--text-s);
	color: var(--accent, #ce423b);
	margin-block-end: var(--space-s);
}

/* Turnstile */
.dgsw-turnstile { margin-block: var(--space-s); }

/* Done */
.dgsw-done { text-align: center; padding-block: var(--space-l); }

/* cal.com inline embed — shown to hot/warm leads on the done screen */
.dgsw-booking {
	margin-block-start: var(--space-m);
	min-block-size: 520px; /* reserve space so the async embed doesn't shift the layout */
}
.dgsw-booking iframe { border: 0; }

/* Honeypot — keep in the layout but invisible & unfocusable */
.dgsw__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Focus mode: on a page with the widget, strip site chrome to logo-only nav + copyright-only footer */
.dgsw-page .nav-menu,
.dgsw-page .burger { display: none !important; }
.dgsw-page .site-footer__grid { display: none !important; }
.dgsw-page .site-footer__bottom { text-align: center; }

@media (prefers-reduced-motion: reduce) {
	.dgsw-step.is-active { animation: none; }
	.dgsw__progress-fill,
	.dgsw-choice,
	.dgsw-btn,
	.dgsw-input { transition: none; }
	.dgsw-choice:hover,
	.dgsw-btn:hover { transform: none; }
}

/* Visually-hidden page heading — gives /start/ a proper h1 for a11y/SEO
   without showing a title in the full-screen qualifier layout. */
.dgsw__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Back nav — quiet link under each step (injected by widget.js) */
.dgsw-back {
	display: block;
	background: none;
	border: 0;
	padding: 0;
	margin-block-start: var(--space-m);
	font-size: var(--text-m);
	color: var(--text-dark-muted);
	cursor: pointer;
}
.dgsw-step__actions .dgsw-back { margin-block-start: 0; }
.dgsw-back:hover { color: var(--text-dark); text-decoration: underline; }
