/* ===================================================================
   Law Firm Solutions theme overrides
   Palette:
     --lfs-navy: #164473 (primary, headings, links, hero)
     --lfs-navy-deep: #0f2f50 (scrolled nav)
     --lfs-taupe: #9B8B7E (secondary, warm accent)
     --lfs-taupe-soft: #B8ACA0 (muted)
     --lfs-bg-warm: #F5F2EE (hero/section bg)
     --lfs-bg-cool: #FFFFFF (default page)
     --lfs-ink: #222 (body text)
     --lfs-line: #E4DED6 (dividers)
   =================================================================== */

:root {
	--lfs-navy: #164473;
	--lfs-navy-deep: #0f2f50;
	--lfs-taupe: #9B8B7E;
	--lfs-taupe-soft: #B8ACA0;
	--lfs-bg-warm: #F5F2EE;
	--lfs-bg-cool: #FFFFFF;
	--lfs-ink: #222;
	--lfs-line: #E4DED6;
	--lfs-serif: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
}

body {
	color: var(--lfs-ink);
	background: var(--lfs-bg-cool);
}

a { color: var(--lfs-navy); }
a:hover { color: var(--lfs-taupe); }

/* -------- Header / nav band -------- */

header {
	background-color: #111 !important;
	height: 150px !important;
	box-shadow: 0 1px 0 var(--lfs-line);
}
body.scroll header {
	height: 68px !important;
}

#header_container {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	height: 100%;
}

/* Light logo band on top, dark nav band on bottom */
header::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 110px;
	background: var(--lfs-bg-warm);
	z-index: 0;
	transition: height .3s ease;
}
body.scroll header::before {
	height: 40px;
}

/* -------- LFS Wordmark logo -------- */

.logo {
	position: absolute !important;
	top: 14px !important;
	left: 50% !important;
	transform: translateX(-50%);
	z-index: 2;
	transition: top .3s ease, transform .3s ease;
}
body.scroll header .logo {
	top: 4px !important;
	left: 22px !important;
	transform: none;
}

.lfs-wordmark {
	display: inline-block;
	text-decoration: none;
	text-align: center;
	line-height: 1;
	font-family: var(--lfs-serif);
}
.lfs-wordmark .lfs-row1 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	font-weight: 700;
	font-size: 44px;
	letter-spacing: 0.08em;
	color: var(--lfs-navy);
	transition: font-size .3s ease;
}
.lfs-wordmark .lfs-tri {
	width: 0;
	height: 0;
	border-left: 9px solid transparent;
	border-right: 9px solid transparent;
	border-bottom: 17px solid var(--lfs-taupe);
	display: inline-block;
	margin-bottom: 2px;
}
.lfs-wordmark .lfs-row2 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 6px;
}
.lfs-wordmark .lfs-line {
	flex: 0 0 auto;
	width: 48px;
	height: 2px;
	background: var(--lfs-navy);
}
.lfs-wordmark .lfs-sol {
	font-style: italic;
	font-weight: 400;
	font-size: 22px;
	color: var(--lfs-taupe);
	letter-spacing: 0.22em;
	text-transform: lowercase;
}

body.scroll .lfs-wordmark .lfs-row1 { font-size: 22px; gap: 8px; }
body.scroll .lfs-wordmark .lfs-tri { border-left-width: 5px; border-right-width: 5px; border-bottom-width: 10px; }
body.scroll .lfs-wordmark .lfs-row2 { margin-top: 2px; gap: 6px; }
body.scroll .lfs-wordmark .lfs-line { width: 20px; height: 1px; }
body.scroll .lfs-wordmark .lfs-sol { font-size: 12px; letter-spacing: 0.18em; }

/* -------- Navigation -------- */

body header nav,
body header nav.right {
	position: absolute !important;
	top: auto !important;
	bottom: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	height: 40px !important;
	background: transparent !important;
	padding: 0 !important;
	z-index: 2;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
body.scroll header nav,
body.scroll header nav.right {
	top: 0 !important;
	bottom: auto !important;
	height: 68px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	padding-right: 18px !important;
}
body header nav > ul,
body header nav.right > ul {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	float: none !important;
	width: auto !important;
	gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	height: 100% !important;
}
body header nav > ul > li,
body header nav.right > ul > li {
	margin: 0 !important;
	padding: 0 !important;
	border-right: none !important;
	width: auto !important;
}
body header nav > ul > li > a.nav_link {
	display: inline-block !important;
	padding: 12px 22px !important;
	color: #EFE9E0 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	width: auto !important;
	transition: color .2s ease;
}
body header nav > ul > li > a.nav_link:hover,
body header nav > ul > li.nav_active > a.nav_link {
	color: #fff !important;
}
body header nav > ul > li.nav_active > a.nav_link {
	border-bottom: 2px solid var(--lfs-taupe);
}

/* -------- Content container spacing -------- */

#content_container {
	margin-top: 150px !important;
}
body.scroll #content_container {
	margin-top: 68px !important;
}

#content {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 17px;
	line-height: 1.6;
	color: var(--lfs-ink);
}

/* -------- Headings -------- */

h1, h2, h3, h4 {
	font-family: var(--lfs-serif);
	color: var(--lfs-navy);
	font-weight: 700;
	line-height: 1.2;
}
h1 { font-size: 42px; margin: 0 0 18px; }
h2 { font-size: 30px; margin: 0 0 16px; }
h3 { font-size: 22px; margin: 0 0 12px; }
h2 span, h1 span { color: var(--lfs-taupe); font-weight: 400; font-style: italic; }
h2 em, h1 em { color: var(--lfs-taupe); font-style: italic; }

/* -------- Hero (used on home) -------- */

.ac-hero {
	background: var(--lfs-bg-warm);
	padding: 80px 24px;
	text-align: center;
	border-bottom: 1px solid var(--lfs-line);
}
.ac-hero .ac-wrap {
	max-width: 820px;
	margin: 0 auto;
}
.ac-hero h1 {
	font-size: 44px;
	color: var(--lfs-navy);
	margin-bottom: 22px;
}
.ac-hero p {
	font-size: 19px;
	color: #444;
	margin: 0 auto 26px;
	max-width: 680px;
}

/* -------- Buttons -------- */

.ac-btns {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 20px;
}
.ac-btn-primary,
a.ac-btn-primary {
	display: inline-block;
	background: var(--lfs-navy);
	color: #fff !important;
	padding: 14px 28px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	border: 2px solid var(--lfs-navy);
	border-radius: 2px;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ac-btn-primary:hover {
	background: var(--lfs-navy-deep);
	border-color: var(--lfs-navy-deep);
	color: #fff !important;
}
.ac-btn-outline,
a.ac-btn-outline {
	display: inline-block;
	background: transparent;
	color: var(--lfs-navy) !important;
	padding: 14px 28px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	border: 2px solid var(--lfs-navy);
	border-radius: 2px;
	transition: background .2s ease, color .2s ease;
}
.ac-btn-outline:hover {
	background: var(--lfs-navy);
	color: #fff !important;
}

/* -------- Sections -------- */

.ac-section {
	padding: 72px 24px;
	max-width: 1100px;
	margin: 0 auto;
	text-align: center;
}
.ac-section h2 {
	font-size: 34px;
	margin-bottom: 14px;
}
.ac-section > p {
	max-width: 720px;
	margin: 0 auto 28px;
	font-size: 17px;
	color: #555;
}
.ac-section .ac-wrap {
	max-width: 820px;
	margin: 0 auto;
}

.ac-sec-dark {
	background: var(--lfs-navy);
	color: #EFE9E0;
	padding: 72px 24px;
	text-align: center;
}
.ac-sec-dark .ac-wrap {
	max-width: 820px;
	margin: 0 auto;
}
.ac-sec-dark h2 {
	color: #fff;
	font-size: 34px;
	margin-bottom: 16px;
}
.ac-sec-dark h2 em,
.ac-sec-dark h2 span {
	color: var(--lfs-taupe-soft);
}
.ac-sec-dark p {
	color: #E5DDD0;
	font-size: 17px;
	max-width: 680px;
	margin: 0 auto 16px;
}
.ac-sec-dark .ac-btn-primary {
	background: var(--lfs-taupe);
	border-color: var(--lfs-taupe);
	color: var(--lfs-navy-deep) !important;
}
.ac-sec-dark .ac-btn-primary:hover {
	background: #fff;
	border-color: #fff;
	color: var(--lfs-navy-deep) !important;
}
.ac-sec-dark .ac-btn-outline {
	color: #fff !important;
	border-color: #fff;
}
.ac-sec-dark .ac-btn-outline:hover {
	background: #fff;
	color: var(--lfs-navy-deep) !important;
}

.ac-sec {
	padding: 72px 24px;
	max-width: 1100px;
	margin: 0 auto;
}
.ac-sec h2 {
	text-align: center;
	margin-bottom: 20px;
}

/* -------- About page -------- */

.ac-page {
	padding-bottom: 40px;
}
.ac-page-hero {
	background: var(--lfs-bg-warm);
	padding: 72px 24px 56px;
	text-align: center;
	border-bottom: 1px solid var(--lfs-line);
}
.ac-page-hero h1 {
	font-size: 42px;
	margin: 0 0 10px;
}
.ac-page-hero .ac-page-bold {
	font-size: 19px;
	color: var(--lfs-taupe);
	font-style: italic;
	margin: 0;
}
.ac-page .ac-wrap {
	max-width: 820px;
	margin: 0 auto;
	padding: 56px 24px 0;
}
.ac-page .ac-wrap p {
	font-size: 17px;
	margin: 0 0 18px;
	color: #333;
}

/* -------- Pillar cards (override purple accent) -------- */

.lfs-pillars {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 22px;
	margin-top: 38px;
	text-align: left;
}
.lfs-pillar {
	background: #fff;
	border: 1px solid var(--lfs-line);
	border-top: 4px solid var(--lfs-navy);
	border-radius: 0;
	padding: 26px 26px 28px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1px 3px rgba(0,0,0,0.04);
	transition: box-shadow .2s ease, transform .2s ease;
}
.lfs-pillar:hover {
	box-shadow: 0 6px 18px rgba(22,68,115,0.10);
	transform: translateY(-2px);
}
.lfs-pillar h3 {
	margin: 0 0 10px;
	font-size: 22px;
	color: var(--lfs-navy);
}
.lfs-pillar p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 1.6;
	color: #444;
	flex-grow: 1;
}
.lfs-pillar .ac-btn-outline {
	align-self: flex-start;
	padding: 10px 18px;
	font-size: 12px;
}

/* -------- Footer -------- */

footer {
	background: #111;
	color: #CFC7BC;
	padding: 42px 24px 28px;
	margin-top: 0;
	text-align: center;
}
footer a {
	color: #EFE9E0;
}
footer .handwriting_font {
	font-family: var(--lfs-serif) !important;
	font-weight: 700;
	color: var(--lfs-taupe) !important;
	font-size: 26px !important;
	letter-spacing: 0.06em;
	margin-bottom: 8px;
}
#copyright {
	font-size: 13px;
	color: #8A8178;
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid #2a2a2a;
}

/* -------- Hide inherited Andrea-specific pieces that may show through -------- */

#headliner { display: none !important; }
.ac-float-cta { display: none !important; }
#social:empty { display: none !important; }
#footer_social:empty { display: none !important; }

/* Tighten footer vertical whitespace */
footer { padding-bottom: 22px !important; }
.footer-social-block { margin-bottom: 6px; }

/* -------- Responsive tweaks -------- */

@media (max-width: 780px) {
	.lfs-wordmark .lfs-row1 { font-size: 30px; gap: 8px; }
	.lfs-wordmark .lfs-tri { border-left-width: 6px; border-right-width: 6px; border-bottom-width: 12px; }
	.lfs-wordmark .lfs-sol { font-size: 15px; }
	.lfs-wordmark .lfs-line { width: 28px; }
	.ac-hero { padding: 56px 20px; }
	.ac-hero h1 { font-size: 32px; }
	.ac-section, .ac-sec-dark, .ac-sec { padding: 56px 20px; }
	h1 { font-size: 32px; }
	h2 { font-size: 26px; }
	header { height: 130px !important; }
	header::before { height: 92px; }
	#content_container { margin-top: 130px !important; }
}
