/* ════════════════════════════════════════════════════════════════════
   FirstLegal.ai — Main Stylesheet
   Version 1.0.0
   Mobile-first · WCAG 2.1 AA · No jQuery · Dual color modes
   ════════════════════════════════════════════════════════════════════ */

/* ─── 1. Tokens ────────────────────────────────────────────────────── */
:root {
	/* TRUST mode (default) — Deep Navy + Warm Gold */
	--fl-primary:        #0A1F44;
	--fl-primary-hover:  #0F2D5C;
	--fl-accent:         #C9A96E;
	--fl-accent-hover:   #D9BD85;
	--fl-surface:        #F8F6F1;
	--fl-text:           #1A1A1A;
	--fl-text-2:         #5C6A7A;
	--fl-border:         #E5E2DA;
	--fl-white:          #FFFFFF;

	/* Status */
	--fl-success-bg:     #ECF7EE;
	--fl-success-fg:     #1A6B3C;
	--fl-error-bg:       #FDEDED;
	--fl-error-fg:       #9B1C1C;

	/* Type scale */
	--fl-font-display:   'Fraunces', Georgia, 'Times New Roman', serif;
	--fl-font-ui:        'Inter Tight', system-ui, sans-serif;
	--fl-font-body:      'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--fl-font-mono:      'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;

	/* Spacing scale (modular, 1.5 ratio) */
	--fl-s-1:  .375rem;
	--fl-s-2:  .75rem;
	--fl-s-3:  1.125rem;
	--fl-s-4:  1.5rem;
	--fl-s-5:  2.25rem;
	--fl-s-6:  3rem;
	--fl-s-7:  4.5rem;
	--fl-s-8:  6rem;
	--fl-s-9:  7.5rem;

	/* Radii */
	--fl-r-sm: 8px;
	--fl-r-md: 12px;
	--fl-r-lg: 16px;
	--fl-r-xl: 24px;

	/* Shadow */
	--fl-shadow-sm: 0 1px 2px rgba(10,31,68,.04), 0 1px 3px rgba(10,31,68,.06);
	--fl-shadow-md: 0 4px 24px rgba(10,31,68,.06);
	--fl-shadow-lg: 0 12px 48px rgba(10,31,68,.10);
	--fl-shadow-xl: 0 24px 80px rgba(10,31,68,.16);

	/* Motion */
	--fl-ease:        cubic-bezier(.22, 1, .36, 1);
	--fl-ease-out:    cubic-bezier(.4, 0, .2, 1);
	--fl-trans:       300ms var(--fl-ease);
	--fl-trans-fast:  180ms var(--fl-ease-out);

	/* Layout */
	--fl-container:   1200px;
	--fl-container-narrow: 880px;
	--fl-section-pad: clamp(4rem, 9vw, 7.5rem);
	--fl-header-h:    72px;
}

/* ════════════════════════════════════════════════════════════════════
   v2.1.0 — Fraunces variable-font tuning
   ────────────────────────────────────────────────────────────────────
   Fraunces ships with an optical-size axis (opsz, 9–144). We push
   display-size headlines toward the dramatic end of the axis (high
   contrast, prominent terminals) and body-size uses toward the
   refined small-text end. Also enable contextual alternates +
   discretionary ligatures for the editorial swash characters.
   ════════════════════════════════════════════════════════════════════ */
.fl-serif,
h1, h2, h3,
.fl-section-head__title,
.fl-hero__h1-serif,
.fl-hero__h1-sans,
.fl-step__title,
.fl-flow__body h3,
.fl-pricing-card__head h3,
.fl-firm-value h3,
.fl-vetting__item h3,
.fl-matter-card h3,
.fl-story__title,
.fl-story__h3,
.fl-cta-banner__title,
.fl-firms-signup__title,
.fl-for-firms-strip__title {
	font-family: 'Fraunces', 'Iowan Old Style', Georgia, serif;
	font-optical-sizing: auto;
	font-feature-settings: 'ss01', 'ss02', 'ss03', 'liga', 'dlig', 'calt';
	font-variation-settings: 'opsz' 144, 'SOFT' 50;
	letter-spacing: -0.015em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Hero headline — maximum drama */
.fl-hero__h1-serif,
.fl-hero__h1-sans {
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
	letter-spacing: -0.025em;
}

/* Body-size serifs (e.g. blockquotes, large lead paragraphs) — refined */
.fl-testimonial__quote,
blockquote,
.fl-lead-serif {
	font-family: 'Fraunces', 'Iowan Old Style', Georgia, serif;
	font-optical-sizing: auto;
	font-variation-settings: 'opsz' 24, 'SOFT' 50;
}

/* SVG text + iconographic uses — middle of opsz axis */
.fl-eyebrow {
	font-feature-settings: 'tnum';
}

/* MODERN mode — Off-White + Electric Indigo + Mint */
body.fl-mode-modern {
	--fl-primary:        #0B0B0B;
	--fl-primary-hover:  #1A1A1A;
	--fl-accent:         #4F46E5;
	--fl-accent-hover:   #6366F1;
	--fl-surface:        #FAFAF7;
	--fl-text:           #0B0B0B;
	--fl-text-2:         #4A4A4A;
	--fl-border:         #E5E5E5;
}
body.fl-mode-modern .fl-hero__bg     { background: linear-gradient(180deg, #FAFAF7 0%, #EEEAFE 100%); }
body.fl-mode-modern .fl-hero__h1-sans{ color: var(--fl-accent); }
body.fl-mode-modern .fl-cta-banner__bg { background: linear-gradient(135deg, #4F46E5 0%, #818CF8 50%, #A7F3D0 100%); }

/* ─── 2. Reset ─────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, ::before, ::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
body { margin: 0; font-family: var(--fl-font-body); font-size: 1rem; line-height: 1.7; color: var(--fl-text); background: var(--fl-white); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; padding-top: var(--fl-header-h); }
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
a { color: var(--fl-primary); text-decoration: none; transition: color var(--fl-trans-fast); }
a:hover { color: var(--fl-accent); }
button { cursor: pointer; font: inherit; color: inherit; background: none; border: 0; }
ul, ol { padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; line-height: 1.2; font-weight: 600; color: var(--fl-primary); letter-spacing: -.02em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--fl-accent); outline-offset: 3px; border-radius: 3px; }
::selection { background: var(--fl-accent); color: var(--fl-primary); }

.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; }

.fl-container { width: 100%; max-width: var(--fl-container); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }
.fl-container--narrow { max-width: var(--fl-container-narrow); }

/* ─── 3. Typography helpers ────────────────────────────────────────── */
.fl-eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-accent); margin-bottom: 1rem; }
.fl-eyebrow__dot { width: 6px; height: 6px; background: var(--fl-accent); border-radius: 50%; }
.fl-eyebrow--light { color: rgba(255,255,255,.7); }
.fl-eyebrow--light .fl-eyebrow__dot { background: rgba(255,255,255,.7); }
.fl-eyebrow--gold { color: var(--fl-accent); }

.fl-serif { font-family: var(--fl-font-display); font-style: italic; font-weight: 400; }
.fl-sans  { font-family: var(--fl-font-ui);     font-style: normal; font-weight: 600; }

.fl-section-head { margin-bottom: var(--fl-s-6); }
.fl-section-head--center { text-align: center; max-width: 720px; margin-inline: auto; }
.fl-section-head--row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.fl-section-head__title { font-family: var(--fl-font-display); font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.15; letter-spacing: -.02em; color: var(--fl-primary); }
.fl-section-head__title .fl-serif { display: inline; font-style: italic; }
.fl-section-head__title .fl-sans  { display: inline; font-style: normal; font-family: var(--fl-font-ui); font-weight: 600; }
.fl-section-head__title .fl-sans::before { content: ' '; }
@media (min-width: 768px) { .fl-section-head__title .fl-serif, .fl-section-head__title .fl-sans { display: block; } .fl-section-head__title .fl-sans::before { content: ''; } }

/* ─── 4. Buttons ───────────────────────────────────────────────────── */
.fl-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1.5rem; border-radius: var(--fl-r-sm); font-family: var(--fl-font-ui); font-size: .9375rem; font-weight: 600; letter-spacing: .005em; line-height: 1.4; text-align: center; transition: all var(--fl-trans-fast); white-space: nowrap; cursor: pointer; user-select: none; border: 1.5px solid transparent; }
.fl-btn--lg { padding: 1rem 2rem; font-size: 1rem; border-radius: var(--fl-r-lg); }
.fl-btn--sm { padding: .5rem 1rem; font-size: .875rem; }
.fl-btn--full { width: 100%; }
.fl-btn:disabled { opacity: .55; cursor: not-allowed; transform: none !important; }

.fl-btn--gold { background: var(--fl-accent); color: var(--fl-primary); box-shadow: 0 4px 14px rgba(201,169,110,.25); }
.fl-btn--gold:hover { background: var(--fl-accent-hover); transform: translateY(-1px); box-shadow: 0 8px 22px rgba(201,169,110,.32); color: var(--fl-primary); }

.fl-btn--primary { background: var(--fl-primary); color: var(--fl-white); }
.fl-btn--primary:hover { background: var(--fl-primary-hover); color: var(--fl-white); transform: translateY(-1px); }

.fl-btn--ghost { background: transparent; color: var(--fl-primary); border-color: var(--fl-border); }
.fl-btn--ghost:hover { background: var(--fl-surface); border-color: var(--fl-primary); color: var(--fl-primary); }

.fl-btn--ghost-light { background: transparent; color: var(--fl-white); border-color: rgba(255,255,255,.3); }
.fl-btn--ghost-light:hover { background: rgba(255,255,255,.1); border-color: var(--fl-white); color: var(--fl-white); }

.fl-btn__spinner { display: inline-flex; }
.fl-spin { animation: fl-spin 800ms linear infinite; }
@keyframes fl-spin { to { transform: rotate(360deg); } }

/* ─── 5. Header ───────────────────────────────────────────────────── */
.fl-header { position: fixed; top: 0; left: 0; right: 0; height: var(--fl-header-h); background: rgba(255,255,255,.85); backdrop-filter: saturate(180%) blur(16px); -webkit-backdrop-filter: saturate(180%) blur(16px); border-bottom: 1px solid transparent; z-index: 100; transition: all var(--fl-trans-fast); }
.fl-header.is-scrolled { background: rgba(255,255,255,.95); border-bottom-color: var(--fl-border); box-shadow: var(--fl-shadow-sm); }
.fl-header__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 2rem; }

.fl-logo { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; }
.fl-logo__mark { font-family: var(--fl-font-ui); font-size: 1.375rem; font-weight: 700; letter-spacing: -.015em; line-height: 1; }
.fl-logo__first  { color: var(--fl-primary); }
.fl-logo__legal  { color: var(--fl-primary); }
.fl-logo__dot    { color: var(--fl-accent); }
.fl-logo__ai     { color: var(--fl-accent); font-weight: 600; font-size: .9em; }
.fl-logo--light .fl-logo__first, .fl-logo--light .fl-logo__legal { color: var(--fl-white); }
.custom-logo { max-height: 40px; width: auto; }

.fl-nav__list { display: flex; align-items: center; gap: .25rem; list-style: none; }
.fl-nav__item { position: relative; }
.fl-nav__link { display: block; padding: .625rem 1rem; font-family: var(--fl-font-ui); font-size: .9375rem; font-weight: 500; color: var(--fl-text-2); border-radius: var(--fl-r-sm); transition: color var(--fl-trans-fast); }
.fl-nav__link:hover, .fl-nav__item--active .fl-nav__link { color: var(--fl-primary); }
.fl-nav__item--active .fl-nav__link::after { content: ''; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); width: 16px; height: 2px; background: var(--fl-accent); border-radius: 1px; }

.fl-header__actions { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }

.fl-burger { display: none; flex-direction: column; gap: 4px; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: var(--fl-r-sm); transition: background var(--fl-trans-fast); }
.fl-burger:hover { background: var(--fl-surface); }
.fl-burger span { display: block; width: 22px; height: 2px; background: var(--fl-primary); border-radius: 2px; transition: transform var(--fl-trans-fast), opacity var(--fl-trans-fast); }
.fl-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.fl-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.fl-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.fl-mobile { position: fixed; top: var(--fl-header-h); left: 0; right: 0; bottom: 0; background: var(--fl-white); padding: 2rem 1.5rem; transform: translateX(100%); transition: transform var(--fl-trans); z-index: 99; overflow-y: auto; }
.fl-mobile.is-open { transform: translateX(0); }
.fl-mobile__list { display: flex; flex-direction: column; list-style: none; gap: .25rem; margin-bottom: 2rem; }
.fl-mobile__list li { border-bottom: 1px solid var(--fl-border); }
.fl-mobile__list a { display: block; padding: 1rem 0; font-family: var(--fl-font-ui); font-size: 1.125rem; font-weight: 500; color: var(--fl-primary); }
.fl-mobile__actions { display: flex; flex-direction: column; gap: .75rem; }

@media (max-width: 960px) {
	.fl-nav, .fl-header__cta { display: none; }
	.fl-burger { display: inline-flex; }
}

/* ─── 6. Hero ─────────────────────────────────────────────────────── */
.fl-hero { position: relative; padding: clamp(4rem, 12vw, 8rem) 0 clamp(3rem, 8vw, 6rem); overflow: hidden; background: var(--fl-surface); }
.fl-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.fl-hero__mesh { position: absolute; inset: -10%; background: radial-gradient(ellipse 60% 50% at 70% 30%, rgba(201,169,110,.18) 0%, transparent 60%), radial-gradient(ellipse 50% 60% at 20% 80%, rgba(10,31,68,.08) 0%, transparent 60%); filter: blur(40px); }
.fl-hero__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(10,31,68,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(10,31,68,.04) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(180deg, black 0%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, black 0%, transparent 100%); }
.fl-hero__inner { position: relative; max-width: 920px; }
.fl-hero__h1 { font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1.05; letter-spacing: -.025em; margin: 0 0 1.5rem; color: var(--fl-primary); }
.fl-hero__h1-serif { font-family: var(--fl-font-display); font-style: italic; font-weight: 400; display: inline; }
.fl-hero__h1-sans  { font-family: var(--fl-font-ui); font-weight: 600; font-style: normal; display: inline; color: var(--fl-accent); }
.fl-hero__h1-sans::before { content: ' '; }
@media (min-width: 768px) { .fl-hero__h1-serif, .fl-hero__h1-sans { display: block; } .fl-hero__h1-sans::before { content: ''; } }

.fl-hero__subhead { font-size: clamp(1.0625rem, 1.6vw, 1.25rem); line-height: 1.6; color: var(--fl-text-2); max-width: 600px; margin: 0 0 2.25rem; }
.fl-hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 4rem; }
.fl-hero__scroll { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--fl-border); border-radius: 50%; color: var(--fl-text-2); animation: fl-bob 2.4s ease-in-out infinite; }
.fl-hero__scroll:hover { color: var(--fl-primary); border-color: var(--fl-primary); }
@keyframes fl-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* ─── 7. Trust Bar ────────────────────────────────────────────────── */
.fl-trust-bar { padding: 3rem 0; background: var(--fl-white); border-bottom: 1px solid var(--fl-border); }
.fl-trust-bar__label { text-align: center; font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-text-2); margin: 0 0 1.5rem; }
.fl-trust-bar__logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 2.5rem 3rem; }
.fl-trust-bar__logo { font-family: var(--fl-font-display); font-style: italic; font-size: 1.125rem; font-weight: 500; color: var(--fl-text-2); opacity: .55; transition: opacity var(--fl-trans-fast); filter: grayscale(100%); }
.fl-trust-bar__logo:hover { opacity: 1; }

/* ─── 8. Practice Areas Grid ──────────────────────────────────────── */
.fl-practice { padding: var(--fl-section-pad) 0; }
.fl-practice__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.fl-practice-card { display: flex; flex-direction: column; padding: 2rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); text-decoration: none; transition: all var(--fl-trans); position: relative; overflow: hidden; }
.fl-practice-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--fl-accent); transform: scaleY(0); transform-origin: top; transition: transform var(--fl-trans); }
.fl-practice-card:hover { box-shadow: var(--fl-shadow-md); transform: translateY(-4px); border-color: transparent; }
.fl-practice-card:hover::before { transform: scaleY(1); }
.fl-practice-card__icon { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; background: var(--fl-surface); border-radius: var(--fl-r-sm); color: var(--fl-accent); margin-bottom: 1.25rem; }
.fl-practice-card__title { font-family: var(--fl-font-ui); font-size: 1.25rem; font-weight: 600; margin: 0 0 .5rem; color: var(--fl-primary); }
.fl-practice-card__desc { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.65; flex: 1; margin: 0 0 1.25rem; }
.fl-practice-card__link { display: inline-flex; align-items: center; gap: .375rem; font-family: var(--fl-font-ui); font-size: .875rem; font-weight: 600; color: var(--fl-accent); }

/* ─── 9. Why Choose Us ────────────────────────────────────────────── */
.fl-why { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; }
.fl-why-card { padding: 2rem 0; }
.fl-why-card__icon { display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); color: var(--fl-accent); margin-bottom: 1.5rem; box-shadow: var(--fl-shadow-sm); }
.fl-why-card__title { font-family: var(--fl-font-ui); font-size: 1.1875rem; font-weight: 600; margin: 0 0 .625rem; color: var(--fl-primary); }
.fl-why-card__desc { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.65; }

/* ─── 10. About Snapshot ──────────────────────────────────────────── */
.fl-about-snap { padding: var(--fl-section-pad) 0; }
.fl-about-snap__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 900px) { .fl-about-snap__grid { grid-template-columns: 5fr 6fr; gap: 4rem; } }
.fl-about-snap__media { position: relative; }
.fl-about-snap__portrait { aspect-ratio: 5/6; border-radius: var(--fl-r-lg); overflow: hidden; box-shadow: var(--fl-shadow-lg); }
.fl-about-snap__portrait svg { width: 100%; height: 100%; display: block; }
.fl-about-snap__caption { font-family: var(--fl-font-ui); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-text-2); margin-top: 1rem; }
.fl-about-snap__lead { font-size: 1.0625rem; color: var(--fl-text); line-height: 1.65; margin-bottom: 1.75rem; }
.fl-about-snap__points { list-style: none; display: grid; gap: .75rem; margin: 0 0 2rem; padding: 0; }
.fl-about-snap__points li { display: flex; gap: .75rem; font-size: .9375rem; color: var(--fl-text); }
.fl-tick { display: inline-flex; width: 22px; height: 22px; flex-shrink: 0; align-items: center; justify-content: center; background: var(--fl-accent); color: var(--fl-white); border-radius: 50%; font-size: .75rem; font-weight: 700; }

/* ─── 11. Metrics ─────────────────────────────────────────────────── */
.fl-metrics { padding: var(--fl-s-7) 0; background: var(--fl-primary); color: var(--fl-white); position: relative; overflow: hidden; }
.fl-metrics::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 50%, rgba(201,169,110,.12) 0%, transparent 60%); }
.fl-metrics__grid { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; text-align: center; }
.fl-metric__num { font-family: var(--fl-font-display); font-size: clamp(2.5rem, 5vw, 3.75rem); font-weight: 600; color: var(--fl-accent); line-height: 1; margin-bottom: .5rem; letter-spacing: -.02em; }
.fl-metric__suffix { font-size: .7em; }
.fl-metric__label { font-family: var(--fl-font-ui); font-size: .9375rem; font-weight: 500; color: rgba(255,255,255,.92); letter-spacing: .02em; }

/* ─── 12. Testimonials Slider ─────────────────────────────────────── */
.fl-testimonials { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-testimonials__viewport { position: relative; overflow: hidden; padding: 1rem 0; }
.fl-testimonials__track { display: flex; gap: 2rem; transition: transform 500ms var(--fl-ease); }
.fl-testimonial { flex: 0 0 calc((100% - 4rem) / 3); min-width: 0; padding: 2rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-lg); display: flex; flex-direction: column; box-shadow: var(--fl-shadow-sm); }
@media (max-width: 1024px) { .fl-testimonial { flex-basis: calc((100% - 2rem) / 2); } }
@media (max-width: 640px)  { .fl-testimonial { flex-basis: 100%; } }
.fl-testimonial__stars { color: var(--fl-accent); letter-spacing: .15em; margin-bottom: 1rem; font-size: 1rem; }
.fl-testimonial__quote { font-family: var(--fl-font-display); font-style: italic; font-size: 1.125rem; line-height: 1.55; color: var(--fl-text); margin: 0 0 1.5rem; flex: 1; }
.fl-testimonial__quote::before { content: '"'; }
.fl-testimonial__quote::after { content: '"'; }
.fl-testimonial__footer { display: flex; align-items: center; gap: .875rem; padding-top: 1rem; border-top: 1px solid var(--fl-border); }
.fl-testimonial__avatar { width: 44px; height: 44px; flex-shrink: 0; background: var(--fl-primary); color: var(--fl-accent); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--fl-font-display); font-size: 1.125rem; font-weight: 600; }
.fl-testimonial__name { font-family: var(--fl-font-ui); font-weight: 600; color: var(--fl-primary); font-size: .9375rem; }
.fl-testimonial__role { font-size: .8125rem; color: var(--fl-text-2); }
.fl-testimonials__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: var(--fl-white); color: var(--fl-primary); border: 1px solid var(--fl-border); border-radius: 50%; box-shadow: var(--fl-shadow-md); transition: all var(--fl-trans-fast); z-index: 2; }
.fl-testimonials__nav:hover { background: var(--fl-primary); color: var(--fl-white); border-color: var(--fl-primary); }
.fl-testimonials__nav:disabled { opacity: 0; pointer-events: none; }
.fl-testimonials__nav--prev { left: -8px; }
.fl-testimonials__nav--next { right: -8px; }

/* ─── 13. Insights ────────────────────────────────────────────────── */
.fl-insights { padding: var(--fl-section-pad) 0; }
.fl-insights__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.fl-insight-card { display: flex; flex-direction: column; padding: 2rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); text-decoration: none; transition: all var(--fl-trans); position: relative; }
.fl-insight-card:hover { transform: translateY(-3px); box-shadow: var(--fl-shadow-md); border-color: transparent; }
.fl-insight-card__date { font-family: var(--fl-font-ui); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-text-2); margin-bottom: 1rem; }
.fl-insight-card__title { font-family: var(--fl-font-display); font-size: 1.375rem; line-height: 1.3; color: var(--fl-primary); margin: 0 0 .75rem; font-weight: 600; }
.fl-insight-card__excerpt { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.6; margin: 0 0 1.5rem; flex: 1; }
.fl-insight-card__more { font-family: var(--fl-font-ui); font-size: .875rem; font-weight: 600; color: var(--fl-accent); }

/* ─── 14. CTA Banner ──────────────────────────────────────────────── */
.fl-cta-banner { padding: var(--fl-s-7) 0; }
.fl-cta-banner__inner { position: relative; display: flex; align-items: center; gap: 2rem; padding: clamp(2.5rem, 6vw, 4rem); border-radius: var(--fl-r-xl); overflow: hidden; flex-wrap: wrap; }
.fl-cta-banner__bg { position: absolute; inset: 0; background: linear-gradient(135deg, var(--fl-primary) 0%, #1F3A6E 50%, var(--fl-primary-hover) 100%); z-index: -1; }
.fl-cta-banner__bg::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 60% at 80% 30%, rgba(201,169,110,.20) 0%, transparent 70%); }
.fl-cta-banner__copy { flex: 1; min-width: 260px; }
.fl-cta-banner__title { font-family: var(--fl-font-display); font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 600; color: var(--fl-white); margin: 0 0 .5rem; line-height: 1.2; }
.fl-cta-banner__sub { color: rgba(255,255,255,.75); margin: 0; font-size: 1.0625rem; }
.fl-cta-banner__cta { flex-shrink: 0; }

/* ─── 15. Page Hero (inner pages) ─────────────────────────────────── */
.fl-page-hero { position: relative; padding: clamp(3rem, 7vw, 5rem) 0 clamp(2.5rem, 6vw, 4rem); background: var(--fl-primary); color: var(--fl-white); overflow: hidden; }
.fl-page-hero__bg { position: absolute; inset: 0; opacity: .25; }
.fl-page-hero__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(201,169,110,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(201,169,110,.15) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%); }
.fl-page-hero__inner { position: relative; max-width: 760px; }
.fl-breadcrumbs { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--fl-font-ui); font-size: .8125rem; color: rgba(255,255,255,.6); margin-bottom: 1.25rem; }
.fl-breadcrumbs a { color: rgba(255,255,255,.6); text-decoration: none; }
.fl-breadcrumbs a:hover { color: var(--fl-accent); }
.fl-breadcrumbs span { color: rgba(255,255,255,.4); }
.fl-page-hero__title { font-family: var(--fl-font-display); font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.15; letter-spacing: -.02em; color: var(--fl-white); margin: 0 0 1rem; font-weight: 600; }
.fl-page-hero__sub { font-size: 1.125rem; line-height: 1.6; color: rgba(255,255,255,.75); margin: 0; max-width: 640px; }

/* ─── 16. About / Story ───────────────────────────────────────────── */
.fl-story { padding: var(--fl-section-pad) 0; }
.fl-story__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: start; }
@media (min-width: 1024px) { .fl-story__grid { grid-template-columns: 5fr 7fr; gap: 5rem; } .fl-story__media { position: sticky; top: calc(var(--fl-header-h) + 2rem); } }
.fl-story__media svg { width: 100%; aspect-ratio: 5/6; border-radius: var(--fl-r-lg); box-shadow: var(--fl-shadow-lg); }
.fl-story__title { font-family: var(--fl-font-display); font-size: clamp(2rem, 3.5vw, 2.5rem); line-height: 1.2; color: var(--fl-primary); margin: 0 0 1.25rem; }
.fl-story__h3 { font-family: var(--fl-font-display); font-size: 1.625rem; line-height: 1.3; color: var(--fl-primary); margin: 0 0 .75rem; font-weight: 600; }
.fl-story__block + .fl-story__block { margin-top: 3rem; padding-top: 3rem; border-top: 1px solid var(--fl-border); }
.fl-story__block p { color: var(--fl-text-2); font-size: 1.0625rem; }

/* ─── 17. Values ──────────────────────────────────────────────────── */
.fl-values { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-values__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; }
.fl-value-card { padding: 2rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); transition: all var(--fl-trans); }
.fl-value-card:hover { transform: translateY(-3px); box-shadow: var(--fl-shadow-md); }
.fl-value-card__icon { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; background: var(--fl-primary); color: var(--fl-accent); border-radius: var(--fl-r-sm); margin-bottom: 1.25rem; }
.fl-value-card__title { font-family: var(--fl-font-ui); font-size: 1.1875rem; font-weight: 600; color: var(--fl-primary); margin: 0 0 .5rem; }
.fl-value-card__desc { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.6; }

/* ─── 18. Attorneys Grid ──────────────────────────────────────────── */
.fl-attorneys { padding: var(--fl-section-pad) 0; }
.fl-attorneys__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; }
.fl-attorney-card { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); overflow: hidden; transition: all var(--fl-trans); }
.fl-attorney-card:hover { transform: translateY(-4px); box-shadow: var(--fl-shadow-md); }
.fl-attorney-card__photo { aspect-ratio: 5/6; background: var(--fl-surface); position: relative; overflow: hidden; }
.fl-attorney-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.fl-attorney-card__placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--fl-font-display); font-size: 4rem; color: var(--fl-accent); background: linear-gradient(135deg, var(--fl-primary) 0%, var(--fl-primary-hover) 100%); }
.fl-attorney-card__body { padding: 1.5rem; }
.fl-attorney-card__name { font-family: var(--fl-font-display); font-size: 1.25rem; font-weight: 600; color: var(--fl-primary); margin: 0 0 .25rem; }
.fl-attorney-card__title { font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fl-accent); margin-bottom: .25rem; }
.fl-attorney-card__specialty { font-size: .875rem; color: var(--fl-text-2); margin-bottom: .75rem; }
.fl-attorney-card__linkedin { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; background: var(--fl-surface); color: var(--fl-text-2); border-radius: var(--fl-r-sm); transition: all var(--fl-trans-fast); }
.fl-attorney-card__linkedin:hover { background: var(--fl-primary); color: var(--fl-white); }

/* ─── 19. Timeline ────────────────────────────────────────────────── */
.fl-timeline { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-timeline__list { list-style: none; max-width: 760px; margin-inline: auto; padding: 0; position: relative; }
.fl-timeline__list::before { content: ''; position: absolute; left: 84px; top: 0; bottom: 0; width: 2px; background: var(--fl-accent); opacity: .5; }
@media (max-width: 600px) { .fl-timeline__list::before { left: 24px; } }
.fl-timeline__item { display: grid; grid-template-columns: 100px 1fr; gap: 2rem; padding: 1.5rem 0; position: relative; }
@media (max-width: 600px) { .fl-timeline__item { grid-template-columns: 60px 1fr; gap: 1rem; } }
.fl-timeline__year { font-family: var(--fl-font-display); font-size: 1.5rem; font-weight: 600; color: var(--fl-primary); position: relative; z-index: 1; padding-top: .25rem; }
.fl-timeline__dot { position: absolute; left: 76px; top: 1.85rem; width: 16px; height: 16px; background: var(--fl-accent); border: 3px solid var(--fl-surface); border-radius: 50%; box-shadow: 0 0 0 3px var(--fl-accent); z-index: 1; }
@media (max-width: 600px) { .fl-timeline__dot { left: 16px; } }
.fl-timeline__title { font-family: var(--fl-font-ui); font-size: 1.125rem; font-weight: 600; color: var(--fl-primary); margin: 0 0 .375rem; }
.fl-timeline__desc { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.6; margin: 0; }

/* ─── 20. Process Steps ───────────────────────────────────────────── */
.fl-process { padding: var(--fl-section-pad) 0; }
.fl-process__track { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem; position: relative; }
.fl-process__track::before { content: ''; position: absolute; top: 28px; left: 10%; right: 10%; height: 2px; background: linear-gradient(90deg, transparent, var(--fl-accent), var(--fl-accent), transparent); z-index: 0; }
@media (max-width: 768px) { .fl-process__track::before { display: none; } }
.fl-process__step { text-align: center; position: relative; z-index: 1; padding: 0 1rem; }
.fl-process__num { display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; background: var(--fl-white); border: 2px solid var(--fl-accent); color: var(--fl-primary); border-radius: 50%; font-family: var(--fl-font-display); font-size: 1.25rem; font-weight: 600; margin-bottom: 1.25rem; box-shadow: var(--fl-shadow-sm); }
.fl-process__title { font-family: var(--fl-font-ui); font-size: 1.125rem; font-weight: 600; color: var(--fl-primary); margin: 0 0 .5rem; }
.fl-process__desc { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.6; }

/* ─── 21. Services Filter ─────────────────────────────────────────── */
.fl-services-filter { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-services-filter__tabs { display: inline-flex; gap: .25rem; padding: .25rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: 999px; margin: 0 auto 3rem; max-width: 100%; overflow-x: auto; flex-wrap: wrap; justify-content: center; }
.fl-services-filter > .fl-container { text-align: center; }
.fl-services-filter__tab { padding: .5rem 1.125rem; font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 600; color: var(--fl-text-2); border-radius: 999px; transition: all var(--fl-trans-fast); white-space: nowrap; }
.fl-services-filter__tab.is-active { background: var(--fl-primary); color: var(--fl-white); }
.fl-services-filter__tab:not(.is-active):hover { background: var(--fl-surface); color: var(--fl-primary); }
.fl-services-filter__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; text-align: left; }
.fl-service-card { padding: 2rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); transition: all var(--fl-trans); display: flex; flex-direction: column; }
.fl-service-card.fl-hide { display: none; }
.fl-service-card:hover { transform: translateY(-3px); box-shadow: var(--fl-shadow-md); border-color: transparent; }
.fl-service-card__icon { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; background: var(--fl-surface); color: var(--fl-accent); border-radius: var(--fl-r-sm); margin-bottom: 1.25rem; }
.fl-service-card__title { font-family: var(--fl-font-ui); font-size: 1.125rem; font-weight: 600; color: var(--fl-primary); margin: 0 0 .5rem; }
.fl-service-card__desc { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.6; flex: 1; margin-bottom: 1.25rem; }
.fl-service-card__link { font-family: var(--fl-font-ui); font-size: .875rem; font-weight: 600; color: var(--fl-accent); display: inline-flex; align-items: center; gap: .375rem; }

/* ─── 22. Engagement Cards ────────────────────────────────────────── */
.fl-services-intro { padding: var(--fl-section-pad) 0; }
.fl-services-intro__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: start; }
@media (min-width: 900px) { .fl-services-intro__grid { grid-template-columns: 5fr 7fr; gap: 4rem; } }
.fl-services-intro__title { font-family: var(--fl-font-display); font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.2; color: var(--fl-primary); margin: 0 0 1rem; }
.fl-services-intro__lead { font-size: 1.0625rem; color: var(--fl-text-2); }
.fl-engagement-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.fl-engagement-card { padding: 1.5rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-left: 3px solid var(--fl-accent); border-radius: var(--fl-r-sm); }
.fl-engagement-card__type { font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-accent); margin-bottom: .5rem; }
.fl-engagement-card p { margin: 0; font-size: .875rem; color: var(--fl-text-2); }

/* ─── 23. Content Depth (long-form services section) ──────────────── */
.fl-content-depth { padding: var(--fl-section-pad) 0; }
.fl-content-depth__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .fl-content-depth__grid { grid-template-columns: 220px 1fr; gap: 4rem; } }
.fl-content-depth__nav { position: sticky; top: calc(var(--fl-header-h) + 2rem); align-self: start; }
.fl-content-depth__nav ul { list-style: none; display: flex; flex-direction: column; gap: .375rem; padding: 0; margin: 0; }
.fl-content-depth__nav a { display: block; padding: .5rem .75rem; font-family: var(--fl-font-ui); font-size: .875rem; color: var(--fl-text-2); border-left: 2px solid var(--fl-border); transition: all var(--fl-trans-fast); }
.fl-content-depth__nav a:hover { color: var(--fl-primary); border-color: var(--fl-accent); }
.fl-content-depth__main h2 { font-family: var(--fl-font-display); font-size: 1.75rem; line-height: 1.25; color: var(--fl-primary); margin: 0 0 1rem; padding-top: 1rem; scroll-margin-top: 100px; }
.fl-content-depth__main section { margin-bottom: 3rem; }
.fl-content-depth__main p { font-size: 1.0625rem; line-height: 1.75; color: var(--fl-text); }
.fl-content-depth__main ul { padding-left: 1.5rem; margin: 0 0 1.25rem; }
.fl-content-depth__main ul li { margin-bottom: .5rem; line-height: 1.65; color: var(--fl-text); }
.fl-content-depth__note { font-size: .9375rem; color: var(--fl-text-2); font-style: italic; padding: 1rem 1.25rem; background: var(--fl-surface); border-left: 3px solid var(--fl-accent); border-radius: var(--fl-r-sm); }

.fl-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.fl-related-card { padding: 1.25rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-sm); transition: all var(--fl-trans-fast); }
.fl-related-card:hover { border-color: var(--fl-accent); transform: translateY(-2px); }
.fl-related-card h3 { font-family: var(--fl-font-ui); font-size: 1rem; color: var(--fl-primary); margin: 0 0 .375rem; font-weight: 600; }
.fl-related-card span { font-size: .8125rem; color: var(--fl-accent); }

.fl-disclaimer { padding: 1.5rem; background: var(--fl-surface); border-radius: var(--fl-r-md); border: 1px solid var(--fl-border); margin-top: 3rem; }
.fl-disclaimer strong { font-family: var(--fl-font-ui); font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-accent); display: block; margin-bottom: .5rem; }
.fl-disclaimer p { font-size: .875rem; color: var(--fl-text-2); margin: 0; line-height: 1.65; }

/* ─── 24. FAQ ─────────────────────────────────────────────────────── */
.fl-faq { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-faq__inner { max-width: 880px; }
.fl-faq__list { display: flex; flex-direction: column; gap: 1rem; margin: 0; padding: 0; }
.fl-faq__item { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); transition: all var(--fl-trans-fast); }
.fl-faq__item:has(.fl-faq__q[aria-expanded="true"]) { border-color: var(--fl-accent); box-shadow: var(--fl-shadow-sm); }
.fl-faq__q { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; text-align: left; font-family: var(--fl-font-ui); font-size: 1.0625rem; font-weight: 600; color: var(--fl-primary); }
.fl-faq__q svg { flex-shrink: 0; transition: transform var(--fl-trans-fast); color: var(--fl-accent); }
.fl-faq__q[aria-expanded="true"] svg { transform: rotate(180deg); }
.fl-faq__a { padding: 0 1.5rem 1.5rem; }
.fl-faq__a p { margin: 0; color: var(--fl-text-2); line-height: 1.7; }

/* ─── 25. Form ────────────────────────────────────────────────────── */
.fl-form { display: flex; flex-direction: column; gap: 1.25rem; }
.fl-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .fl-form__row { grid-template-columns: 1fr; } }
.fl-form__field { display: flex; flex-direction: column; gap: .375rem; }
.fl-form__label { font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 600; color: var(--fl-primary); letter-spacing: .02em; }
.fl-form__label span { color: var(--fl-error-fg); }
.fl-form__input { width: 100%; padding: .875rem 1rem; font-family: var(--fl-font-body); font-size: .9375rem; color: var(--fl-text); background: var(--fl-white); border: 1.5px solid var(--fl-border); border-radius: var(--fl-r-sm); transition: border-color var(--fl-trans-fast), box-shadow var(--fl-trans-fast); }
.fl-form__input:focus { outline: 0; border-color: var(--fl-accent); box-shadow: 0 0 0 3px rgba(201,169,110,.15); }
.fl-form__textarea { resize: vertical; min-height: 120px; line-height: 1.6; }
.fl-form__select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%235C6A7A' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; appearance: none; -webkit-appearance: none; }
.fl-form__check { display: flex; align-items: flex-start; gap: .625rem; cursor: pointer; }
.fl-form__check input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; accent-color: var(--fl-accent); cursor: pointer; }
.fl-form__check span { font-size: .875rem; color: var(--fl-text-2); line-height: 1.55; }
.fl-form__alert { padding: .875rem 1.125rem; border-radius: var(--fl-r-sm); font-size: .875rem; line-height: 1.55; }
.fl-form__alert.is-success { background: var(--fl-success-bg); color: var(--fl-success-fg); border: 1px solid rgba(26,107,60,.2); }
.fl-form__alert.is-error   { background: var(--fl-error-bg);   color: var(--fl-error-fg);   border: 1px solid rgba(155,28,28,.2); }
.fl-form__footnote { font-size: .8125rem; color: var(--fl-text-2); text-align: center; margin: .5rem 0 0; }

/* ─── 26. Contact Page ────────────────────────────────────────────── */
.fl-contact { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-contact__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: start; }
@media (min-width: 1024px) { .fl-contact__grid { grid-template-columns: 7fr 5fr; gap: 4rem; } }
.fl-contact__form-wrap { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-lg); padding: clamp(1.75rem, 4vw, 2.75rem); box-shadow: var(--fl-shadow-md); }
.fl-contact__head { margin-bottom: 1.75rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--fl-border); }
.fl-contact__title { font-family: var(--fl-font-display); font-size: 1.75rem; line-height: 1.2; color: var(--fl-primary); margin: 0 0 .5rem; }
.fl-contact__head p { color: var(--fl-text-2); margin: 0; font-size: .9375rem; }

.fl-office { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-lg); padding: 2rem; margin-bottom: 1.5rem; }
.fl-office__group { display: flex; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--fl-border); }
.fl-office__group:last-of-type { border-bottom: 0; }
.fl-office__group:first-of-type { padding-top: 0; }
.fl-office__icon { display: inline-flex; width: 36px; height: 36px; flex-shrink: 0; align-items: center; justify-content: center; background: var(--fl-surface); color: var(--fl-accent); border-radius: var(--fl-r-sm); }
.fl-office__label { font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-text-2); margin-bottom: .25rem; }
.fl-office__value { color: var(--fl-primary); text-decoration: none; font-style: normal; line-height: 1.5; }
.fl-office__value:hover { color: var(--fl-accent); }
.fl-office__social { display: flex; gap: .5rem; padding-top: 1rem; }
.fl-office__social a { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; background: var(--fl-surface); color: var(--fl-text-2); border-radius: var(--fl-r-sm); transition: all var(--fl-trans-fast); }
.fl-office__social a:hover { background: var(--fl-primary); color: var(--fl-white); }

.fl-contact__map { aspect-ratio: 4/3; border-radius: var(--fl-r-lg); overflow: hidden; border: 1px solid var(--fl-border); position: relative; filter: grayscale(.3) contrast(.95); background: var(--fl-surface); }
.fl-contact__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.fl-contact__map-link { position: absolute; bottom: 1rem; right: 1rem; padding: .5rem .875rem; background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-sm); font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 600; color: var(--fl-primary); box-shadow: var(--fl-shadow-sm); text-decoration: none; }
.fl-contact__map-link:hover { background: var(--fl-primary); color: var(--fl-white); border-color: var(--fl-primary); }

.fl-confidential { display: flex; gap: 1rem; padding: 1.25rem; margin-top: 1.5rem; background: var(--fl-surface); border-left: 3px solid var(--fl-accent); border-radius: var(--fl-r-sm); }
.fl-confidential__icon { flex-shrink: 0; color: var(--fl-accent); }
.fl-confidential__copy { font-size: .9375rem; color: var(--fl-text); line-height: 1.6; }
.fl-confidential__copy strong { display: block; font-family: var(--fl-font-ui); margin-bottom: .25rem; color: var(--fl-primary); }
.fl-trust-strip { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; padding: 1rem 0 0; margin-top: 1rem; border-top: 1px dashed var(--fl-border); }
.fl-trust-strip span { display: inline-flex; align-items: center; gap: .375rem; font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fl-text-2); }
.fl-trust-strip svg { color: var(--fl-accent); }

/* ─── 27. Footer ──────────────────────────────────────────────────── */
.fl-footer { background: var(--fl-primary); color: rgba(255,255,255,.65); padding-top: 0; }
.fl-footer__divider { height: 1px; background: linear-gradient(90deg, transparent 0%, var(--fl-accent) 30%, var(--fl-accent) 70%, transparent 100%); opacity: .35; }
.fl-footer__top { padding: 4rem 0 3rem; }
.fl-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 3rem; }
@media (max-width: 1024px) { .fl-footer__grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }
@media (max-width: 600px)  { .fl-footer__grid { grid-template-columns: 1fr; gap: 2rem; } }

.fl-footer__brand .fl-logo { margin-bottom: 1.25rem; display: inline-flex; }
.fl-footer__tagline { font-size: .9375rem; line-height: 1.65; color: rgba(255,255,255,.6); margin-bottom: 1.25rem; max-width: 320px; }
.fl-footer__trust { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.fl-footer__trust span { display: inline-flex; align-items: center; gap: .375rem; font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 500; color: rgba(255,255,255,.5); }
.fl-footer__trust svg { color: var(--fl-accent); }

.fl-footer__col-title { font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-accent); margin: 0 0 1rem; }
.fl-footer__links { list-style: none; display: flex; flex-direction: column; gap: .625rem; padding: 0; margin: 0; }
.fl-footer__links a { color: rgba(255,255,255,.7); font-size: .9375rem; transition: color var(--fl-trans-fast); }
.fl-footer__links a:hover { color: var(--fl-accent); }

.fl-footer__newsletter p { font-size: .875rem; color: rgba(255,255,255,.55); margin-bottom: 1rem; line-height: 1.55; }
.fl-newsletter { display: flex; gap: 0; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: var(--fl-r-sm); padding: 4px; transition: border-color var(--fl-trans-fast); }
.fl-newsletter:focus-within { border-color: var(--fl-accent); }
.fl-newsletter input { flex: 1; padding: .625rem .75rem; background: transparent; border: 0; color: var(--fl-white); font-size: .875rem; font-family: inherit; }
.fl-newsletter input::placeholder { color: rgba(255,255,255,.35); }
.fl-newsletter input:focus { outline: 0; }
.fl-newsletter__btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--fl-accent); color: var(--fl-primary); border-radius: calc(var(--fl-r-sm) - 4px); transition: all var(--fl-trans-fast); }
.fl-newsletter__btn:hover { background: var(--fl-accent-hover); }
.fl-newsletter__note { font-size: .75rem; color: rgba(255,255,255,.4); margin: .75rem 0 0; }
.fl-newsletter__note a { color: rgba(255,255,255,.6); text-decoration: underline; }

.fl-footer__bottom { padding: 1.5rem 0; }
.fl-footer__bottom-inner { display: flex; gap: 2rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.fl-footer__legal-text p { font-size: .8125rem; color: rgba(255,255,255,.45); margin: 0; line-height: 1.6; max-width: 600px; }
.fl-footer__disclaimer { font-size: .75rem !important; color: rgba(255,255,255,.35) !important; margin-top: .375rem !important; }
.fl-footer__legal-links { list-style: none; display: flex; flex-wrap: wrap; gap: 1.25rem; padding: 0; margin: 0; }
.fl-footer__legal-links a { font-size: .8125rem; color: rgba(255,255,255,.5); }
.fl-footer__legal-links a:hover { color: var(--fl-accent); }

/* ─── 28. Cookie Banner ───────────────────────────────────────────── */
.fl-cookie { position: fixed; bottom: 1.5rem; left: 1.5rem; right: 1.5rem; max-width: 720px; margin-inline: auto; background: var(--fl-primary); color: var(--fl-white); padding: 1.25rem 1.5rem; border-radius: var(--fl-r-md); box-shadow: var(--fl-shadow-xl); z-index: 99; transform: translateY(calc(100% + 2rem)); opacity: 0; transition: transform 400ms var(--fl-ease), opacity 400ms var(--fl-ease); border: 1px solid rgba(201,169,110,.2); }
.fl-cookie.is-visible { transform: translateY(0); opacity: 1; }
.fl-cookie__inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.fl-cookie__copy { flex: 1; min-width: 240px; }
.fl-cookie__copy strong { display: block; font-family: var(--fl-font-ui); font-size: .9375rem; margin-bottom: .25rem; }
.fl-cookie__copy p { font-size: .8125rem; color: rgba(255,255,255,.65); margin: 0; line-height: 1.55; }
.fl-cookie__copy a { color: var(--fl-accent); text-decoration: underline; }
.fl-cookie__actions { display: flex; gap: .625rem; flex-shrink: 0; }
.fl-cookie .fl-btn--ghost { color: var(--fl-white); border-color: rgba(255,255,255,.2); }
.fl-cookie .fl-btn--ghost:hover { background: rgba(255,255,255,.05); border-color: var(--fl-white); }

/* ─── 29. 404, Search, Article ────────────────────────────────────── */
.fl-404 { padding: var(--fl-section-pad) 0; text-align: center; min-height: 70vh; display: flex; align-items: center; }
.fl-404__inner { max-width: 580px; margin-inline: auto; }
.fl-404__code { font-family: var(--fl-font-display); font-size: clamp(6rem, 18vw, 11rem); font-weight: 600; line-height: 1; color: var(--fl-accent); opacity: .3; margin-bottom: 1rem; }
.fl-404__title { font-size: clamp(2rem, 4vw, 2.75rem); margin: 0 0 1rem; }
.fl-404__text { color: var(--fl-text-2); margin-bottom: 2rem; font-size: 1.0625rem; }
.fl-404__actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-bottom: 2rem; }
.fl-404__search { max-width: 400px; margin-inline: auto; }

.fl-search { display: flex; align-items: stretch; background: var(--fl-white); border: 1.5px solid var(--fl-border); border-radius: var(--fl-r-sm); transition: border-color var(--fl-trans-fast); }
.fl-search:focus-within { border-color: var(--fl-accent); }
.fl-search__input { flex: 1; padding: .75rem 1rem; border: 0; background: transparent; font-size: .9375rem; font-family: inherit; color: var(--fl-text); }
.fl-search__input:focus { outline: 0; }
.fl-search__btn { display: inline-flex; width: 44px; align-items: center; justify-content: center; color: var(--fl-text-2); transition: color var(--fl-trans-fast); }
.fl-search__btn:hover { color: var(--fl-primary); }

.fl-article { padding: var(--fl-section-pad) 0; }
.fl-article__inner { max-width: 760px; margin-inline: auto; }
.fl-article__content { font-size: 1.0625rem; line-height: 1.8; color: var(--fl-text); }
.fl-article__content h2, .fl-article__content h3, .fl-article__content h4 { margin: 2.5rem 0 1rem; color: var(--fl-primary); }
.fl-article__content h2 { font-family: var(--fl-font-display); font-size: 1.875rem; }
.fl-article__content p { margin-bottom: 1.25em; }
.fl-article__content a { color: var(--fl-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.fl-article__content blockquote { font-family: var(--fl-font-display); font-style: italic; font-size: 1.25rem; border-left: 3px solid var(--fl-accent); padding-left: 1.5rem; margin: 2rem 0; color: var(--fl-text); }
.fl-article__content ul, .fl-article__content ol { padding-left: 1.5rem; margin: 0 0 1.25em; }
.fl-article__content code { font-family: var(--fl-font-mono); font-size: .875em; background: var(--fl-surface); padding: 2px 6px; border-radius: 4px; }

.fl-archive { padding: var(--fl-section-pad) 0; }
.fl-archive__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-bottom: 3rem; }
.fl-archive__card { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); overflow: hidden; transition: all var(--fl-trans); }
.fl-archive__card:hover { transform: translateY(-3px); box-shadow: var(--fl-shadow-md); }
.fl-archive__thumb { display: block; aspect-ratio: 16/9; overflow: hidden; }
.fl-archive__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--fl-ease); }
.fl-archive__card:hover .fl-archive__thumb img { transform: scale(1.05); }
.fl-archive__body { padding: 1.5rem 1.75rem 1.75rem; }
.fl-archive__date { font-family: var(--fl-font-ui); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-text-2); }
.fl-archive__title { font-family: var(--fl-font-display); font-size: 1.375rem; line-height: 1.3; margin: .5rem 0 .75rem; }
.fl-archive__title a { color: var(--fl-primary); }
.fl-archive__title a:hover { color: var(--fl-accent); }
.fl-archive__excerpt { font-size: .9375rem; color: var(--fl-text-2); line-height: 1.6; margin-bottom: 1rem; }
.fl-archive__more { font-family: var(--fl-font-ui); font-size: .875rem; font-weight: 600; color: var(--fl-accent); }

.fl-pagination { display: flex; justify-content: center; gap: .5rem; }
.fl-pagination .nav-links { display: flex; gap: .25rem; flex-wrap: wrap; justify-content: center; }
.fl-pagination .page-numbers { display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; padding: 0 .75rem; font-family: var(--fl-font-ui); font-weight: 600; font-size: .875rem; color: var(--fl-text-2); border: 1px solid var(--fl-border); border-radius: var(--fl-r-sm); transition: all var(--fl-trans-fast); }
.fl-pagination .page-numbers:hover, .fl-pagination .current { background: var(--fl-primary); color: var(--fl-white); border-color: var(--fl-primary); }

.fl-empty { text-align: center; padding: 4rem 0; max-width: 480px; margin-inline: auto; }
.fl-empty h2 { font-family: var(--fl-font-display); margin-bottom: .5rem; }
.fl-empty p { color: var(--fl-text-2); margin-bottom: 1.5rem; }

/* ─── 30. Reveal animation utility ────────────────────────────────── */
.fl-reveal { opacity: 0; transform: translateY(28px); transition: opacity 700ms var(--fl-ease), transform 700ms var(--fl-ease); }
.fl-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Staggered reveal delays via inline --i */
.fl-practice-card,
.fl-why-card,
.fl-value-card,
.fl-attorney-card,
.fl-insight-card { animation: fl-fadeup .7s var(--fl-ease) both; animation-delay: calc(var(--i, 0) * 80ms); }
@keyframes fl-fadeup { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

/* ─── 31. Print ───────────────────────────────────────────────────── */
@media print {
	.fl-header, .fl-footer, .fl-cookie, .fl-cta-banner, .fl-hero__scroll, .fl-burger { display: none !important; }
	body { padding-top: 0; color: black; background: white; }
	a { color: black; text-decoration: underline; }
}

/* ════════════════════════════════════════════════════════════════════
   v2 ADDITIONS — Announcement bar, search overlay, scroll progress,
   mosaic, marquee, real-image cards, dedicated pages, advanced anims
   ════════════════════════════════════════════════════════════════════ */

/* ─── Scroll progress bar ────────────────────────────────────────── */
.fl-scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200; pointer-events: none; }
.fl-scroll-progress span { display: block; height: 100%; width: 0%; background: linear-gradient(90deg, var(--fl-accent), var(--fl-accent-hover)); transition: width 80ms linear; box-shadow: 0 0 10px rgba(201,169,110,.5); }

/* ─── Announcement bar — auto-rotating slider ─────────────────── */
:root { --fl-announce-h: 40px; }
@media (max-width: 600px) { :root { --fl-announce-h: 38px; } }

.fl-announce {
	position: fixed; top: 0; left: 0; right: 0; z-index: 110;
	background: linear-gradient(135deg, var(--fl-primary) 0%, var(--fl-primary-hover) 50%, var(--fl-primary) 100%);
	color: #fff;
	height: var(--fl-announce-h);
	display: flex; align-items: center;
	overflow: hidden;
	border-bottom: 1px solid rgba(201,169,110,.18);
	transition: transform 400ms var(--fl-ease), opacity 400ms var(--fl-ease);
}
.fl-announce::before {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(ellipse 30% 100% at 70% 50%, rgba(201,169,110,.18) 0%, transparent 70%);
	pointer-events: none;
}
.fl-announce.is-hidden { transform: translateY(-100%); opacity: 0; pointer-events: none; }
.fl-announce__inner { display: flex; align-items: center; gap: .75rem; width: 100%; min-width: 0; height: 100%; position: relative; z-index: 1; }
.fl-announce__viewport { flex: 1; min-width: 0; height: 100%; position: relative; overflow: hidden; }
.fl-announce__track { position: relative; height: 100%; list-style: none; padding: 0; margin: 0; }

/* Each slide is absolutely positioned and slides in from the right */
.fl-announce__slide {
	position: absolute; inset: 0;
	display: flex; align-items: center; gap: .65rem;
	font-size: .8125rem;
	white-space: nowrap;
	opacity: 0;
	transform: translateX(40px);
	transition: opacity 550ms var(--fl-ease), transform 650ms var(--fl-ease);
	pointer-events: none;
	will-change: transform, opacity;
}
.fl-announce__slide.is-active {
	opacity: 1;
	transform: translateX(0);
	pointer-events: auto;
}
.fl-announce__slide.is-leaving {
	opacity: 0;
	transform: translateX(-40px);
	pointer-events: none;
}

.fl-announce__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--fl-accent); }
.fl-announce__icon svg { width: 14px; height: 14px; }
.fl-announce__text { color: rgba(255,255,255,.94); font-weight: 500; letter-spacing: .005em; overflow: hidden; text-overflow: ellipsis; }

.fl-announce__link {
	display: inline-flex; align-items: center; gap: .25rem;
	flex-shrink: 0; padding: .15rem .65rem;
	background: rgba(201,169,110,.18);
	border: 1px solid rgba(201,169,110,.4);
	border-radius: 999px;
	color: var(--fl-accent);
	font-weight: 600; font-size: .75rem;
	transition: all var(--fl-trans-fast); white-space: nowrap;
}
.fl-announce__link:hover { background: var(--fl-accent); color: var(--fl-primary); border-color: var(--fl-accent); }
.fl-announce__link svg { transition: transform var(--fl-trans-fast); }
.fl-announce__link:hover svg { transform: translateX(2px); }

.fl-announce__nav {
	display: inline-flex; width: 26px; height: 26px;
	align-items: center; justify-content: center;
	flex-shrink: 0; color: rgba(255,255,255,.6);
	border-radius: 4px;
	transition: all var(--fl-trans-fast);
}
.fl-announce__nav:hover { background: rgba(255,255,255,.1); color: #fff; }
.fl-announce__close { margin-left: auto; padding: .35rem; color: rgba(255,255,255,.5); border-radius: 4px; transition: all var(--fl-trans-fast); }
.fl-announce__close:hover { background: rgba(255,255,255,.1); color: #fff; transform: rotate(90deg); }

.fl-announce__progress { position: absolute; bottom: 0; left: 0; right: 0; height: 1.5px; background: rgba(255,255,255,.08); }
.fl-announce__progress-bar { display: block; height: 100%; width: 0%; background: var(--fl-accent); transition: width 80ms linear; box-shadow: 0 0 6px rgba(201,169,110,.6); }

@media (max-width: 600px) {
	.fl-announce__nav { display: none; }
	.fl-announce__text { font-size: .75rem; }
	.fl-announce__link { display: none; }
}

/* ─── Body offsets — only when announcement bar is visible ──────── */
body.fl-has-announce { padding-top: calc(var(--fl-header-h) + var(--fl-announce-h)); }
body.fl-has-announce .fl-header { top: var(--fl-announce-h); }
body.fl-announce-dismissed { padding-top: var(--fl-header-h); }
body.fl-announce-dismissed .fl-header { top: 0; }

/* ─── Header refinements ─────────────────────────────────────────── */
.fl-header__inner { gap: 1.5rem; }
.fl-header__search-toggle {
	display: inline-flex; width: 38px; height: 38px;
	align-items: center; justify-content: center;
	color: var(--fl-text-2); border-radius: var(--fl-r-sm);
	transition: all var(--fl-trans-fast);
}
.fl-header__search-toggle:hover { background: var(--fl-surface); color: var(--fl-primary); transform: scale(1.05); }
.fl-header__cta svg { transition: transform var(--fl-trans-fast); }
.fl-header__cta:hover svg { transform: translateX(3px); }
@media (max-width: 960px) { .fl-header__search-toggle { display: none; } }

/* Polished nav links — magnetic underline */
.fl-nav__link { position: relative; }
.fl-nav__link::after {
	content: ''; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%) scaleX(0);
	width: calc(100% - 1.75rem); height: 2px; background: var(--fl-accent); border-radius: 1px;
	transition: transform 280ms var(--fl-ease); transform-origin: center;
}
.fl-nav__link:hover::after, .fl-nav__item--active .fl-nav__link::after { transform: translateX(-50%) scaleX(1); }
.fl-nav__item--active .fl-nav__link::after { width: 16px; }

/* ─── Search overlay ─────────────────────────────────────────────── */
.fl-search-overlay {
	position: fixed; inset: 0;
	background: rgba(10,31,68,.96);
	backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
	z-index: 200; opacity: 0; pointer-events: none;
	transition: opacity 300ms var(--fl-ease);
}
.fl-search-overlay.is-open { opacity: 1; pointer-events: auto; }
.fl-search-overlay__inner { display: flex; flex-direction: column; gap: 2rem; padding-top: 18vh; }
.fl-search-overlay__form {
	display: flex; align-items: center; gap: 1rem;
	padding: 1.25rem 1.5rem;
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: var(--fl-r-lg);
	box-shadow: 0 30px 80px rgba(0,0,0,.4);
	transform: translateY(20px); opacity: 0; transition: all 400ms var(--fl-ease) 100ms;
}
.fl-search-overlay.is-open .fl-search-overlay__form { transform: translateY(0); opacity: 1; }
.fl-search-overlay__form > svg { color: var(--fl-accent); flex-shrink: 0; }
.fl-search-overlay__form input { flex: 1; padding: .25rem 0; background: transparent; border: 0; color: #fff; font-size: clamp(1.125rem, 2vw, 1.5rem); font-family: var(--fl-font-display); font-style: italic; }
.fl-search-overlay__form input::placeholder { color: rgba(255,255,255,.4); }
.fl-search-overlay__form input:focus { outline: 0; }
.fl-search-overlay__close { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; flex-shrink: 0; color: rgba(255,255,255,.5); border-radius: 50%; border: 1px solid rgba(255,255,255,.15); transition: all var(--fl-trans-fast); }
.fl-search-overlay__close:hover { color: #fff; background: rgba(255,255,255,.08); border-color: var(--fl-accent); }
.fl-search-overlay__hint { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; font-size: .875rem; color: rgba(255,255,255,.5); }
.fl-search-overlay__hint > span { font-family: var(--fl-font-ui); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.4); }
.fl-search-overlay__hint a { color: rgba(255,255,255,.7); padding: .25rem 0; border-bottom: 1px solid transparent; transition: all var(--fl-trans-fast); }
.fl-search-overlay__hint a:hover { color: var(--fl-accent); border-bottom-color: var(--fl-accent); }

/* ─── Hero — real image background ───────────────────────────────── */
.fl-hero__bg-image {
	position: absolute; inset: 0;
	width: 100%; height: 110%;
	object-fit: cover; object-position: center;
	will-change: transform;
}
.fl-hero__bg-overlay {
	position: absolute; inset: 0;
	background:
		linear-gradient(135deg, rgba(248,246,241,.92) 0%, rgba(248,246,241,.75) 50%, rgba(248,246,241,.55) 100%),
		linear-gradient(180deg, transparent 50%, rgba(248,246,241,.92) 100%);
}
body.fl-mode-modern .fl-hero__bg-overlay {
	background:
		linear-gradient(135deg, rgba(250,250,247,.94) 0%, rgba(250,250,247,.78) 50%, rgba(250,250,247,.6) 100%),
		linear-gradient(180deg, transparent 50%, rgba(250,250,247,.95) 100%);
}

.fl-hero__trust-pills { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; }
.fl-hero__trust-pills span { display: inline-flex; align-items: center; gap: .375rem; font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fl-text-2); padding: .35rem .75rem; background: rgba(255,255,255,.6); backdrop-filter: blur(8px); border: 1px solid var(--fl-border); border-radius: 999px; }
.fl-hero__trust-pills svg { color: var(--fl-accent); }

/* Magnetic button */
.fl-btn--magnetic { transition: all 250ms var(--fl-ease); will-change: transform; }
.fl-btn--magnetic:hover { transform: translateY(-2px) scale(1.02); }

/* ─── Mosaic gallery ─────────────────────────────────────────────── */
.fl-mosaic { padding: var(--fl-section-pad) 0; }
.fl-mosaic__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 1.25rem;
	min-height: 580px;
}
@media (max-width: 900px) { .fl-mosaic__grid { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 240px 240px; min-height: 0; } .fl-mosaic__tile--lg { grid-column: span 2; } }
@media (max-width: 540px) { .fl-mosaic__grid { grid-template-columns: 1fr; grid-auto-rows: 200px; } .fl-mosaic__tile--lg { grid-column: auto; grid-row: span 1; } }

.fl-mosaic__tile {
	position: relative; overflow: hidden;
	border-radius: var(--fl-r-lg);
	display: block; text-decoration: none;
	box-shadow: var(--fl-shadow-sm);
	transition: all var(--fl-trans);
}
.fl-mosaic__tile--lg { grid-row: span 2; }
.fl-mosaic__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--fl-ease); }
.fl-mosaic__tile::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(10,31,68,.85) 100%);
	transition: opacity var(--fl-trans);
}
.fl-mosaic__tile:hover { box-shadow: var(--fl-shadow-lg); transform: translateY(-3px); }
.fl-mosaic__tile:hover img { transform: scale(1.06); }

.fl-mosaic__caption {
	position: absolute; bottom: 0; left: 0; right: 0;
	padding: 1.5rem; color: #fff; z-index: 1;
	transform: translateY(8px); transition: transform var(--fl-trans);
}
.fl-mosaic__tile:hover .fl-mosaic__caption { transform: translateY(0); }
.fl-mosaic__label { display: block; font-family: var(--fl-font-ui); font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-accent); margin-bottom: .25rem; }
.fl-mosaic__caption strong { font-family: var(--fl-font-display); font-size: 1.25rem; font-weight: 600; line-height: 1.25; }
.fl-mosaic__tile--lg .fl-mosaic__caption strong { font-size: 1.625rem; }

/* ─── Marquee ────────────────────────────────────────────────────── */
.fl-marquee { background: var(--fl-primary); color: #fff; padding: 2rem 0; overflow: hidden; border-block: 1px solid rgba(201,169,110,.2); }
.fl-marquee__track { display: flex; gap: 3rem; animation: fl-marquee 32s linear infinite; will-change: transform; white-space: nowrap; }
.fl-marquee:hover .fl-marquee__track { animation-play-state: paused; }
.fl-marquee__item { display: inline-flex; align-items: center; gap: 3rem; flex-shrink: 0; font-size: 1.5rem; }
.fl-marquee__item .fl-serif { font-style: italic; font-weight: 500; color: #FFFFFF; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.fl-marquee__dot { color: var(--fl-accent); font-size: 1rem; }
@keyframes fl-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ─── Insight cards with images (homepage) ───────────────────────── */
.fl-insight-card { padding: 0 !important; overflow: hidden; }
.fl-insight-card__image { aspect-ratio: 16 / 10; overflow: hidden; }
.fl-insight-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--fl-ease); }
.fl-insight-card:hover .fl-insight-card__image img { transform: scale(1.06); }
.fl-insight-card__content { padding: 1.75rem 2rem 2rem; display: flex; flex-direction: column; flex: 1; }

/* ─── About snapshot — real image ────────────────────────────────── */
.fl-about-snap__portrait { position: relative; aspect-ratio: 5/6; }
.fl-about-snap__portrait img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--fl-r-lg); }
.fl-about-snap__portrait-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(10,31,68,.6) 100%); border-radius: var(--fl-r-lg); }
.fl-about-snap__portrait-tag { position: absolute; bottom: 1.5rem; left: 1.5rem; display: flex; align-items: center; gap: .75rem; }
.fl-about-snap__portrait-tag-line { width: 32px; height: 1px; background: var(--fl-accent); }
.fl-about-snap__portrait-tag-text { font-family: var(--fl-font-display); font-style: italic; font-size: 1rem; color: #fff; letter-spacing: .02em; }
.fl-about-snap__floater {
	position: absolute; bottom: -20px; right: -20px;
	display: flex; align-items: center; gap: .75rem;
	background: var(--fl-white); padding: 1rem 1.25rem;
	border-radius: var(--fl-r-md); box-shadow: var(--fl-shadow-lg);
	border: 1px solid var(--fl-border);
}
.fl-about-snap__floater svg { color: var(--fl-accent); flex-shrink: 0; }
.fl-about-snap__floater strong { display: block; font-family: var(--fl-font-display); font-size: 1.125rem; color: var(--fl-primary); }
.fl-about-snap__floater span { font-size: .8125rem; color: var(--fl-text-2); }
@media (max-width: 600px) { .fl-about-snap__floater { right: 0; bottom: -16px; } }

/* Tilt effect */
.fl-tilt { transition: transform 400ms var(--fl-ease); transform-style: preserve-3d; will-change: transform; }
.fl-tilt:hover { transform: perspective(1200px) rotateX(2deg) rotateY(-3deg); }

/* ─── Attorney cards — hover overlay ─────────────────────────────── */
.fl-attorney-card { animation-delay: calc(var(--i, 0) * 80ms); }
.fl-attorney-card__photo { aspect-ratio: 5/6; position: relative; overflow: hidden; background: var(--fl-surface); }
.fl-attorney-card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--fl-ease); }
.fl-attorney-card:hover .fl-attorney-card__photo img { transform: scale(1.06); }
.fl-attorney-card__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.fl-attorney-card__svg svg { width: 100%; height: 100%; transition: transform 700ms var(--fl-ease); }
.fl-attorney-card:hover .fl-attorney-card__svg svg { transform: scale(1.04); }
.fl-attorney-card__hover {
	position: absolute; inset: 0;
	display: flex; align-items: flex-end; justify-content: space-between;
	padding: 1.25rem;
	background: linear-gradient(180deg, transparent 40%, rgba(10,31,68,.85) 100%);
	opacity: 0; transition: opacity var(--fl-trans);
}
.fl-attorney-card:hover .fl-attorney-card__hover { opacity: 1; }
.fl-attorney-card__linkedin { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; background: rgba(255,255,255,.95); color: var(--fl-primary); border-radius: 50%; transition: all var(--fl-trans-fast); }
.fl-attorney-card__linkedin:hover { background: var(--fl-accent); color: var(--fl-primary); transform: scale(1.1); }
.fl-attorney-card__view { font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 600; color: #fff; }

/* ─── Team page sections ─────────────────────────────────────────── */
.fl-team-intro { padding: var(--fl-section-pad) 0; }
.fl-team-intro__grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .fl-team-intro__grid { grid-template-columns: 6fr 5fr; gap: 5rem; } }
.fl-team-intro__title { font-family: var(--fl-font-display); font-size: clamp(2rem, 3.5vw, 2.5rem); line-height: 1.18; color: var(--fl-primary); margin: 0 0 1.25rem; }
.fl-team-intro__title .fl-serif { display: block; font-style: italic; }
.fl-team-intro__title .fl-sans { display: block; font-style: normal; font-family: var(--fl-font-ui); font-weight: 600; }
.fl-team-intro__copy p { font-size: 1.0625rem; color: var(--fl-text-2); line-height: 1.7; }
.fl-team-intro__metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--fl-border); }
.fl-team-intro__metrics > div { display: flex; flex-direction: column; gap: .25rem; }
.fl-team-intro__metrics strong { font-family: var(--fl-font-display); font-size: 2rem; color: var(--fl-accent); line-height: 1; }
.fl-team-intro__metrics span { font-size: .8125rem; color: var(--fl-text-2); font-family: var(--fl-font-ui); letter-spacing: .04em; }

.fl-team-intro__media { position: relative; aspect-ratio: 4/5; }
.fl-team-intro__media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--fl-r-lg); box-shadow: var(--fl-shadow-lg); }
.fl-team-intro__badge {
	position: absolute; top: 2rem; right: -1.25rem;
	background: var(--fl-accent); color: var(--fl-primary);
	padding: 1rem 1.25rem; border-radius: var(--fl-r-md);
	display: flex; flex-direction: column; align-items: center;
	box-shadow: 0 12px 32px rgba(201,169,110,.4);
	animation: fl-float 4s ease-in-out infinite;
}
@keyframes fl-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.fl-team-intro__badge-num { font-family: var(--fl-font-display); font-size: 2rem; font-weight: 600; line-height: 1; }
.fl-team-intro__badge-num small { font-size: 1rem; }
.fl-team-intro__badge-label { font-family: var(--fl-font-ui); font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-top: .25rem; }

/* Departments */
.fl-departments { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-departments__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.fl-dept-card { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); overflow: hidden; transition: all var(--fl-trans); }
.fl-dept-card:hover { transform: translateY(-4px); box-shadow: var(--fl-shadow-md); }
.fl-dept-card__image { aspect-ratio: 16/10; overflow: hidden; }
.fl-dept-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--fl-ease); }
.fl-dept-card:hover .fl-dept-card__image img { transform: scale(1.06); }
.fl-dept-card__body { padding: 1.5rem; }
.fl-dept-card__name { font-family: var(--fl-font-display); font-size: 1.25rem; color: var(--fl-primary); margin: 0 0 .375rem; font-weight: 600; }
.fl-dept-card__meta { font-size: .875rem; color: var(--fl-text-2); }

/* Join / Careers */
.fl-join { padding: var(--fl-section-pad) 0; background: var(--fl-primary); color: #fff; position: relative; overflow: hidden; }
.fl-join::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 70% at 30% 30%, rgba(201,169,110,.18) 0%, transparent 60%); pointer-events: none; }
.fl-join__grid { position: relative; display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .fl-join__grid { grid-template-columns: 5fr 6fr; gap: 5rem; } }
.fl-join__lead { font-size: 1.0625rem; color: rgba(255,255,255,.75); line-height: 1.7; margin: 1.5rem 0 2rem; }
.fl-join__media { aspect-ratio: 5/4; border-radius: var(--fl-r-lg); overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.fl-join__media img { width: 100%; height: 100%; object-fit: cover; }
.fl-section-head__title--light { color: #fff; }

/* ─── Insights page ──────────────────────────────────────────────── */
.fl-featured-insight { padding: 3rem 0; }
.fl-featured-insight__card {
	display: grid; grid-template-columns: 1fr; gap: 0;
	background: var(--fl-white); border: 1px solid var(--fl-border);
	border-radius: var(--fl-r-xl); overflow: hidden;
	box-shadow: var(--fl-shadow-md);
	text-decoration: none; transition: all var(--fl-trans);
}
@media (min-width: 900px) { .fl-featured-insight__card { grid-template-columns: 6fr 5fr; } }
.fl-featured-insight__card:hover { transform: translateY(-4px); box-shadow: var(--fl-shadow-lg); }
.fl-featured-insight__image { position: relative; aspect-ratio: 16/10; overflow: hidden; }
@media (min-width: 900px) { .fl-featured-insight__image { aspect-ratio: auto; min-height: 100%; } }
.fl-featured-insight__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--fl-ease); }
.fl-featured-insight__card:hover .fl-featured-insight__image img { transform: scale(1.04); }
.fl-featured-insight__overlay { position: absolute; inset: 0; background: linear-gradient(135deg, transparent 60%, rgba(10,31,68,.4)); }
.fl-featured-insight__body { padding: clamp(1.75rem, 3vw, 3rem); display: flex; flex-direction: column; justify-content: center; }
.fl-featured-insight__meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-family: var(--fl-font-ui); font-size: .75rem; font-weight: 600; letter-spacing: .04em; color: var(--fl-text-2); margin-bottom: 1rem; }
.fl-featured-insight__cat { padding: .25rem .625rem; background: var(--fl-accent); color: var(--fl-primary); border-radius: 999px; text-transform: uppercase; letter-spacing: .12em; }
.fl-featured-insight__divider { color: var(--fl-border); }
.fl-featured-insight__title { font-family: var(--fl-font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.25; color: var(--fl-primary); margin: 0 0 1rem; font-weight: 600; }
.fl-featured-insight__excerpt { font-size: 1rem; color: var(--fl-text-2); line-height: 1.7; margin: 0 0 1.5rem; }
.fl-featured-insight__cta { display: inline-flex; align-items: center; gap: .375rem; font-family: var(--fl-font-ui); font-size: .9375rem; font-weight: 600; color: var(--fl-accent); }

.fl-insights-filter-bar { padding: 2rem 0; border-bottom: 1px solid var(--fl-border); position: sticky; top: var(--fl-header-h); z-index: 50; background: rgba(255,255,255,.92); backdrop-filter: blur(12px); }
body.fl-has-announce .fl-insights-filter-bar { top: calc(var(--fl-header-h) + var(--fl-announce-h)); }
.fl-insights-filter-bar__pills { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.fl-pill {
	padding: .5rem 1.125rem;
	background: var(--fl-white); border: 1.5px solid var(--fl-border);
	border-radius: 999px;
	font-family: var(--fl-font-ui); font-size: .8125rem; font-weight: 600;
	color: var(--fl-text-2); transition: all var(--fl-trans-fast);
	white-space: nowrap;
}
.fl-pill:hover { border-color: var(--fl-accent); color: var(--fl-primary); transform: translateY(-1px); }
.fl-pill.is-active { background: var(--fl-primary); border-color: var(--fl-primary); color: #fff; }

.fl-insights-grid-wrap { padding: 4rem 0; }
.fl-insights-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; margin-bottom: 3rem; }
.fl-insight-card-rich { background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-md); overflow: hidden; transition: all var(--fl-trans); animation: fl-fadeup .7s var(--fl-ease) both; }
.fl-insight-card-rich.fl-hide { display: none; }
.fl-insight-card-rich:hover { transform: translateY(-5px); box-shadow: var(--fl-shadow-md); }
.fl-insight-card-rich__image { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; }
.fl-insight-card-rich__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--fl-ease); }
.fl-insight-card-rich:hover .fl-insight-card-rich__image img { transform: scale(1.06); }
.fl-insight-card-rich__cat { position: absolute; top: 1rem; left: 1rem; padding: .25rem .625rem; background: rgba(255,255,255,.95); color: var(--fl-primary); border-radius: 999px; font-family: var(--fl-font-ui); font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(6px); }
.fl-insight-card-rich__body { padding: 1.5rem 1.75rem 2rem; }
.fl-insight-card-rich__meta { display: flex; gap: .375rem; font-family: var(--fl-font-ui); font-size: .75rem; color: var(--fl-text-2); margin-bottom: .75rem; }
.fl-insight-card-rich__title { font-family: var(--fl-font-display); font-size: 1.375rem; line-height: 1.3; margin: 0 0 .75rem; font-weight: 600; }
.fl-insight-card-rich__title a { color: var(--fl-primary); }
.fl-insight-card-rich__title a:hover { color: var(--fl-accent); }
.fl-insight-card-rich__author { font-size: .875rem; color: var(--fl-text-2); }

.fl-insights-loadmore { text-align: center; }

.fl-insights-newsletter { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-insights-newsletter__inner { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; padding: clamp(2rem, 5vw, 4rem); background: var(--fl-white); border: 1px solid var(--fl-border); border-radius: var(--fl-r-xl); }
@media (min-width: 900px) { .fl-insights-newsletter__inner { grid-template-columns: 1fr auto; gap: 3rem; } }
.fl-insights-newsletter__title { font-family: var(--fl-font-display); font-size: clamp(1.5rem, 2.75vw, 2rem); line-height: 1.2; color: var(--fl-primary); margin: 0 0 .5rem; }
.fl-insights-newsletter__title .fl-serif, .fl-insights-newsletter__title .fl-sans { display: inline; }
.fl-insights-newsletter__title .fl-sans::before { content: ' '; }
.fl-insights-newsletter__inner p { color: var(--fl-text-2); margin: 0; }
.fl-insights-newsletter__form { display: flex; gap: .5rem; }
.fl-insights-newsletter__form input { padding: .875rem 1.25rem; border: 1.5px solid var(--fl-border); border-radius: var(--fl-r-sm); font-size: .9375rem; min-width: 240px; transition: all var(--fl-trans-fast); }
.fl-insights-newsletter__form input:focus { border-color: var(--fl-accent); outline: 0; box-shadow: 0 0 0 3px rgba(201,169,110,.15); }

/* ─── Burger spin animation ──────────────────────────────────────── */
.fl-burger:hover { transform: rotate(0deg); }
.fl-burger[aria-expanded="true"] { transform: rotate(180deg); transition: transform 400ms var(--fl-ease); }

/* ─── Practice card image variant ────────────────────────────────── */
.fl-practice-card { animation-delay: calc(var(--i, 0) * 60ms); }
.fl-practice-card__icon { transition: transform 400ms var(--fl-ease); }
.fl-practice-card:hover .fl-practice-card__icon { transform: scale(1.1) rotate(-4deg); background: var(--fl-accent); color: var(--fl-primary); }
.fl-practice-card__link svg { transition: transform var(--fl-trans-fast); }
.fl-practice-card:hover .fl-practice-card__link svg { transform: translateX(4px); }

/* ─── Why-card icon shimmer ──────────────────────────────────────── */
.fl-why-card__icon { position: relative; overflow: hidden; }
.fl-why-card__icon::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(135deg, transparent 30%, rgba(201,169,110,.4) 50%, transparent 70%);
	transform: translateX(-100%); transition: transform 600ms var(--fl-ease);
}
.fl-why-card:hover .fl-why-card__icon::after { transform: translateX(100%); }

/* ─── Section head: gradient accent on hover ─────────────────────── */
.fl-section-head__title em { color: var(--fl-accent); }

/* ─── Page hero — refined with image background option ──────────── */
.fl-page-hero { background: linear-gradient(135deg, var(--fl-primary) 0%, var(--fl-primary-hover) 100%); }
.fl-page-hero__bg::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 60% at 80% 20%, rgba(201,169,110,.15) 0%, transparent 60%); }

/* ─── Mobile drawer enhancements ─────────────────────────────────── */
.fl-mobile__contact { display: flex; flex-direction: column; gap: .75rem; padding-top: 1.5rem; margin-top: 1.5rem; border-top: 1px solid var(--fl-border); }
.fl-mobile__contact a { display: flex; align-items: center; gap: .625rem; font-size: .9375rem; color: var(--fl-text-2); }
.fl-mobile__contact svg { color: var(--fl-accent); flex-shrink: 0; }

/* ─── Reduced motion override ─────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.fl-marquee__track,
	.fl-team-intro__badge,
	.fl-hero__scroll { animation: none !important; }
	.fl-tilt:hover { transform: none; }
}

/* ════════════════════════════════════════════════════════════════════
   v1.1.1 PATCHES — header polish + image fallback
   ════════════════════════════════════════════════════════════════════ */

/* ─── Header — refined alignment & smoother feel ──────────────────── */
.fl-header { box-shadow: 0 1px 0 transparent; transition: top 400ms var(--fl-ease), background-color 240ms var(--fl-ease), box-shadow 240ms var(--fl-ease), border-color 240ms var(--fl-ease); }
.fl-header__inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); }
.fl-logo { justify-self: start; }
.fl-nav { justify-self: center; }
.fl-header__actions { justify-self: end; gap: .5rem; }

/* Logo — slight letter-spacing for refinement */
.fl-logo__mark { letter-spacing: -.012em; line-height: 1; display: inline-flex; align-items: baseline; }
.fl-logo:hover .fl-logo__dot { color: var(--fl-accent-hover); }

/* Nav — better padding & active indicator */
.fl-nav__list { gap: .125rem; }
.fl-nav__link { padding: .625rem 1.125rem; font-weight: 500; font-size: .9375rem; }

/* Actions row — consistent button heights */
.fl-header__cta { padding-block: .5rem; height: 38px; line-height: 1; }
.fl-burger { width: 38px; height: 38px; }

/* Mobile header — hide search & CTA, show only logo + burger */
@media (max-width: 960px) {
	.fl-header__inner { grid-template-columns: auto 1fr auto; }
	.fl-nav { display: none; }
	.fl-header__cta, .fl-header__search-toggle { display: none; }
}

/* Logo size cap when announcement bar present */
.fl-header { background: rgba(255,255,255,.92); }
body.fl-mode-modern .fl-header { background: rgba(250,250,247,.92); }

.fl-header.is-scrolled { background: rgba(255,255,255,.97); border-bottom: 1px solid var(--fl-border); }
body.fl-mode-modern .fl-header.is-scrolled { background: rgba(250,250,247,.97); }

/* ─── Mobile drawer enhancements ──────────────────────────────────── */
.fl-mobile { padding-top: 1.5rem; }
.fl-mobile__list { margin-bottom: 1.75rem; }
.fl-mobile__list a { padding: 1.125rem 0; font-size: 1.125rem; }
.fl-mobile__list a:hover { color: var(--fl-accent); padding-left: .25rem; transition: padding 200ms var(--fl-ease), color 200ms var(--fl-ease); }

/* ─── Image fallback — graceful for blocked Unsplash ─────────────── */
img { background: var(--fl-surface); }
img[src*="unsplash.com"] {
	background: linear-gradient(135deg, var(--fl-surface) 0%, var(--fl-border) 100%);
}

/* If image fails to load, show a gradient placeholder via :where pseudo */
img[loading="lazy"]:not([src]) { background: var(--fl-surface); }

/* ════════════════════════════════════════════════════════════════════
   v1.1.6 — Practice Areas Overview  [fl_practice_overview]
   Anchored sections on /services; landed from homepage cards & footer
   ════════════════════════════════════════════════════════════════════ */
.fl-pa-overview { padding: var(--fl-section-pad) 0; background: var(--fl-surface); }
.fl-pa-overview__list { display: grid; gap: 1.5rem; margin-top: 2.5rem; }

.fl-pa-block {
	background: var(--fl-white);
	border: 1px solid var(--fl-border);
	border-radius: var(--fl-r-md);
	padding: 2rem 2rem 2.25rem;
	scroll-margin-top: 120px; /* clear sticky header + announcement bar */
	position: relative;
	transition: box-shadow var(--fl-trans), border-color var(--fl-trans);
}
.fl-pa-block:target {
	border-color: var(--fl-accent);
	box-shadow: 0 0 0 4px rgba(201, 169, 110, .12), var(--fl-shadow-md);
	animation: fl-pa-flash 1.6s ease-out;
}
@keyframes fl-pa-flash {
	0%   { background: rgba(201, 169, 110, .08); }
	100% { background: var(--fl-white); }
}

.fl-pa-block__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.fl-pa-block__icon {
	display: inline-flex;
	width: 48px; height: 48px;
	align-items: center; justify-content: center;
	background: var(--fl-surface);
	border-radius: var(--fl-r-sm);
	color: var(--fl-accent);
	flex-shrink: 0;
}
.fl-pa-block__title {
	font-family: var(--fl-font-display);
	font-size: 1.5rem;
	line-height: 1.2;
	color: var(--fl-primary);
	margin: 0;
}

.fl-pa-block__body { display: grid; gap: 1.25rem; }
@media (min-width: 720px) {
	.fl-pa-block__body { grid-template-columns: 1.1fr 1fr; gap: 2rem; align-items: start; }
}
.fl-pa-block__lead { font-size: 1rem; color: var(--fl-text); line-height: 1.65; margin: 0; }
.fl-pa-block__items { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.fl-pa-block__items li {
	font-size: .9375rem;
	color: var(--fl-text-2);
	line-height: 1.55;
	padding-left: 1.25rem;
	position: relative;
}
.fl-pa-block__items li::before {
	content: '';
	position: absolute;
	left: 0; top: .55em;
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--fl-accent);
}

.fl-pa-block__cta {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	margin-top: 1.5rem;
	font-family: var(--fl-font-ui);
	font-size: .875rem;
	font-weight: 600;
	color: var(--fl-accent);
	text-decoration: none;
	transition: gap var(--fl-trans), color var(--fl-trans);
}
.fl-pa-block__cta:hover { gap: .625rem; color: var(--fl-primary); }
@media (min-width: 720px) {
	.fl-pa-block__cta { grid-column: 1 / -1; }
}

/* Smooth scrolling for in-page anchor links (browsers that honour it) */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.fl-pa-block:target { animation: none; }
}

/* ════════════════════════════════════════════════════════════════════
   v1.1.7 — Honest empty states
   Used when a new firm has no real testimonials/attorneys/posts yet
   ════════════════════════════════════════════════════════════════════ */

/* Testimonials — "Beta partner quotes coming soon" */
.fl-testimonials--placeholder { padding: var(--fl-section-pad) 0; }
.fl-testimonials__placeholder {
	max-width: 640px;
	margin: 2.5rem auto 0;
	padding: 3rem 2rem;
	background: var(--fl-surface);
	border: 1px dashed var(--fl-border);
	border-radius: var(--fl-r-md);
	text-align: center;
}
.fl-testimonials__placeholder-icon {
	color: var(--fl-accent);
	opacity: 0.7;
	margin-bottom: 1.25rem;
}
.fl-testimonials__placeholder-lead {
	font-size: 1.0625rem;
	color: var(--fl-text);
	line-height: 1.6;
	margin: 0 0 0.75rem;
}
.fl-testimonials__placeholder-note {
	font-size: 0.9375rem;
	color: var(--fl-text-2);
	font-style: italic;
	margin: 0 0 1.5rem;
}

/* Attorneys grid empty state */
.fl-attorneys--placeholder { padding: var(--fl-section-pad) 0; }
.fl-attorneys__empty {
	max-width: 640px;
	margin: 2.5rem auto 0;
	padding: 3rem 2rem;
	background: var(--fl-white);
	border: 1px dashed var(--fl-border);
	border-radius: var(--fl-r-md);
	text-align: center;
}
.fl-attorneys__empty-icon {
	color: var(--fl-accent);
	opacity: 0.7;
	margin-bottom: 1.25rem;
}
.fl-attorneys__empty-lead {
	font-size: 1.0625rem;
	color: var(--fl-text);
	line-height: 1.6;
	margin: 0 0 0.75rem;
}
.fl-attorneys__empty-note {
	font-size: 0.9375rem;
	color: var(--fl-text-2);
	margin: 0 0 1.5rem;
}

/* Timeline — forward-looking disclaimer */
.fl-timeline__note {
	max-width: 640px;
	margin: 2.5rem auto 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--fl-border);
	font-size: 0.8125rem;
	color: var(--fl-text-2);
	font-style: italic;
	text-align: center;
}

/* ════════════════════════════════════════════════════════════════════
   v1.1.11 — Practice-aware case-type dropdown
   ════════════════════════════════════════════════════════════════════ */
/* Smooth show/hide for the case-type field when practice area changes */
.fl-form__field--case-type {
	transition: opacity 220ms ease, max-height 280ms ease;
}
.fl-form__field--case-type[hidden] {
	display: none;
}
/* Disabled-state polish for the select */
.fl-form__select:disabled {
	cursor: not-allowed;
	opacity: 0.55;
	background-color: var(--fl-surface);
}

/* ════════════════════════════════════════════════════════════════════
   v2.0.0 — Platform pivot styles
   Chatbot, For-Firms, How-It-Works, SEO landing pages
   ════════════════════════════════════════════════════════════════════ */

/* — Chatbot intake — */
.fl-chatbot {
	max-width: 720px;
	margin: 0 auto;
	background: var(--fl-surface);
	border: 1px solid var(--fl-border);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(10, 31, 68, .06);
}
.fl-chatbot__progress {
	height: 4px;
	background: rgba(10, 31, 68, .08);
	overflow: hidden;
}
.fl-chatbot__progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--fl-primary), var(--fl-accent));
	transition: width .4s ease;
}
.fl-chatbot__stream {
	padding: 1.5rem;
	max-height: 560px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.fl-chatbot__bot-message,
.fl-chatbot__user-message {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
}
.fl-chatbot__user-message {
	justify-content: flex-end;
}
.fl-chatbot__avatar {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--fl-primary);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Fraunces', Georgia, serif;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .04em;
}
.fl-chatbot__bubble {
	max-width: 80%;
	padding: .875rem 1.125rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 14px;
	border-top-left-radius: 4px;
	font-size: .9375rem;
	line-height: 1.55;
}
.fl-chatbot__bubble--user {
	background: var(--fl-primary);
	color: #fff;
	border-color: var(--fl-primary);
	border-radius: 14px;
	border-top-right-radius: 4px;
}
.fl-chatbot__bubble p { margin: 0 0 .5rem; }
.fl-chatbot__bubble p:last-child { margin: 0; }
.fl-chatbot__bubble strong { color: var(--fl-primary); }
.fl-chatbot__bubble--user strong { color: #fff; }
.fl-chatbot__choices {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-left: 3rem;
}
.fl-chatbot__choice {
	padding: .625rem 1rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 999px;
	font: inherit;
	font-size: .875rem;
	color: var(--fl-primary);
	cursor: pointer;
	transition: all .18s;
}
.fl-chatbot__choice:hover:not(:disabled) {
	background: var(--fl-primary);
	color: #fff;
	border-color: var(--fl-primary);
}
.fl-chatbot__choice:disabled {
	opacity: .45;
	cursor: default;
}
.fl-chatbot__input {
	margin-left: 3rem;
	display: flex;
	flex-direction: column;
	gap: .375rem;
	max-width: 480px;
}
.fl-chatbot__input input[type="text"] {
	padding: .75rem 1rem;
	border: 1.5px solid var(--fl-border);
	border-radius: 10px;
	font: inherit;
	font-size: .9375rem;
}
.fl-chatbot__input input[type="text"]:focus {
	outline: none;
	border-color: var(--fl-accent);
}
.fl-chatbot__input small {
	color: #6b7280;
	font-size: .8125rem;
}
.fl-chatbot__input button {
	align-self: flex-start;
}
.fl-chatbot__consent {
	margin-left: 3rem;
	padding: 1rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.fl-chatbot__consent label {
	display: flex;
	gap: .5rem;
	align-items: flex-start;
	font-size: .875rem;
	color: #374151;
	line-height: 1.5;
}
.fl-chatbot__status {
	padding: 0 1.5rem 1rem;
	font-size: .875rem;
	color: #6b7280;
	min-height: 1.25rem;
}
.fl-chatbot__restart {
	margin: 0 1.5rem 1.5rem;
	padding: .5rem 1rem;
	background: transparent;
	border: 1px solid var(--fl-border);
	border-radius: 8px;
	font: inherit;
	font-size: .875rem;
	cursor: pointer;
}

/* — How It Works (homepage 3-step) — */
.fl-how-it-works {
	padding: 5rem 0;
	background: var(--fl-surface);
}
.fl-how-it-works__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin: 3rem 0 2rem;
}
@media (max-width: 768px) {
	.fl-how-it-works__grid { grid-template-columns: 1fr; }
}
.fl-step {
	padding: 2rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 16px;
	position: relative;
}
.fl-step__num {
	position: absolute;
	top: 1.25rem;
	right: 1.5rem;
	width: 44px;
	height: 44px;
	background: var(--fl-accent);
	color: var(--fl-primary);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.25rem;
	font-weight: 600;
}
.fl-step__title {
	margin: 0 0 .75rem;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.25rem;
	color: var(--fl-primary);
	padding-right: 3.5rem;
}
.fl-step__desc {
	margin: 0;
	color: #4b5563;
	line-height: 1.6;
}
.fl-how-it-works__cta {
	text-align: center;
	margin-top: 2rem;
}

/* — For-Firms strip — */
.fl-for-firms-strip {
	padding: 4rem 0;
	background: linear-gradient(135deg, var(--fl-primary) 0%, #142a52 100%);
	color: #fff;
}
.fl-for-firms-strip__inner {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 3rem;
	align-items: center;
}
@media (max-width: 768px) {
	.fl-for-firms-strip__inner { grid-template-columns: 1fr; }
}
.fl-for-firms-strip__title {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 2.25rem;
	line-height: 1.2;
	margin: 1rem 0;
}
.fl-for-firms-strip__title .fl-sans {
	display: block;
	font-family: 'Inter Tight', system-ui, sans-serif;
	font-style: italic;
	color: var(--fl-accent);
}
.fl-for-firms-strip__lead {
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, .92);
	margin-bottom: 1.5rem;
	max-width: 56ch;
}
.fl-for-firms-strip__stats {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
.fl-for-firms-strip__stats > div {
	padding: 1.25rem 1.5rem;
	background: rgba(255, 255, 255, .10);
	border: 1px solid rgba(255, 255, 255, .16);
	border-left: 3px solid var(--fl-accent);
	border-radius: 12px;
}
.fl-for-firms-strip__stats strong {
	display: block;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 2rem;
	color: var(--fl-accent);
	line-height: 1.1;
}
.fl-for-firms-strip__stats span {
	font-size: .9375rem;
	color: rgba(255, 255, 255, .92);
}

/* — Flow / Vetting — */
.fl-flow {
	list-style: none;
	padding: 0;
	margin: 3rem 0 0;
	counter-reset: step;
}
.fl-flow__item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 2rem;
	padding: 2rem 0;
	border-bottom: 1px solid var(--fl-border);
}
.fl-flow__item:last-child { border-bottom: none; }
.fl-flow__num {
	width: 64px;
	height: 64px;
	background: var(--fl-primary);
	color: #fff;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.5rem;
	font-weight: 600;
}
.fl-flow__body h3 {
	margin: 0 0 .5rem;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.25rem;
	color: var(--fl-primary);
}
.fl-flow__body p {
	margin: 0;
	color: #4b5563;
	line-height: 1.65;
}
.fl-vetting {
	padding: 5rem 0;
	background: var(--fl-surface);
}
.fl-vetting__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 3rem;
}
@media (max-width: 900px) { .fl-vetting__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fl-vetting__grid { grid-template-columns: 1fr; } }
.fl-vetting__item {
	padding: 1.75rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 12px;
}
.fl-vetting__item h3 {
	margin: 0 0 .75rem;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.0625rem;
	color: var(--fl-primary);
}
.fl-vetting__item p {
	margin: 0;
	font-size: .9375rem;
	color: #4b5563;
	line-height: 1.55;
}

/* — Pricing cards — */
.fl-firms-pricing { padding: 5rem 0; }
.fl-firms-pricing__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 3rem;
}
@media (max-width: 900px) { .fl-firms-pricing__grid { grid-template-columns: 1fr; } }
.fl-pricing-card {
	padding: 2rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.fl-pricing-card--featured {
	border: 2px solid var(--fl-accent);
	box-shadow: 0 12px 36px rgba(201, 169, 110, .15);
	position: relative;
	padding-top: 2.75rem;
}
.fl-pricing-card__badge {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%) translateY(-50%);
	background: var(--fl-accent);
	color: var(--fl-primary);
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	padding: .375rem 1rem;
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.fl-pricing-card__head h3 {
	margin: 0 0 .5rem;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.5rem;
	color: var(--fl-primary);
}
.fl-pricing-card__price {
	display: flex;
	align-items: baseline;
	gap: .25rem;
	margin-bottom: .25rem;
}
.fl-pricing-card__amount {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 2.5rem;
	font-weight: 600;
	color: var(--fl-primary);
}
.fl-pricing-card__period {
	font-size: 1rem;
	color: #6b7280;
}
.fl-pricing-card__extra {
	font-size: .875rem;
	color: var(--fl-accent);
	font-weight: 600;
}
.fl-pricing-card__lead {
	font-size: .9375rem;
	color: #4b5563;
	line-height: 1.5;
}
.fl-pricing-card__features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	font-size: .9375rem;
	color: #374151;
	flex-grow: 1;
}
.fl-firms-pricing__footnote {
	margin-top: 2rem;
	padding: 1.5rem;
	background: var(--fl-surface);
	border-radius: 12px;
	font-size: .875rem;
	color: #4b5563;
	line-height: 1.6;
	max-width: 80ch;
}

/* — For-firms why grid + signup — */
.fl-firms-why { padding: 5rem 0; background: var(--fl-surface); }
.fl-firms-why__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 3rem;
}
@media (max-width: 900px) { .fl-firms-why__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fl-firms-why__grid { grid-template-columns: 1fr; } }
.fl-firm-value {
	padding: 1.75rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 12px;
}
.fl-firm-value h3 {
	margin: 0 0 .75rem;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.125rem;
	color: var(--fl-primary);
}
.fl-firm-value p {
	margin: 0;
	font-size: .9375rem;
	color: #4b5563;
	line-height: 1.6;
}
.fl-firms-signup { padding: 5rem 0; }
.fl-firms-signup__box {
	max-width: 720px;
	margin: 0 auto;
	padding: 3rem;
	background: linear-gradient(135deg, var(--fl-primary) 0%, #142a52 100%);
	color: #fff;
	border-radius: 16px;
	text-align: center;
}
.fl-firms-signup__title {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 2rem;
	margin: 0 0 1rem;
}
.fl-firms-signup__lead {
	color: rgba(255, 255, 255, .85);
	margin-bottom: 1.5rem;
	line-height: 1.6;
}

/* — Two-col practice grid (homepage v2) — */
.fl-practice--two-col .fl-practice__grid--two {
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
}
@media (max-width: 768px) {
	.fl-practice--two-col .fl-practice__grid--two { grid-template-columns: 1fr; }
}

/* — Three-col practice grid (homepage v2.2 — family / employment / immigration) — */
.fl-practice--three-col .fl-practice__grid--three {
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
@media (max-width: 980px) {
	.fl-practice--three-col .fl-practice__grid--three { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
}
.fl-practice-card--large {
	padding: 2.5rem 2rem;
}
.fl-section-head__sub {
	max-width: 56ch;
	margin: 1rem auto 0;
	color: #4b5563;
	line-height: 1.65;
}

/* — SEO landing pages — */
.fl-landing-content { padding: 5rem 0; }
.fl-landing-content__grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 3rem;
	align-items: start;
}
@media (max-width: 900px) { .fl-landing-content__grid { grid-template-columns: 1fr; } }
.fl-landing-content__main h2 {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.75rem;
	color: var(--fl-primary);
	margin: 2rem 0 1rem;
}
.fl-landing-content__main p { line-height: 1.7; color: #374151; margin-bottom: 1rem; }
.fl-landing-content__matters {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	margin: 2rem 0;
}
@media (max-width: 600px) { .fl-landing-content__matters { grid-template-columns: 1fr; } }
.fl-matter-card {
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--fl-border);
	border-radius: 12px;
}
.fl-matter-card h3 {
	margin: 0 0 .5rem;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.125rem;
	color: var(--fl-primary);
}
.fl-matter-card p {
	font-size: .9375rem;
	line-height: 1.6;
	color: #4b5563;
	margin-bottom: 1rem;
}
.fl-matter-card__cta {
	color: var(--fl-accent);
	font-size: .9375rem;
	font-weight: 600;
	text-decoration: none;
}
.fl-matter-card__cta:hover { text-decoration: underline; }
.fl-landing-aside {
	padding: 2rem;
	background: var(--fl-surface);
	border-radius: 16px;
	position: sticky;
	top: 100px;
}
.fl-landing-aside h3 {
	margin: 0 0 .75rem;
	font-family: 'Fraunces', Georgia, serif;
	color: var(--fl-primary);
}
.fl-landing-aside p {
	font-size: .9375rem;
	color: #4b5563;
	margin-bottom: 1rem;
}
.fl-landing-aside__guarantees {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	font-size: .9375rem;
}
.fl-landing-urgent {
	padding: 1rem 1.25rem;
	background: #FEF3C7;
	border-left: 4px solid #D97706;
	border-radius: 8px;
	margin-bottom: 2rem;
	font-size: .9375rem;
	line-height: 1.6;
	color: #92400E;
}

/* — Contact page chatbot layout — */
.fl-contact-section { padding: 4rem 0 5rem; }
.fl-contact-section__grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 3rem;
	align-items: start;
}
@media (max-width: 1000px) { .fl-contact-section__grid { grid-template-columns: 1fr; } }
.fl-contact-aside {
	padding: 2rem;
	background: var(--fl-surface);
	border-radius: 16px;
}
.fl-contact-aside__title {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.5rem;
	color: var(--fl-primary);
	margin: .5rem 0 1.5rem;
}
.fl-contact-aside__steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.fl-contact-aside__steps li {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	font-size: .9375rem;
}
.fl-contact-aside__steps strong {
	color: var(--fl-primary);
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
}
.fl-contact-aside__steps span { color: #4b5563; line-height: 1.55; }
.fl-contact-aside__guarantees {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--fl-border);
}
.fl-contact-aside__guarantees h3 {
	font-family: 'Fraunces', Georgia, serif;
	color: var(--fl-primary);
	font-size: 1.0625rem;
	margin: 0 0 .75rem;
}
.fl-contact-aside__guarantees ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	font-size: .9375rem;
}
.fl-contact-aside__alert {
	margin-top: 2rem;
	padding: 1rem;
	background: #FEF2F2;
	border-left: 4px solid #DC2626;
	border-radius: 8px;
	font-size: .875rem;
	color: #991B1B;
	line-height: 1.55;
}
.fl-contact-aside__alert strong { display: block; margin-bottom: .25rem; }

/* — Eyebrow gold variant — */
.fl-eyebrow--gold { color: var(--fl-accent); }

/* — Story page sidebar — */
.fl-story { padding: 5rem 0; }
.fl-story__grid {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 4rem;
}
@media (max-width: 900px) {
	.fl-story__grid { grid-template-columns: 1fr; }
	.fl-story__sidebar { display: none; }
}
.fl-story__sidebar { position: sticky; top: 120px; align-self: start; }
.fl-story__index ul {
	list-style: none;
	padding: 0;
	margin: .5rem 0 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.fl-story__index a {
	color: #4b5563;
	font-size: .9375rem;
	text-decoration: none;
	border-left: 2px solid transparent;
	padding-left: .75rem;
	transition: all .18s;
}
.fl-story__index a:hover {
	color: var(--fl-primary);
	border-left-color: var(--fl-accent);
}
.fl-story__content section { margin-bottom: 3rem; }
.fl-story__title {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.875rem;
	color: var(--fl-primary);
	margin: .5rem 0 1.25rem;
	line-height: 1.25;
}
.fl-story__h3 {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.375rem;
	color: var(--fl-primary);
	margin: .5rem 0 1rem;
}
.fl-story__content p { line-height: 1.7; color: #374151; }
.fl-story__list {
	margin: 1rem 0;
	padding-left: 1.25rem;
	color: #374151;
	line-height: 1.7;
}

/* ════════════════════════════════════════════════════════════════════
   v2.1.0 — LLM chatbot composer + thinking indicator
   ════════════════════════════════════════════════════════════════════ */

.fl-chatbot__composer {
	display: flex;
	gap: .5rem;
	margin-left: 3rem;
	padding: .5rem .75rem .5rem 1rem;
	background: #fff;
	border: 1.5px solid var(--fl-border);
	border-radius: 16px;
	transition: border-color .18s, box-shadow .18s;
}
.fl-chatbot__composer:focus-within {
	border-color: var(--fl-accent);
	box-shadow: 0 0 0 4px rgba(201, 169, 110, .12);
}
.fl-chatbot__composer textarea {
	flex: 1;
	min-height: 24px;
	max-height: 160px;
	padding: .5rem 0;
	border: 0;
	background: transparent;
	resize: none;
	font: inherit;
	font-size: .9375rem;
	line-height: 1.5;
	color: var(--fl-text);
}
.fl-chatbot__composer textarea:focus {
	outline: none;
}
.fl-chatbot__send {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	background: var(--fl-primary);
	color: #fff;
	border: 0;
	border-radius: 12px;
	cursor: pointer;
	transition: background-color .15s, transform .12s;
	align-self: flex-end;
}
.fl-chatbot__send:hover { background: var(--fl-primary-hover); transform: translateY(-1px); }
.fl-chatbot__send:active { transform: translateY(0); }
.fl-chatbot__send svg { transform: rotate(0deg); }

/* Thinking indicator — three pulsing dots */
.fl-chatbot__thinking {
	display: inline-flex;
	gap: .375rem;
	align-items: center;
	margin: .25rem 0;
}
.fl-chatbot__thinking span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--fl-text-2, #5C6A7A);
	opacity: .35;
	animation: fl-chatbot-pulse 1.2s ease-in-out infinite;
}
.fl-chatbot__thinking span:nth-child(2) { animation-delay: .15s; }
.fl-chatbot__thinking span:nth-child(3) { animation-delay: .30s; }

@keyframes fl-chatbot-pulse {
	0%, 80%, 100% { opacity: .25; transform: scale(.85); }
	40%           { opacity: 1;   transform: scale(1);   }
}

/* Mobile tweaks */
@media (max-width: 600px) {
	.fl-chatbot__composer,
	.fl-chatbot__choices,
	.fl-chatbot__consent {
		margin-left: 0;
	}
	.fl-chatbot__bubble {
		max-width: 92%;
	}
}

/* ════════════════════════════════════════════════════════════════════
   v2.1.3 — Firm-trial application form
   On the dark navy fl-firms-signup__box. White inputs, gold submit.
   ════════════════════════════════════════════════════════════════════ */
.fl-firms-signup__box {
	text-align: left;
}
.fl-firms-signup__title,
.fl-firms-signup__lead {
	text-align: center;
}
.fl-firm-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1.5rem;
}
.fl-firm-form__row--two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
@media (max-width: 600px) {
	.fl-firm-form__row--two { grid-template-columns: 1fr; }
}
.fl-firm-form__field {
	display: flex;
	flex-direction: column;
	gap: .375rem;
}
.fl-firm-form__label {
	font-family: 'Inter Tight', system-ui, sans-serif;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .82);
}
.fl-firm-form__req {
	color: var(--fl-accent);
	margin-left: 2px;
}
.fl-firm-form input[type="text"],
.fl-firm-form input[type="email"],
.fl-firm-form input[type="tel"],
.fl-firm-form select,
.fl-firm-form textarea {
	width: 100%;
	padding: .75rem 1rem;
	font: inherit;
	font-size: .9375rem;
	color: #fff;
	background: rgba(255, 255, 255, .07);
	border: 1.5px solid rgba(255, 255, 255, .14);
	border-radius: 10px;
	transition: border-color .18s, background-color .18s, box-shadow .18s;
}
.fl-firm-form input::placeholder,
.fl-firm-form textarea::placeholder {
	color: rgba(255, 255, 255, .42);
}
.fl-firm-form input:focus,
.fl-firm-form select:focus,
.fl-firm-form textarea:focus {
	outline: none;
	border-color: var(--fl-accent);
	background: rgba(255, 255, 255, .12);
	box-shadow: 0 0 0 4px rgba(201, 169, 110, .15);
}
.fl-firm-form select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='%23ffffff' stroke-width='1.5'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
}
.fl-firm-form select option { color: #1a1a1a; background: #fff; }
.fl-firm-form textarea {
	resize: vertical;
	min-height: 80px;
	font-family: inherit;
}
.fl-firm-form .is-invalid {
	border-color: #FCA5A5;
	background: rgba(220, 38, 38, .12);
}
.fl-firm-form__consent {
	display: flex;
	gap: .625rem;
	align-items: flex-start;
	margin-top: .5rem;
	padding: 1rem;
	background: rgba(255, 255, 255, .04);
	border-radius: 10px;
	font-size: .875rem;
	color: rgba(255, 255, 255, .88);
	line-height: 1.55;
}
.fl-firm-form__consent input[type="checkbox"] {
	margin-top: 3px;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	accent-color: var(--fl-accent);
	cursor: pointer;
}
.fl-firm-form__consent a {
	color: var(--fl-accent);
	text-decoration: underline;
}
.fl-firm-form__submit {
	align-self: flex-start;
	margin-top: .5rem;
}
.fl-firm-form__submit.is-loading {
	opacity: .7;
	cursor: progress;
}
.fl-firm-form__status {
	margin: 0;
	min-height: 1.5rem;
	font-size: .9375rem;
	color: rgba(255, 255, 255, .85);
}
.fl-firm-form__status.is-error {
	color: #FCA5A5;
}
.fl-firm-form__status.is-success {
	color: #A7F3D0;
}

/* Success replacement card */
.fl-firm-form__success {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .75rem;
	padding: 2.5rem 2rem;
	margin-top: 1.5rem;
	background: rgba(167, 243, 208, .08);
	border: 1px solid rgba(167, 243, 208, .25);
	border-radius: 14px;
	text-align: center;
	color: #fff;
}
.fl-firm-form__success svg {
	color: #A7F3D0;
}
.fl-firm-form__success h3 {
	margin: 0;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.5rem;
	color: #fff;
	font-optical-sizing: auto;
	font-variation-settings: 'opsz' 96;
}
.fl-firm-form__success p {
	margin: 0;
	max-width: 48ch;
	color: rgba(255, 255, 255, .85);
	line-height: 1.6;
}

/* ════════════════════════════════════════════════════════════════════
   v2.1.4 — Chatbot embedded on practice landing pages
   ════════════════════════════════════════════════════════════════════ */
.fl-landing-chatbot {
	padding: 4rem 0 3rem;
	background: var(--fl-surface);
}
.fl-landing-chatbot .fl-section-head {
	margin-bottom: 2rem;
}
.fl-landing-chatbot .fl-chatbot {
	background: #fff;
}

/* ════════════════════════════════════════════════════════════════════
   v2.1.4 — Pricing card UX improvements
   Clearer visual hierarchy: who-this-is-for at top, big price,
   short bullet list, full-width CTA. Quick-glance comparison row
   below cards for at-a-glance decision-making.
   ════════════════════════════════════════════════════════════════════ */

/* "Who this is for" label at the top of each card */
.fl-pricing-card__who {
	display: block;
	font-family: 'Inter Tight', system-ui, sans-serif;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fl-text-2);
	margin-bottom: .75rem;
}
.fl-pricing-card--featured .fl-pricing-card__who {
	color: var(--fl-accent);
}

/* Bullet list — drop the ✓ glyph (replaced by left border accent), tighter */
.fl-pricing-card__features {
	list-style: none;
	padding: 0;
	margin: 1.25rem 0;
	display: flex;
	flex-direction: column;
	gap: .625rem;
	font-size: .9375rem;
	color: #374151;
	flex-grow: 1;
}
.fl-pricing-card__features li {
	position: relative;
	padding-left: 1.25rem;
	line-height: 1.5;
}
.fl-pricing-card__features li::before {
	content: '';
	position: absolute;
	left: 0;
	top: .5em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--fl-border);
}
.fl-pricing-card--featured .fl-pricing-card__features li::before {
	background: var(--fl-accent);
}
.fl-pricing-card__features li strong {
	color: var(--fl-primary);
	font-weight: 600;
}

/* Force button to full width — clearer single CTA path */
.fl-pricing-card .fl-btn--full {
	width: 100%;
	justify-content: center;
}

/* Make the recommended card stand out without transforming it (a
   transform on the card would scale/offset the absolutely-positioned
   badge and break its placement). Lift it slightly with margin on
   desktop instead. */
@media (min-width: 901px) {
	.fl-pricing-card--featured { margin-top: -8px; margin-bottom: -8px; z-index: 1; }
}

/* Compact quick-glance comparison row under the cards */
.fl-firms-pricing__compare {
	margin-top: 3rem;
	padding: 1.5rem 2rem;
	background: var(--fl-surface);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.fl-compare-row {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 1rem;
	padding: .625rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, .06);
	align-items: center;
	font-size: .9375rem;
}
.fl-compare-row:last-child { border-bottom: none; }
.fl-compare-row__label {
	font-weight: 600;
	color: var(--fl-primary);
}
.fl-compare-row__cell {
	text-align: center;
	color: var(--fl-text-2);
}
.fl-compare-row__cell:nth-of-type(2) {
	color: var(--fl-primary);
	font-weight: 600;
}
@media (max-width: 600px) {
	.fl-firms-pricing__compare { padding: 1rem; }
	.fl-compare-row { grid-template-columns: 1.2fr .8fr .8fr .8fr; font-size: .8125rem; gap: .5rem; }
}

/* ════════════════════════════════════════════════════════════════════
   v2.2.0 — "How membership works" steps on /firms + practice checkboxes
   ════════════════════════════════════════════════════════════════════ */
.fl-firms-how {
	padding: var(--fl-section-pad) 0 0;
}
.fl-firms-how__steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	margin-top: 2.5rem;
}
@media (max-width: 900px) {
	.fl-firms-how__steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
	.fl-firms-how__steps { grid-template-columns: 1fr; }
}
.fl-firms-how__step {
	position: relative;
	padding: 1.75rem 1.5rem;
	background: var(--fl-white);
	border: 1px solid var(--fl-border);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	gap: .625rem;
}
.fl-firms-how__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--fl-primary);
	color: #fff;
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.25rem;
	font-weight: 600;
	font-optical-sizing: auto;
}
.fl-firms-how__step h3 {
	margin: .25rem 0 0;
	font-size: 1.0625rem;
	color: var(--fl-primary);
}
.fl-firms-how__step p {
	margin: 0;
	font-size: .9375rem;
	line-height: 1.55;
	color: var(--fl-text-2);
	flex-grow: 1;
}
.fl-firms-how__cost {
	display: inline-block;
	margin-top: .25rem;
	padding: .25rem .625rem;
	background: rgba(201, 169, 110, .14);
	color: #8a6d2f;
	border-radius: 6px;
	font-size: .8125rem;
	font-weight: 600;
	width: fit-content;
}
.fl-firms-how__reassure {
	margin: 2.5rem auto 0;
	max-width: 760px;
	text-align: center;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--fl-text);
	padding: 1.25rem 1.5rem;
	background: var(--fl-surface);
	border-radius: 12px;
}

/* Practice-area checkbox group in the firm form */
.fl-firm-form__fieldset {
	border: 0;
	padding: 0;
	margin: 0;
}
.fl-firm-form__checks {
	display: flex;
	flex-wrap: wrap;
	gap: .625rem;
	margin-top: .5rem;
}
.fl-firm-form__check {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .625rem 1rem;
	background: rgba(255, 255, 255, .07);
	border: 1.5px solid rgba(255, 255, 255, .14);
	border-radius: 10px;
	cursor: pointer;
	font-size: .9375rem;
	color: #fff;
	transition: border-color .15s, background-color .15s;
}
.fl-firm-form__check:hover {
	border-color: var(--fl-accent);
}
.fl-firm-form__check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--fl-accent);
	cursor: pointer;
}
.fl-firm-form__fieldset.is-invalid .fl-firm-form__checks {
	outline: 2px solid #FCA5A5;
	outline-offset: 4px;
	border-radius: 10px;
}

/* ════════════════════════════════════════════════════════════════════
   v2.2.1 — Two-plan firms page: two-col comparison + plan prefill
   ════════════════════════════════════════════════════════════════════ */
/* Two-column pricing grid, centred and narrower than the old three-col */
.fl-firms-pricing__grid--two {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
	max-width: 760px;
	margin-inline: auto;
}
@media (max-width: 720px) {
	.fl-firms-pricing__grid--two { grid-template-columns: 1fr; max-width: 420px; }
}

/* Two-column comparison table (label + Standard + Multi) */
.fl-firms-pricing__compare--two {
	max-width: 760px;
	margin-inline: auto;
}
.fl-firms-pricing__compare--two .fl-compare-row {
	grid-template-columns: 2fr 1fr 1fr;
}
.fl-firms-pricing__compare--two .fl-compare-row--head .fl-compare-row__cell {
	color: var(--fl-primary);
	font-weight: 700;
	font-family: 'Fraunces', Georgia, serif;
	font-optical-sizing: auto;
}
/* Reset the generic nth-of-type colouring so both plan columns match */
.fl-firms-pricing__compare--two .fl-compare-row__cell:nth-of-type(2) {
	color: var(--fl-text-2);
	font-weight: 600;
}
.fl-firms-pricing__compare--two .fl-compare-row--head .fl-compare-row__cell:nth-of-type(2) {
	color: var(--fl-primary);
	font-weight: 700;
}
@media (max-width: 600px) {
	.fl-firms-pricing__compare--two .fl-compare-row { grid-template-columns: 1.6fr .7fr .7fr; font-size: .8125rem; gap: .5rem; }
}

/* Plan dropdown brief highlight when pre-filled from a pricing button */
.fl-firm-form select.fl-prefilled {
	border-color: var(--fl-accent);
	box-shadow: 0 0 0 4px rgba(201, 169, 110, .22);
	transition: box-shadow .3s, border-color .3s;
}
