/*
	Seamless Accounting & Consultancy — Custom Styles
	Brand: Navy #1c3d6e | Green #6abf2e | White #ffffff
*/

/* Ensure tel input matches text/email input sizing */
#footer input[type="tel"] {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 12px !important;
  line-height: 16px !important;
  height: 46px !important;
}

/* ─── Template decoration overrides ──────────────────────────────────────── */

/* Suppress the template's grey vertical line through sections */
#header:before, #header:after,
#main:before, #main:after,
#footer:before, #footer:after {
	display: none !important;
}

/* Reduce the template's 6em top padding on #main — creates a dead white gap */
#main {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Remove template's white-bg padding on section headers */
#main header.major,
#main footer.major {
	background: transparent;
}

/* Kill the template's grey 1px "connector" rules (border + ::before/::after).
   They read as broken grey lines on the dark CTA banner and footer. */
#main > footer.major,
#footer header.major {
	border-top: none !important;
	border-bottom: none !important;
}
#main > footer.major::before, #main > footer.major::after,
#footer header.major::before, #footer header.major::after {
	display: none !important;
}

/* The template adds margin/padding to .major — collapse it */
#services header.major.container.medium {
	padding-top: 3em;
	padding-bottom: 1.5em !important;
	/* Template applies a 6em (112px) margin-bottom that, with the grid's own
	   top padding, left a ~219px void above the cards. Collapse it. */
	margin-bottom: 0 !important;
	/* Remove the template's grey connector lines (top/bottom border + pseudos) */
	border-top: none !important;
	border-bottom: none !important;
}
#services header.major.container.medium::before,
#services header.major.container.medium::after {
	display: none !important;
}

/* ─── Brand Colour Variables ─────────────────────────────────────────────── */

:root {
	--navy:       #1c3d6e;
	--navy-dark:  #142d52;
	--navy-mid:   #244880;
	--green:      #6abf2e;
	--green-dark: #57a020;
	--white:      #ffffff;
	--grey-light: #f5f7fa;
	--grey-mid:   #e2e8f0;
	--text:       #374151;
	--text-light: #6b7280;
}

/* ─── Typography ──────────────────────────────────────────────────────────── */

body, input, select, textarea {
	font-family: 'Source Sans Pro', sans-serif;
	color: var(--text);
}

h1, h2, h3, h4, h5, h6 {
	color: var(--navy);
	letter-spacing: 0.02em;
	text-transform: none;
}

a { color: var(--green-dark); }
a:hover { color: var(--navy); }

/* ─── Buttons ─────────────────────────────────────────────────────────────── */

/* Green primary — hardcoded to beat #header .button specificity */
#header .button.primary,
.button.primary {
	background-color: #6abf2e !important;
	background-image: none !important;
	color: #ffffff !important;
	box-shadow: none !important;
}
#header .button.primary:hover,
.button.primary:hover {
	background-color: #57a020 !important;
	background-image: none !important;
}

/* Ghost alt button for hero */
#header .button.alt,
.button.alt {
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: inset 0 0 0 2px rgba(255,255,255,0.5) !important;
	color: #ffffff !important;
}
#header .button.alt:hover,
.button.alt:hover {
	box-shadow: inset 0 0 0 2px rgba(255,255,255,0.9) !important;
	background-color: rgba(255,255,255,0.08) !important;
}

/* Footer & main submit */
#footer input[type="submit"],
#main input[type="submit"] {
	background-color: #6abf2e !important;
	background-image: none !important;
	color: #ffffff !important;
}
#footer input[type="submit"]:hover,
#main input[type="submit"]:hover {
	background-color: #57a020 !important;
}

/* ─── Sticky Nav ──────────────────────────────────────────────────────────── */

/* Template sets html/body to height:100%, which caps the sticky nav's
   containing block so it unsticks after one screen. Let them grow. */
html, body { height: auto !important; }

.nav-bar {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(20, 45, 82, 0.97);
	backdrop-filter: blur(8px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.85em 2em;
	box-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.nav-logo {
	height: 56px;
	width: auto;
	/* Match the hero logo: white backing so the artwork has breathing room */
	background: #ffffff;
	box-sizing: border-box;
	padding: 6px 12px;
	border-radius: 8px;
}
.nav-links {
	display: flex;
	gap: 1.8em;
	list-style: none;
	margin: 0; padding: 0;
	align-items: center;
}
.nav-links a {
	color: rgba(255,255,255,0.8);
	text-decoration: none;
	border: none;
	font-size: 0.78em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	transition: color 0.2s;
}
.nav-links a:hover { color: #6abf2e; }
.nav-cta {
	background: #6abf2e !important;
	color: #ffffff !important;
	padding: 0.45em 1.1em;
	border-radius: 4px;
}
.nav-cta:hover { background: #57a020 !important; }

/* Hamburger toggle — hidden on desktop, shown on mobile */
.nav-toggle {
	display: none;
	background: transparent;
	border: none;
	color: #ffffff;
	font-size: 1.4em;
	line-height: 1;
	cursor: pointer;
	padding: 0.2em 0.35em;
}
.nav-toggle:hover { color: #6abf2e; }

/* ─── Hero / Header ───────────────────────────────────────────────────────── */

#header {
	background: linear-gradient(160deg, #142d52 0%, #1c3d6e 55%, #1a4580 100%) !important;
	padding: 4.5em 2em 4em;
	text-align: center;
	position: relative;
	overflow: hidden;
}

#header::before, #header::after { display: none !important; }

/* Subtle radial accent */
#header .hero-inner::before {
	content: '';
	position: absolute;
	width: 600px; height: 600px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(106,191,46,0.07) 0%, transparent 70%);
	top: -100px; right: -100px;
	pointer-events: none;
}

.hero-inner {
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin: 0 auto;
}

/* Logo: smaller, clean white badge with shadow */
.site-logo {
	max-width: 220px;
	width: 60%;
	height: auto;
	margin-bottom: 1.5em;
	display: inline-block;
	/* White padding so the logo artwork has breathing room inside the badge */
	background: #ffffff;
	box-sizing: border-box;
	padding: 12px 20px;
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0,0,0,0.28);
}

/* Kicker line above headline */
.hero-kicker {
	display: inline-block;
	background: rgba(106,191,46,0.18);
	border: 1px solid rgba(106,191,46,0.4);
	color: #a8e06a;
	font-size: 0.72em;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.35em 1em;
	border-radius: 20px;
	margin-bottom: 2em !important;
}

#header h1 {
	color: #ffffff;
	font-size: 2.8em;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin-bottom: 1em;
	text-transform: none;
	text-align: center;
	text-wrap: balance;
}

.hero-sub {
	color: rgba(255,255,255,0.82);
	font-size: 1.1em;
	line-height: 1.65;
	max-width: 560px;
	margin: 0 auto 2.8em !important;
	/* Balance line lengths so phrases don't split awkwardly or orphan a word */
	text-wrap: balance;
}

/* CTA group: buttons side by side */
.hero-cta-group {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.9em;
	margin-bottom: 1em;
}

.hero-cta-group .button {
	min-width: 13em;
}

.hero-phone-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
}

.hero-reassurance {
	color: rgba(255,255,255,0.62);
	font-size: 0.78em;
	letter-spacing: 0.04em;
	margin: 0;
}

/* ─── Trust Bar ───────────────────────────────────────────────────────────── */

.trust-bar {
	background: var(--navy-dark);
	border-bottom: 1px solid rgba(255,255,255,0.08);
	padding: 1.1em 0;
}

.trust-bar-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0;
}

.trust-item {
	display: flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.4em 1em;
	color: rgba(255,255,255,0.75);
	font-size: 0.78em;
	white-space: nowrap;
	flex-shrink: 1;
	min-width: 0;
}

.trust-item strong {
	color: #ffffff;
}

.trust-icon {
	color: #6abf2e;
	font-size: 1em;
}

.trust-divider {
	width: 1px;
	height: 1.2em;
	background: rgba(255,255,255,0.15);
	flex-shrink: 0;
}

/* ─── Section headers ─────────────────────────────────────────────────────── */

#main .major h2 {
	color: var(--navy);
	font-size: 2.3em;
	font-weight: 700;
}

/* Override template's uppercase treatment of .major p */
#main .major p,
header.major p,
.section-intro {
	color: var(--text-light);
	font-size: 1.05em;
	max-width: 580px;
	margin: 0 auto;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-weight: 400 !important;
	/* Template adds a grey top border/connector to .major paragraphs */
	border-top: none !important;
}
#main .major p::before,
header.major p::before {
	display: none !important;
}

/* ─── Services Grid ───────────────────────────────────────────────────────── */

#services {
	padding: 0 0 3em;
	background: var(--white);
}

/* Reduce the massive gtr-50 gutter across all content rows */
#services .row.gtr-50,
#testimonials .row.gtr-50,
.why-us-row.row.gtr-50 {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
#services .row.gtr-50 > [class*="col-"],
#testimonials .row.gtr-50 > [class*="col-"],
.why-us-row.row.gtr-50 > [class*="col-"] {
	padding-top: 0.75em !important;
	padding-bottom: 0.75em !important;
}

.services-grid {
	margin-top: 0;
	padding-top: 0 !important;
}

/* 10 cards in a 4-col grid leaves a lopsided final row (4+4+2).
   Centering the flex row balances the orphaned last row; full rows are
   unaffected because they already fill the width. */
.services-grid .row {
	justify-content: center;
}

.service-card {
	position: relative;
	background: var(--white);
	border: 1px solid var(--grey-mid);
	border-radius: 10px;
	padding: 2em 1.7em;
	height: 100%;
	overflow: hidden;
	transition: box-shadow 0.25s, transform 0.25s, border-color 0.25s;
	box-shadow: 0 1px 6px rgba(0,0,0,0.05);
	/* LEFT-ALIGNED for readability */
	text-align: left;
}

/* Green accent bar across the top that grows in on hover */
.service-card::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: #6abf2e;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.28s ease;
}

.service-card:hover {
	box-shadow: 0 14px 34px rgba(28,61,110,0.14);
	transform: translateY(-4px);
	border-color: #c7e3ad;
}

.service-card:hover::before { transform: scaleX(1); }

/* Icon sits in a tinted brand chip rather than floating loose */
.service-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6em;
	height: 2.6em;
	border-radius: 10px;
	background: rgba(106,191,46,0.12);
	font-size: 1.4em;
	color: #57a020;
	margin-bottom: 0.9em;
}

.service-card h3 {
	font-size: 1.1em;
	font-weight: 700;
	color: var(--navy);
	margin-bottom: 0.55em;
	letter-spacing: 0.01em;
	/* Override template ALL-CAPS */
	text-transform: none !important;
	text-align: left;
}

.service-card p {
	font-size: 0.88em;
	line-height: 1.65;
	color: var(--text-light);
	margin: 0;
	text-align: left;
}

/* ─── Testimonials ────────────────────────────────────────────────────────── */

.testimonials-section {
	background: var(--grey-light);
	padding: 4em 0;
}

.testimonials-section .major h2 {
	color: var(--navy);
	font-size: 2.3em;
	font-weight: 700;
	margin-bottom: 1.5em;
	text-align: center;
}

.testimonials-section .major {
	text-align: center;
	margin-bottom: 0;
	/* Remove the template's grey connector lines (top/bottom border + pseudos)
	   and the heavy 52px padding around the heading. */
	border-top: none !important;
	border-bottom: none !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.testimonials-section .major::before,
.testimonials-section .major::after {
	display: none !important;
}

.testimonial-card {
	background: var(--white);
	border-radius: 8px;
	padding: 2em 1.8em;
	height: 100%;
	box-shadow: 0 2px 12px rgba(28,61,110,0.08);
	border: 1px solid var(--grey-mid);
	display: flex;
	flex-direction: column;
	text-align: left;
	transition: box-shadow 0.25s, transform 0.25s;
}

/* Subtle hover lift, consistent with the service cards */
.testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 34px rgba(28,61,110,0.14);
}

.testimonial-stars {
	color: #f59e0b;
	font-size: 1.1em;
	margin-bottom: 0.8em;
	letter-spacing: 0.1em;
}

.testimonial-card blockquote {
	border: none;
	padding: 0;
	font-style: italic;
	font-size: 0.92em;
	line-height: 1.7;
	color: var(--text);
	flex-grow: 1;
	margin-bottom: 1.2em;
}

.testimonial-card blockquote::before {
	content: '\201C';
	font-size: 3em;
	color: #6abf2e;
	line-height: 0;
	vertical-align: -0.5em;
	margin-right: 0.1em;
	opacity: 0.6;
}

.testimonial-author {
	border-top: 1px solid var(--grey-mid);
	padding-top: 1em;
}

.testimonial-author strong {
	display: block;
	color: var(--navy);
	font-size: 0.88em;
	font-weight: 700;
}

.testimonial-author span {
	display: block;
	font-size: 0.78em;
	color: var(--text-light);
	margin-top: 0.15em;
}

/* ─── Why Us Section ──────────────────────────────────────────────────────── */

#about { padding: 0; }

#about .box {
	background: var(--white);
	border: none;
	border-radius: 0;
	padding: 4em 2em 2.5em;
	margin-bottom: 0 !important;
	border-top: 1px solid var(--grey-mid);
}

#about header h2 {
	color: var(--navy);
	font-size: 2.3em;
	margin-bottom: 0.4em;
}

.why-us-row {
	margin-top: 2.5em;
	margin-bottom: 3em;
}

.why-card {
	text-align: left;
	padding: 0 0.5em;
}

.why-card .icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6em;
	height: 2.6em;
	border-radius: 10px;
	background: rgba(106,191,46,0.12);
	font-size: 1.3em;
	color: #57a020;
	margin-bottom: 0.8em;
}

.why-card h4 {
	font-size: 1.1em;
	font-weight: 700;
	color: var(--navy);
	margin-bottom: 0.5em;
	text-transform: none !important;
	letter-spacing: 0.01em;
	text-align: left;
}

.why-card p {
	font-size: 0.88em;
	line-height: 1.65;
	color: var(--text-light);
	margin: 0;
	text-align: left;
}

/* ─── Stats bar ───────────────────────────────────────────────────────────── */

.stats-row {
	border-top: 1px solid var(--grey-mid);
	padding-top: 2.5em;
}

.stat-block {
	text-align: center;
	padding: 1em;
	border-right: 1px solid var(--grey-mid);
}

.stat-block:last-child { border-right: none; }

.stat-number {
	display: block;
	font-size: 3.2em;
	font-weight: 800;
	color: var(--green-dark);
	line-height: 1;
	margin-bottom: 0.35em;
	letter-spacing: -0.02em;
}

.stat-label {
	display: block;
	font-size: 0.78em;
	color: var(--text-light);
	line-height: 1.5;
}

/* ─── CTA Banner ──────────────────────────────────────────────────────────── */

#main > footer.major {
	background: var(--navy);
	padding: 4em 2em;
	border-radius: 0;
	max-width: 100%;
	width: 100%;
	/* Template adds a large top margin; the stacked spacers left a ~310px void
	   between the stats and this banner. */
	margin-top: 0 !important;
}

#main > footer.major h3 {
	color: var(--white);
	font-size: 2.1em;
	font-weight: 700;
	text-transform: none;
	margin-bottom: 0.8em !important;
}

#main > footer.major p {
	color: rgba(255,255,255,0.78);
	text-transform: none !important;
	letter-spacing: normal !important;
	font-weight: 400 !important;
	font-size: 1em;
	margin-bottom: 2em !important;
}

.cta-reassurance {
	color: rgba(255,255,255,0.45) !important;
	font-size: 0.78em !important;
	letter-spacing: 0.04em !important;
	margin-top: 0.5em !important;
	margin-bottom: 0 !important;
}

/* ─── Footer / Contact ────────────────────────────────────────────────────── */

#footer {
	background: var(--navy-dark);
	color: rgba(255,255,255,0.75);
	padding: 4em 1.5em;
	/* Template pulls #footer up by -260px to meet a connector line we removed;
	   that overlap hid the "Get in Touch" heading behind the CTA banner. */
	margin-top: 0 !important;
	/* Green accent strip to separate the contact band from the CTA banner */
	border-top: 4px solid #6abf2e;
}

#footer h2 { color: var(--white); font-size: 2.3em; margin-bottom: 0.5em !important; }
/* Footer's own 4em top padding is enough; drop the header's extra padding */
#footer header.major.last { padding-top: 0 !important; }
#footer > .container.medium > p { color: rgba(255,255,255,0.7); margin-bottom: 2em !important; }

/* Collapse the massive default row gutter on form fields */
#footer form .row {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
#footer form .row > [class*="col-"] {
	padding-top: 0.5em !important;
	padding-bottom: 0.5em !important;
}

#footer input[type="text"],
#footer input[type="email"],
#footer input[type="tel"],
#footer textarea {
	background: rgba(255,255,255,0.06);
	border-color: rgba(255,255,255,0.15);
	color: var(--white);
	border-radius: 4px;
}

#footer input::placeholder,
#footer textarea::placeholder {
	color: rgba(255,255,255,0.38);
}

#footer input:focus,
#footer textarea:focus {
	border-color: #6abf2e;
	background: rgba(255,255,255,0.09);
}

/* Privacy reassurance under the contact form */
.form-privacy {
	text-align: center;
	color: rgba(255,255,255,0.5) !important;
	font-size: 0.82em !important;
	margin: 1.2em auto 0 !important;
	max-width: 30em;
}
.form-privacy .icon { color: #6abf2e; }

/* Contact details */
.contact-details {
	margin-top: 3em !important;
	margin-bottom: 2em;
	margin-left: 0 !important;
	margin-right: 0 !important;
	border-top: 1px solid rgba(255,255,255,0.1);
	padding-top: 2.5em;
}

.contact-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.6em;
	padding: 0.75em 1em;
	color: rgba(255,255,255,0.75);
}

.contact-item .icon {
	font-size: 1.4em;
	color: #6abf2e;
	margin-top: 0;
	flex-shrink: 0;
}

.contact-item strong {
	display: block;
	color: var(--white);
	font-size: 0.75em;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.2em;
}

.contact-item a {
	color: rgba(255,255,255,0.75);
	border-bottom: none;
	font-size: 0.95em;
}

.contact-item a:hover { color: #6abf2e; }

/* Social icons */
#footer ul.icons li a {
	color: rgba(255,255,255,0.35);
	border-color: rgba(255,255,255,0.12);
}
#footer ul.icons li a:hover {
	color: var(--white);
	border-color: var(--white);
}

#footer ul.copyright {
	color: rgba(255,255,255,0.3);
	font-size: 0.8em;
}
#footer ul.copyright a { color: rgba(255,255,255,0.3); }

/* ─── Responsive ──────────────────────────────────────────────────────────── */

@media screen and (max-width: 980px) {
	#header h1 { font-size: 2.2em; }
	.trust-divider { display: none; }
	.trust-item { padding: 0.3em 0.6em; font-size: 0.72em; }
	.nav-links { gap: 1.2em; }
	.nav-links a { font-size: 0.72em; }
}

@media screen and (max-width: 640px) {
	.nav-toggle { display: inline-flex; align-items: center; justify-content: center; }

	/* Collapse the links into a dropdown panel below the bar */
	.nav-links { display: none; }
	.nav-bar.nav-open .nav-links {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		gap: 0;
		background: var(--navy-dark);
		padding: 0.5em 1.5em 1.1em;
		box-shadow: 0 10px 24px rgba(0,0,0,0.35);
		border-top: 1px solid rgba(255,255,255,0.08);
	}
	.nav-bar.nav-open .nav-links li { width: 100%; }
	.nav-bar.nav-open .nav-links a {
		display: block;
		padding: 0.85em 0;
		font-size: 0.95em;
		border-bottom: 1px solid rgba(255,255,255,0.07);
	}
	.nav-bar.nav-open .nav-links .nav-cta {
		text-align: center;
		border-bottom: none;
		margin-top: 0.7em;
		padding: 0.85em 1.1em;
	}
}

@media screen and (max-width: 840px) {
	.hero-cta-group { flex-direction: column; align-items: center; }
	.hero-cta-group .button { width: 90%; max-width: 320px; }
	/* The CTA section is a .container.medium with extra side padding, leaving
	   its button group ~32px narrower than the hero's — enough to wrap the
	   "Book a Free Consultation" label. Use full width here so it matches the
	   hero and stays on one line. */
	#main > footer.major .hero-cta-group .button { width: 100%; max-width: 340px; }
}

@media screen and (max-width: 736px) {
	#header { padding: 3em 1.5em 3em; }
	#header h1 { font-size: 1.85em; }
	.hero-sub { font-size: 0.98em; }
	.site-logo { max-width: 200px; margin-bottom: 1.2em; }
	.trust-bar { padding: 0.6em 0; }
	.trust-item { font-size: 0.72em; padding: 0.25em 0.6em; }

	/* Keep the centered icon-above-text layout (same as desktop) on mobile */
	.contact-item {
		padding: 0.8em 0;
	}

	/* Stats block full-width on mobile */
	.stats-row .col-4 { border-right: none; border-bottom: 1px solid var(--grey-mid); padding-bottom: 1.2em; }
	.stats-row .col-4:last-child { border-bottom: none; }

	/* Testimonials full width on mobile */
	.testimonial-card { margin-bottom: 1.5em; }

	#main > footer.major { padding: 3em 1.5em; }
}

@media screen and (max-width: 480px) {
	#header h1 { font-size: 1.6em; }
	.trust-item { white-space: normal; text-align: center; }
	.trust-bar-inner { flex-direction: column; gap: 0.2em; }
	.trust-divider { display: none; }
	.hero-kicker {
		font-size: 0.62em;
		letter-spacing: 0.08em;
		white-space: normal;
		max-width: 90%;
	}
}

/* ─── Polish: button micro-interactions & focus states ───────────────────── */

/* Smooth lift/press on buttons (they previously only changed colour) */
.button,
#footer input[type="submit"],
#main input[type="submit"],
.nav-cta {
	transition: background-color 0.2s ease, color 0.2s ease,
		transform 0.15s ease, box-shadow 0.2s ease !important;
}

.button.primary:hover,
#footer input[type="submit"]:hover,
#main input[type="submit"]:hover,
.nav-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(106,191,46,0.32) !important;
}

.button.alt:hover {
	transform: translateY(-2px);
}

.button:active,
#footer input[type="submit"]:active,
#main input[type="submit"]:active,
.nav-cta:active {
	transform: translateY(0);
	box-shadow: none !important;
}

/* Visible keyboard focus for accessibility (mouse clicks unaffected) */
a:focus-visible,
.button:focus-visible,
.nav-cta:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 2px solid #6abf2e;
	outline-offset: 2px;
}

/* ─── Text-wrap polish: balanced headings & paragraphs, no orphans ────────── */

/* Headings: balance line lengths so they break evenly */
h1, h2, h3, h4, h5, h6 {
	text-wrap: balance;
}

/* Short, centred intros, labels & reassurance lines: balance for even lines */
#main .major p,
header.major p,
.section-intro,
#main > footer.major p,
#footer > .container.medium > p,
.stat-label,
.hero-reassurance,
.form-privacy {
	text-wrap: balance;
}

/* Longer / left-aligned copy: 'pretty' avoids a lone orphaned word on the
   final line without forcing fully equal lines */
.service-card p,
.why-card p,
.testimonial-card blockquote {
	text-wrap: pretty;
}
