/* DC Affiliate Core front-end components. Colours come from --dc-* variables (Addendum A8); the
   fallbacks are the approved Premium Blue tokens (D01, v3 design). Only .dc- classes are styled,
   so the theme and Elementor Site Settings stay in charge of everything else.

   Breakpoints: one column below 600px, two from 600px (tablet rule, W00 decision), three from
   1024px. Tables scroll horizontally inside a focusable region below 600px (W10). */

.dc-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.dc-muted { color: var(--dc-muted, #586d8d); font-size: 0.875rem; }

/* Buttons and links */
.dc-button,
.dc-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 20px;
	border: 1px solid transparent;
	border-radius: var(--dc-radius-button, 12px);
	background: var(--dc-primary, #0757f9);
	color: var(--dc-on-primary, #fff);
	font: inherit;
	font-weight: 600;
	line-height: 20px;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}
.dc-button:hover,
.dc-cta__button:hover { background: var(--dc-primary-dark, #0546cc); color: var(--dc-on-primary, #fff); }
.dc-button--secondary { background: var(--dc-surface, #f2f7ff); color: var(--dc-ink, #0b1939); border-color: var(--dc-line, #dde7f7); }
.dc-button--secondary:hover { background: var(--dc-line, #dde7f7); color: var(--dc-ink, #0b1939); }
.dc-button--disabled,
.dc-cta--disabled .dc-cta__button { background: var(--dc-surface, #f2f7ff); color: var(--dc-muted, #586d8d); border-color: var(--dc-line, #dde7f7); cursor: not-allowed; }
.dc-button:focus-visible,
.dc-cta__button:focus-visible,
.dc-pill:focus-visible,
.dc-card__title a:focus-visible,
.dc-table-scroll:focus-visible,
.dc-faq__question:focus-visible,
.dc-finder input:focus-visible + label,
.dc-finder [tabindex="-1"]:focus-visible,
.dc-privacy-choices:focus-visible {
	outline: 3px solid var(--dc-focus, #0b1939);
	outline-offset: 3px;
}

/* CTA with disclosure (Q22) */
.dc-cta { margin: 0 0 1em; }
.dc-cta__disclosure { margin: 8px 0 0; font-size: 0.875rem; color: var(--dc-muted, #586d8d); max-width: 46ch; }
.dc-cta__reason { display: block; margin-top: 6px; font-size: 0.75rem; color: var(--dc-danger, #b42318); }

/* Badges */
.dc-badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--dc-surface, #f2f7ff);
	color: var(--dc-ink, #0b1939);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.5;
}
.dc-badge--tested { background: var(--dc-primary, #0757f9); color: var(--dc-on-primary, #fff); }
.dc-badge--vetted { background: var(--dc-ink, #0b1939); color: var(--dc-on-primary, #fff); }
.dc-badge--unverified,
.dc-badge--optional { background: var(--dc-surface, #f2f7ff); color: var(--dc-muted, #586d8d); }
.dc-badge--demo { background: var(--dc-warning-bg, #fff4d6); color: var(--dc-warning, #7a4b00); }
.dc-badge--required { background: var(--dc-ink, #0b1939); color: var(--dc-on-primary, #fff); }
.dc-evidence-badge { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.dc-evidence-badge__date { color: var(--dc-muted, #586d8d); font-size: 0.875rem; }

/* Grids and cards */
.dc-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dc-gap, 24px);
	margin: 0 0 1.5em;
	padding: 0;
	list-style: none;
}
@media (min-width: 600px) {
	.dc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.dc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.dc-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	padding: 20px;
	border: 1px solid var(--dc-line, #dde7f7);
	border-radius: var(--dc-radius-card, 18px);
	background: var(--dc-card, #fff);
	color: var(--dc-ink, #0b1939);
	overflow-wrap: anywhere;
}
.dc-card__logos { display: flex; gap: 8px; }
.dc-card__logo { display: inline-flex; width: 48px; height: 48px; }
.dc-card__logo-img { width: 48px; height: 48px; object-fit: contain; border-radius: 12px; }
.dc-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--dc-primary, #0757f9), var(--dc-dark, #10213f));
	color: var(--dc-on-primary, #fff);
	font-weight: 700;
	font-size: 1.25rem;
}
.dc-card__eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.dc-card__category { color: var(--dc-muted, #586d8d); font-size: 0.875rem; }
.dc-card__title { margin: 0; font-size: 1.25rem; line-height: 1.3; }
.dc-card__title a { color: inherit; text-decoration: none; }
.dc-card__title a:hover { text-decoration: underline; }
.dc-card__summary { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--dc-text, #33415c); }
.dc-card__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; padding: 0; list-style: none; color: var(--dc-muted, #586d8d); font-size: 0.875rem; }
.dc-card__checked { margin: auto 0 0; color: var(--dc-muted, #586d8d); font-size: 0.875rem; }

/* Pills and search */
.dc-pills__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1.5em; padding: 0; list-style: none; }
.dc-pill {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 16px;
	border: 1px solid var(--dc-line, #dde7f7);
	border-radius: 999px;
	background: var(--dc-card, #fff);
	color: var(--dc-ink, #0b1939);
	text-decoration: none;
}
.dc-pill.is-current { background: var(--dc-primary, #0757f9); border-color: var(--dc-primary, #0757f9); color: var(--dc-on-primary, #fff); }
.dc-search { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin: 0 0 1.5em; }
.dc-search__label { flex-basis: 100%; font-weight: 600; }
.dc-search__input { flex: 1 1 200px; min-width: 0; min-height: 44px; padding: 8px 12px; border: 1px solid var(--dc-line, #dde7f7); border-radius: 12px; font: inherit; }

/* Empty state */
.dc-empty { padding: 24px; border: 1px dashed var(--dc-line, #dde7f7); border-radius: var(--dc-radius-card, 18px); background: var(--dc-surface, #f2f7ff); }
.dc-empty__message { margin: 0 0 12px; font-weight: 600; }
.dc-empty__links { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }

/* Panels and two-column blocks */
.dc-two-col { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0 0 1.5em; }
@media (min-width: 600px) {
	.dc-two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.dc-panel { min-width: 0; padding: 20px; border: 1px solid var(--dc-line, #dde7f7); border-radius: var(--dc-radius-card, 18px); background: var(--dc-card, #fff); }
.dc-panel--good { border-left: 4px solid var(--dc-primary, #0757f9); }
.dc-panel--caution { border-left: 4px solid var(--dc-muted, #586d8d); }
.dc-panel__title,
.dc-review__heading,
.dc-funnel__heading { margin: 0 0 8px; font-size: 1.125rem; }
.dc-review > section,
.dc-compare > *,
.dc-stack > * { margin-bottom: 1.5em; }
.dc-link-list { margin: 0; padding-left: 1.2em; }

/* Evidence strip */
.dc-evidence-strip { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; margin: 0 0 1.5em; border: 1px solid var(--dc-line, #dde7f7); border-radius: var(--dc-radius-card, 18px); background: var(--dc-line, #dde7f7); overflow: hidden; }
@media (min-width: 600px) {
	.dc-evidence-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.dc-evidence-strip__cell { padding: 12px 16px; background: var(--dc-card, #fff); }
.dc-evidence-strip dt { color: var(--dc-muted, #586d8d); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; }
.dc-evidence-strip dd { margin: 4px 0 0; font-weight: 700; }
.dc-evidence-strip__link { margin-left: 8px; font-weight: 400; font-size: 0.875rem; }

/* Tables (W10) */
.dc-table-scroll { position: relative; max-width: 100%; margin: 0 0 1.5em; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--dc-line, #dde7f7); border-radius: 12px; }
.dc-table { width: 100%; min-width: 560px; border-collapse: collapse; }
.dc-table caption { padding: 12px 16px; text-align: left; font-weight: 700; }
.dc-table th,
.dc-table td { padding: 12px 16px; border-top: 1px solid var(--dc-line, #dde7f7); text-align: left; vertical-align: top; overflow-wrap: normal; word-break: normal; }
.dc-table thead th { background: var(--dc-surface, #f2f7ff); font-size: 0.875rem; }
.dc-table td time { display: block; color: var(--dc-muted, #586d8d); font-size: 0.875rem; }

/* FAQ */
.dc-faq { border-top: 1px solid var(--dc-line, #dde7f7); margin: 0 0 1.5em; }
.dc-faq__item { border-bottom: 1px solid var(--dc-line, #dde7f7); }
.dc-faq__question { display: flex; align-items: center; min-height: 44px; padding: 12px 0; font-weight: 600; cursor: pointer; }
.dc-faq__answer { padding: 0 0 12px; }

/* Resource */
.dc-resource { padding: 20px; border: 1px solid var(--dc-line, #dde7f7); border-radius: var(--dc-radius-card, 18px); background: var(--dc-card, #fff); }
.dc-resource__facts { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 16px; }
.dc-resource__facts dt { color: var(--dc-muted, #586d8d); font-size: 0.75rem; text-transform: uppercase; }
.dc-resource__facts dd { margin: 0; font-weight: 600; }

/* Compare scenarios */
.dc-scenarios { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 600px) {
	.dc-scenarios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.dc-scenario { padding: 16px; border: 1px solid var(--dc-line, #dde7f7); border-radius: 12px; }
.dc-scenario p { margin: 0 0 4px; }
.dc-scenario__name { font-weight: 700; }

/* Stack */
.dc-stack__steps { display: grid; gap: 16px; margin: 0 0 1.5em; padding: 0; list-style: none; }
.dc-step { padding: 20px; border: 1px solid var(--dc-line, #dde7f7); border-radius: var(--dc-radius-card, 18px); background: var(--dc-card, #fff); }
.dc-step p { margin: 0 0 8px; }
.dc-step__eyebrow { display: flex; align-items: center; gap: 8px; color: var(--dc-muted, #586d8d); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em; }
.dc-step__title { margin: 0 0 8px; font-size: 1.125rem; }
.dc-stack__cost { font-size: 1.25rem; font-weight: 700; }

/* Deals */
.dc-deal__price { margin: 0; font-weight: 700; }
.dc-deal__terms { margin: 0; }
.dc-deal__dates { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: 0.875rem; }
.dc-deal__dates div { display: contents; }
.dc-deal__dates dt { color: var(--dc-muted, #586d8d); }
.dc-deal__dates dd { margin: 0; }
.dc-deal__full-terms summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; }

/* Disclosure, privacy */
.dc-disclosure p { margin: 0 0 8px; }
.dc-disclosure--cta { color: var(--dc-muted, #586d8d); font-size: 0.875rem; }
.dc-privacy-choices { display: inline-flex; align-items: center; min-height: 44px; }

/* Finder */
.dc-finder { max-width: 720px; }
.dc-finder__privacy,
.dc-finder__demo { color: var(--dc-muted, #586d8d); font-size: 0.875rem; }
.dc-finder__step,
.dc-finder__app > * + * { margin-top: 16px; }
.dc-finder__count { margin: 0 0 8px; color: var(--dc-muted, #586d8d); font-size: 0.875rem; }
.dc-progress { height: 8px; border-radius: 999px; background: var(--dc-surface, #f2f7ff); overflow: hidden; }
.dc-progress__bar { display: block; height: 100%; background: var(--dc-primary, #0757f9); transition: width 0.2s ease; }
.dc-finder__fieldset { margin: 16px 0 0; padding: 0; border: 0; min-width: 0; }
.dc-finder__question { margin: 0 0 12px; padding: 0; font-size: 1.25rem; font-weight: 700; }
.dc-finder__help { margin: 0 0 12px; color: var(--dc-muted, #586d8d); }
.dc-finder__option { position: relative; margin: 0 0 8px; }
.dc-finder__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dc-finder__option label {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid var(--dc-line, #dde7f7);
	border-radius: 12px;
	background: var(--dc-card, #fff);
	cursor: pointer;
}
.dc-finder__option input:checked + label { border-color: var(--dc-primary, #0757f9); box-shadow: inset 0 0 0 1px var(--dc-primary, #0757f9); background: var(--dc-surface, #f2f7ff); font-weight: 600; }
.dc-finder__error { min-height: 1.5em; margin: 8px 0 0; color: var(--dc-danger, #b42318); font-weight: 600; }
.dc-finder__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.dc-finder__answers { display: grid; gap: 4px; margin: 0; }
.dc-finder__answers div { display: flex; flex-wrap: wrap; gap: 0 8px; }
.dc-finder__answers dt { font-weight: 600; }
.dc-finder__answers dd { margin: 0; }
.dc-finder__results { display: grid; gap: 16px; margin: 16px 0 0; padding: 0; list-style: none; }
.dc-rank__number { font-weight: 700; color: var(--dc-primary, #0757f9); }
.dc-rank__label { margin: 8px 0 0; font-weight: 700; }
.dc-rank__reasons { margin: 0; padding-left: 1.2em; }
.dc-rank__limitation { margin: 0; }
.dc-rank .dc-button { align-self: flex-start; }
.dc-finder__how { color: var(--dc-muted, #586d8d); font-size: 0.875rem; }

/* Funnel and thank-you */
.dc-funnel__section { margin: 0 0 2em; }
.dc-funnel__headline { margin: 0 0 8px; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.2; }
.dc-funnel__subhead { margin: 0; font-size: 1.125rem; color: var(--dc-text, #33415c); }
.dc-thank-you { padding: 24px; border-radius: var(--dc-radius-card, 18px); background: var(--dc-surface, #f2f7ff); }

@media (prefers-reduced-motion: reduce) {
	.dc-progress__bar { transition: none; }
}

/* Lead capture */
.dc-lead { max-width: 560px; }
.dc-lead__field label { display: block; margin-bottom: 4px; font-weight: 600; }
.dc-lead__field input { width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--dc-line, #dde7f7); border-radius: 12px; font: inherit; }
.dc-lead__check { display: flex; gap: 8px; align-items: flex-start; }
.dc-lead__check input { width: 20px; height: 20px; margin-top: 3px; }
.dc-lead__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.dc-lead__status--ok { color: var(--dc-ink, #0b1939); font-weight: 600; }
.dc-lead__status--error { color: var(--dc-danger, #b42318); font-weight: 600; }
