/* ==========================================================================
   Site overrides — loaded after style.css (never edit the minified theme)
   ========================================================================== */

/* ==========================================================================
   Footer refinement — calmer hierarchy, tighter rhythm
   Scoped to <footer data-bs-theme="dark">. Specificity notes inline: the
   theme rules being beaten are `.nav.flex-column:not(.nav-pills) .nav-link`
   (0,4,0) and `[data-bs-theme=dark] .nav` (0,2,0).
   ========================================================================== */

/* --- Group headings: small tracked-caps labels ------------------------- */
footer .footer-heading {
	font-family: "Nunito Sans", sans-serif;
	font-size: .8125rem;              /* 13px */
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: rgba(255, 255, 255, .55);  /* 5.8:1 on #202124 */
	margin: 0 0 .875rem;
}
footer .footer-heading:not(:first-child) {
	margin-top: 2.25rem;              /* gap between stacked groups */
}

/* --- Links: size/weight/colour via the theme's own tokens -------------- */
/* footer[data-bs-theme=dark] outranks the theme's dark-mode .nav token */
footer[data-bs-theme=dark] .nav {
	--bs-nav-link-font-size: .875rem; /* 14px */
	--bs-nav-link-font-weight: 400;
	--bs-nav-link-color: rgba(255, 255, 255, .65);  /* 7.7:1 */
	--bs-nav-link-hover-color: #ff9933;             /* 7.6:1 */
	line-height: 1.45;                /* inherited by .nav-link */
}

/* Padding is hard-coded by the theme at (0,4,0); mirror-and-raise to win */
footer .nav.flex-column:not(.nav-pills) .nav-link {
	padding: .3125rem 0;              /* ~30px row pitch */
}
footer .nav .nav-link:focus-visible {
	color: #ff9933;
	outline: 2px solid #ff9933;
	outline-offset: 2px;
	border-radius: 2px;
}

/* "Free" badge — scale down with the new link size */
footer a.nav-link .badge {
	font-size: .65em;
	padding: .3em .55em;
	vertical-align: middle;
}

/* --- Brand column ------------------------------------------------------ */
footer .footer-brand p:not(.small) {
	font-size: 1rem;                  /* blurb, down from 1.2rem body size */
	line-height: 1.6;
}
footer .footer-brand .small {
	font-size: .875rem;               /* company name + address */
	line-height: 1.7;
	color: rgba(255, 255, 255, .55);  /* 5.8:1 */
}
footer .footer-brand .small strong {
	font-weight: 600;
	color: rgba(255, 255, 255, .78);  /* 10.2:1 — name leads, address recedes */
}

/* --- Legal bar --------------------------------------------------------- */
footer hr {
	border-top-color: rgba(255, 255, 255, .08);  /* quiet hairline */
	opacity: 1;
}
footer .footer-copyright {
	font-size: .8125rem;              /* 13px */
	line-height: 1.5;
	color: rgba(255, 255, 255, .55);  /* 5.8:1 on #202124 */
}

/* Registration numbers: one wrapping line of nowrap label-value pairs.
   Gap-separated (no middots) so wrapped lines never dangle a separator. */
footer .footer-regs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;          /* centred on phones, like the bar */
	column-gap: 1.25rem;
	row-gap: .125rem;
	margin-top: .375rem;
	font-size: .75rem;                /* 12px legal furniture */
	line-height: 1.6;
	color: rgba(255, 255, 255, .5);   /* 5.0:1 */
}
footer .footer-regs strong {
	font-weight: 600;
	color: rgba(255, 255, 255, .62);  /* ~7:1 — labels findable, values quiet */
}
@media (min-width: 768px) {
	footer .footer-regs {
		justify-content: flex-start;
	}
}

/* --- Social icons: ghost circles, orange fill on hover ----------------- */
/* Theme hard-codes .btn-light bg/border/colour, so override the properties
   directly; hover/active need own rules — the resting rule (0,2,1) would
   otherwise outrank .btn:hover (0,2,0) and the (0,3,0) active selectors. */
footer .btn-icon.btn-light {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 50%;
	color: rgba(255, 255, 255, .65);  /* icon 7.7:1 */
}
footer .btn-icon.btn-light:hover,
footer .btn-icon.btn-light:active {
	background: #ff9933;
	border-color: #ff9933;
	color: #202124;                   /* 7.6:1 on the orange fill */
}
footer .btn-icon.btn-light:focus-visible {
	outline: 2px solid #ff9933;
	outline-offset: 2px;
}

/* ==========================================================================
   Accessibility overrides (Phase 2.8)
   ========================================================================== */

/* --- Keyboard focus: the theme ships :focus-visible{outline:0!important},
   removing focus indication sitewide. #B4740F passes the 3:1 non-text
   contrast bar on BOTH the white and #202124 grounds. ------------------- */
:focus-visible {
	outline: 2px solid #B4740F !important;
	outline-offset: 2px;
}

/* Form fields: the theme swaps the outline for a 10%-opacity drop shadow.
   Give focused fields a visible border + ring instead. */
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
	border-color: #B4740F;
	box-shadow: 0 0 0 3px rgba(180, 116, 15, .25);
}

/* --- Colour contrast -------------------------------------------------- */
/* Primary buttons: white on #ff9933 is 2.13:1. Ink text keeps the brand
   orange untouched and reads at 8.65:1 (5.6:1 on the hover orange). */
.btn-primary {
	--bs-btn-color: #121418;
	--bs-btn-hover-color: #121418;
	--bs-btn-active-color: #121418;
}

/* Bootstrap secondary text: raise the token alpha so small muted text
   (review-card sources etc.) reaches 4.9:1 on white */
:root {
	--bs-secondary-color: rgba(96, 98, 97, .9);
}

/* Amber eyebrow on the secondary plan card: 2.64:1 -> 4.58:1 */
.hm-secondary-plan-eyebrow {
	color: #96660F;
}

/* Orange and grey badges: white text fails on both */
.badge.bg-primary {
	color: #121418;
}
.badge.bg-secondary {
	background-color: #5f6165 !important; /* 6.3:1 with white text (was #85878a at 3.6:1) */
}

/* Buttons: the theme's own .btn:focus-visible outranks the bare rule above */
.btn:focus-visible {
	outline: 2px solid #B4740F !important;
	outline-offset: 2px;
	box-shadow: none;
}
