/*
 * Easy WP Demo Builder: demo request card.
 * Everything is scoped to .ewdb-demo. The theme's font is inherited; no remote assets.
 * Brand: primary #3158D4, navy #172A70, accent teal #57D6C6.
 */
.ewdb-demo {
	--ewdb-primary: #3158d4;
	--ewdb-primary-dark: #2446b3;
	--ewdb-navy: #172a70;
	--ewdb-teal: #57d6c6;
	--ewdb-text: #1d2327;
	--ewdb-muted: #50575e;
	--ewdb-border: #c9d2ee;
	--ewdb-soft: #f3f6ff;
	box-sizing: border-box;
	width: 100%;
	max-width: 620px;
	margin: 1.5rem auto;
	padding: 0;
	font-family: inherit;
	line-height: 1.5;
}
.ewdb-demo *,
.ewdb-demo *::before,
.ewdb-demo *::after { box-sizing: border-box; }

.ewdb-demo .ewdb-card {
	padding: 28px;
	color: var(--ewdb-text);
	background: linear-gradient(180deg, #f7f9ff 0%, #ffffff 160px);
	border: 1px solid var(--ewdb-border);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(23, 42, 112, 0.1);
	overflow-wrap: anywhere;
}
.ewdb-demo p { margin: 0; }

/* Header */
.ewdb-demo .ewdb-head { text-align: center; margin: 0 0 18px; }
.ewdb-demo .ewdb-badge {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 4px 12px; margin: 0 0 12px;
	font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em;
	color: var(--ewdb-navy); background: #e6ecff; border: 1px solid #b9c7f5; border-radius: 999px;
}
.ewdb-demo .ewdb-badge svg { color: var(--ewdb-primary); flex: none; }
.ewdb-demo .ewdb-title {
	margin: 0 0 6px; padding: 0; border: 0;
	font-family: inherit; font-size: 1.75rem; line-height: 1.2; font-weight: 700;
	color: var(--ewdb-navy);
}
.ewdb-demo .ewdb-lead { color: var(--ewdb-muted); font-size: 1.0625rem; }

/* Steps */
.ewdb-demo .ewdb-steps {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px;
	margin: 0 0 22px; padding: 0; list-style: none; counter-reset: ewdb-step;
}
.ewdb-demo .ewdb-steps li {
	counter-increment: ewdb-step;
	display: flex; flex-direction: column; align-items: center; gap: 6px;
	margin: 0; padding: 10px 6px; text-align: center;
	font-size: 0.875rem; line-height: 1.3; color: var(--ewdb-navy);
	background: var(--ewdb-soft); border: 1px solid #dbe3fa; border-radius: 12px;
}
.ewdb-demo .ewdb-steps li::before {
	content: counter(ewdb-step);
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; flex: none;
	font-weight: 700; color: var(--ewdb-navy); background: var(--ewdb-teal); border-radius: 50%;
}

/* Fields */
.ewdb-demo .ewdb-field,
.ewdb-demo .ewdb-duration,
.ewdb-demo .ewdb-consent { margin: 0 0 18px; }
.ewdb-demo .ewdb-label,
.ewdb-demo .ewdb-duration legend {
	display: block; margin: 0 0 6px; padding: 0;
	font-weight: 600; color: var(--ewdb-text);
}
.ewdb-demo .ewdb-input-wrap { position: relative; display: block; }
.ewdb-demo .ewdb-input-icon {
	position: absolute; top: 50%; left: 14px; transform: translateY(-50%);
	color: var(--ewdb-muted); pointer-events: none;
}
.ewdb-demo .ewdb-input {
	display: block; width: 100%; max-width: 100%; min-height: 52px; margin: 0;
	padding: 12px 14px 12px 44px;
	font-family: inherit; font-size: 1rem; line-height: 1.4; color: var(--ewdb-text);
	background: #fff; border: 2px solid #6a76ad; border-radius: 10px; box-shadow: none;
}
.ewdb-demo .ewdb-input::placeholder { color: #6b7280; opacity: 1; }
.ewdb-demo .ewdb-input[aria-invalid="true"] { border-color: #b32d2e; }
.ewdb-demo .ewdb-help { display: block; margin: 6px 0 0; font-size: 0.875rem; color: var(--ewdb-muted); }

/* Duration cards */
.ewdb-demo .ewdb-duration { min-width: 0; padding: 0; border: 0; }
.ewdb-demo .ewdb-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.ewdb-demo .ewdb-option { position: relative; display: block; margin: 0; cursor: pointer; }
.ewdb-demo .ewdb-option input {
	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;
}
.ewdb-demo .ewdb-option-body {
	display: block; min-height: 72px; padding: 14px 44px 14px 16px;
	background: #fff; border: 2px solid #6a76ad; border-radius: 12px;
}
.ewdb-demo .ewdb-option-title { display: block; font-size: 1.125rem; font-weight: 700; color: var(--ewdb-navy); }
.ewdb-demo .ewdb-option-sub { display: block; margin-top: 2px; font-size: 0.875rem; color: var(--ewdb-muted); }
.ewdb-demo .ewdb-option-mark {
	position: absolute; top: 12px; right: 12px; display: flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; color: transparent; background: #fff; border: 2px solid #6a76ad; border-radius: 50%;
}
.ewdb-demo .ewdb-option:hover .ewdb-option-body { border-color: var(--ewdb-primary); }
/* Selected: thicker border, tinted fill and a filled check mark (shape, not colour alone). */
.ewdb-demo .ewdb-option input:checked + .ewdb-option-body {
	border-color: var(--ewdb-primary); background: #eaf0ff;
	box-shadow: inset 0 0 0 2px var(--ewdb-primary);
}
.ewdb-demo .ewdb-option input:checked ~ .ewdb-option-mark { color: #fff; background: var(--ewdb-primary); border-color: var(--ewdb-primary); }
.ewdb-demo .ewdb-expiry { margin-top: 10px; }

/* Consent panel */
.ewdb-demo .ewdb-consent {
	display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px;
	background: var(--ewdb-soft); border: 1px solid #dbe3fa; border-radius: 12px;
}
.ewdb-demo .ewdb-checkbox { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--ewdb-primary); }
.ewdb-demo .ewdb-consent label { flex: 1 1 auto; min-height: 44px; margin: -10px 0; padding: 10px 0; font-size: 0.9375rem; color: var(--ewdb-text); cursor: pointer; }

/* Button */
.ewdb-demo .ewdb-submit {
	display: block; width: 100%; min-height: 54px; margin: 0; padding: 14px 20px;
	font-family: inherit; font-size: 1.0625rem; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none;
	color: #fff; background: var(--ewdb-primary); border: 2px solid var(--ewdb-primary); border-radius: 12px;
	box-shadow: 0 4px 14px rgba(49, 88, 212, 0.35); cursor: pointer;
}
.ewdb-demo .ewdb-submit:hover { background: var(--ewdb-primary-dark); border-color: var(--ewdb-primary-dark); }
.ewdb-demo .ewdb-cta-note { margin-top: 10px; text-align: center; font-size: 0.875rem; color: var(--ewdb-muted); }

/* Visible keyboard focus */
.ewdb-demo .ewdb-input:focus,
.ewdb-demo .ewdb-submit:focus,
.ewdb-demo .ewdb-checkbox:focus { outline: 3px solid var(--ewdb-navy); outline-offset: 2px; }
.ewdb-demo .ewdb-input:focus { border-color: var(--ewdb-primary); }
.ewdb-demo .ewdb-option input:focus + .ewdb-option-body { outline: 3px solid var(--ewdb-navy); outline-offset: 2px; }

/* Notices inside the card */
.ewdb-demo .ewdb-notice {
	display: flex; align-items: flex-start; gap: 10px; margin: 0 0 18px; padding: 12px 14px;
	border: 1px solid; border-left-width: 6px; border-radius: 10px; font-size: 0.9375rem;
}
.ewdb-demo .ewdb-notice p + p { margin-top: 6px; }
.ewdb-demo .ewdb-notice-icon { flex: none; margin-top: 1px; }
.ewdb-demo .ewdb-notice-error { color: #7a1616; background: #fdeeee; border-color: #b32d2e; }
.ewdb-demo .ewdb-notice-success { color: #0a4d2f; background: #e9f7f0; border-color: #1a7f4e; }
.ewdb-demo .ewdb-notice-info { color: var(--ewdb-navy); background: #eaf0ff; border-color: var(--ewdb-primary); }
.ewdb-demo .ewdb-card-status { text-align: center; }
.ewdb-demo .ewdb-card-status .ewdb-notice { margin: 4px 0 0; text-align: left; }

/* Honeypot: hidden from sighted users (and from assistive tech via aria-hidden in the markup). */
.ewdb-demo .ewdb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Small screens (down to 320px) */
@media (max-width: 480px) {
	.ewdb-demo { margin: 1rem auto; }
	.ewdb-demo .ewdb-card { padding: 18px 14px; border-radius: 12px; }
	.ewdb-demo .ewdb-title { font-size: 1.5rem; }
	.ewdb-demo .ewdb-steps { grid-template-columns: 1fr; gap: 8px; }
	.ewdb-demo .ewdb-steps li { flex-direction: row; justify-content: flex-start; text-align: left; padding: 8px 12px; }
	.ewdb-demo .ewdb-input { font-size: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ewdb-demo * { transition: none !important; animation: none !important; }
}

/* Windows high contrast: keep the selected card and focus clearly visible. */
@media (forced-colors: active) {
	.ewdb-demo .ewdb-option input:checked + .ewdb-option-body { border-width: 4px; }
	.ewdb-demo .ewdb-option input:checked ~ .ewdb-option-mark { forced-color-adjust: none; color: HighlightText; background: Highlight; }
	.ewdb-demo .ewdb-submit { border: 2px solid ButtonText; }
}
