/* Fabisch Law Offices — design layer per visual_design_brief.md
   "Warm but authoritative": navy primary (from the logo, #0f2e40), generous
   cream space, restrained warm accent. Two accent variants:
   default = burgundy/wine; body.accent-gold = muted antique brass. */

:root {
	--navy: #0f2e40;
	--navy-deep: #0a2130;
	--navy-soft: #1d4257;
	--cream: #faf7f2;
	--paper: #fffdf9;
	--ink: #22333e;
	--muted: #5c6d78;
	--line: #e5ded2;
	--accent: #7d2231;        /* deep burgundy, kin to the logo's red dot */
	--accent-dark: #641b27;
	--accent-soft: #f6ecee;
	--serif: 'Lora', Georgia, 'Times New Roman', serif;
	--sans: 'Source Sans 3', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;

	/* layout system: one content measure + fluid spacing for mobile→desktop */
	--wrap: 1200px;            /* centered content max-width */
	--read: 760px;             /* reading measure for article body */
	--gutter: clamp(20px, 5vw, 60px);
	--section-y: clamp(44px, 6.5vw, 100px);
}

/* center any element's content to --wrap with fluid side gutters */
.fab-wrap, .fab-full {
	padding-left: max(var(--gutter), calc((100% - var(--wrap)) / 2));
	padding-right: max(var(--gutter), calc((100% - var(--wrap)) / 2));
}
body.accent-gold {
	--accent: #8e7439;        /* muted antique brass — never bright/orange */
	--accent-dark: #745e2d;
	--accent-soft: #f4efe3;
}
/* eyeball-only alternative to burgundy: a slightly deeper warm brick.
   Toggle with ?accent=brick; burgundy remains the default. */
body.accent-brick {
	--accent: #8a3a2b;
	--accent-dark: #6f2c20;
	--accent-soft: #f6ece8;
}

/* ---------- base ---------- */
/* Guard against full-bleed band rounding. MUST be `clip`, not `hidden`:
   overflow-x:hidden coerces overflow-y to `auto`, making html/body a scroll
   container that DISABLES position:sticky (sticky nav + CTA rail). `clip` clips
   the same overflow without creating a scroll container, so sticky works. */
html, body { overflow-x: clip; }
body {
	background: var(--cream);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 18px;
	line-height: 1.7;
}
h1, h2, h3, h4, h5, h6, .entry-title {
	font-family: var(--serif);
	font-weight: 600;
	color: var(--navy);
	line-height: 1.25;
}
h1, .entry-title { font-size: 2.3em; }
h2 { font-size: 1.6em; margin-top: 1.6em; }
h3 { font-size: 1.25em; }
a { color: var(--accent); }
a:hover { color: var(--accent-dark); }
.entry-content img { max-width: 100%; height: auto; border-radius: 6px; }
/* migrated Weebly photos (de-Weeblified bio/profile pages): cap size so headshots
   aren't huge, and let consecutive images (member-badge rows) flow inline */
.entry-content img[src*="/uploads/migrated/"] { max-height: 220px; width: auto; margin: 4px 14px 10px 0; vertical-align: middle; }

/* ---------- layout shell ----------
   Homepage + Layout B run edge-to-edge so full-bleed bands reach the
   viewport; each section centers its own content via --wrap. Regular pages
   (articles, pillars, products) keep GeneratePress's contained column. */
.home .site.grid-container,
.home .site-content,
.home .content-area,
.home .site-main,
.home .entry-content,
.home .inside-article,
.layout-b .site.grid-container,
.layout-b .site-content,
.layout-b .content-area,
.layout-b .site-main,
.layout-b .entry-content,
.layout-b .inside-article {
	max-width: 100%;
	width: 100%;
	padding: 0;
	margin: 0;
}
/* strip GeneratePress "separate containers" box chrome so bands go edge-to-edge */
.home .inside-article,
.home article.page,
.layout-b .inside-article,
.layout-b article.page {
	background: none;
	border: 0;
	box-shadow: none;
}
.home .site-main, .layout-b .site-main { border: 0; }

/* full-bleed section: spans the content area, content centered to --wrap */
.fab-full { width: 100%; }

/* reading measure for long-form pages (articles get the narrow column) */
.single .entry-content > *,
.blog .entry-content > * { max-width: var(--read); margin-left: auto; margin-right: auto; }

/* ---------- interior page header (branded, full-width) ---------- */
.fab-pagehead {
	background: var(--navy);
	color: #e9eef1;
	padding-top: clamp(40px, 5vw, 68px);
	padding-bottom: clamp(40px, 5vw, 68px);
	width: 100%;
}
.fab-pagehead h1 {
	color: #fdfcf9;
	font-size: clamp(1.9em, 3.6vw, 2.7em);
	line-height: 1.15;
	margin: 0 0 .5em;
	max-width: 18em;
}
.fab-crumbs { font-size: .86em; color: #9fb1ba; }
.fab-crumbs a { color: #cdd7dc; text-decoration: none; }
.fab-crumbs a:hover { color: #fff; }
.fab-crumbs span { margin: 0 6px; opacity: .6; }

/* interior pages: comfortable reading column + cleaner migrated content.
   GeneratePress keeps these contained; we just set a measure and de-clutter. */
.fab-has-pagehead .entry-header { display: none; }
.fab-has-pagehead .entry-content { max-width: 880px; margin: 0 auto; }
.fab-has-pagehead .entry-content > .wsite-section-wrap,
.fab-has-pagehead .entry-content > div { max-width: 100%; }

/* closing CTA band on interior pages */
.fab-page-cta {
	margin-top: clamp(40px, 5vw, 64px);
	background: var(--accent-soft);
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: clamp(28px, 4vw, 44px);
	text-align: center;
}
.fab-page-cta h2 { margin: 0 0 .3em; }
.fab-page-cta p { color: var(--ink); margin: 0 0 1.2em; }
.fab-page-cta .fab-btn { margin: 6px; }
/* page-type reassurance line (prominent) + demoted call link */
.fab-page-cta-text { font-family: var(--serif); font-size: clamp(1.15em, 2vw, 1.4em); line-height: 1.4; color: var(--navy); max-width: 30em; margin-left: auto; margin-right: auto; }
.fab-page-cta-phone { font-size: .95em; color: var(--muted); margin-bottom: 0 !important; }

/* ---------- header ---------- */
.site-header {
	background: var(--navy);
	border-bottom: 3px solid var(--accent);
}
.site-header .main-title, .site-header .site-description { display: none; }
.fab-brand {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 0;
	text-decoration: none;
}
.fab-brand img { height: 48px; width: auto; display: block; }
.fab-brand-text { display: flex; flex-direction: column; }
.fab-brand-text strong {
	font-family: var(--serif);
	font-size: 1.18em;
	font-weight: 600;
	color: #f2efe9;
	letter-spacing: .01em;
	white-space: nowrap;
	line-height: 1.15;
}
.fab-brand-text em {
	font-style: normal;
	font-size: .66em;
	color: #b9c6cf;
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
}
/* below-header nav bar: navy to continue the header block, burgundy underline */
.main-navigation {
	background: var(--navy);
	border-top: 1px solid rgba(255,255,255,.08);
	border-bottom: 3px solid var(--accent);
}
.main-navigation .navigation-branding .main-title { background: transparent; }
.site-header { border-bottom: 0; }   /* the nav bar now carries the accent rule */
.main-navigation .inside-navigation { padding-top: 0; padding-bottom: 0; }
.main-navigation .main-nav ul li a {
	color: #e9e4da;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	padding-left: 11px;
	padding-right: 11px;
}
/* sub-menu links keep comfortable padding */
.main-navigation .main-nav ul ul li a { padding-left: 20px; padding-right: 20px; }
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a { color: #fff; box-shadow: inset 0 -3px 0 var(--accent); }

/* dropdown sub-menus (practice-area product pages, About) */
.main-navigation .main-nav ul ul {
	background: var(--navy-deep);
	border-top: 3px solid var(--accent);
	box-shadow: 0 12px 28px rgba(10,33,48,.35);
	min-width: 240px;
}
.main-navigation .main-nav ul ul li a {
	color: #d7dee3;
	font-size: 15px;
	padding: 11px 20px;
	box-shadow: none !important;
}
.main-navigation .main-nav ul ul li:hover > a,
.main-navigation .main-nav ul ul li.current-menu-item > a {
	background: var(--accent);
	color: #fff;
	box-shadow: none !important;
}
.main-navigation .main-nav ul li.menu-item-has-children > a .gp-icon { opacity: .7; }
.menu-toggle, .main-navigation button.menu-toggle:hover { color: #e9e4da; }
.fab-nav-cta a {
	background: var(--accent);
	color: #fff !important;
	border-radius: 4px;
	margin: 8px 0 8px 12px;
	padding-top: 8px !important;
	padding-bottom: 8px !important;
	box-shadow: none !important;
}
.fab-nav-cta a:hover { background: var(--accent-dark); }

/* ---------- buttons ---------- */
.fab-btn, .wsite-button, .wpcf7 input[type="submit"] {
	display: inline-block;
	padding: .85em 1.7em;
	background: var(--accent);
	color: #fff !important;
	border: 0;
	border-radius: 4px;
	font-family: var(--sans);
	font-weight: 600;
	font-size: 1em;
	letter-spacing: .02em;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s ease;
}
.fab-btn:hover, .wsite-button:hover, .wpcf7 input[type="submit"]:hover { background: var(--accent-dark); }
.fab-btn-ghost {
	background: transparent;
	color: var(--navy) !important;
	box-shadow: inset 0 0 0 2px var(--navy);
}
.fab-btn-ghost:hover { background: var(--navy); color: #fff !important; }
.wsite-button-inner { all: unset; }

/* ---------- hero ---------- */
.fab-hero {
	background: var(--navy);
	color: #eef0ee;
	padding-top: clamp(64px, 9vw, 132px);
	padding-bottom: clamp(64px, 9vw, 132px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: clamp(440px, 62vh, 640px);
}
.fab-hero > * { max-width: 660px; }   /* text column; sunset stays visible at right */
.fab-hero-eyebrow {
	display: inline-block;
	max-width: 100%;
	font-size: clamp(.7em, 2.4vw, .8em);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #e7c9a0;
	border: 1px solid rgba(231,201,160,.5);
	border-radius: 3px;
	padding: 6px 14px;
	margin-bottom: 24px;
}
body:not(.accent-gold) .fab-hero-eyebrow { color: #eab7bd; border-color: rgba(234,183,189,.5); }
.fab-hero h1 {
	color: #fdfcf9;
	font-size: clamp(2em, 4.6vw, 3.1em);
	line-height: 1.12;
	margin: 0 0 .4em;
}
.fab-hero p.fab-lede { font-size: clamp(1.05em, 1.6vw, 1.25em); color: #d3dde2; margin-bottom: 1.7em; }
.fab-hero .fab-btn { font-size: 1.08em; }
.fab-hero .fab-hero-aside { font-size: .92em; color: #9fb1ba; margin-top: 16px; }

/* hero with photo: navy gradient on the left for text legibility, easing to
   near-transparent on the right so the sunset reads as a real photo */
.fab-hero-img {
	background-size: cover;
	background-position: center right;
	background-color: var(--navy);
	position: relative;
}
.fab-hero-img > * { position: relative; z-index: 1; }
.fab-hero-img::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(95deg, rgba(12,38,53,.93) 26%, rgba(12,38,53,.62) 52%, rgba(12,38,53,.2) 78%, rgba(12,38,53,.05));
}

/* service-card icons (placeholders until owner's GBP icons arrive) */
.fab-icon { width: 44px; height: 44px; color: var(--accent); margin-bottom: 12px; }
.fab-card img.fab-gbp-icon { width: 48px; height: 48px; margin-bottom: 12px; }

/* photos */
.fab-about-photo {
	width: 100%;
	max-width: 340px;
	height: auto;
	border-radius: 6px;
	box-shadow: 0 12px 30px rgba(15,46,64,.22);
}
.fab-about .fab-quiet { margin: 1.2em 0; }
.fab-local-photo {
	width: 100%;
	max-width: 460px;
	height: auto;
	border-radius: 6px;
	margin-bottom: 18px;
	box-shadow: 0 8px 22px rgba(15,46,64,.15);
}

/* full-bleed judicial-authority band (Fall River courthouse) */
.fab-band-img {
	background-size: cover;
	background-position: center 30%;
	position: relative;
	padding-top: clamp(64px, 8vw, 112px);
	padding-bottom: clamp(64px, 8vw, 112px);
}
.fab-band-img::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10,33,48,.82), rgba(10,33,48,.74));
}
.fab-pullquote {
	position: relative;
	z-index: 1;
	max-width: 30em;
	margin: 0 auto;
	border: 0;
	padding: 0;
	text-align: center;
	font-family: var(--serif);
	font-size: 1.7em;
	line-height: 1.4;
	color: #f4f1ea;
}
.fab-pullquote cite {
	display: block;
	margin-top: .8em;
	font-family: var(--sans);
	font-style: normal;
	font-size: .52em;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #cdb98f;
}
body:not(.accent-gold) .fab-pullquote cite { color: #dba7b0; }

/* ---------- trust bar ---------- */
.fab-trust {
	background: var(--paper);
	border-bottom: 1px solid var(--line);
	padding-top: clamp(20px, 3vw, 32px);
	padding-bottom: clamp(20px, 3vw, 32px);
}
.fab-trust ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 48px;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}
.fab-trust li {
	font-family: var(--serif);
	color: var(--navy);
	font-size: 1.02em;
	display: flex;
	align-items: center;
	gap: 10px;
}
.fab-trust li::before { content: "§"; color: var(--accent); font-size: 1.1em; }

/* ---------- cards / services grid ---------- */
.fab-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 24px;
	margin: 1.4em 0;
}
.fab-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-top: 3px solid var(--accent);
	border-radius: 6px;
	padding: 26px 24px;
}
.fab-card h3 { margin: 0 0 .4em; font-size: 1.15em; }
.fab-card h3 a { color: var(--navy); text-decoration: none; }
.fab-card h3 a:hover { color: var(--accent); }
.fab-card p { font-size: .95em; color: var(--muted); margin: 0 0 .8em; }
.fab-card .fab-more { font-weight: 600; font-size: .92em; text-decoration: none; }

/* plan/pricing cards (estate-planning, medicaid) */
.fab-card p.fab-price {
	font-size: 1.02em;
	color: var(--navy);
	margin: 0 0 .9em;
	padding-bottom: .7em;
	border-bottom: 1px solid var(--line);
}
.fab-card p.fab-price strong { color: var(--accent); font-size: 1.12em; }
.fab-card p.fab-bestfor { color: var(--navy); font-size: .9em; margin-top: 1em; }
.fab-fee-note {
	font-size: .85em;
	color: var(--muted);
	border-left: 3px solid var(--line);
	padding: .2em 0 .2em 16px;
	margin: 1.6em 0 0;
}

/* in-content numbered process list (probate road map) */
ol.fab-roadmap { margin: 1.1em 0 1.4em; padding-left: 1.2em; }
ol.fab-roadmap li { margin: 0 0 .6em; padding-left: .3em; }

/* state-specific FAQ blocks (probate pages) */
.fab-faq { margin: 1em 0 1.6em; }
.fab-faq h3 {
	margin: 1.3em 0 .35em;
	font-size: 1.08em;
	color: var(--navy);
}
.fab-faq p { margin: 0 0 .6em; }

/* ---------- alternating sections ---------- */
.fab-section { padding-top: var(--section-y); padding-bottom: var(--section-y); }
.fab-section-alt { background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fab-section h2 { margin-top: 0; }
.fab-section-intro { font-size: 1.12em; color: var(--muted); max-width: 40em; margin: 0 0 1.6em; }
.fab-quicklinks { margin-top: 1.6em; color: var(--muted); font-size: .98em; }

/* ---------- "How It Works" steps band (navy) ---------- */
.fab-steps-band {
	background: var(--navy);
	color: #e6ebee;
	padding-top: var(--section-y);
	padding-bottom: var(--section-y);
}
.fab-steps-head { text-align: center; max-width: 40em; margin: 0 auto clamp(28px, 4vw, 48px); }
.fab-steps-head h2 { color: #fdfcf9; margin-top: 0; }
.fab-kicker-light { color: #e7c9a0; }
body:not(.accent-gold) .fab-kicker-light { color: #eab7bd; }
.fab-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 48px); }
.fab-step { position: relative; padding-top: 8px; }
.fab-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px; height: 46px;
	border-radius: 50%;
	background: var(--accent);
	color: #fff;
	font-family: var(--serif);
	font-size: 1.3em;
	margin-bottom: 16px;
}
.fab-step h3 { color: #fdfcf9; font-size: 1.2em; margin: 0 0 .4em; }
.fab-step p { color: #b9c7cf; font-size: .98em; margin: 0; }
.fab-steps-cta { text-align: center; margin-top: clamp(28px, 4vw, 48px); margin-bottom: 0; }
.fab-kicker {
	font-size: .8em;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 6px;
}
.fab-two-col { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: start; }
.fab-about { grid-template-columns: .75fr 1.25fr; align-items: center; }
.fab-quiet { background: var(--accent-soft); border-radius: 6px; padding: 22px 26px; font-size: .98em; }
.fab-quiet strong { color: var(--navy); }

/* ---------- homepage credential band + closing CTA (Layout A hybrid) ----------
   Adopted from Layout B's two strongest bands onto the Layout A homepage:
   a courthouse credential/stats band and a bold accent closing CTA. Scoped to
   .home because layout-b.css (which carries the .layout-b copies used by the
   home-b comparison page) does NOT load on the front page. Keep in sync with
   the .layout-b versions in assets/layout-b.css if either changes. */
.home .lb-stats-band {
	background-size: cover;
	background-position: center 28%;
	position: relative;
	padding-top: clamp(48px, 6vw, 72px);
	padding-bottom: clamp(48px, 6vw, 72px);
}
.home .lb-stats-band::before { content: ""; position: absolute; inset: 0; background: rgba(10,33,48,.85); }
.home .lb-stats {
	position: relative; z-index: 1;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; text-align: center;
}
.home .lb-stat strong { display: block; font-family: var(--serif); font-size: 1.9em; color: #fff; line-height: 1.1; }
.home .lb-stat span { display: block; margin-top: 6px; font-size: .92em; color: #cdb98f; letter-spacing: .02em; }
body.home:not(.accent-gold) .lb-stat span { color: #e0b3ba; }

.home .lb-cta-band {
	background: var(--accent);
	color: #fff;
	text-align: center;
	padding-top: clamp(48px, 6vw, 66px);
	padding-bottom: clamp(48px, 6vw, 66px);
}
.home .lb-cta-band h2 { color: #fff; margin-top: 0; }
.home .lb-cta-band p { max-width: 40em; margin-left: auto; margin-right: auto; color: #fff; }
.home .lb-cta-band .fab-btn { margin: 6px; }
.home .lb-btn-on-accent { background: #fff; color: var(--accent) !important; }
.home .lb-btn-on-accent:hover { background: #f3e9eb; }
.home .lb-btn-light { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.6); }
.home .lb-btn-light:hover { background: rgba(255,255,255,.12); color: #fff !important; }
@media (max-width: 880px) {
	.home .lb-stats { grid-template-columns: 1fr 1fr; }
}

/* ===== Rebuilt nav + simplified homepage (jcullen-inspired restraint) =====
   The themed .fab-nav2 is rendered at wp_body_open (functions.php); hide
   GeneratePress's default header + nav so we don't double up. */
.site-header, .main-navigation { display: none !important; }

/* ---------- rebuilt nav (global) — editable WP menu styled as a sticky mega
   dropdown. wp_nav_menu output: ul.fab-nav2-menu > li > a (+ .sub-menu). ---- */
.fab-nav2 { position: sticky; top: 0; z-index: 100; background: var(--navy); border-bottom: 3px solid var(--accent); }
.fab-nav2-inner { display: flex; align-items: center; gap: 30px; min-height: 74px; }
.fab-nav2 .brand { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.fab-nav2 .brand img { height: 44px; width: auto; display: block; }
.fab-nav2 .brand strong { display: block; font-family: var(--serif); font-size: 1.12em; color: #f2efe9; line-height: 1.15; white-space: nowrap; }
.fab-nav2 .brand em { font-style: normal; font-size: .62em; letter-spacing: .12em; text-transform: uppercase; color: #b9c6cf; white-space: nowrap; }

.fab-nav2-menu { list-style: none; margin: 0 0 0 auto; padding: 0; display: flex; align-items: center; gap: 28px; }
.fab-nav2-menu li { position: relative; }
.fab-nav2-menu > li > a { color: #e9e4da; font-family: var(--sans); font-weight: 600; font-size: 15px; text-decoration: none; letter-spacing: .01em; white-space: nowrap; cursor: pointer; display: block; padding: 6px 0; }
.fab-nav2-menu > li > a:hover { color: #fff; }
.fab-nav2-menu > li.menu-item-has-children > a::after { content: "\25BE"; font-size: .7em; opacity: .7; margin-left: 6px; }
/* invisible hover bridge so the panel doesn't drop while crossing the gap */
.fab-nav2-menu > li.menu-item-has-children::after { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 18px; }

/* mega panel = a parent item's first-level submenu */
.fab-nav2-menu > li > .sub-menu {
	display: none;
	position: absolute; top: calc(100% + 16px); left: 50%; transform: translateX(-46%);
	grid-template-columns: repeat(3, minmax(190px, 1fr)); gap: 34px;
	background: var(--navy-deep); border-top: 3px solid var(--accent);
	box-shadow: 0 18px 40px rgba(8,26,38,.45); border-radius: 0 0 8px 8px;
	padding: 30px 34px; min-width: 720px; z-index: 60; list-style: none; margin: 0;
}
.fab-nav2-menu > li:hover > .sub-menu, .fab-nav2-menu > li:focus-within > .sub-menu { display: grid; }
.fab-nav2-menu > li.mega-onecol > .sub-menu { grid-template-columns: 1fr; min-width: 320px; transform: translateX(-32%); }
/* area heading (depth-1 item) */
.fab-nav2-menu > li > .sub-menu > li > a { display: block; font-family: var(--serif); font-size: 1.02em; color: #fff; text-decoration: none; padding: 0 0 9px; margin-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.14); }
.fab-nav2-menu > li > .sub-menu > li > a:hover { opacity: .82; }
/* products (depth-2 submenu) shown statically inside the column */
.fab-nav2-menu > li > .sub-menu .sub-menu { display: block; position: static; transform: none; grid-template-columns: none; min-width: 0; background: none; box-shadow: none; border: 0; border-radius: 0; padding: 0; margin: 0; list-style: none; }
.fab-nav2-menu > li > .sub-menu .sub-menu > li > a { display: block; color: #c4d0d7; font-size: .92em; text-decoration: none; padding: 6px 0; }
.fab-nav2-menu > li > .sub-menu .sub-menu > li > a:hover { color: #fff; }

/* Schedule button + mobile toggle */
.fab-nav2 .nav-cta { background: var(--accent); color: #fff !important; border-radius: 4px; padding: 11px 20px; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.fab-nav2 .nav-cta:hover { background: var(--accent-dark); }
.fab-nav-toggle { display: none; background: none; border: 0; color: #e9e4da; font-size: 26px; line-height: 1; cursor: pointer; padding: 4px 6px; }

/* narrow-desktop squeeze: between the 880px hamburger breakpoint and ~990px
   the full nav (brand + menu + CTA) doesn't fit at desktop spacing — the CTA
   overflowed the viewport by ~45px. Tighten instead of overflowing. */
@media (min-width: 881px) and (max-width: 990px) {
	.fab-nav2-inner { gap: 16px; }
	.fab-nav2-menu { gap: 16px; }
	.fab-nav2-menu > li > a { font-size: 14px; }
	.fab-nav2 .brand img { height: 38px; }
	.fab-nav2 .brand strong { font-size: 1em; }
	.fab-nav2 .nav-cta { padding: 9px 13px; font-size: 13px; }
}

/* ----- mobile nav (hamburger; submenus expand inline) ----- */
@media (max-width: 880px) {
	.fab-nav2-inner { flex-wrap: wrap; gap: 14px; }
	.fab-nav2 .brand { order: 0; }
	.fab-nav2 .nav-cta { order: 2; margin-left: auto; }
	.fab-nav-toggle { display: block; order: 3; }
	.fab-nav2-menu { order: 4; flex-basis: 100%; margin: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; }
	.fab-nav2.nav-open .fab-nav2-menu { display: flex; background: var(--navy-deep); border-top: 1px solid rgba(255,255,255,.1); padding: 6px 0 14px; }
	.fab-nav2-menu > li > a { padding: 12px 4px; }
	.fab-nav2-menu > li.menu-item-has-children > a::after { float: right; }
	.fab-nav2-menu > li.menu-item-has-children::after { content: none; }
	.fab-nav2-menu > li > .sub-menu,
	.fab-nav2-menu > li.mega-onecol > .sub-menu { display: block; position: static; transform: none; grid-template-columns: 1fr; min-width: 0; background: none; box-shadow: none; border-top: 0; border-radius: 0; padding: 0 0 8px 14px; }
	.fab-nav2-menu .sub-menu > li > a { padding: 8px 4px; border-bottom: 0; }
}

/* ---------- homepage: three service doors (centerpiece) ---------- */
.home .fab-doors-band { padding-top: clamp(64px, 8vw, 116px); padding-bottom: clamp(64px, 8vw, 116px); }
.home .fab-doors-head { text-align: center; max-width: 30em; margin: 0 auto; }
.home .fab-doors-head h2 { margin: .15em 0 0; font-size: clamp(1.7em, 3vw, 2.2em); }
.home .fab-doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: clamp(36px, 5vw, 64px); }
.home .fab-door { display: flex; flex-direction: column; align-items: center; text-align: center; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: clamp(34px, 4vw, 52px) clamp(24px, 3vw, 38px); text-decoration: none; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.home .fab-door:hover { transform: translateY(-5px); box-shadow: 0 20px 44px rgba(15,46,64,.14); border-color: var(--accent); }
.home .fab-door .door-icon { display: inline-flex; align-items: center; justify-content: center; width: 66px; height: 66px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); margin-bottom: 22px; }
.home .fab-door .door-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.home .fab-door h3 { color: var(--navy); font-size: 1.22em; margin: 0 0 .55em; }
.home .fab-door p { color: var(--muted); font-size: .98em; margin: 0 0 1.4em; line-height: 1.6; }
.home .fab-door .more { margin-top: auto; color: var(--accent); font-weight: 600; font-size: .95em; }

/* ---------- homepage: judge trust strip ---------- */
.home .fab-judge { padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.home .fab-judge-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(36px, 5vw, 70px); align-items: center; max-width: 1000px; margin: 0 auto; }
.home .fab-judge-grid img { width: 100%; max-width: 320px; border-radius: 10px; box-shadow: 0 18px 40px rgba(15,46,64,.22); }
.home .fab-judge h2 { margin: .12em 0 .5em; }
.home .fab-judge p { color: var(--ink); font-size: 1.08em; line-height: 1.7; margin: 0 0 1.1em; max-width: 34em; }
.home .fab-judge p.fab-judge-trust { font-size: .86em; color: var(--muted); letter-spacing: .01em; margin: .2em 0 1.5em; }

/* owner-review placeholders for net-new legal/service/pricing claims — visible
   on purpose so they can't ship by accident. */
.fab-ph { background: #fff6e5; border: 1px dashed #c79a3a; border-radius: 5px; padding: 2px 8px; color: #7a5a12; font-style: italic; }
.fab-ph-block { display: block; background: #fff6e5; border: 1px dashed #c79a3a; border-radius: 7px; padding: 16px 20px; color: #7a5a12; font-style: italic; margin: 1.2em 0; }

/* ---------- emotional product-page blocks (probate, etc.) ---------- */
.fab-leadin { font-family: var(--serif); font-weight: 600; font-size: clamp(1.55em, 3.2vw, 2.25em); line-height: 1.22; color: var(--navy); margin: .1em 0 .5em; }
.fab-leadin-sub { font-size: clamp(1.05em, 1.6vw, 1.22em); color: var(--ink); margin: 0 0 1.3em; max-width: 36em; }
.fab-cta-callout { background: var(--navy); color: #fff; border-radius: 10px; padding: clamp(26px, 4vw, 44px); text-align: center; margin: 2em 0; }
.fab-cta-callout h2, .fab-cta-callout h3 { color: #fdfcf9; margin: 0 0 .35em; }
.fab-cta-callout p { color: #d3dde2; max-width: 34em; margin: 0 auto 1.2em; }
.fab-cta-callout .fab-btn { background: #fff; color: var(--accent) !important; margin: 6px; }
.fab-cta-callout .fab-btn:hover { background: #f3e9eb; }
/* demoted "call now" link inside the navy interrupt bands (light, not the burgundy used on cream) */
.fab-cta-callout-phone { color: #cdd8de; font-size: .95em; margin: .9em 0 0; }
.fab-cta-callout-phone a { color: #fff; }
.fab-cta-callout-phone a:hover { color: #f3e9eb; }
.fab-quote { border-left: 3px solid var(--accent); padding: 4px 0 4px 22px; margin: 1.3em 0; font-family: var(--serif); font-style: italic; font-size: 1.12em; color: var(--ink); }
.fab-quote cite { display: block; margin-top: .6em; font-family: var(--sans); font-style: normal; font-weight: 600; font-size: .82em; letter-spacing: .02em; color: var(--navy); }
.fab-letter p { font-size: 1.04em; }
.fab-signature { font-family: var(--serif); font-size: 1.15em; color: var(--navy); margin-top: 1em; }
.fab-locations { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 22px; margin: 1.5em 0; }
.fab-location { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: 7px; padding: 20px 22px; }
.fab-location h4 { margin: 0 0 .4em; color: var(--navy); font-size: 1.05em; }
.fab-location p { font-size: .94em; color: var(--muted); margin: 0; line-height: 1.6; }

/* ---------- product/pillar CTA rail (sticky CTA + scrolling trust + mobile bar) ---------- */
.fab-has-rail .entry-content .fab-rail-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 296px;
	gap: clamp(28px, 3vw, 52px);
	align-items: stretch;   /* let the rail column match content height so the sticky CTA can travel */
}
.fab-rail-main { min-width: 0; }   /* let the text column shrink, not overflow */
.fab-cta-rail { display: flex; flex-direction: column; gap: 16px; }
.fab-rail-card { background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 20px; }
/* ONLY the CTA card is sticky; the trust + review cards scroll with the page */
.fab-rail-actions { border-top: 3px solid var(--accent); position: sticky; top: 90px; }
.fab-rail-title { font-family: var(--serif); font-size: 1.18em; color: var(--navy); margin: 0 0 .15em; }
.fab-rail-sub { font-size: .85em; color: var(--muted); margin: 0 0 .9em; }
.fab-rail-btn { display: block; width: 100%; text-align: center; box-sizing: border-box; }
.fab-rail-phone { font-size: .85em; color: var(--muted); text-align: center; margin: .8em 0 0; }
/* in-body demoted "call now" link, paired with a single primary Schedule button */
.fab-cta-inline { margin-bottom: .5em; }
.fab-cta-phone { font-size: .95em; color: var(--muted); margin: 0 0 1.4em; }
.fab-rail-label { font-size: .72em; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 .9em; }
/* judge credential + "recognized by" lead-in above the badge stack */
.fab-rail-credit { font-size: .9em; line-height: 1.5; color: var(--ink); margin: 0 0 1.1em; }
.fab-rail-credit strong { color: var(--accent); }
/* vertical stack of full-width recognition badges (color, no hover tricks) */
.fab-rail-badges { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.fab-rail-badges img { display: block; width: 100%; max-width: 200px; height: auto; }
/* circular seals (e.g. RI Bar) read heavier than rectangular badges — cap smaller */
.fab-rail-badges img.is-circle { max-width: 124px; }
.fab-rail-reviews { background: var(--navy); border: 0; }
.fab-rail-review { display: none; }
.fab-rail-review.is-active { display: block; }
.fab-stars { color: #e8b53d; letter-spacing: 2px; margin: 0 0 .5em; font-size: 1.05em; }
.fab-rail-reviews blockquote { margin: 0 0 .6em; color: #eef2f4; font-size: .9em; line-height: 1.55; font-style: italic; }
.fab-rail-reviews cite { color: #9fb1ba; font-size: .8em; font-style: normal; }

/* mobile-only horizontal trust strip (high in content) + bottom CTA bar */
.fab-mobile-trust { display: none; }
.fab-mobile-cta { display: none; }

@media (max-width: 880px) {
	.fab-has-rail .entry-content .fab-rail-wrap { grid-template-columns: 1fr; }
	.fab-cta-rail { margin-top: 30px; }
	.fab-rail-actions { display: none; }   /* CTAs live in the fixed bottom bar */
	.fab-rail-trust { display: none; }     /* badges shown in the high strip instead */

	.fab-mobile-trust {
		display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
		gap: 18px 22px; margin: 1.4em 0 1.8em; padding: 18px 16px;
		background: var(--paper); border: 1px solid var(--line); border-radius: 8px;
	}
	.fab-mobile-trust img { height: 52px; width: auto; display: block; }
	.fab-mobile-trust img.is-circle { height: 60px; } /* square seal needs a touch more height to match visual weight */
	.fab-mobile-credit { flex-basis: 100%; text-align: center; font-size: .92em; line-height: 1.5; color: var(--ink); margin: 0 0 .4em; }
	.fab-mobile-credit strong { color: var(--accent); }

	.fab-mobile-cta {
		display: grid; grid-template-columns: 1fr 1.5fr;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 200;
		box-shadow: 0 -6px 20px rgba(8, 26, 38, .22);
	}
	.fab-mobile-cta a { text-align: center; padding: 15px 8px; font-weight: 700; text-decoration: none; font-size: 1.02em; letter-spacing: .01em; }
	.fab-mcta-call { background: var(--navy); color: #fff; }
	.fab-mcta-sched { background: var(--accent); color: #fff; }
	body.fab-has-rail { padding-bottom: 62px; } /* keep the fixed bar off the footer */
}

/* ---------- homepage: full-bleed local RI photo band (one line) ---------- */
.home .fab-localband { position: relative; background-size: cover; background-position: center 40%; padding-top: clamp(88px, 11vw, 168px); padding-bottom: clamp(88px, 11vw, 168px); text-align: center; }
.home .fab-localband::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,33,48,.62), rgba(10,33,48,.68)); }
.home .fab-localband > * { position: relative; z-index: 1; }
.home .fab-localband h2 { color: #fdfcf9; font-size: clamp(1.7em, 3.2vw, 2.4em); margin: 0 0 .35em; }
.home .fab-localband p { color: #e2e9ed; font-size: 1.1em; margin: 0 auto; max-width: 34em; }

/* ---------- homepage: closing CTA (single primary action) ---------- */
.home .fab-close { background: var(--accent); color: #fff; text-align: center; padding-top: clamp(60px, 7vw, 96px); padding-bottom: clamp(60px, 7vw, 96px); }
.home .fab-close h2 { color: #fff; margin: 0 0 .3em; font-size: clamp(1.7em, 3vw, 2.3em); }
.home .fab-close p { color: #fff; max-width: 32em; margin: 0 auto 1.6em; font-size: 1.1em; }
.home .fab-close .fab-btn { background: #fff; color: var(--accent) !important; font-size: 1.05em; }
.home .fab-close .fab-btn:hover { background: #f3e9eb; }

@media (max-width: 880px) {
	.fab-nav2-menu { display: none; }
	.home .fab-doors { grid-template-columns: 1fr; }
	.home .fab-judge-grid { grid-template-columns: 1fr; text-align: center; }
	.home .fab-judge-grid img { margin: 0 auto; max-width: 240px; }
}

/* ---------- footer ----------
   GeneratePress nests the footer in a contained, centered .inside-site-info;
   override it to full width so our footer grid spans the page evenly instead
   of clustering left with the copyright floating right. */
.site-footer, .site-info { background: var(--navy-deep); color: #b7c4cc; font-size: .95em; }
.site-info .inside-site-info {
	max-width: 100%;
	width: 100%;
	padding: 0;
	display: block;
	text-align: left;
}
.fab-footer {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
	gap: clamp(24px, 3vw, 44px);
	padding-top: clamp(44px, 6vw, 72px);
	padding-bottom: clamp(32px, 4vw, 48px);
	align-items: start;
}
.fab-footer h4 {
	color: #f1ece3;
	font-family: var(--serif);
	font-size: 1.05em;
	letter-spacing: .02em;
	margin: 0 0 1em;
}
.fab-footer ul { list-style: none; margin: 0; padding: 0; }
.fab-footer li { margin-bottom: .5em; }
.fab-footer a { color: #b7c4cc; text-decoration: none; }
.fab-footer a:hover { color: #fff; }
.fab-footer .fab-nap strong {
	display: inline-block;
	color: #f1ece3;
	font-family: var(--serif);
	font-size: 1.22em;
	margin-bottom: .5em;
}
.fab-footer .fab-nap { line-height: 1.9; }
.fab-footer .fab-offices { display: block; margin-top: 14px; }
.fab-footer .fab-offices > span { display: block; font-size: .82em; line-height: 1.5; color: #9fb1ba; margin-bottom: 8px; }
.fab-footer .fab-offices > span strong { color: #cdd7dc; font-size: 1em; }
.fab-footer .fab-offices em { display: block; font-size: .8em; color: #8298a4; margin-top: 4px; }
.fab-copyright {
	border-top: 1px solid rgba(255,255,255,.1);
	padding-top: 22px;
	padding-bottom: 28px;
	font-size: .86em;
	color: #8298a4;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	justify-content: space-between;
}
.fab-copyright a { color: #aebcc4; }

/* ---------- migrated Weebly layout cleanup ----------
   Original column proportions survive as inline width % on the cells;
   desktop = flex row honoring those widths, mobile = stacked. */
.wsite-multicol-table, .wsite-multicol-tbody, .wsite-multicol-tr, .wsite-multicol-col {
	display: block;
	border: 0;
	padding: 0;
}
@media (max-width: 768px) {
	.wsite-multicol-col { width: 100% !important; }
}
@media (min-width: 769px) {
	.wsite-multicol-tr { display: flex; gap: 32px; }
	.wsite-multicol-col { flex: 1 1 0; min-width: 0; }
	/* cells carrying their original Weebly width keep that proportion */
	.wsite-multicol-col[style*="width"] { flex: 0 1 auto; }
}
.wsite-multicol-table { margin: 1em 0; }
hr.styled-hr { border: 0; border-top: 2px solid var(--line); margin: 1.6em 0; }
h2.wsite-content-title { font-size: 1.6em; }
.paragraph { margin-bottom: 1.1em; }

/* ---------- forms ---------- */
.wpcf7 label { display: block; font-weight: 600; color: var(--navy); margin-bottom: 14px; }
.wpcf7 input[type="text"], .wpcf7 input[type="tel"], .wpcf7 input[type="email"], .wpcf7 textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--line);
	border-radius: 4px;
	background: #fff;
	font-family: var(--sans);
	font-size: 1em;
}

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.fab-footer { grid-template-columns: 1.4fr 1fr 1fr; }
	.fab-footer .fab-nap { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	.fab-steps { grid-template-columns: 1fr; gap: 24px; }
	.fab-step { display: grid; grid-template-columns: 46px 1fr; column-gap: 16px; align-items: center; }
	.fab-step-num { margin-bottom: 0; grid-row: span 2; }
	.fab-step h3 { align-self: end; }
}
@media (max-width: 768px) {
	body { font-size: 17px; }
	.fab-two-col, .fab-about { grid-template-columns: 1fr; gap: 28px; }
	.fab-about-photo { max-width: 260px; }
	.fab-footer { grid-template-columns: 1fr 1fr; }
	.fab-footer .fab-nap { grid-column: auto; }
	.fab-copyright { justify-content: flex-start; }
	.fab-brand img { height: 44px; }
	.fab-pullquote { font-size: 1.35em; }
}
@media (max-width: 480px) {
	.fab-footer { grid-template-columns: 1fr; }
	.fab-cards { grid-template-columns: 1fr; }
}
