/* Binary Elements public design system (be-design-system public/), applied to this site's existing classes.
   Loaded last. Tokens come from be-public-tokens.css. Two buttons only: primary (red fill) and secondary (white outline), both pills. */

body { color: var(--ink); }

/* primary: the one action a section exists for */
.btn.cta-btn,
.btn.cta-btn.fs-20,
.error-404 .btn.btn-primary,
.enquiry-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-8);
	font: 500 1rem/1.5 var(--font-sans);
	letter-spacing: normal;
	text-transform: none;
	padding: 11px 24px;
	border: 1px solid var(--accent);
	border-radius: var(--radius-pill);
	background-color: var(--accent) !important;
	color: var(--bright) !important;
	transition: background-color .15s, border-color .15s;
}
.btn.cta-btn:hover,
.error-404 .btn.btn-primary:hover,
.enquiry-submit:hover:not(:disabled) {
	background-color: var(--accent-hover) !important;
	border-color: var(--accent-hover);
	color: var(--bright) !important;
}

/* secondary: everything else */
.btn.btn-outline-light,
.btn.btn-outline-light.hero-btn-small,
.btn.btn-outline-light.btn-lg {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-8);
	font: 500 1rem/1.5 var(--font-sans);
	padding: 11px 24px;
	border: 1px solid var(--bright);
	border-radius: var(--radius-pill);
	background-color: transparent;
	color: var(--bright);
	transition: background-color .15s, color .15s;
}
.btn.btn-outline-light.btn-sm,
.btn.btn-outline-light.hero-btn-small {
	font-size: .875rem;
	padding: 7px 16px;
}
.btn.btn-outline-light:hover,
.btn.btn-outline-light.hero-btn-small:hover {
	background-color: var(--bright);
	border-color: var(--bright);
	color: var(--bg);
}

.btn.cta-btn:focus-visible,
.btn.btn-outline-light:focus-visible,
.enquiry-submit:focus-visible {
	outline: 2px solid var(--focus);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.btn.cta-btn, .btn.btn-outline-light, .enquiry-submit { transition: none; }
}

/* Footer (components/footer-ver-r4.njk), public design system. */
.ft { border-top:1px dashed var(--line); background:var(--bg); color:var(--ink); }
.ft a { color:var(--ink) !important; text-decoration:none !important; }
.ft a:hover { color:var(--bright) !important; }
.ft-inner { max-width:1260px; margin:0 auto; padding:72px 32px 56px; display:grid; grid-template-columns:minmax(0, 300px) minmax(0, 1fr); gap:64px; border-left:1px dashed var(--line); border-right:1px dashed var(--line); }
.ft-logo img { height:30px; width:auto; display:block; }
.ft-line { margin:20px 0 28px; font-size:.95rem; line-height:1.55; }
.ft-contact { display:grid; gap:14px; margin:0 0 28px; }
.ft-contact dd { margin:4px 0 0; font-size:.95rem; color:var(--bright); }
.ft-contact dd a { color:var(--bright) !important; border-bottom:1px solid var(--line); }
.ft .bp-btn { color:var(--bright) !important; }
.ft-cols { display:grid; grid-template-columns:1.2fr 1fr 1.25fr .9fr 1fr; gap:32px; }
.ft-title { font:500 1rem/1.3 var(--font-sans); color:var(--bright); margin:0 0 16px; }
.ft-group { margin:18px 0 8px; font-size:.62rem; }
.ft-col .ft-title + .ft-group { margin-top:0; }
.ft-col ul { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.ft-col li a { font-size:.9rem; line-height:1.35; }
.ft-col li a span { font-size:.75em; color:var(--muted); }
.ft-base { border-top:1px dashed var(--line); }
.ft-base-inner { max-width:1260px; margin:0 auto; padding:18px 32px; display:flex; flex-wrap:wrap; gap:12px 24px; justify-content:space-between; align-items:center; font-size:.82rem; color:var(--muted); border-left:1px dashed var(--line); border-right:1px dashed var(--line); }
.ft-base-inner p { margin:0; font-family:var(--font-mono); font-size:.75rem; letter-spacing:.02em; }
.ft-social { list-style:none; margin:0; padding:0; display:flex; gap:20px; }
.ft-social a { display:inline-flex; align-items:center; gap:6px; font-size:.85rem; }
@media (max-width: 1100px) { .ft-inner { grid-template-columns:1fr; gap:48px; } .ft-cols { grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .ft-inner, .ft-base-inner { padding-left:16px; padding-right:16px; border-left:0; border-right:0; } .ft-cols { grid-template-columns:1fr 1fr; gap:32px 20px; } .ft-col--products { grid-column:1 / -1; } }
.ft nav.ft-cols { padding:0 !important; margin:0 !important; }
.ft-col li { line-height:1.35; margin:0; }
.ft-col li a { display:inline-block; line-height:1.35 !important; }
.ft-col ul { gap:10px; }
