/* Front page blocks: shared tokens */
:root {
	--brand-surface: hsl(40, 20%, 95%);
	--brand-amber: hsl(38, 92%, 50%);
	--brand-amber-foreground: hsl(220, 20%, 14%);
	--brand-amber-soft: hsla(38, 92%, 50%, 0.1);
	--brand-dark: #1d212b;
	--brand-dark-elevated: #262b36;
	--brand-gold: hsl(38, 92%, 50%);
	--brand-gold-70: hsla(38, 92%, 50%, 0.7);
	--brand-gold-80: hsla(38, 92%, 50%, 0.8);
	--foreground: hsl(220, 20%, 14%);
	--muted-foreground: hsl(220, 10%, 45%);
	--border: hsl(220, 13%, 90%);
	--background: #ffffff;
	--cream: #f5f4f2;
	--gold: hsl(38, 92%, 50%);
	--gold-30: hsla(38, 92%, 50%, 0.3);
	--charcoal: hsl(220, 20%, 14%);
	--charcoal-light: hsl(220, 15%, 22%);
	--font-heading: 'Bebas Neue', sans-serif;
	--font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--radius: 0.375rem;
	--shadow-soft: 0 4px 20px -4px hsla(220, 20%, 14%, 0.1);
	--shadow-gold: 0 8px 30px -6px hsla(38, 92%, 50%, 0.3);
	--warm-white: hsl(40, 30%, 98%);
	--warm-muted: hsl(40, 10%, 75%);
	--border-soft: rgba(255, 255, 255, 0.10);
	--surface-elevated-40: rgba(38, 43, 54, 0.40);
	--container-max: 80rem;
	--radius-md: 0.375rem;
}

.legalcore-front-page,
.legalcore-front-page * {
	box-sizing: border-box;
}

/* --- BLOCK 1 STYLES: Virtual Legal Assistant Services --- */
.vla {
	background-color: var(--brand-surface);
	padding: 5rem 0;
}

@media (min-width: 768px) {
	.vla {
		padding: 7rem 0;
	}
}

.vla__container {
	width: 100%;
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 2rem;
	padding-right: 2rem;
}

.vla__header {
	max-width: 48rem;
}

.vla__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 3rem;
	line-height: 1;
	font-weight: 400;
	letter-spacing: 0.02em;
	color: var(--foreground);
}

.vla__subtitle {
	margin: 1rem 0 0;
	font-family: var(--font-body);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 600;
	color: var(--brand-amber);
}

.vla__intro {
	margin: 1.5rem 0 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.625;
	color: var(--muted-foreground);
}

@media (min-width: 768px) {
	.vla__title {
		font-size: 4.5rem;
	}

	.vla__subtitle {
		font-size: 1.5rem;
		line-height: 2rem;
	}

	.vla__intro {
		font-size: 1.125rem;
		line-height: 1.75rem;
	}
}

.vla__callout {
	margin-top: 2.5rem;
	border-radius: var(--radius);
	border-left: 4px solid var(--brand-amber);
	background-color: var(--brand-amber-soft);
	padding: 1.5rem;
	box-shadow: var(--shadow-soft);
}

@media (min-width: 768px) {
	.vla__callout {
		padding: 2rem;
	}
}

.vla__callout-row {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

@media (min-width: 768px) {
	.vla__callout-row {
		flex-direction: row;
		align-items: center;
		gap: 2rem;
	}
}

.vla__callout-stat {
	font-family: var(--font-heading);
	font-size: 3.75rem;
	line-height: 1;
	font-weight: 400;
	letter-spacing: 0.02em;
	color: var(--brand-amber);
}

@media (min-width: 768px) {
	.vla__callout-stat {
		font-size: 4.5rem;
	}
}

.vla__callout-text {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.625;
	color: hsla(220, 20%, 14%, 0.8);
}

@media (min-width: 768px) {
	.vla__callout-text {
		font-size: 1.125rem;
	}
}

.vla__cta {
	margin-top: 2.5rem;
	display: flex;
	justify-content: center;
}

#virtual-legal-assistant-services .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	white-space: nowrap;
	border-radius: var(--radius);
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
	cursor: pointer;
	border: none;
}

#virtual-legal-assistant-services .btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--brand-amber);
}

#virtual-legal-assistant-services .btn--amber {
	background-color: var(--brand-amber);
	color: var(--brand-amber-foreground);
	height: 2.75rem;
	padding: 0 2rem;
	box-shadow: var(--shadow-gold);
}

#virtual-legal-assistant-services .btn--amber:hover {
	background-color: hsl(38, 90%, 45%);
}

.vla__stats {
	margin-top: 4rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 640px) {
	.vla__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 768px) {
	.vla__stats {
		gap: 1.5rem;
	}
}

@media (min-width: 1024px) {
	.vla__stats {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.vla__stat {
	border-radius: var(--radius);
	border: 1px solid var(--border);
	background-color: var(--background);
	padding: 1.5rem;
	text-align: center;
	box-shadow: var(--shadow-soft);
}

.vla__stat-value {
	font-family: var(--font-heading);
	font-size: 2.5rem;
	line-height: 1;
	font-weight: 400;
	letter-spacing: 0.02em;
	color: var(--brand-amber);
}

@media (min-width: 768px) {
	.vla__stat-value {
		font-size: 3rem;
	}
}

.vla__stat-label {
	margin-top: 0.5rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	line-height: 1.375;
	color: var(--muted-foreground);
}

/* --- BLOCK 2 STYLES: Pain Points --- */
.pain-section {
	--pain-bg: #1d212b;
	--pain-fg: hsl(40, 30%, 98%);
	--pain-muted: hsl(220, 10%, 70%);
	--pain-eyebrow: hsl(220, 8%, 60%);
	background: var(--pain-bg);
	color: var(--pain-fg);
}

.pain-container {
	max-width: 72rem;
	margin: 0 auto;
	padding: 5rem 1rem;
}

@media (min-width: 640px) {
	.pain-container {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (min-width: 768px) {
	.pain-container {
		padding-top: 7rem;
		padding-bottom: 7rem;
	}
}

@media (min-width: 1024px) {
	.pain-container {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.pain-header {
	max-width: 48rem;
}

.pain-eyebrow,
.pain-card-label {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pain-eyebrow);
}

@media (min-width: 640px) {
	.pain-eyebrow,
	.pain-card-label {
		font-size: 0.875rem;
	}
}

.pain-title {
	margin: 1rem 0 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 2.25rem;
	line-height: 1.05;
	letter-spacing: 0.025em;
	color: var(--pain-fg);
}

@media (min-width: 640px) {
	.pain-title {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.pain-title {
		font-size: 3.75rem;
	}
}

.pain-intro {
	margin: 1.5rem 0 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.625;
	color: var(--pain-muted);
}

@media (min-width: 640px) {
	.pain-intro {
		font-size: 1.125rem;
	}
}

.pain-cards {
	margin-top: 3.5rem;
}

@media (min-width: 768px) {
	.pain-cards {
		margin-top: 4rem;
	}
}

.pain-card-wrap + .pain-card-wrap {
	margin-top: 2.5rem;
}

.pain-card-label {
	margin-bottom: 0.75rem;
}

.pain-card {
	position: relative;
	overflow: hidden;
	background: var(--cream);
	border-radius: 0.125rem;
	padding: 1.5rem;
	box-shadow: 0 2px 24px -12px rgba(0, 0, 0, 0.5);
}

@media (min-width: 640px) {
	.pain-card {
		padding: 1.75rem 2.5rem 1.75rem 2rem;
	}
}

.pain-card-accent {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 3px;
	background: var(--gold);
}

.pain-card-title {
	margin: 0;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.4;
	color: var(--charcoal);
	letter-spacing: normal;
}

@media (min-width: 640px) {
	.pain-card-title {
		font-size: 1.25rem;
	}
}

.pain-card-body {
	margin: 0.5rem 0 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(29, 33, 43, 0.8);
}

@keyframes pain-fade-up {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.animate-fade-up {
	opacity: 0;
	animation: pain-fade-up 0.6s ease-out both;
	animation-delay: var(--delay, 0ms);
	animation-play-state: paused;
}

.pain-section.is-visible .animate-fade-up,
.pain-section.no-js .animate-fade-up {
	animation-play-state: running;
}

@media (prefers-reduced-motion: reduce) {
	.animate-fade-up {
		animation: none;
		opacity: 1;
	}
}

/* --- BLOCK 3 STYLES: What We Handle --- */
.wwh {
	background: var(--cream);
	color: var(--charcoal);
	padding: 4rem 0;
}

@media (min-width: 768px) {
	.wwh {
		padding: 6rem 0;
	}
}

.wwh__container {
	max-width: 72rem;
	margin: 0 auto;
	padding: 0 1.5rem;
}

@media (min-width: 1024px) {
	.wwh__container {
		padding: 0 2rem;
	}
}

.wwh__intro {
	max-width: 48rem;
}

.wwh__eyebrow {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--muted-foreground);
}

.wwh__title {
	margin: 0.75rem 0 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 2.25rem;
	line-height: 1.1;
	letter-spacing: 0.025em;
	color: var(--charcoal);
}

@media (min-width: 640px) {
	.wwh__title {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.wwh__title {
		font-size: 3.75rem;
	}
}

.wwh__lede {
	margin: 1.5rem 0 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.625;
	color: var(--charcoal-light);
}

@media (min-width: 768px) {
	.wwh__lede {
		font-size: 1.125rem;
	}
}

.wwh__grid {
	margin-top: 3.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
}

@media (min-width: 768px) {
	.wwh__grid {
		grid-template-columns: 1fr 1fr;
		column-gap: 4rem;
		row-gap: 3.5rem;
	}
}

.wwh__category-title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.2;
	letter-spacing: 0.05em;
	color: var(--gold);
}

@media (min-width: 640px) {
	.wwh__category-title {
		font-size: 1.875rem;
	}
}

.wwh__divider {
	height: 1px;
	width: 100%;
	background-color: var(--gold-30);
	margin-top: 0.5rem;
}

.wwh__list {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
}

.wwh__list > li + li {
	margin-top: 0.75rem;
}

.wwh__item {
	display: flex;
	gap: 0.75rem;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.625;
	color: var(--charcoal);
}

.wwh__bullet {
	flex-shrink: 0;
	color: var(--charcoal-light);
	margin-top: 0.1em;
}

@keyframes wwh-fade-up {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.wwh__intro,
.wwh__category {
	opacity: 0;
}

.wwh.wwh-ready .wwh__intro,
.wwh.wwh-ready .wwh__category {
	opacity: 0;
	animation: wwh-fade-up 0.6s ease-out both;
}

.wwh.wwh-ready .wwh__category[data-stagger-index="0"] {
	animation-delay: 120ms;
}

.wwh.wwh-ready .wwh__category[data-stagger-index="1"] {
	animation-delay: 220ms;
}

.wwh.wwh-ready .wwh__category[data-stagger-index="2"] {
	animation-delay: 320ms;
}

.wwh.wwh-ready .wwh__category[data-stagger-index="3"] {
	animation-delay: 420ms;
}

@media (prefers-reduced-motion: reduce) {
	.wwh__intro,
	.wwh__category,
	.wwh.wwh-ready .wwh__intro,
	.wwh.wwh-ready .wwh__category {
		opacity: 1;
		animation: none;
		transform: none;
	}
}

/* --- BLOCK 4 STYLES: Practice Areas and Simple Process --- */
.front-block-practice-process {
	background-color: var(--brand-dark);
	color: var(--warm-white);
	font-family: var(--font-body);
	min-height: 100vh;
}

.front-block-practice-process img,
.front-block-practice-process svg {
	display: block;
	max-width: 100%;
}

.fpp-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.fpp-section {
	padding: 4rem 1rem;
}

@media (min-width: 640px) {
	.fpp-section {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (min-width: 768px) {
	.fpp-section {
		padding-top: 6rem;
		padding-bottom: 6rem;
	}
}

@media (min-width: 1024px) {
	.fpp-section {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.fpp-container {
	max-width: var(--container-max);
	margin-left: auto;
	margin-right: auto;
}

.fpp-eyebrow {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--brand-gold-80);
	margin: 0 0 1rem;
}

@media (min-width: 640px) {
	.fpp-eyebrow {
		font-size: 0.875rem;
	}
}

.fpp-section-title {
	font-family: var(--font-heading);
	letter-spacing: 0.025em;
	color: var(--warm-white);
	font-size: 2.25rem;
	line-height: 1.1;
	margin: 0 0 1.5rem;
	font-weight: 400;
}

@media (min-width: 640px) {
	.fpp-section-title {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.fpp-section-title {
		font-size: 3.75rem;
	}
}

.fpp-section-lead {
	color: var(--warm-muted);
	font-size: 1rem;
	line-height: 1.625;
	max-width: 48rem;
	margin: 0 0 3rem;
}

@media (min-width: 768px) {
	.fpp-section-lead {
		font-size: 1.125rem;
		margin-bottom: 4rem;
	}
}

.areas-grid {
	display: grid;
	grid-template-columns: 1fr;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	overflow: hidden;
	background-color: var(--surface-elevated-40);
}

@media (min-width: 640px) {
	.areas-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.areas-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.area-card {
	padding: 1.5rem;
	border-bottom: 1px solid var(--border-soft);
	border-right: 0;
}

@media (min-width: 768px) {
	.area-card {
		padding: 1.75rem;
	}
}

@media (min-width: 640px) {
	.area-card {
		border-right: 1px solid var(--border-soft);
	}

	.area-card:nth-child(2n) {
		border-right: 0;
	}
}

@media (min-width: 1024px) {
	.area-card,
	.area-card:nth-child(2n) {
		border-right: 1px solid var(--border-soft);
	}

	.area-card:nth-child(4n) {
		border-right: 0;
	}
}

.area-title {
	font-family: var(--font-heading);
	letter-spacing: 0.025em;
	color: var(--brand-gold);
	font-size: 1.5rem;
	line-height: 1.1;
	margin: 0 0 0.5rem;
	font-weight: 400;
}

@media (min-width: 768px) {
	.area-title {
		font-size: 1.875rem;
	}
}

.area-desc {
	color: var(--warm-muted);
	font-size: 0.875rem;
	line-height: 1.625;
	margin: 0;
}

@media (min-width: 768px) {
	.area-desc {
		font-size: 1rem;
	}
}

.process-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.process-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 0;
		border-top: 1px solid var(--border-soft);
		border-bottom: 1px solid var(--border-soft);
	}
}

.process-step {
	display: flex;
	flex-direction: column;
	border-left: 2px solid var(--brand-gold-70);
	background-color: var(--surface-elevated-40);
	padding: 1.5rem;
}

@media (min-width: 768px) {
	.process-step {
		background-color: transparent;
		border-left: 1px solid var(--border-soft);
		padding: 2rem;
	}

	.process-step:first-child {
		border-left: 0;
	}
}

.process-num {
	font-family: var(--font-heading);
	color: var(--brand-gold);
	font-size: 3rem;
	line-height: 1;
	margin-bottom: 1rem;
	font-weight: 400;
}

@media (min-width: 768px) {
	.process-num {
		font-size: 3.75rem;
	}
}

.process-title {
	color: var(--warm-white);
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.3;
	margin: 0 0 1.5rem;
}

@media (min-width: 768px) {
	.process-title {
		font-size: 1.25rem;
	}
}

.process-divider {
	border-top: 1px solid var(--border-soft);
	padding-top: 1.5rem;
}

.process-desc {
	color: var(--warm-muted);
	font-size: 0.875rem;
	line-height: 1.625;
	margin: 0;
}

@media (min-width: 768px) {
	.process-desc {
		font-size: 1rem;
	}
}

/* --- BLOCK 5 STYLES: Commitment --- */
.commitment {
	width: 100%;
	background-color: var(--cream);
	color: var(--charcoal);
	font-family: var(--font-body);
}

.commitment__container {
	max-width: 56rem;
	margin-inline: auto;
	padding: 4rem 1.5rem;
}

.commitment__eyebrow {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--muted-foreground);
}

.commitment__heading {
	margin: 0.75rem 0 0;
	font-family: var(--font-body);
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--charcoal);
}

.commitment__intro {
	margin: 1.25rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: var(--charcoal);
}

.commitment__list {
	margin-top: 3rem;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.commitment__item {
	margin: 0;
}

.commitment__item-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--charcoal);
}

.commitment__item-body {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.625;
	color: var(--charcoal);
}

.commitment__item--last {
	padding-bottom: 2.5rem;
	border-bottom: 1px solid hsl(220 13% 90% / 0.6);
}

@media (min-width: 768px) {
	.commitment__container {
		padding: 6rem 1.5rem;
	}

	.commitment__heading {
		font-size: 2.25rem;
	}

	.commitment__intro,
	.commitment__item-body,
	.commitment__item-title {
		font-size: 1.125rem;
	}
}

/* --- BLOCK 6 STYLES: Cost Savings --- */
.cost-savings {
	--white: #ffffff;
	--white-90: rgba(255, 255, 255, 0.9);
	--white-70: rgba(255, 255, 255, 0.7);
	--white-15: rgba(255, 255, 255, 0.15);
	--white-10: rgba(255, 255, 255, 0.1);
	--white-05: rgba(255, 255, 255, 0.05);
	--white-03: rgba(255, 255, 255, 0.03);
	--compare-red: hsl(0, 70%, 65%);
	--compare-red-bg-15: hsla(0, 50%, 22%, 0.15);
	--compare-red-bg-20: hsla(0, 50%, 22%, 0.20);
	--compare-red-bg-25: hsla(0, 50%, 22%, 0.25);
	--compare-red-bg-40: hsla(0, 50%, 22%, 0.40);
	--compare-green: hsl(142, 55%, 60%);
	--compare-green-bg-15: hsla(142, 40%, 18%, 0.15);
	--compare-green-bg-25: hsla(142, 40%, 18%, 0.25);
	--compare-green-bg-30: hsla(142, 40%, 18%, 0.30);
	--compare-green-bg-40: hsla(142, 40%, 18%, 0.40);
	background-color: var(--brand-dark);
	color: var(--white-90);
	font-family: var(--font-body);
	padding: 5rem 0;
}

@media (min-width: 768px) {
	.cost-savings {
		padding: 7rem 0;
	}
}

.cost-savings__container {
	max-width: 72rem;
	margin: 0 auto;
	padding: 0 1rem;
}

@media (min-width: 640px) {
	.cost-savings__container {
		padding: 0 1.5rem;
	}
}

@media (min-width: 1024px) {
	.cost-savings__container {
		padding: 0 2rem;
	}
}

.cost-savings__header {
	max-width: 48rem;
	margin: 0 0 3rem;
}

@media (min-width: 768px) {
	.cost-savings__header {
		margin-bottom: 4rem;
	}
}

.cost-savings__eyebrow {
	margin: 0 0 1rem;
	color: var(--gold);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 0.875rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.cost-savings__title {
	margin: 0 0 1.5rem;
	font-family: var(--font-heading);
	font-weight: 400;
	color: var(--white);
	font-size: 2.25rem;
	line-height: 1.05;
	letter-spacing: 0.02em;
}

@media (min-width: 640px) {
	.cost-savings__title {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.cost-savings__title {
		font-size: 3.75rem;
	}
}

.cost-savings__intro {
	margin: 0;
	color: var(--white-70);
	font-size: 1rem;
	line-height: 1.6;
}

@media (min-width: 768px) {
	.cost-savings__intro {
		font-size: 1.125rem;
	}
}

.cost-savings__table-wrap {
	display: none;
	border-radius: 0.75rem;
	overflow: hidden;
	border: 1px solid var(--white-10);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

@media (min-width: 768px) {
	.cost-savings__table-wrap {
		display: block;
	}
}

.cost-savings__table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--font-body);
}

.cost-savings__table thead th {
	padding: 1.25rem 1.5rem;
	font-weight: 600;
	font-size: 1rem;
}

.cost-savings__table thead th.col--label {
	background-color: var(--white-05);
	color: var(--white);
	text-align: left;
}

.cost-savings__table thead th.col--inhouse {
	background-color: var(--compare-red-bg-40);
	color: var(--compare-red);
	text-align: center;
}

.cost-savings__table thead th.col--legalcore {
	background-color: var(--compare-green-bg-40);
	color: var(--compare-green);
	text-align: center;
}

.cost-savings__table tbody tr {
	border-top: 1px solid var(--white-10);
}

.cost-savings__table tbody td {
	padding: 1.25rem 1.5rem;
	vertical-align: middle;
}

.cost-savings__table tbody td.col--label {
	color: var(--white-90);
	text-align: left;
}

.cost-savings__table tbody td.col--inhouse {
	background-color: var(--compare-red-bg-15);
	color: var(--compare-red);
	text-align: center;
}

.cost-savings__table tbody td.col--legalcore {
	background-color: var(--compare-green-bg-15);
	color: var(--compare-green);
	text-align: center;
}

.cost-savings__table tbody tr.row--total {
	border-top-color: var(--white-15);
}

.cost-savings__table tbody tr.row--total td {
	padding: 1.5rem;
	font-weight: 600;
}

.cost-savings__table tbody tr.row--total td.col--label {
	color: var(--white);
}

.cost-savings__table tbody tr.row--total td.col--inhouse {
	background-color: var(--compare-red-bg-25);
	color: var(--compare-red);
}

.cost-savings__table tbody tr.row--total td.col--legalcore {
	background-color: var(--compare-green-bg-30);
	color: var(--compare-green);
	font-weight: 700;
}

.cost-savings__cards {
	display: block;
}

@media (min-width: 768px) {
	.cost-savings__cards {
		display: none;
	}
}

.cost-savings__card {
	border-radius: 0.75rem;
	border: 1px solid var(--white-10);
	background-color: var(--white-03);
	overflow: hidden;
	margin-bottom: 1rem;
}

.cost-savings__card:last-child {
	margin-bottom: 0;
}

.cost-savings__card.is-total {
	background-color: var(--white-05);
}

.cost-savings__card .card__label {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--white-10);
	color: var(--white);
	font-family: var(--font-body);
}

.cost-savings__card.is-total .card__label {
	font-weight: 600;
}

.card__cols {
	display: grid;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.card__cols {
		grid-template-columns: 1fr 1fr;
	}
}

.card__col {
	padding: 1rem 1.25rem;
}

.card__col--inhouse {
	background-color: var(--compare-red-bg-20);
}

.card__col--legalcore {
	background-color: var(--compare-green-bg-25);
	border-top: 1px solid var(--white-10);
}

@media (min-width: 640px) {
	.card__col--legalcore {
		border-top: 0;
		border-left: 1px solid var(--white-10);
	}
}

.card__col-label {
	margin: 0 0 0.25rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.card__col--inhouse .card__col-label {
	color: hsla(0, 70%, 65%, 0.8);
}

.card__col--legalcore .card__col-label {
	color: hsla(142, 55%, 60%, 0.8);
}

.card__col-value {
	margin: 0;
	font-family: var(--font-body);
}

.card__col--inhouse .card__col-value {
	color: var(--compare-red);
}

.card__col--legalcore .card__col-value {
	color: var(--compare-green);
}

.cost-savings__card.is-total .card__col--inhouse .card__col-value {
	font-weight: 600;
}

.cost-savings__card.is-total .card__col--legalcore .card__col-value {
	font-weight: 700;
}

/* --- BLOCK 7 STYLES: Security and Ethics --- */
.security-ethics {
	--se-section-dark: #1d212b;
	--se-gold: hsl(38 92% 50%);
	--se-warm-white: hsl(40 30% 98%);
	--se-cream: hsl(40 20% 95%);
	background: var(--se-section-dark);
	color: var(--se-cream);
	padding: 80px 16px;
	font-family: var(--font-body);
}

.security-ethics__container {
	width: 100%;
	max-width: 1152px;
	margin: 0 auto;
}

.security-ethics__intro {
	max-width: 768px;
}

.security-ethics__eyebrow {
	margin: 0 0 20px;
	color: var(--se-gold);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.security-ethics__title {
	margin: 0 0 24px;
	color: var(--se-warm-white);
	font-family: var(--font-heading);
	font-size: 40px;
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: 0.025em;
}

.security-ethics__lead {
	margin: 0;
	max-width: 100%;
	color: hsl(40 20% 95% / 0.8);
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.625;
}

.security-ethics__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	margin-top: 56px;
}

.security-ethics__item-title {
	margin: 0 0 12px;
	color: var(--se-warm-white);
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
}

.security-ethics__item-body {
	margin: 0;
	color: hsl(40 20% 95% / 0.75);
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.625;
}

.se-fade-up {
	opacity: 0;
	transform: translateY(24px);
}

.se-fade-up.is-visible {
	animation: se-fade-up 600ms ease-out forwards;
	animation-delay: var(--se-delay, 0ms);
}

@keyframes se-fade-up {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (min-width: 640px) {
	.security-ethics {
		padding-left: 24px;
		padding-right: 24px;
	}

	.security-ethics__title {
		font-size: 48px;
	}
}

@media (min-width: 768px) {
	.security-ethics {
		padding-top: 112px;
		padding-bottom: 112px;
	}

	.security-ethics__title {
		font-size: 60px;
	}

	.security-ethics__lead {
		font-size: 18px;
	}

	.security-ethics__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 48px;
		row-gap: 48px;
		margin-top: 80px;
	}

	.security-ethics__item {
		padding-top: 32px;
		border-top: 1px solid hsl(40 20% 95% / 0.15);
	}
}

@media (min-width: 1024px) {
	.security-ethics {
		padding-left: 32px;
		padding-right: 32px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.se-fade-up,
	.se-fade-up.is-visible {
		opacity: 1;
		transform: none;
		animation: none;
	}
}

/* --- BLOCK 8 STYLES: Integrations --- */
.lc-integrations {
	--lc-cream: #f5f4f2;
	--lc-charcoal: hsl(220 20% 14%);
	--lc-charcoal-80: rgba(29, 35, 43, 0.8);
	--lc-charcoal-70: rgba(29, 35, 43, 0.7);
	--lc-brand-blue: hsl(220 90% 55%);
	--lc-brand-blue-hover: hsl(220 90% 45%);
	--lc-muted: hsl(220 10% 45%);
	--lc-border: hsl(220 13% 90%);
	background: var(--lc-cream);
	color: var(--lc-charcoal);
	font-family: var(--font-body);
	line-height: 1.5;
	padding: 80px 0;
}

.lc-container {
	max-width: 64rem;
	margin: 0 auto;
	padding: 0 1.5rem;
}

.lc-eyebrow {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--lc-muted);
}

.lc-heading {
	margin: 0.75rem 0 0;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 1.875rem;
	line-height: 1.2;
	color: var(--lc-charcoal);
	letter-spacing: 0;
}

.lc-lead {
	margin: 1.25rem 0 0;
	max-width: 48rem;
	font-size: 1rem;
	line-height: 1.625;
	color: var(--lc-charcoal-80);
}

.lc-card {
	margin-top: 2.5rem;
	background: rgba(255, 255, 255, 0.6);
	border: 1px solid var(--lc-border);
	border-radius: 0.5rem;
	padding: 1.5rem;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.lc-group-label {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--lc-muted);
}

.lc-group-label--alt {
	margin-top: 1.75rem;
}

.lc-tool-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.lc-tool {
	display: inline-flex;
	align-items: center;
}

.lc-tool a {
	color: var(--lc-brand-blue);
	font-weight: 600;
	text-decoration: none;
	transition: color 150ms ease;
}

.lc-tool a:hover,
.lc-tool a:focus-visible {
	color: var(--lc-brand-blue-hover);
	text-decoration: underline;
}

.lc-tool a:focus-visible {
	outline: 2px solid var(--lc-brand-blue);
	outline-offset: 2px;
	border-radius: 2px;
}

.lc-divider {
	color: var(--lc-muted);
	user-select: none;
}

.lc-footnote {
	margin: 2rem 0 0;
	font-style: italic;
	color: var(--lc-charcoal-70);
}

/* --- CLIENT LOGOS STYLES --- */
.client-logos-section {
	padding: 4rem 0;
	background: var(--background);
}

.client-logos-container {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0;
}

.client-logos-header {
	margin-bottom: 2rem;
	text-align: center;
}

.client-logos-wrapper {
	padding: 30px 20px;
	margin-bottom: 40px;
	border-radius: 8px;
}

.client-logos-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	justify-items: center;
	align-items: center;
}

.client-logo-item {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 165px;
	padding: 32px;
	border: 1px solid #e2e4e9;
	border-radius: 6px;
}

.client-logo-item:hover {
	border-color: #f59f0a;
}

.client-logo-item a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
}

.client-logo-item img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.client-logo-item img:hover {
	opacity: 1;
}

@media (min-width: 768px) {
	.client-logos-grid {
		grid-template-columns: repeat(2, auto);
	}
}

@media (min-width: 1440px) {
	.client-logos-grid {
		display: flex;
		grid-template-columns: repeat(4, auto);
	}
}

@media (max-width: 991px) {
	.client-logos-grid {
		gap: 24px;
	}
}

@media (max-width: 576px) {
	.client-logos-wrapper {
		padding: 20px 15px;
	}

	.client-logos-grid {
		gap: 18px;
	}
}

/* --- BLOCK 8A STYLES: Software Partners --- */
.software-partners-section {
	padding: 4rem 0;
	background: var(--background);
}

.software-partners-container {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0;
}

.software-partners-title {
	margin: 60px auto 2rem;
	text-align: center;
	font-family: var(--font-heading);
	letter-spacing: 0.025em;
	color: var(--foreground);
	font-size: 2.25rem;
	line-height: 1.1;
	font-weight: 400;
}

@media (min-width: 640px) {
	.software-partners-title {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.software-partners-title {
		font-size: 3.75rem;
	}
}

.software-partners-section .logos-wrapper {
	padding: 30px 20px;
	margin-bottom: 40px;
	border-radius: 8px;
}

.software-partners-section .logos-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	justify-items: center;
	align-items: center;
}

.software-partners-section .logo-item {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 165px;
	padding: 32px;
	border: 1px solid #e2e4e9;
	border-radius: 6px;
}

.software-partners-section .logo-item:hover {
	border-color: #f59f0a;
}

.software-partners-section .software-logo-item {
	height: 372px;
	background: #f6f5f4;
}

.software-partners-section .software-logo-link {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 24px;
	justify-content: flex-start;
	width: 100%;
	height: 100%;
	text-decoration: none;
}

.software-partners-section .software-logo-link p {
	margin: 0;
	color: #676f7e;
}

.software-partners-section .logo-item img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.software-partners-section .logo-item img:hover {
	opacity: 1;
}

@media (min-width: 768px) {
	.software-partners-section .logos-grid {
		grid-template-columns: repeat(2, auto);
	}
}

@media (min-width: 1440px) {
	.software-partners-section .logos-grid {
		display: flex;
		grid-template-columns: repeat(4, auto);
	}

	.software-partners-section .software-logo-item {
		height: 277px;
	}
}

@media (max-width: 991px) {
	.software-partners-section .logos-grid {
		gap: 24px;
	}
}

@media (max-width: 576px) {
	.software-partners-section .logos-wrapper {
		padding: 20px 15px;
	}

	.software-partners-section .logos-grid {
		gap: 18px;
	}
}

@media (min-width: 640px) {
	.lc-heading {
		font-size: 2.25rem;
	}
}

@media (min-width: 768px) {
	.lc-integrations {
		padding: 112px 0;
	}

	.lc-heading {
		font-size: 2.5rem;
		line-height: 1.1;
	}

	.lc-lead {
		font-size: 1.125rem;
	}

	.lc-card {
		padding: 2rem;
	}
}

@media (min-width: 1024px) {
	.lc-container {
		padding: 0 2rem;
	}
}

/* --- BLOCK 10 STYLES: Testimonials --- */
.testimonials-block-section {
	background: var(--cream);
	padding: 4rem 0;
}

.testimonials-block-container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 1rem;
}

.testimonials-section {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.testimonials-slider {
	position: relative;
	overflow: hidden;
	padding: 10px 70px 60px;
}

.testimonials-slider .swiper {
	overflow: hidden;
}

.testimonials-slider .swiper-wrapper {
	align-items: stretch;
}

.testimonials-slider .swiper-slide {
	height: auto;
	box-sizing: border-box;
}

.testimonial-card {
	height: 100%;
	background: #fff;
	border-radius: 24px;
	padding: 30px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.testimonial-stars {
	display: flex;
	gap: 4px;
	margin-bottom: 18px;
	color: #f5a300;
}

.testimonial-stars svg {
	flex-shrink: 0;
}

.testimonial-quote {
	font-size: 18px;
	line-height: 1.6;
	margin: 0 0 24px;
}

.testimonial-author {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
}

.testimonial-image img {
	object-fit: cover;
	aspect-ratio: 1 / 1;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	border: 1px solid gray;
	display: block;
}

.testimonial-name {
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 4px;
}

.testimonial-role,
.testimonial-firm {
	font-size: 14px;
	line-height: 1.5;
	color: #666;
}

.testimonials-slider .swiper-button-prev,
.testimonials-slider .swiper-button-next {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: transparent;
	color: rgba(0, 0, 0, 0.45);
	transition: all 0.3s ease;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	margin-top: 0;
	z-index: 20;
}

.testimonials-slider .swiper-button-prev:hover,
.testimonials-slider .swiper-button-next:hover {
	color: rgba(0, 0, 0, 0.85);
}

.testimonials-slider .swiper-button-prev::after,
.testimonials-slider .swiper-button-next::after {
	font-size: 22px;
	font-weight: 700;
}

.testimonials-slider .swiper-button-prev {
	left: 10px;
}

.testimonials-slider .swiper-button-next {
	right: 10px;
}

.testimonials-slider .swiper-pagination {
	bottom: 0 !important;
}

.testimonials-slider .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	background: #d0d0d0;
	opacity: 1;
}

.testimonials-slider .swiper-pagination-bullet-active {
	background: #000;
}

@media (max-width: 1023px) {
	.testimonials-slider {
		padding: 10px 50px 60px;
	}
}

@media (max-width: 767px) {
	.testimonials-slider {
		padding: 10px 0 50px;
	}

	.testimonial-card {
		padding: 20px;
	}

	.testimonial-quote {
		font-size: 16px;
	}

	.testimonials-slider .swiper-button-prev,
	.testimonials-slider .swiper-button-next {
		display: none;
	}
}

/* --- BLOCK 9 STYLES: FAQ --- */
.lc-faq {
	--lc-foreground: hsl(220, 20%, 14%);
	--lc-muted-foreground: hsl(220, 10%, 45%);
	--lc-secondary: hsl(40, 10%, 96%);
	--lc-border: hsl(220, 13%, 90%);
	--lc-accent: hsl(38, 92%, 50%);
	--lc-accent-foreground: hsl(220, 20%, 14%);
	--lc-surface: #f5f4f2;
	background-color: var(--lc-surface);
	font-family: var(--font-body);
	color: var(--lc-foreground);
	padding: 80px 0;
}

.lc-faq,
.lc-faq * {
	box-sizing: border-box;
}

@media (min-width: 768px) {
	.lc-faq {
		padding: 112px 0;
	}
}

.lc-faq__container {
	max-width: 1024px;
	margin: 0 auto;
	padding: 0 24px;
}

.lc-faq__eyebrow {
	margin: 0;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--lc-muted-foreground);
}

.lc-faq__title {
	margin: 12px 0 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 36px;
	line-height: 1.05;
	letter-spacing: 0.02em;
	color: var(--lc-foreground);
}

@media (min-width: 768px) {
	.lc-faq__title {
		font-size: 48px;
	}
}

@media (min-width: 1024px) {
	.lc-faq__title {
		font-size: 60px;
	}
}

.lc-faq__list {
	list-style: none;
	margin: 40px 0 0;
	padding: 0;
	border-top: 1px solid hsla(220, 13%, 90%, 0.7);
}

.lc-faq__item {
	border-bottom: 1px solid hsla(220, 13%, 90%, 0.7);
}

.lc-faq__question {
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: 0;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 24px 0;
	text-align: left;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.4;
	color: var(--lc-foreground);
	cursor: pointer;
	transition: color 0.2s ease;
}

@media (min-width: 768px) {
	.lc-faq__question {
		font-size: 18px;
	}
}

.lc-faq__question:hover {
	color: hsla(220, 20%, 14%, 0.8);
}

.lc-faq__question:focus-visible {
	outline: 2px solid var(--lc-accent);
	outline-offset: 2px;
	border-radius: 2px;
}

.lc-faq__chevron {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	color: var(--lc-foreground);
	transition: transform 0.25s ease;
}

.lc-faq__item.is-open .lc-faq__chevron {
	transform: rotate(180deg);
}

.lc-faq__answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.lc-faq__item.is-open .lc-faq__answer {
	max-height: 1000px;
}

.lc-faq__answer p {
	margin: 0;
	padding: 0 0 24px;
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.65;
	color: var(--lc-muted-foreground);
}

.lc-faq__cta {
	margin-top: 48px;
	background: var(--lc-secondary);
	border: 1px solid var(--lc-border);
	border-left: 4px solid var(--lc-accent);
	border-radius: 6px;
	padding: 32px 24px;
	text-align: center;
}

@media (min-width: 768px) {
	.lc-faq__cta {
		padding: 40px;
	}
}

.lc-faq__cta-title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 24px;
	line-height: 1.15;
	letter-spacing: 0.02em;
	color: var(--lc-foreground);
}

@media (min-width: 768px) {
	.lc-faq__cta-title {
		font-size: 30px;
	}
}

.lc-faq__cta-text {
	margin: 16px auto 0;
	max-width: 720px;
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--lc-muted-foreground);
}

.lc-faq__cta-actions {
	margin-top: 28px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
}

@media (min-width: 640px) {
	.lc-faq__cta-actions {
		flex-direction: row;
	}
}

.lc-faq__cta-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--lc-accent);
	color: var(--lc-accent-foreground);
	text-decoration: none;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	padding: 14px 28px;
	border-radius: 6px;
	box-shadow: 0 1px 2px hsla(220, 20%, 14%, 0.08);
	transition: filter 0.2s ease, box-shadow 0.2s ease, transform 0.05s ease;
}

.lc-faq__cta-button:hover {
	filter: brightness(0.95);
	box-shadow: 0 4px 12px hsla(38, 92%, 50%, 0.25);
}

.lc-faq__cta-button:active {
	transform: translateY(1px);
}

.lc-faq__cta-button:focus-visible {
	outline: 2px solid var(--lc-accent);
	outline-offset: 3px;
}

.lc-faq__cta-arrow {
	display: inline-block;
}

.lc-faq__cta-phone {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 16px;
	color: var(--lc-foreground);
	text-decoration: none;
	transition: color 0.2s ease;
}

.lc-faq__cta-phone:hover {
	color: var(--lc-accent);
}
