/* bcMeter 2026 UI — jdt-berlin-style feature cards + subtle global refinements.
   Token-driven; light by default, dark via html[data-theme="dark"]. Loaded in both modes. */

/* ============================ Feature cards ============================ */
.bcm-cards {
	--c-accent:  #2196f3;
	--c-bg:      #ffffff;
	--c-border:  #e8eaed;
	--c-radius:  14px;
	--c-pad:     26px;
	--c-gap:     22px;
	--c-title:   #101828;
	--c-sub:     #667085;
	--c-body:    #475467;
	--c-divider: #eef1f4;
	--c-tint:    color-mix(in srgb, var(--c-accent) 10%, #fff);
	--c-accent-text: #175cd3;  /* AA-safe accent for text/links on light (was #2196f3 = 3.1:1) */
	--c-shadow:       0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.05);
	--c-shadow-hover: 0 12px 30px -10px rgba(16,24,40,.13), 0 3px 8px rgba(16,24,40,.05);
	display: block;
}
.bcm-cards *, .bcm-cards *::before, .bcm-cards *::after { box-sizing: border-box; }
.bcm-cards__grid {
	display: grid; gap: var(--c-gap); align-items: stretch;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 900px) { .bcm-cards__grid { grid-template-columns: 1fr; } }

.bcm-card {
	display: flex; flex-direction: column; min-width: 0; height: 100%;
	background: var(--c-bg); border: 1px solid var(--c-border);
	border-radius: var(--c-radius); padding: var(--c-pad);
	box-shadow: var(--c-shadow); color: var(--c-body);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.bcm-card:hover {
	border-color: color-mix(in srgb, var(--c-accent) 30%, var(--c-border));
	box-shadow: var(--c-shadow-hover); transform: translateY(-2px);
}
.bcm-card__head { display: flex; align-items: center; gap: 13px; margin-bottom: 17px; }
.bcm-card__icon {
	flex: 0 0 auto; width: 44px; height: 44px; display: grid; place-items: center;
	border-radius: 12px; background: var(--c-tint); color: var(--c-accent);
}
.bcm-card__icon svg {
	width: 23px; height: 23px; display: block; fill: none; stroke: currentColor;
	stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}
.bcm-card__titles { min-width: 0; }
.bcm-card__title {
	margin: 0; font-family: 'Montserrat', sans-serif; font-size: 16px; font-weight: 600;
	line-height: 1.25; letter-spacing: 0; text-transform: none; color: var(--c-title);
}
.bcm-card__subtitle {
	margin: 4px 0 0; font-family: 'Montserrat', sans-serif; font-size: 10.5px; font-weight: 600;
	letter-spacing: .8px; text-transform: uppercase; color: var(--c-sub);
}
.bcm-card__lead { margin: 0 0 15px; font-size: 14.5px; line-height: 1.6; color: var(--c-body); }
.bcm-card__list { list-style: none; margin: 0 0 22px; padding: 0; flex: 1 1 auto; }
.bcm-card__list li {
	position: relative; padding: 9px 0 9px 19px; font-size: 13.5px; line-height: 1.45; color: var(--c-body);
}
.bcm-card__list li + li { border-top: 1px solid var(--c-divider); }
.bcm-card__list li::before {
	content: ""; position: absolute; left: 3px; top: 15px;
	width: 5px; height: 5px; border-radius: 50%; background: var(--c-accent);
}
.bcm-card__btn {
	align-self: flex-start; display: inline-flex; align-items: center; gap: 7px;
	min-height: 40px; padding: 9px 16px; border-radius: 9px;
	border: 1px solid color-mix(in srgb, var(--c-accent) 26%, var(--c-border));
	background: var(--c-tint); color: var(--c-accent-text) !important;
	font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .3px;
	text-decoration: none !important; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}
.bcm-card__btn::after { content: "\2192"; font-size: 14px; line-height: 1; transition: transform .15s ease; }
.bcm-card__btn:hover { background: color-mix(in srgb, var(--c-accent) 15%, #fff); border-color: var(--c-accent); }
.bcm-card__btn:hover::after { transform: translateX(2px); }
.bcm-card__btn:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }

/* ---- Dark tokens ---- */
html[data-theme="dark"] .bcm-cards {
	--c-accent:  #5b9bff;
	--c-bg:      #15181c;
	--c-border:  rgba(255,255,255,.08);
	--c-title:   #f2f4f7;
	--c-sub:     #98a2b3;
	--c-body:    #cdd2d9;
	--c-divider: rgba(255,255,255,.07);
	--c-accent-text: #9cc2ff;  /* brighter accent text for contrast on the dark tint */
	--c-tint:    color-mix(in srgb, var(--c-accent) 18%, #15181c);
	--c-shadow:       0 1px 2px rgba(0,0,0,.4);
	--c-shadow-hover: 0 12px 32px -10px rgba(0,0,0,.6);
}
html[data-theme="dark"] .bcm-card__icon { color: color-mix(in srgb, var(--c-accent) 85%, #fff); }
html[data-theme="dark"] .bcm-card__btn { background: var(--c-tint); border-color: color-mix(in srgb, var(--c-accent) 34%, transparent); }
html[data-theme="dark"] .bcm-card__btn:hover { background: color-mix(in srgb, var(--c-accent) 24%, #15181c); border-color: var(--c-accent); }

@media (prefers-reduced-motion: reduce) {
	.bcm-card, .bcm-card__btn, .bcm-card__btn::after { transition: none; }
	.bcm-card:hover { transform: none; }
}

/* ===================== Subtle, restrained global polish ===================== */
/* Smooth transitions on interactive elements (both modes) */
a, .vc_general.vc_btn3, .wpforms-submit, button { transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease; }
/* Soften WPBakery button corners site-wide for a calmer, 2026 feel */
.vc_general.vc_btn3 { border-radius: 9px !important; }
@media (prefers-reduced-motion: reduce) { a, .vc_general.vc_btn3, .wpforms-submit, button { transition: none; } }

/* Trademark disclaimer asterisk (AE33 / microAeth third-party marks) */
.bcm-tm { font-size: .68em; line-height: 0; vertical-align: super; margin-left: 1px; }
.bcm-tm a { color: #2196f3; text-decoration: none; font-weight: 700; padding: 0 3px; }
.bcm-tm a:hover { text-decoration: underline; text-underline-offset: 2px; }
.bcm-tm a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 2px; }
html[data-theme="dark"] .bcm-tm a { color: #5b9bff; }

/* ============================ jdt-style footer ============================ */
/* Hide Kale's native footer (replaced by .bcm-footer) */
.footer-widgets, .footer[role="contentinfo"] { display: none !important; }

.bcm-footer {
	--f-bg: #fafbfc; --f-line: #e8eaed; --f-text: #344054; --f-muted: #667085; --f-head: #101828; --f-accent: #175cd3;
	border-top: 1px solid var(--f-line); background: var(--f-bg);
	padding: 56px 0 30px; font-family: 'Lato', system-ui, -apple-system, sans-serif;
}
.bcm-footer *, .bcm-footer *::before, .bcm-footer *::after { box-sizing: border-box; }
.bcm-footer__inner { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.bcm-footer__top { display: grid; grid-template-columns: 1.5fr auto auto; gap: 48px; align-items: start; }
.bcm-footer__brand { max-width: 400px; }
.bcm-footer__logo { display: inline-block; font-family: 'Montserrat', sans-serif; font-size: 22px; font-weight: 700; color: var(--f-head); text-decoration: none; margin-bottom: 14px; }
.bcm-footer__desc { font-size: 14px; line-height: 1.6; color: var(--f-muted); margin: 0 0 14px; }
.bcm-footer__disclaimer { font-size: 11.5px; line-height: 1.55; color: var(--f-muted); margin: 0 0 18px; opacity: .82; }
.bcm-footer__disclaimer a { color: var(--f-muted); text-decoration: underline; text-underline-offset: 2px; }
.bcm-footer__disclaimer a:hover { color: var(--f-text); }
.bcm-footer__social a { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid var(--f-line); color: var(--f-muted); transition: color .15s ease, border-color .15s ease; }
.bcm-footer__social a:hover { color: var(--f-accent); border-color: var(--f-accent); }
.bcm-footer__social svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.bcm-footer__h { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--f-head); margin: 2px 0 15px; }
.bcm-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.bcm-footer__col a { display: inline-block; padding-block: 3px; font-size: 14px; color: var(--f-muted); text-decoration: none; white-space: nowrap; transition: color .15s ease; }
.bcm-footer__col a:hover { color: var(--f-text); }
.bcm-footer__bottom { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 18px; margin-top: 46px; padding-top: 24px; border-top: 1px solid var(--f-line); }
.bcm-footer__copy { font-size: 13px; line-height: 1.5; color: var(--f-muted); margin: 0; max-width: 780px; }
.bcm-footer__copy small { display: block; margin-top: 7px; font-size: 11.5px; line-height: 1.55; opacity: .85; }
.bcm-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.bcm-footer__legal a { display: inline-block; padding-block: 3px; font-size: 12.5px; color: var(--f-muted); text-decoration: none; }
.bcm-footer__legal a:hover { color: var(--f-text); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 900px) { .bcm-footer__top { grid-template-columns: 1fr 1fr; gap: 34px; } .bcm-footer__brand { grid-column: 1 / -1; max-width: none; } }
@media (max-width: 600px) { .bcm-footer__top { grid-template-columns: 1fr; gap: 28px; } .bcm-footer__bottom { flex-direction: column; } }
html[data-theme="dark"] .bcm-footer { --f-bg: #0c0e11; --f-line: rgba(255,255,255,.08); --f-text: #e7eaef; --f-muted: #98a2b3; --f-head: #f2f4f7; --f-accent: #9cc2ff; }
/* Beat dark.css's global `a → accent` rule so footer links stay muted (jdt style) */
html[data-theme="dark"] .bcm-footer a { color: var(--f-muted); }
html[data-theme="dark"] .bcm-footer .bcm-footer__logo { color: var(--f-head); }
html[data-theme="dark"] .bcm-footer .bcm-footer__col a:hover,
html[data-theme="dark"] .bcm-footer .bcm-footer__legal a:hover { color: var(--f-text); }
html[data-theme="dark"] .bcm-footer .bcm-footer__social a { color: var(--f-muted); }
html[data-theme="dark"] .bcm-footer .bcm-footer__social a:hover { color: var(--f-accent); border-color: var(--f-accent); }
@media (prefers-reduced-motion: reduce) { .bcm-footer__social a, .bcm-footer__col a { transition: none; } }
