/*
Theme Name: LLS Foundation
Theme URI: https://mcwilliamsmedia.com/lls
Author: McWilliams Media
Author URI: https://mcwilliamsmedia.com
Description: Local Launch System (LLS) Foundation theme. Reusable, parameterized theme for local service-business sites. Brand colors, NAP, phone, and service/location data are set via the Customizer and theme-config.php so each client is a re-skin, not a rebuild. Client build: Foundation Law, P.L.L.C. (McAlester, OK).
Version: 2.0.0
Requires at least: 6.5
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lls
*/
/* ============================================================
   Design tokens, from the approved home mockup v6_3_3.
   ============================================================ */
:root{

    --navy:#3450ae;
    --navy-deep:#0a205c;
    --navy-dark:#0a205c;
    --blue-light:#7ea2e8;
    --gold:#c0954f;
    --gold-soft:#d9b87e;
    --cream:#faf8f3;
    --warm-gray:#f4f1ea;
    --ink:#2a3442;
    --body:#5c6675;
    --line:#e5dfd3;
    --white:#ffffff;
	--maxw:1240px;
	--font-head:'Playfair Display',Georgia,serif;
	--font-body:'Jost',system-ui,-apple-system,Helvetica,Arial,sans-serif;
}

/* ---------- base ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body);color:var(--body);background:var(--white);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,.fl-serif{font-family:var(--font-head);color:var(--navy);}
img{max-width:100%;display:block;height:auto;}
a{text-decoration:none;color:inherit;}
.skip-link{position:absolute;left:-9999px;top:auto;}
.skip-link:focus{left:16px;top:12px;z-index:300;background:#fff;color:var(--navy);padding:10px 16px;border-radius:8px;}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
/* ============================================================
   Foundation Law design system.
   Base: approved home mockup v6_3_3 (newest), which carries the current
   palette and the rounded/shadow treatment.
   The four inner mockups (about, contact, criminal-law, mcalester-location)
   supply their page-specific sections. A rule is emitted unscoped only when
   every mockup that declares it agrees; anything that differs between
   templates, or from the home base, is scoped to a body class so each page
   renders exactly as designed and cannot bleed into another template.
   Every class is prefixed fl-.
   ============================================================ */
.fl-wrap{max-width:1240px;margin:0 auto;padding:0 32px;}
.fl-eyebrow{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:600;}
.fl-header{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 1px 0 var(--line),0 6px 24px rgba(20,35,55,.08);}
.fl-nav-bar{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 32px;max-width:1400px;margin:0 auto;}
.fl-logo{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.fl-logo img{height:60px;width:auto;}
.fl-logo-text{line-height:1.15;padding-left:14px;border-left:1px solid var(--line);}
.fl-logo-text .fl-sub{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);}
.fl-nav-main{display:flex;gap:26px;}
.fl-nav-main a{color:var(--navy);white-space:nowrap;font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding:6px 0;border-bottom:2px solid transparent;transition:.25s;}
.fl-nav-main a:hover{color:var(--gold);border-bottom-color:var(--gold);}
.fl-header-call{text-align:right;line-height:1.3;flex-shrink:0;}
.fl-header-call .fl-tag{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;}
.fl-header-call .fl-phone{font-family:'Playfair Display',serif;font-size:26px;font-weight:600;color:var(--navy);letter-spacing:.03em;}
.fl-header-call .fl-phone:hover{color:var(--gold);}
@media(max-width:1080px){
.fl-nav-main{display:none;}
}
@media(max-width:640px){
.fl-header-call .fl-tag{display:none;}
.fl-header-call .fl-phone{font-size:20px;}
.fl-logo img{height:48px;}
.fl-logo-text{display:none;}
}
.fl-hero{position:relative;background:linear-gradient(115deg,var(--navy-dark) 0%,var(--navy-deep) 40%,var(--navy) 78%,var(--blue-light) 100%);color:#fff;overflow:hidden;}
.fl-hero::before{content:"";position:absolute;inset:0;background-image:url('assets/img/fl-hero-bg.webp');background-size:cover;background-position:center 30%;opacity:.18;}
.fl-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,69,126,.92) 0%,rgba(14,69,126,.55) 60%,rgba(14,69,126,.25) 100%);}
.fl-hero-inner{position:relative;z-index:2;padding:82px 0 66px;max-width:760px;}
.fl-hero .fl-eyebrow{color:var(--gold-soft);margin-bottom:22px;display:block;}
.fl-hero h1{color:#fff;font-size:clamp(40px,4.9vw,62px);line-height:1.12;font-weight:700;margin-bottom:24px;text-shadow:0 2px 24px rgba(0,0,0,.28);}
.fl-hero h1 em{font-style:italic;color:var(--gold-soft);}
.fl-hero p{font-size:19px;font-weight:300;color:#cfd8e3;max-width:600px;margin-bottom:38px;}
.fl-btn-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;}
.fl-btn{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:17px 34px;border-radius:10px;transition:transform .2s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease,color .25s ease;cursor:pointer;}
.fl-btn:hover{transform:translateY(-3px);}
.fl-btn-gold{background:var(--gold);color:#fff;box-shadow:0 8px 22px rgba(192,149,79,.35);}
.fl-btn-gold:hover{background:#a97f3c;box-shadow:0 14px 30px rgba(192,149,79,.45);}
.fl-btn-outline-light{border:1.5px solid rgba(255,255,255,.5);color:#fff;}
.fl-btn-outline-light:hover{border-color:var(--gold-soft);color:var(--gold-soft);background:rgba(255,255,255,.06);}
.fl-hero-stats{position:relative;z-index:2;display:flex;gap:0;border-top:1px solid rgba(255,255,255,.14);margin-top:56px;}
.fl-stat{padding:26px 44px 26px 0;margin-right:44px;border-right:1px solid rgba(255,255,255,.14);}
.fl-stat:last-child{border-right:none;}
.fl-stat .fl-num{font-family:'Playfair Display',serif;font-size:34px;color:var(--gold-soft);line-height:1.1;}
.fl-stat .fl-lbl{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#aab6c6;margin-top:4px;}
@media(max-width:760px){
.fl-hero-inner{padding:70px 0 50px;}
.fl-hero-stats{flex-wrap:wrap;}
.fl-stat{padding:18px 24px 18px 0;margin-right:24px;}
}
.fl-badges{background:var(--cream);border-bottom:1px solid var(--line);}
.fl-badges .fl-wrap{display:flex;justify-content:center;align-items:center;gap:34px;padding:24px 32px;flex-wrap:wrap;}
.fl-badge-item{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:500;background:#fff;border:1px solid var(--line);border-radius:40px;padding:9px 20px 9px 10px;box-shadow:0 3px 10px rgba(20,35,55,.05);}
.fl-badge-item .fl-medal{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Playfair Display',serif;font-size:17px;flex-shrink:0;}
.fl-about{padding:110px 0 120px;background:#fff;overflow:hidden;}
.fl-about-heading{text-align:center;font-size:clamp(34px,4vw,50px);font-weight:500;margin-bottom:90px;}
.fl-about-heading .fl-dash{color:var(--navy);font-weight:400;}
.fl-about-heading .fl-name{color:var(--gold);}
.fl-founder-grid{position:relative;display:grid;grid-template-columns:0.66fr 1.34fr;align-items:stretch;}
.fl-founder-photo{position:relative;height:100%;min-height:620px;background:url('assets/img/fl-founder-wes.webp') center 25%/cover no-repeat,linear-gradient(160deg,#3450ae,#3450ae);margin-left:calc(-1 * ((100vw - min(1240px,100vw - 64px)) / 2));width:calc(100% + ((100vw - min(1240px,100vw - 64px)) / 2) + 60px);border-radius:0 20px 20px 0;overflow:hidden;}
.fl-founder-photo .fl-video-cue{position:absolute;left:40px;bottom:44px;display:flex;align-items:center;gap:18px;color:#fff;}
.fl-founder-photo .fl-play{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;border:1px solid rgba(255,255,255,.35);transition:.25s;cursor:pointer;}
.fl-founder-photo .fl-play:hover{background:var(--gold);border-color:var(--gold);}
.fl-founder-photo .fl-video-label{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;line-height:1.7;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.fl-founder-card{position:relative;z-index:3;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(8,31,61,.22);padding:26px;margin:48px 0 48px -60px;display:flex;align-items:center;}
.fl-founder-card-inner{border:1px solid var(--gold-soft);border-radius:12px;padding:54px 50px;}
.fl-founder-card .fl-label{font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:26px;}
.fl-founder-card blockquote{font-family:'Playfair Display',serif;font-size:clamp(22px,2.1vw,29px);line-height:1.5;color:var(--navy);font-weight:500;margin-bottom:34px;}
.fl-btn-pill{display:inline-block;border:1px solid var(--navy);border-radius:40px;padding:13px 34px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--navy);transition:.25s;}
.fl-btn-pill:hover{background:var(--navy);color:#fff;}
.fl-founder-creds{display:flex;justify-content:center;gap:44px;flex-wrap:wrap;margin-top:80px;padding-top:44px;border-top:1px solid var(--line);}
.fl-cred{text-align:center;max-width:230px;}
.fl-cred .fl-t{font-family:'Playfair Display',serif;font-size:19px;color:var(--navy);font-weight:600;margin-bottom:4px;}
.fl-cred .fl-d{font-size:14px;color:var(--body);}
@media(max-width:900px){
.fl-founder-grid{grid-template-columns:1fr;}
.fl-founder-photo{width:calc(100% + 64px);margin-left:-32px;min-height:440px;}
.fl-founder-card{margin:-70px 12px 0;}
.fl-founder-card-inner{padding:38px 30px;}
}
.fl-services{background:var(--warm-gray);padding:100px 0 110px;}
.fl-services .fl-eyebrow{text-align:center;display:block;margin-bottom:54px;}
.fl-services-head{display:grid;grid-template-columns:minmax(300px,480px) 1fr auto;gap:40px;align-items:center;margin-bottom:64px;}
.fl-services-head h2{font-size:clamp(30px,3.2vw,42px);font-weight:600;line-height:1.2;margin-bottom:14px;}
.fl-services-head p{font-size:16.5px;}
.fl-services-rule{height:1px;background:#d8d2c4;}
.fl-btn-box{display:inline-flex;align-items:center;gap:14px;border:1.5px solid var(--navy);border-radius:10px;padding:15px 28px;font-size:14px;letter-spacing:.08em;font-weight:500;color:var(--navy);background:#fff;transition:transform .2s ease,box-shadow .25s ease,background .25s ease,color .25s ease;white-space:nowrap;box-shadow:0 6px 16px rgba(20,35,55,.08);}
.fl-btn-box .fl-arr{transition:.25s;}
.fl-btn-box:hover{background:var(--navy);color:#fff;transform:translateY(-3px);box-shadow:0 12px 26px rgba(20,35,55,.2);}
.fl-btn-box:hover .fl-arr{transform:translateX(6px);}
.fl-svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.fl-svc-card{background:transparent;cursor:pointer;}
.fl-svc-img{aspect-ratio:4/4.6;overflow:hidden;background:#dcd6c8;border-radius:16px;box-shadow:0 12px 30px rgba(20,35,55,.12);}
.fl-svc-img div{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .5s ease;}
.fl-svc-card:hover .fl-svc-img div{transform:scale(1.05);}
.fl-svc-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 2px 10px;border-bottom:1px solid #d8d2c4;}
.fl-svc-title h3{font-family:'Jost',sans-serif;font-size:18.5px;font-weight:500;color:var(--ink);letter-spacing:.01em;}
.fl-svc-title .fl-arr{color:var(--navy);font-size:20px;transition:.25s;}
.fl-svc-card:hover .fl-arr{transform:translateX(6px);color:var(--gold);}
.fl-svc-desc{font-size:14.5px;padding-top:12px;color:var(--body);}
@media(max-width:1000px){
.fl-svc-grid{grid-template-columns:repeat(2,1fr);}
.fl-services-head{grid-template-columns:1fr;gap:20px;}
.fl-services-rule{display:none;}
}
@media(max-width:560px){
.fl-svc-grid{grid-template-columns:1fr;}
}
.fl-faq{padding:100px 0 110px;background:#fff;}
.fl-faq h2{text-align:center;font-size:clamp(30px,3.4vw,44px);font-weight:600;margin-bottom:20px;}
.fl-faq-intro{text-align:center;max-width:820px;margin:0 auto 56px;font-size:17px;}
.fl-faq-list{max-width:1100px;margin:0 auto;}
.fl-faq-item{border-bottom:1px solid #e8e4da;}
.fl-faq-item:first-child{border-top:1px solid #e8e4da;}
.fl-faq-q{width:100%;background:none;border:none;display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;padding:24px 8px;cursor:pointer;font-family:'Jost',sans-serif;font-size:18.5px;font-weight:500;color:var(--gold);transition:.2s;}
.fl-faq-q:hover{color:#a97f3c;}
.fl-faq-q .fl-caret{flex-shrink:0;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid var(--navy);transition:transform .3s;}
.fl-faq-item.fl-open .fl-faq-q .fl-caret{transform:rotate(90deg);}
.fl-faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.fl-faq-a-inner{padding:0 8px 28px;font-size:16.5px;color:var(--body);max-width:900px;}
.fl-faq-cta{text-align:center;margin-top:52px;}
.fl-testimonials{background:radial-gradient(120% 140% at 82% 8%,var(--blue-light) 0%,var(--navy) 34%,var(--navy-dark) 100%);color:#fff;padding:112px 0 120px;position:relative;overflow:hidden;}
.fl-testimonials::before{content:"\201C";position:absolute;top:-46px;right:4%;font-family:'Playfair Display',serif;font-size:360px;line-height:1;color:rgba(217,184,126,.1);pointer-events:none;}
.fl-testimonials::after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--gold),var(--gold-soft),var(--gold));}
.fl-t-head{position:relative;z-index:2;display:grid;grid-template-columns:minmax(300px,1fr) 1.1fr;gap:56px;align-items:end;margin-bottom:56px;}
.fl-testimonials .fl-eyebrow{display:block;color:var(--gold-soft);margin-bottom:16px;}
.fl-t-head h2{color:#fff;font-size:clamp(29px,3.3vw,44px);font-weight:600;line-height:1.18;}
.fl-t-head h2 em{font-style:italic;color:var(--gold-soft);}
.fl-t-head p{color:#c3cfdd;font-weight:300;font-size:17px;}
.fl-t-head p+p{margin-top:14px;}
.fl-t-rating{position:relative;z-index:2;display:flex;align-items:center;gap:36px;flex-wrap:wrap;padding:24px 0 30px;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);margin-bottom:52px;}
.fl-t-rating .fl-score{display:flex;align-items:baseline;gap:12px;}
.fl-t-rating .fl-score .fl-n{font-family:'Playfair Display',serif;font-size:46px;color:var(--gold-soft);line-height:1;}
.fl-t-rating .fl-score .fl-s{color:var(--gold);letter-spacing:4px;font-size:16px;}
.fl-t-rating .fl-score .fl-l{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#aab6c6;display:block;margin-top:6px;}
.fl-t-badge{display:flex;align-items:center;gap:13px;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:#dbe3ec;}
.fl-t-badge .fl-medal{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--gold-soft);color:var(--gold-soft);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:15px;flex-shrink:0;}
.fl-t-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.fl-t-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-top:3px solid var(--gold);border-radius:16px;padding:34px 32px 30px;display:flex;flex-direction:column;box-shadow:0 18px 44px rgba(4,18,38,.4);transition:transform .25s ease,box-shadow .25s ease,background .25s ease;}
.fl-t-card:hover{background:rgba(255,255,255,.11);transform:translateY(-8px);box-shadow:0 28px 60px rgba(4,18,38,.55);}
.fl-t-stars{color:var(--gold);letter-spacing:4px;font-size:15px;margin-bottom:16px;}
.fl-t-quote{font-family:'Playfair Display',serif;font-size:19.5px;line-height:1.6;color:#eef2f7;font-weight:400;flex:1;}
.fl-t-attr{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);}
.fl-t-foot{position:relative;z-index:2;text-align:center;margin-top:52px;}
.fl-t-foot .fl-note{font-size:14.5px;color:#9fadbe;margin-top:16px;font-weight:300;}
@media(max-width:1000px){
.fl-t-grid{grid-template-columns:1fr;gap:20px;}
.fl-t-head{grid-template-columns:1fr;gap:22px;align-items:start;}
}
@media(max-width:600px){
.fl-t-rating{gap:24px;}
.fl-testimonials::before{display:none;}
}
.fl-cta-band{background:linear-gradient(180deg,rgba(126,162,232,.16),rgba(126,162,232,.06));border-top:1px solid rgba(126,162,232,.25);padding:82px 0;position:relative;}
.fl-cta-band::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--navy),var(--blue-light));}
.fl-cta-band .fl-wrap{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.fl-cta-band .fl-wrap>div:first-child{flex:1 1 500px;}
.fl-cta-band .fl-eyebrow{display:block;margin-bottom:14px;}
.fl-cta-band h2{color:var(--navy);font-size:clamp(26px,3vw,38px);font-weight:600;max-width:640px;line-height:1.25;}
.fl-cta-band p{color:var(--body);margin-top:10px;}
.fl-cta-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
.fl-btn-navy{background:var(--navy);color:#fff;}
.fl-btn-navy:hover{background:var(--navy-deep);}
.fl-footer{background:linear-gradient(180deg,var(--navy-deep) 0%,var(--navy-dark) 100%);color:#9daabb;padding:80px 0 0;font-size:15px;}
.fl-f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;padding-bottom:60px;}
.fl-f-brand .fl-name{font-family:'Playfair Display',serif;font-size:26px;color:#fff;font-weight:600;}
.fl-f-logo{height:64px;width:auto;margin-bottom:24px;}
.fl-f-brand .fl-sub{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:20px;}
.fl-footer h4{font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:#fff;margin-bottom:20px;font-weight:600;}
.fl-footer ul{list-style:none;}
.fl-footer li{margin-bottom:10px;}
.fl-footer a:hover{color:var(--gold-soft);}
.fl-f-bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#6d7a8c;}
@media(max-width:900px){
.fl-f-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
.fl-f-grid{grid-template-columns:1fr;}
}

/* ---------- about template ---------- */
.fl-nav-main a.fl-active{color:var(--gold);border-bottom-color:var(--gold);}
.fl-tpl-about .fl-btn{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:17px 34px;transition:.25s;cursor:pointer;}
.fl-tpl-about .fl-btn-gold{background:var(--gold);color:#fff;}
.fl-tpl-about .fl-btn-gold:hover{background:#a97f3c;}
.fl-tpl-about .fl-btn-outline-light{border:1px solid rgba(255,255,255,.45);color:#fff;}
.fl-tpl-about .fl-btn-outline-light:hover{border-color:var(--gold-soft);color:var(--gold-soft);}
.fl-page-hero{position:relative;background:linear-gradient(115deg,var(--navy-deep) 0%,var(--navy) 55%,#2a74c2 100%);color:#fff;overflow:hidden;}
.fl-tpl-about .fl-page-hero::before{content:"";position:absolute;inset:0;background-image:url('assets/img/fl-banner-about.webp');background-size:cover;background-position:center 40%;opacity:.15;}
.fl-tpl-about .fl-page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,69,126,.92) 0%,rgba(14,69,126,.6) 60%,rgba(14,69,126,.3) 100%);}
.fl-tpl-about .fl-page-hero-inner{position:relative;z-index:2;padding:78px 0 74px;max-width:800px;}
.fl-crumbs{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:#a8bdd6;margin-bottom:22px;}
.fl-crumbs a:hover{color:var(--gold-soft);}
.fl-crumbs span{color:var(--gold-soft);}
.fl-tpl-about .fl-page-hero h1{color:#fff;font-size:clamp(34px,4.2vw,54px);line-height:1.14;font-weight:600;margin-bottom:20px;}
.fl-page-hero h1 em{font-style:italic;color:var(--gold-soft);}
.fl-tpl-about .fl-page-hero p{font-size:18.5px;font-weight:300;color:#cfd8e3;max-width:640px;}
@media(max-width:760px){
.fl-tpl-about .fl-page-hero-inner{padding:54px 0 50px;}
}
.fl-tpl-about .fl-intro{padding:100px 0 90px;background:#fff;}
.fl-tpl-about .fl-intro-grid{display:grid;grid-template-columns:minmax(280px,430px) 1fr;gap:70px;align-items:start;}
.fl-intro-grid .fl-eyebrow{display:block;margin-bottom:18px;}
.fl-tpl-about .fl-intro h2{font-size:clamp(30px,3.3vw,44px);font-weight:600;line-height:1.2;}
.fl-intro h2 em{font-style:italic;color:var(--gold);}
.fl-tpl-about .fl-intro p+p{margin-top:20px;}
.fl-tpl-about .fl-intro .fl-lead{font-size:19px;color:var(--ink);font-weight:400;}
.fl-intro-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:74px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.fl-istat{padding:30px 26px;border-right:1px solid var(--line);}
.fl-istat:last-child{border-right:none;}
.fl-istat .fl-num{font-family:'Playfair Display',serif;font-size:36px;color:var(--navy);line-height:1.1;}
.fl-istat .fl-lbl{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--body);margin-top:6px;}
@media(max-width:900px){
.fl-intro-grid{grid-template-columns:1fr;gap:26px;}
.fl-intro-stats{grid-template-columns:1fr 1fr;}
.fl-istat{border-bottom:1px solid var(--line);}
.fl-istat:nth-child(2n){border-right:none;}
}
@media(max-width:520px){
.fl-intro-stats{grid-template-columns:1fr;}
.fl-istat{border-right:none;}
}
.fl-profile{background:var(--warm-gray);padding:100px 0 110px;}
.fl-profile-grid{display:grid;grid-template-columns:0.82fr 1.18fr;gap:64px;align-items:start;}
.fl-p-photo{position:relative;}
.fl-p-photo .fl-shot{aspect-ratio:4/5;background:url('assets/img/fl-founder-wes.webp') center 22%/cover no-repeat,linear-gradient(160deg,#2f79c4,#1461ac);box-shadow:0 26px 60px rgba(20,35,55,.18);}
.fl-p-card{background:#fff;padding:30px 30px 34px;box-shadow:0 18px 44px rgba(20,35,55,.1);margin-top:-46px;margin-left:34px;position:relative;z-index:2;}
.fl-p-card .fl-role{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;}
.fl-p-card .fl-nm{font-family:'Playfair Display',serif;font-size:27px;color:var(--navy);font-weight:600;line-height:1.2;margin-bottom:18px;}
.fl-p-card .fl-row{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;padding:9px 0;border-top:1px solid var(--line);}
.fl-p-card .fl-row .fl-k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--body);min-width:64px;padding-top:4px;}
.fl-p-card .fl-row a{color:var(--navy);font-weight:500;word-break:break-word;}
.fl-p-card .fl-row a:hover{color:var(--gold);}
.fl-p-card .fl-btn-pill{margin-top:22px;}
.fl-p-bio h2{font-size:clamp(28px,3vw,40px);font-weight:600;line-height:1.2;margin-bottom:8px;}
.fl-p-bio .fl-kicker{display:block;margin-bottom:20px;}
.fl-p-bio p+p{margin-top:18px;}
.fl-p-pull{border-left:3px solid var(--gold);padding:6px 0 6px 24px;margin:30px 0;font-family:'Playfair Display',serif;font-size:22px;line-height:1.55;color:var(--navy);font-style:italic;}
.fl-p-personal{margin-top:34px;background:#fff;border-left:3px solid var(--gold-soft);padding:26px 30px;}
.fl-p-personal h4{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:10px;}
.fl-p-personal p{font-size:16px;}
.fl-p-blocks{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:44px;padding-top:38px;border-top:1px solid #ded8ca;}
.fl-p-block h4{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px;}
.fl-p-block ul{list-style:none;}
.fl-p-block li{font-size:15.5px;line-height:1.55;padding:7px 0;border-bottom:1px dashed #ded8ca;}
.fl-p-block li:last-child{border-bottom:none;}
.fl-p-block li strong{color:var(--ink);font-weight:500;display:block;}
.fl-p-block li span{font-size:14px;}
@media(max-width:940px){
.fl-profile-grid{grid-template-columns:1fr;gap:44px;}
.fl-p-card{margin-left:16px;margin-right:16px;}
}
@media(max-width:560px){
.fl-p-blocks{grid-template-columns:1fr;gap:26px;}
}
.fl-words{padding:110px 0 120px;background:#fff;overflow:hidden;}
.fl-words-heading{text-align:center;font-size:clamp(30px,3.6vw,46px);font-weight:500;margin-bottom:80px;}
.fl-words-heading .fl-dash{color:var(--navy);font-weight:400;}
.fl-words-heading .fl-name{color:var(--gold);}
.fl-words-grid{position:relative;display:grid;grid-template-columns:1.34fr 0.66fr;align-items:stretch;}
.fl-words-photo{position:relative;height:100%;min-height:560px;background:url('assets/img/fl-about-secondary.webp') center 30%/cover no-repeat,linear-gradient(160deg,#2f79c4,#1461ac);margin-right:calc(-1 * ((100vw - min(1240px,100vw - 64px)) / 2));width:calc(100% + ((100vw - min(1240px,100vw - 64px)) / 2) + 60px);grid-column:2;}
.fl-words-photo .fl-video-cue{position:absolute;right:104px;bottom:44px;display:flex;align-items:center;gap:18px;color:#fff;flex-direction:row-reverse;text-align:right;}
.fl-words-photo .fl-play{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;border:1px solid rgba(255,255,255,.35);transition:.25s;cursor:pointer;flex-shrink:0;}
.fl-words-photo .fl-play:hover{background:var(--gold);border-color:var(--gold);}
.fl-words-photo .fl-video-label{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;line-height:1.7;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.fl-words-card{position:relative;z-index:3;background:#fff;box-shadow:0 30px 80px rgba(20,35,55,.16);padding:26px;margin:48px -60px 48px 0;display:flex;align-items:center;grid-column:1;grid-row:1;}
.fl-words-card-inner{border:1px solid var(--gold-soft);padding:54px 50px;}
.fl-words-card .fl-label{font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:26px;}
.fl-words-card blockquote{font-family:'Playfair Display',serif;font-size:clamp(21px,2vw,28px);line-height:1.5;color:var(--navy);font-weight:500;margin-bottom:34px;}
.fl-words-card .fl-sig{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--body);margin-bottom:28px;}
@media(max-width:900px){
.fl-words-grid{grid-template-columns:1fr;}
.fl-words-photo{grid-column:1;width:calc(100% + 64px);margin-right:-32px;margin-left:-32px;min-height:400px;}
.fl-words-card{grid-column:1;grid-row:2;margin:-70px 12px 0;}
.fl-words-card-inner{padding:38px 30px;}
.fl-words-heading{margin-bottom:50px;}
.fl-words-photo .fl-video-cue{right:auto;left:26px;top:26px;bottom:auto;flex-direction:row;text-align:left;gap:14px;}
.fl-words-photo .fl-play{width:58px;height:58px;font-size:16px;}
}
.fl-path{background:var(--cream);padding:100px 0 110px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.fl-path .fl-eyebrow{display:block;text-align:center;margin-bottom:16px;}
.fl-path h2{text-align:center;font-size:clamp(28px,3.2vw,42px);font-weight:600;margin-bottom:16px;}
.fl-path .fl-sub{text-align:center;max-width:760px;margin:0 auto 66px;}
.fl-tl{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.fl-tl::before{content:"";position:absolute;top:11px;left:6%;right:6%;height:1px;background:#ded6c4;}
.fl-tl-item{position:relative;padding-top:44px;text-align:center;}
.fl-tl-item::before{content:"";position:absolute;top:5px;left:50%;transform:translateX(-50%);width:13px;height:13px;border-radius:50%;background:var(--cream);border:2px solid var(--gold);}
.fl-tl-item.fl-is-now::before{background:var(--gold);box-shadow:0 0 0 5px rgba(192,149,79,.22);}
.fl-tl-item .fl-yr{font-family:'Playfair Display',serif;font-size:21px;color:var(--gold);font-weight:600;margin-bottom:4px;}
.fl-tl-item .fl-t{font-size:16.5px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:6px;}
.fl-tl-item .fl-d{font-size:14.5px;}
@media(max-width:1000px){
.fl-tl{grid-template-columns:1fr 1fr;gap:40px 26px;}
.fl-tl::before{display:none;}
.fl-tl-item{text-align:left;padding-top:0;padding-left:26px;border-left:1px solid #ded6c4;}
.fl-tl-item::before{left:-7px;top:6px;transform:none;}
}
@media(max-width:560px){
.fl-tl{grid-template-columns:1fr;}
}
.fl-adm{padding:100px 0 110px;background:#fff;}
.fl-adm-head{text-align:center;margin-bottom:60px;}
.fl-adm-head .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-adm-head h2{font-size:clamp(28px,3.2vw,42px);font-weight:600;margin-bottom:16px;}
.fl-adm-head p{max-width:780px;margin:0 auto;}
.fl-adm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);}
.fl-adm-col{padding:44px 38px;border-right:1px solid var(--line);}
.fl-adm-col:last-child{border-right:none;}
.fl-adm-col .fl-ic{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Playfair Display',serif;font-size:19px;margin-bottom:22px;}
.fl-adm-col h3{font-size:21px;font-weight:600;margin-bottom:18px;}
.fl-adm-col ul{list-style:none;}
.fl-adm-col li{font-size:15.5px;line-height:1.5;padding:10px 0 10px 20px;position:relative;border-top:1px solid #f0ece2;}
.fl-adm-col li:first-child{border-top:none;}
.fl-adm-col li::before{content:"";position:absolute;left:0;top:19px;width:7px;height:1px;background:var(--gold);}
@media(max-width:900px){
.fl-adm-grid{grid-template-columns:1fr;}
.fl-adm-col{border-right:none;border-bottom:1px solid var(--line);}
.fl-adm-col:last-child{border-bottom:none;}
}
.fl-awards{background:var(--warm-gray);padding:96px 0 104px;}
.fl-aw-grid{display:grid;grid-template-columns:minmax(300px,440px) 1fr;gap:64px;align-items:center;}
.fl-aw-grid .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-aw-grid h2{font-size:clamp(27px,3vw,40px);font-weight:600;line-height:1.2;margin-bottom:16px;}
.fl-aw-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.fl-aw-badge{background:#fff;border:1px solid var(--line);padding:30px 22px;text-align:center;transition:.25s;}
.fl-aw-badge:hover{border-color:var(--gold-soft);transform:translateY(-3px);}
.fl-aw-badge .fl-medal{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Playfair Display',serif;font-size:19px;margin:0 auto 16px;}
.fl-aw-badge .fl-t{font-family:'Playfair Display',serif;font-size:17.5px;color:var(--navy);font-weight:600;line-height:1.3;}
.fl-aw-badge .fl-d{font-size:13.5px;margin-top:5px;}
@media(max-width:1000px){
.fl-aw-grid{grid-template-columns:1fr;gap:36px;}
}
@media(max-width:640px){
.fl-aw-badges{grid-template-columns:1fr 1fr;}
}
.fl-served{padding:96px 0 104px;background:#fff;}
.fl-served .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-served h2{font-size:clamp(27px,3vw,40px);font-weight:600;margin-bottom:16px;}
.fl-served-grid{display:grid;grid-template-columns:minmax(280px,420px) 1fr 1fr;gap:56px;align-items:start;margin-top:46px;}
.fl-served h4{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:18px;}
.fl-served ul{list-style:none;columns:2;column-gap:26px;}
.fl-served li{font-size:16px;padding:9px 0;border-bottom:1px solid #f0ece2;break-inside:avoid;}
@media(max-width:1000px){
.fl-served-grid{grid-template-columns:1fr;gap:34px;}
}
.fl-tpl-about .fl-testimonials{background:var(--navy);color:#fff;padding:96px 0;}
.fl-tpl-about .fl-testimonials .fl-eyebrow{display:block;text-align:center;margin-bottom:50px;color:var(--gold-soft);}
.fl-tpl-about .fl-t-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1080px;margin:0 auto;}
.fl-tpl-about .fl-t-quote{font-family:'Playfair Display',serif;font-size:22px;line-height:1.6;color:#e9edf3;font-weight:400;}
.fl-tpl-about .fl-t-quote::before{content:"\201C";display:block;font-size:64px;color:var(--gold);line-height:.6;margin-bottom:18px;}
.fl-tpl-about .fl-t-attr{margin-top:20px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);}
.fl-tpl-about .fl-t-stars{color:var(--gold);letter-spacing:4px;font-size:15px;margin-top:8px;}
@media(max-width:800px){
.fl-t-grid{grid-template-columns:1fr;gap:44px;}
}
.fl-tpl-about .fl-cta-band{background:linear-gradient(100deg,#a9803c,var(--gold));color:#fff;padding:72px 0;}
.fl-tpl-about .fl-cta-band .fl-wrap{display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;}
.fl-tpl-about .fl-cta-band h2{color:#fff;font-size:clamp(26px,3vw,38px);font-weight:600;max-width:640px;line-height:1.25;}
.fl-tpl-about .fl-cta-band p{color:#fdf6ea;margin-top:8px;font-weight:300;}
.fl-tpl-about .fl-footer{background:var(--navy-deep);color:#9daabb;padding:80px 0 0;font-size:15px;}

/* ---------- contact template ---------- */
.fl-tpl-contact .fl-btn{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:17px 34px;transition:.25s;cursor:pointer;}
.fl-tpl-contact .fl-btn-gold{background:var(--gold);color:#fff;}
.fl-tpl-contact .fl-btn-gold:hover{background:#a97f3c;}
.fl-tpl-contact .fl-page-hero::before{content:"";position:absolute;inset:0;background-image:url('assets/img/fl-banner-contact.webp');background-size:cover;background-position:center 45%;opacity:.15;}
.fl-tpl-contact .fl-page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,69,126,.92) 0%,rgba(14,69,126,.6) 60%,rgba(14,69,126,.3) 100%);}
.fl-tpl-contact .fl-page-hero-inner{position:relative;z-index:2;padding:78px 0 74px;max-width:820px;}
.fl-tpl-contact .fl-page-hero h1{color:#fff;font-size:clamp(32px,4vw,52px);line-height:1.14;font-weight:600;margin-bottom:20px;}
.fl-tpl-contact .fl-page-hero p{font-size:18.5px;font-weight:300;color:#cfd8e3;max-width:640px;}
@media(max-width:760px){
.fl-tpl-contact .fl-page-hero-inner{padding:54px 0 50px;}
}
.fl-contact{padding:100px 0 110px;background:#fff;}
.fl-contact-grid{display:grid;grid-template-columns:1.25fr 0.9fr;gap:70px;align-items:start;}
.fl-c-form-head .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-c-form-head h2{font-size:clamp(27px,3vw,40px);font-weight:600;line-height:1.2;margin-bottom:14px;}
.fl-c-form-head p{margin-bottom:38px;}
form .fl-frow{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.fl-field{margin-bottom:22px;}
.fl-field label{display:block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:600;margin-bottom:9px;}
.fl-field label .fl-req{color:var(--gold);}
.fl-field input, .fl-field textarea, .fl-field select{width:100%;font-family:'Jost',sans-serif;font-size:16.5px;color:var(--ink);background:var(--cream);border:1px solid var(--line);padding:15px 16px;transition:.2s;outline:none;}
.fl-field textarea{min-height:150px;resize:vertical;}
.fl-field input:focus, .fl-field textarea:focus, .fl-field select:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(192,149,79,.14);}
.fl-field input::placeholder, .fl-field textarea::placeholder{color:#a7aeb9;}
.fl-consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.6;margin:8px 0 26px;}
.fl-consent input{width:17px;height:17px;margin-top:4px;accent-color:var(--gold);flex-shrink:0;}
.fl-form-note{font-size:13.5px;line-height:1.65;color:#8a93a1;border-top:1px solid var(--line);padding-top:20px;margin-top:26px;}
.fl-btn-submit{border:none;}
.fl-c-side{background:var(--warm-gray);padding:44px 40px;border-top:3px solid var(--gold);}
.fl-c-side h3{font-size:23px;font-weight:600;margin-bottom:6px;}
.fl-c-side .fl-oba{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:26px;}
.fl-c-line{display:flex;gap:16px;align-items:flex-start;padding:17px 0;border-top:1px solid #ded8ca;}
.fl-c-line .fl-ic{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.fl-c-line .fl-k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--body);}
.fl-c-line .fl-v{font-size:17px;color:var(--navy);font-weight:500;line-height:1.45;word-break:break-word;}
.fl-c-line a.fl-v:hover{color:var(--gold);}
.fl-c-side .fl-btn-pill{margin-top:28px;width:100%;text-align:center;}
.fl-c-quote{margin-top:34px;padding-top:28px;border-top:1px solid #ded8ca;font-family:'Playfair Display',serif;font-size:19px;line-height:1.55;color:var(--navy);font-style:italic;}
.fl-c-quote .fl-attr{font-family:'Jost',sans-serif;font-style:normal;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:14px;}
@media(max-width:960px){
.fl-contact-grid{grid-template-columns:1fr;gap:48px;}
}
@media(max-width:560px){
form .fl-frow{grid-template-columns:1fr;gap:0;}
.fl-c-side{padding:34px 26px;}
}
.fl-steps{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:92px 0 100px;}
.fl-steps .fl-eyebrow{display:block;text-align:center;margin-bottom:16px;}
.fl-steps h2{text-align:center;font-size:clamp(27px,3vw,40px);font-weight:600;margin-bottom:16px;}
.fl-steps .fl-sub{text-align:center;max-width:740px;margin:0 auto 62px;}
.fl-step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.fl-step{background:#fff;border:1px solid var(--line);padding:40px 34px;position:relative;transition:.25s;}
.fl-step:hover{border-color:var(--gold-soft);transform:translateY(-4px);box-shadow:0 20px 44px rgba(20,35,55,.08);}
.fl-step .fl-n{font-family:'Playfair Display',serif;font-size:15px;color:var(--gold);letter-spacing:.2em;margin-bottom:18px;}
.fl-step h3{font-size:21px;font-weight:600;margin-bottom:12px;}
.fl-step p{font-size:15.5px;}
@media(max-width:900px){
.fl-step-grid{grid-template-columns:1fr;gap:22px;}
}
.fl-offices{padding:96px 0 104px;background:#fff;}
.fl-off-head{display:grid;grid-template-columns:minmax(300px,520px) 1fr auto;gap:40px;align-items:center;margin-bottom:56px;}
.fl-off-head .fl-eyebrow{display:block;margin-bottom:14px;}
.fl-off-head h2{font-size:clamp(27px,3vw,40px);font-weight:600;line-height:1.2;margin-bottom:12px;}
.fl-off-rule{height:1px;background:#d8d2c4;}
.fl-off-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);}
.fl-off{padding:34px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:.25s;}
.fl-off:nth-child(3n){border-right:none;}
.fl-off:nth-child(n+4){border-bottom:none;}
.fl-off:hover{background:var(--cream);}
.fl-off .fl-city{font-family:'Playfair Display',serif;font-size:23px;color:var(--navy);font-weight:600;margin-bottom:6px;}
.fl-off .fl-county{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px;}
.fl-off .fl-d{font-size:15px;}
.fl-off .fl-tagme{display:inline-block;margin-top:14px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid var(--gold-soft);padding-bottom:3px;}
.fl-off .fl-tagme:hover{color:var(--gold);}
@media(max-width:1000px){
.fl-off-head{grid-template-columns:1fr;gap:18px;}
.fl-off-rule{display:none;}
.fl-off-grid{grid-template-columns:1fr 1fr;}
.fl-off:nth-child(3n){border-right:1px solid var(--line);}
.fl-off:nth-child(2n){border-right:none;}
.fl-off:nth-child(n+4){border-bottom:1px solid var(--line);}
.fl-off:nth-child(n+5){border-bottom:none;}
}
@media(max-width:600px){
.fl-off-grid{grid-template-columns:1fr;}
.fl-off{border-right:none !important;border-bottom:1px solid var(--line) !important;}
.fl-off:last-child{border-bottom:none !important;}
}
.fl-map-band{position:relative;background:var(--warm-gray);}
.fl-map-grid{display:grid;grid-template-columns:0.82fr 1.18fr;align-items:stretch;}
.fl-map-copy{padding:80px 60px 80px 0;}
.fl-map-copy .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-map-copy h2{font-size:clamp(26px,2.8vw,36px);font-weight:600;line-height:1.22;margin-bottom:16px;}
.fl-map-copy .fl-addr{margin-top:26px;padding-top:24px;border-top:1px solid #ded8ca;font-size:17px;color:var(--ink);line-height:1.7;}
.fl-tpl-contact .fl-map-frame{position:relative;min-height:480px;background:linear-gradient(160deg,#dfe6ef,#c9d6e6);margin-right:calc(-1 * ((100vw - min(1240px,100vw - 64px)) / 2));width:calc(100% + ((100vw - min(1240px,100vw - 64px)) / 2) + 60px);}
.fl-map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.02);}
.fl-tpl-contact .fl-map-pin{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;padding:16px 24px;box-shadow:0 14px 34px rgba(20,35,55,.2);text-align:center;pointer-events:none;}
.fl-tpl-contact .fl-map-pin .fl-t{font-family:'Playfair Display',serif;font-size:18px;color:var(--navy);font-weight:600;}
.fl-tpl-contact .fl-map-pin .fl-d{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
@media(max-width:900px){
.fl-map-grid{grid-template-columns:1fr;}
.fl-map-copy{padding:60px 0 40px;}
.fl-map-frame{width:calc(100% + 64px);margin-right:-32px;margin-left:-32px;min-height:360px;}
}
.fl-direct{background:var(--navy);color:#fff;padding:80px 0;}
.fl-direct .fl-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;}
.fl-direct h4{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:16px;}
.fl-direct .fl-big{font-family:'Playfair Display',serif;font-size:30px;color:#fff;font-weight:600;line-height:1.25;}
.fl-direct .fl-big a:hover{color:var(--gold-soft);}
.fl-direct p{color:#b7c4d4;font-size:15.5px;margin-top:10px;font-weight:300;}
.fl-direct ul{list-style:none;margin-top:4px;}
.fl-direct li{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:15.5px;color:#dbe3ec;}
.fl-direct li span:last-child{color:#fff;}
@media(max-width:900px){
.fl-direct .fl-wrap{grid-template-columns:1fr;gap:38px;}
}
.fl-tpl-contact .fl-cta-band{background:linear-gradient(100deg,#a9803c,var(--gold));color:#fff;padding:72px 0;}
.fl-tpl-contact .fl-cta-band .fl-wrap{display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;}
.fl-tpl-contact .fl-cta-band h2{color:#fff;font-size:clamp(26px,3vw,38px);font-weight:600;max-width:640px;line-height:1.25;}
.fl-tpl-contact .fl-cta-band p{color:#fdf6ea;margin-top:8px;font-weight:300;}
.fl-tpl-contact .fl-footer{background:var(--navy-deep);color:#9daabb;padding:80px 0 0;font-size:15px;}

/* ---------- service template ---------- */
.fl-tpl-service .fl-btn{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:17px 34px;transition:.25s;cursor:pointer;}
.fl-tpl-service .fl-btn-gold{background:var(--gold);color:#fff;}
.fl-tpl-service .fl-btn-gold:hover{background:#a97f3c;}
.fl-tpl-service .fl-btn-outline-light{border:1px solid rgba(255,255,255,.45);color:#fff;}
.fl-tpl-service .fl-btn-outline-light:hover{border-color:var(--gold-soft);color:var(--gold-soft);}
.fl-tpl-service .fl-page-hero::before{content:"";position:absolute;inset:0;background-image:url('assets/img/fl-banner-service.webp');background-size:cover;background-position:center 35%;opacity:.17;}
.fl-tpl-service .fl-page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,69,126,.93) 0%,rgba(14,69,126,.6) 60%,rgba(14,69,126,.3) 100%);}
.fl-tpl-service .fl-page-hero-inner{position:relative;z-index:2;padding:86px 0 78px;max-width:800px;}
.fl-tpl-service .fl-page-hero h1{color:#fff;font-size:clamp(34px,4.4vw,56px);line-height:1.13;font-weight:600;margin-bottom:20px;}
.fl-tpl-service .fl-page-hero p{font-size:18.5px;font-weight:300;color:#cfd8e3;max-width:620px;margin-bottom:34px;}
@media(max-width:760px){
.fl-tpl-service .fl-page-hero-inner{padding:58px 0 54px;}
}
.fl-alert{background:var(--cream);border-bottom:1px solid var(--line);}
.fl-alert .fl-wrap{display:flex;align-items:center;justify-content:center;gap:16px;padding:20px 32px;flex-wrap:wrap;text-align:center;}
.fl-alert .fl-ic{width:34px;height:34px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.fl-alert p{font-size:15.5px;color:var(--ink);}
.fl-alert a{color:var(--navy);font-weight:600;border-bottom:1px solid var(--gold-soft);}
.fl-alert a:hover{color:var(--gold);}
.fl-ov{padding:100px 0 90px;background:#fff;}
.fl-ov-grid{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:70px;align-items:start;}
.fl-ov-grid .fl-eyebrow{display:block;margin-bottom:18px;}
.fl-ov h2{font-size:clamp(29px,3.2vw,44px);font-weight:600;line-height:1.2;}
.fl-ov h2 em{font-style:italic;color:var(--gold);}
.fl-ov .fl-lead{font-size:19px;color:var(--ink);}
.fl-ov p+p{margin-top:20px;}
.fl-ov-side{margin-top:34px;padding:26px 28px;background:var(--cream);border-left:3px solid var(--gold);}
.fl-ov-side .fl-k{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;}
.fl-ov-side .fl-v{font-size:16px;color:var(--ink);}
/* In-content practice photo in the overview rail. Unlike the banner this one is
   shown at full strength — same radius/shadow language as .fl-svc-img on the
   home grid so the two read as one system. */
.fl-ov-fig{margin-top:34px;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(20,35,55,.12);}
.fl-ov-fig img{display:block;width:100%;height:auto;aspect-ratio:10/7;object-fit:cover;}
/* The rail is sticky and capped at the viewport height, so on a short laptop
   screen the photo's lower edge would sit permanently below the fold. Let it
   give back height there — object-fit keeps the crop honest — with a floor so
   it never degrades into a letterbox strip. */
@media (min-width:981px){
.fl-ov-fig img{max-height:max(170px,calc(100vh - 515px));}
}
@media(max-width:900px){
.fl-ov-grid{grid-template-columns:1fr;gap:26px;}
.fl-ov-fig{margin-top:28px;}
.fl-ov-fig img{aspect-ratio:16/9;}
}
.fl-band{background:var(--navy);color:#fff;padding:82px 0;text-align:center;}
.fl-band .fl-eyebrow{display:block;color:var(--gold-soft);margin-bottom:26px;}
.fl-band blockquote{font-family:'Playfair Display',serif;font-size:clamp(26px,3.4vw,42px);line-height:1.4;color:#fff;font-weight:500;max-width:960px;margin:0 auto;}
.fl-band blockquote em{color:var(--gold-soft);font-style:italic;}
.fl-band .fl-sub{color:#b7c4d4;font-weight:300;margin-top:24px;max-width:720px;margin-left:auto;margin-right:auto;}
.fl-compare{padding:100px 0 110px;background:var(--warm-gray);}
.fl-cmp-head{text-align:center;margin-bottom:58px;}
.fl-cmp-head .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-cmp-head h2{font-size:clamp(28px,3.2vw,42px);font-weight:600;margin-bottom:16px;}
.fl-cmp-head p{max-width:820px;margin:0 auto;}
.fl-cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;}
.fl-cmp{background:#fff;padding:46px 44px;border-top:3px solid var(--gold-soft);box-shadow:0 18px 44px rgba(20,35,55,.07);}
.fl-cmp.fl-is-felony{border-top-color:var(--navy);}
.fl-cmp .fl-tier{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:12px;}
.fl-cmp.fl-is-felony .fl-tier{color:var(--navy);}
.fl-cmp h3{font-size:28px;font-weight:600;margin-bottom:14px;}
.fl-cmp .fl-intro{font-size:16px;padding-bottom:22px;border-bottom:1px solid var(--line);}
.fl-cmp h4{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:600;margin:22px 0 12px;}
.fl-cmp ul{list-style:none;}
.fl-cmp li{font-size:16px;line-height:1.55;padding:9px 0 9px 24px;position:relative;border-bottom:1px solid #f2eee6;}
.fl-cmp li:last-child{border-bottom:none;}
.fl-cmp li::before{content:"";position:absolute;left:0;top:18px;width:9px;height:1px;background:var(--gold);}
.fl-cmp.fl-is-felony li::before{background:var(--navy);}
@media(max-width:880px){
.fl-cmp-grid{grid-template-columns:1fr;gap:24px;}
.fl-cmp{padding:36px 30px;}
}
.fl-charges{padding:100px 0 110px;background:#fff;}
.fl-ch-head{display:grid;grid-template-columns:minmax(300px,500px) 1fr auto;gap:40px;align-items:center;margin-bottom:56px;}
.fl-ch-head .fl-eyebrow{display:block;margin-bottom:14px;}
.fl-ch-head h2{font-size:clamp(28px,3.2vw,42px);font-weight:600;line-height:1.2;margin-bottom:12px;}
.fl-ch-rule{height:1px;background:#d8d2c4;}
.fl-ch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);}
.fl-ch{padding:38px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:.25s;}
.fl-ch:nth-child(3n){border-right:none;}
.fl-ch:nth-child(n+4){border-bottom:none;}
.fl-ch:hover{background:var(--cream);}
.fl-ch .fl-ic{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:16px;letter-spacing:.04em;margin-bottom:20px;}
.fl-ch h3{font-family:'Jost',sans-serif;font-size:19.5px;font-weight:500;color:var(--ink);margin-bottom:10px;}
.fl-ch p{font-size:15.5px;}
@media(max-width:1000px){
.fl-ch-head{grid-template-columns:1fr;gap:18px;}
.fl-ch-rule{display:none;}
.fl-ch-grid{grid-template-columns:1fr 1fr;}
.fl-ch:nth-child(3n){border-right:1px solid var(--line);}
.fl-ch:nth-child(2n){border-right:none;}
.fl-ch:nth-child(n+4){border-bottom:1px solid var(--line);}
.fl-ch:nth-child(n+5){border-bottom:none;}
}
@media(max-width:620px){
.fl-ch-grid{grid-template-columns:1fr;}
.fl-ch{border-right:none !important;border-bottom:1px solid var(--line) !important;}
.fl-ch:last-child{border-bottom:none !important;}
}
.fl-tpl-service .fl-why{background:var(--cream);padding:0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.fl-tpl-service .fl-why-grid{display:grid;grid-template-columns:0.72fr 1.28fr;align-items:stretch;}
/* Practice photo set per page via --fl-why-img (see inc/practice-images.php).
   Falls back to the founder portrait, which is the right image only where a
   page has no practice photo of its own — the same headshot on all 20 read as
   filler. --fl-why-pos exists because the headshot needs `center 22%` to keep
   the face in frame while the practice crops are already 3:4 and want centre. */
.fl-why-photo{position:relative;min-height:600px;background:var(--fl-why-img,url('assets/img/fl-founder-wes.webp')) var(--fl-why-pos,center 22%)/cover no-repeat,linear-gradient(160deg,#2f79c4,#1461ac);margin-left:calc(-1 * ((100vw - min(1240px,100vw - 64px)) / 2));width:calc(100% + ((100vw - min(1240px,100vw - 64px)) / 2));}
.fl-why-copy{padding:96px 0 96px 70px;}
.fl-why-copy .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-why-copy h2{font-size:clamp(27px,3vw,40px);font-weight:600;line-height:1.22;margin-bottom:20px;}
/* `.fl-why h2{color:#fff}` further down belongs to the location template, whose
   .fl-why sits on navy — but only the container was scoped to .fl-tpl-location,
   so the white leaked here onto cream and left this heading invisible (contrast
   1.07:1). Scoped override rather than re-scoping the location rule, which would
   risk regressing those 13 pages. */
.fl-tpl-service .fl-why-copy h2{color:var(--navy);}
.fl-why-copy p+p{margin-top:18px;}
.fl-why-points{margin-top:34px;padding-top:30px;border-top:1px solid #ded8ca;display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.fl-why-point .fl-t{font-family:'Playfair Display',serif;font-size:18px;color:var(--navy);font-weight:600;margin-bottom:4px;}
.fl-why-point .fl-d{font-size:15px;}
@media(max-width:940px){
.fl-why-grid{grid-template-columns:1fr;}
.fl-why-photo{width:calc(100% + 64px);margin-left:-32px;min-height:400px;}
.fl-why-copy{padding:60px 0 70px;}
}
@media(max-width:560px){
.fl-why-points{grid-template-columns:1fr;gap:20px;}
}
.fl-proc{padding:96px 0 104px;background:#fff;}
.fl-proc .fl-eyebrow{display:block;text-align:center;margin-bottom:16px;}
.fl-proc h2{text-align:center;font-size:clamp(28px,3.2vw,42px);font-weight:600;margin-bottom:16px;}
.fl-proc .fl-sub{text-align:center;max-width:760px;margin:0 auto 64px;}
.fl-pr-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.fl-pr-grid::before{content:"";position:absolute;top:11px;left:6%;right:6%;height:1px;background:#e3ddd0;}
.fl-pr{position:relative;padding-top:46px;}
.fl-pr::before{content:"";position:absolute;top:5px;left:0;width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid var(--gold);}
.fl-pr .fl-n{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;}
.fl-pr h3{font-size:20px;font-weight:600;margin-bottom:8px;}
.fl-pr p{font-size:15.5px;}
@media(max-width:1000px){
.fl-pr-grid{grid-template-columns:1fr 1fr;gap:38px 26px;}
.fl-pr-grid::before{display:none;}
}
@media(max-width:600px){
.fl-pr-grid{grid-template-columns:1fr;}
}
.fl-tpl-service .fl-faq{padding:100px 0 110px;background:var(--warm-gray);}
.fl-tpl-service .fl-faq-item{border-bottom:1px solid #ded8ca;}
.fl-tpl-service .fl-faq-item:first-child{border-top:1px solid #ded8ca;}
.fl-tpl-service .fl-testimonials{background:var(--navy);color:#fff;padding:96px 0;}
.fl-tpl-service .fl-testimonials .fl-eyebrow{display:block;text-align:center;margin-bottom:50px;color:var(--gold-soft);}
.fl-tpl-service .fl-t-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px;max-width:1000px;margin:0 auto;}
.fl-tpl-service .fl-t-quote{font-family:'Playfair Display',serif;font-size:20px;line-height:1.6;color:#e9edf3;font-weight:400;}
.fl-tpl-service .fl-t-quote::before{content:"\201C";display:block;font-size:58px;color:var(--gold);line-height:.6;margin-bottom:16px;}
.fl-tpl-service .fl-t-attr{margin-top:18px;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);}
.fl-tpl-service .fl-t-stars{color:var(--gold);letter-spacing:4px;font-size:15px;margin-top:8px;}
@media(max-width:900px){
.fl-t-grid{grid-template-columns:1fr;gap:40px;}
}
.fl-other{padding:96px 0 104px;background:#fff;}
.fl-other .fl-eyebrow{display:block;text-align:center;margin-bottom:16px;}
.fl-other h2{text-align:center;font-size:clamp(26px,2.9vw,38px);font-weight:600;margin-bottom:52px;}
.fl-tpl-service .fl-oth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.fl-tpl-service .fl-oth{border:1px solid var(--line);padding:34px 30px;transition:.25s;}
.fl-tpl-service .fl-oth:hover{border-color:var(--gold-soft);background:var(--cream);transform:translateY(-3px);}
.fl-oth h3{font-family:'Jost',sans-serif;font-size:19.5px;font-weight:500;color:var(--ink);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.fl-oth h3 .fl-arr{color:var(--navy);font-size:19px;transition:.25s;}
.fl-oth:hover .fl-arr{transform:translateX(6px);color:var(--gold);}
.fl-oth p{font-size:15px;}
@media(max-width:820px){
.fl-oth-grid{grid-template-columns:1fr;gap:18px;}
}
.fl-tpl-service .fl-cta-band{background:linear-gradient(100deg,#a9803c,var(--gold));color:#fff;padding:72px 0;}
.fl-tpl-service .fl-cta-band .fl-wrap{display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;}
.fl-tpl-service .fl-cta-band h2{color:#fff;font-size:clamp(26px,3vw,38px);font-weight:600;max-width:640px;line-height:1.25;}
.fl-tpl-service .fl-cta-band p{color:#fdf6ea;margin-top:8px;font-weight:300;}
.fl-tpl-service .fl-footer{background:var(--navy-deep);color:#9daabb;padding:80px 0 0;font-size:15px;}
.fl-disclaimer{background:var(--cream);border-top:1px solid var(--line);padding:26px 0;}
.fl-disclaimer p{font-size:13.5px;color:#8a93a1;max-width:1000px;line-height:1.65;}

/* ---------- location template ---------- */
.fl-ph-img{position:relative;background:repeating-linear-gradient(135deg,#f7f3ea,#f7f3ea 14px,#f2ece0 14px,#f2ece0 28px);border:2px dashed var(--gold-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;min-height:260px;}
.fl-ph-img .fl-tag{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#fff;background:var(--gold);padding:5px 12px;margin-bottom:14px;}
.fl-ph-img .fl-what{font-family:'Playfair Display',serif;font-size:19px;color:var(--navy);font-weight:600;line-height:1.35;max-width:340px;}
.fl-ph-img .fl-spec{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:#9aa2ae;margin-top:10px;}
.fl-ph-text{position:relative;background:#fdfaf3;border-left:3px dashed var(--gold-soft);padding:20px 24px;margin:18px 0;}
.fl-ph-text .fl-tag{display:inline-block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;}
.fl-ph-text p{font-size:16px;color:#78818f;font-style:italic;}
.fl-ph-inline{background:#fdf4e3;border-bottom:1px dashed var(--gold);color:#8a7440;font-style:italic;padding:0 4px;}
.fl-tpl-location .fl-btn{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:17px 34px;transition:.25s;cursor:pointer;}
.fl-tpl-location .fl-btn-gold{background:var(--gold);color:#fff;}
.fl-tpl-location .fl-btn-gold:hover{background:#a97f3c;}
.fl-tpl-location .fl-btn-outline-light{border:1px solid rgba(255,255,255,.45);color:#fff;}
.fl-tpl-location .fl-btn-outline-light:hover{border-color:var(--gold-soft);color:var(--gold-soft);}
.fl-tpl-location .fl-page-hero::before{content:"";position:absolute;inset:0;background-image:url('assets/img/fl-banner-location.webp');background-size:cover;background-position:center 45%;opacity:.15;}
.fl-tpl-location .fl-page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,69,126,.93) 0%,rgba(14,69,126,.6) 60%,rgba(14,69,126,.3) 100%);}
.fl-tpl-location .fl-page-hero-inner{position:relative;z-index:2;padding:84px 0 76px;max-width:820px;}
.fl-tpl-location .fl-page-hero h1{color:#fff;font-size:clamp(33px,4.2vw,54px);line-height:1.13;font-weight:600;margin-bottom:20px;}
.fl-tpl-location .fl-page-hero p{font-size:18px;font-weight:300;color:#cfd8e3;max-width:660px;margin-bottom:34px;}
@media(max-width:760px){
.fl-tpl-location .fl-page-hero-inner{padding:56px 0 52px;}
}
.fl-counties{background:var(--cream);border-bottom:1px solid var(--line);}
.fl-counties .fl-wrap{padding:22px 32px;display:flex;align-items:center;justify-content:center;gap:12px 26px;flex-wrap:wrap;}
.fl-counties .fl-k{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;}
.fl-counties .fl-c{font-size:14.5px;color:var(--ink);}
.fl-counties .fl-dot{color:var(--gold-soft);}
.fl-tpl-location .fl-intro{padding:100px 0 96px;background:#fff;}
.fl-tpl-location .fl-intro-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:66px;align-items:center;}
.fl-intro .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-tpl-location .fl-intro h2{font-size:clamp(28px,3.2vw,42px);font-weight:600;line-height:1.2;margin-bottom:20px;}
.fl-tpl-location .fl-intro p+p{margin-top:18px;}
.fl-tpl-location .fl-intro .fl-lead{font-size:19px;color:var(--ink);}
.fl-intro-photo{min-height:440px;}
@media(max-width:940px){
.fl-intro-grid{grid-template-columns:1fr;gap:38px;}
.fl-intro-photo{min-height:300px;}
}
.fl-areas{background:var(--warm-gray);padding:96px 0 104px;}
.fl-ar-head{text-align:center;margin-bottom:54px;}
.fl-ar-head .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-ar-head h2{font-size:clamp(27px,3vw,40px);font-weight:600;margin-bottom:14px;}
.fl-ar-head p{max-width:760px;margin:0 auto;}
.fl-ar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.fl-ar{background:#fff;transition:.25s;display:flex;flex-direction:column;}
.fl-ar:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(20,35,55,.1);}
.fl-ar .fl-ph-img{min-height:180px;border:none;border-bottom:2px dashed var(--gold-soft);}
.fl-ar .fl-ph-img .fl-what{font-size:15px;}
.fl-ar .fl-body{padding:26px 26px 30px;flex:1;display:flex;flex-direction:column;}
.fl-ar h3{font-family:'Jost',sans-serif;font-size:19px;font-weight:500;color:var(--ink);margin-bottom:10px;}
.fl-ar p{font-size:15px;flex:1;}
.fl-ar .fl-go{margin-top:16px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);font-weight:600;}
.fl-ar:hover .fl-go{color:var(--gold);}
@media(max-width:1000px){
.fl-ar-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
.fl-ar-grid{grid-template-columns:1fr;}
}
.fl-local{padding:96px 0 104px;background:#fff;}
.fl-local-grid{display:grid;grid-template-columns:1fr 1fr;gap:62px;align-items:start;}
.fl-local .fl-eyebrow{display:block;margin-bottom:16px;}
.fl-local h2{font-size:clamp(26px,2.9vw,38px);font-weight:600;line-height:1.22;margin-bottom:18px;}
.fl-info-card{background:var(--cream);border-top:3px solid var(--gold);padding:34px 34px 30px;margin-top:26px;}
.fl-info-card h4{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px;}
.fl-info-row{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:16px;}
.fl-info-row:first-of-type{border-top:none;}
.fl-info-row .fl-k{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--body);min-width:88px;padding-top:4px;}
.fl-info-row .fl-v{color:var(--ink);}
.fl-info-row a.fl-v{color:var(--navy);font-weight:500;}
.fl-info-row a.fl-v:hover{color:var(--gold);}
.fl-tpl-location .fl-map-frame{position:relative;min-height:420px;background:linear-gradient(160deg,#dfe6ef,#c9d6e6);}
.fl-tpl-location .fl-map-pin{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;padding:14px 22px;box-shadow:0 14px 34px rgba(20,35,55,.2);text-align:center;pointer-events:none;}
.fl-tpl-location .fl-map-pin .fl-t{font-family:'Playfair Display',serif;font-size:17px;color:var(--navy);font-weight:600;}
.fl-tpl-location .fl-map-pin .fl-d{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
@media(max-width:940px){
.fl-local-grid{grid-template-columns:1fr;gap:40px;}
}
.fl-tpl-location .fl-why{background:var(--navy);color:#fff;padding:92px 0;}
.fl-why .fl-eyebrow{display:block;color:var(--gold-soft);margin-bottom:16px;}
.fl-why h2{color:#fff;font-size:clamp(27px,3vw,40px);font-weight:600;max-width:760px;line-height:1.22;margin-bottom:20px;}
.fl-why>.fl-wrap>p{color:#c3cfdd;font-weight:300;max-width:820px;}
.fl-tpl-location .fl-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:56px;padding-top:44px;border-top:1px solid rgba(255,255,255,.15);}
.fl-why-item .fl-n{font-family:'Playfair Display',serif;font-size:15px;color:var(--gold-soft);letter-spacing:.18em;margin-bottom:12px;}
.fl-why-item h3{color:#fff;font-size:21px;font-weight:600;margin-bottom:10px;}
.fl-why-item p{color:#b7c4d4;font-size:15.5px;font-weight:300;}
.fl-why .fl-ph-text{background:rgba(255,255,255,.06);border-left-color:var(--gold-soft);}
.fl-why .fl-ph-text p{color:#cfd8e3;}
.fl-why .fl-ph-text .fl-tag{color:var(--gold-soft);}
@media(max-width:900px){
.fl-why-grid{grid-template-columns:1fr;gap:30px;}
}
.fl-review{padding:88px 0;background:var(--cream);text-align:center;border-bottom:1px solid var(--line);}
.fl-review .fl-q{font-family:'Playfair Display',serif;font-size:clamp(22px,2.6vw,32px);line-height:1.5;color:var(--navy);max-width:900px;margin:0 auto;font-weight:500;}
.fl-review .fl-q::before{content:"\201C";display:block;font-size:56px;color:var(--gold);line-height:.6;margin-bottom:18px;}
.fl-review .fl-stars{color:var(--gold);letter-spacing:5px;font-size:16px;margin-top:22px;}
.fl-review .fl-attr{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--body);margin-top:10px;}
.fl-others{padding:92px 0 100px;background:#fff;}
.fl-others .fl-eyebrow{display:block;text-align:center;margin-bottom:16px;}
.fl-others h2{text-align:center;font-size:clamp(26px,2.9vw,38px);font-weight:600;margin-bottom:50px;}
.fl-tpl-location .fl-oth-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line);}
.fl-tpl-location .fl-oth{padding:30px 24px;border-right:1px solid var(--line);text-align:center;transition:.25s;}
.fl-oth:last-child{border-right:none;}
.fl-tpl-location .fl-oth:hover{background:var(--cream);}
.fl-oth .fl-city{font-family:'Playfair Display',serif;font-size:21px;color:var(--navy);font-weight:600;}
.fl-oth .fl-county{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:5px;}
@media(max-width:900px){
.fl-oth-grid{grid-template-columns:1fr 1fr;}
.fl-oth{border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.fl-oth:nth-child(2n){border-right:none;}
}
@media(max-width:520px){
.fl-oth-grid{grid-template-columns:1fr;}
.fl-oth{border-right:none;}
}
.fl-tpl-location .fl-cta-band{background:linear-gradient(100deg,#a9803c,var(--gold));color:#fff;padding:72px 0;}
.fl-tpl-location .fl-cta-band .fl-wrap{display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;}
.fl-tpl-location .fl-cta-band h2{color:#fff;font-size:clamp(26px,3vw,38px);font-weight:600;max-width:640px;line-height:1.25;}
.fl-tpl-location .fl-cta-band p{color:#fdf6ea;margin-top:8px;font-weight:300;}
.fl-tpl-location .fl-footer{background:var(--navy-deep);color:#9daabb;padding:80px 0 0;font-size:15px;}
.fl-notes{background:#20293a;color:#9aa6b8;padding:40px 0 46px;font-size:14.5px;}
.fl-notes h4{font-family:'Jost',sans-serif;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:16px;}
.fl-notes ul{list-style:none;columns:2;column-gap:44px;}
.fl-notes li{padding:7px 0 7px 18px;position:relative;break-inside:avoid;line-height:1.6;}
.fl-notes li::before{content:"";position:absolute;left:0;top:16px;width:8px;height:1px;background:var(--gold);}
@media(max-width:800px){
.fl-notes ul{columns:1;}
}/* ============================================================
   Additions beyond the mockups: primary-nav dropdowns (the site
   has 40+ pages against the mockup's 5-item header), and the
   prose treatment for inner pages the mockups do not cover.
   ============================================================ */
.fl-nav-main{align-items:center;}
.fl-nav-item{position:relative;display:inline-flex;align-items:center;}
.fl-nav-caret{display:inline-block;width:0;height:0;margin-left:7px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.55;transition:.2s;}
.fl-nav-item:hover .fl-nav-caret{opacity:1;}
.fl-subnav{position:absolute;top:100%;left:-18px;min-width:252px;background:#fff;border-top:2px solid var(--gold);border-radius:0 0 12px 12px;box-shadow:0 18px 46px rgba(8,31,61,.18);padding:10px 0;display:none;flex-direction:column;z-index:120;}
.fl-nav-item:hover>.fl-subnav,.fl-nav-item:focus-within>.fl-subnav{display:flex;}
.fl-subnav a{display:block;padding:11px 22px;border-bottom:none;font-size:12.5px;letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;color:var(--navy);}
.fl-subnav a:hover{background:var(--cream);color:var(--gold);}
.fl-nav-main a.fl-is-current{color:var(--gold);border-bottom-color:var(--gold);}
.fl-subnav a.fl-is-current{border-bottom:none;background:var(--cream);}
@media(max-width:1080px){.fl-subnav{display:none !important;}}

/* generic inner-page prose (FAQ hub, Reviews, Resources, hubs, Privacy) */
.fl-prose{padding:86px 0 96px;background:#fff;}
.fl-prose .fl-wrap{max-width:860px;}
.fl-prose p{margin-bottom:20px;}
.fl-prose h2{font-size:clamp(25px,2.8vw,33px);font-weight:600;margin:46px 0 16px;}
.fl-prose h2:first-child{margin-top:0;}
.fl-prose h3{font-size:20px;font-weight:600;margin:32px 0 12px;}
.fl-prose ul,.fl-prose ol{margin:0 0 22px 22px;}
.fl-prose li{margin-bottom:9px;}
.fl-prose a{color:var(--gold);font-weight:500;}
.fl-prose a:hover{text-decoration:underline;}
.fl-prose .lead,.fl-prose p.lead{font-size:20px;line-height:1.65;color:var(--ink);margin-bottom:28px;}
.fl-prose blockquote{border-left:3px solid var(--gold-soft);padding:6px 0 6px 24px;margin:26px 0;font-family:var(--font-head);font-size:20px;color:var(--navy);}
.fl-prose .cta-mid,.fl-prose p.cta-mid{background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;padding:22px 26px;margin:34px 0;font-size:16.5px;color:var(--ink);}
.fl-prose .cta-mid strong{color:var(--navy);}
.fl-founder-lede{font-size:17px;line-height:1.75;color:var(--body);}

/* ============================================================
   Classes introduced by the theme build (not in the mockups):
   honeypot, submit confirmation, the progressive hero block,
   real-only photo/courthouse slots, and the About "cities served"
   grid. Styled to the same system.
   ============================================================ */
.fl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.fl-lead-form{position:relative;}
.fl-form-ok{background:#eef7ee;border:1px solid #bcd9bc;border-left:3px solid #4a8a4a;border-radius:10px;padding:18px 22px;margin-bottom:26px;color:#254a25;font-size:15.5px;}
.fl-form-ok strong{color:#1c3a1c;}
.fl-form-ok a{color:var(--gold);font-weight:600;}
.fl-lead-form.is-hero .fl-extra{max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .3s ease;}
.fl-lead-form.is-hero.fl-open .fl-extra{max-height:420px;opacity:1;}
.fl-intro-photo img{width:100%;border-radius:16px;box-shadow:0 24px 60px rgba(8,31,61,.16);}
.fl-ar-img img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.fl-court-note{margin-top:26px;background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:22px 24px;}
.fl-court-note h4{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:8px;}
.fl-court-note p{font-size:15px;line-height:1.7;color:var(--body);}
.fl-served{padding:86px 0 96px;background:var(--cream);}
.fl-served .fl-wrap{max-width:980px;text-align:center;}
.fl-served h2{font-size:clamp(26px,3vw,36px);font-weight:600;margin:12px 0 16px;}
.fl-served p{max-width:760px;margin:0 auto;}
.fl-srv-label{display:block;margin-top:38px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;text-align:center;}
.fl-srv-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:34px;}
.fl-srv-label + .fl-srv-grid{margin-top:16px;}
.fl-srv{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:40px;padding:11px 24px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);font-weight:500;transition:.2s;}
.fl-srv:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px);}
.fl-ov-body p{margin-bottom:18px;}
.fl-ov-body h2{font-size:23px;margin:34px 0 12px;}
.fl-loc-body p{margin-bottom:18px;}
.fl-loc-body h2{font-size:23px;margin:30px 0 12px;}

/* Real-only photo slot absent: collapse the intro grid instead of leaving a hole. */
.fl-intro-grid.fl-no-photo{grid-template-columns:1fr;max-width:860px;}

/* footer bottom-bar utility links */
.fl-f-links a{text-decoration:none;}
.fl-f-links a:hover{color:var(--gold-soft);}

/* ============================================================
   Page-banner DEFAULTS for pages on the generic page.php.

   Each inner mockup styles .page-hero slightly differently (padding, type
   scale, banner image), so those rules are scoped to fl-tpl-about /
   -contact / -service / -location. Pages the mockups do not cover (FAQ hub,
   Reviews, Resources, Practice Areas, Areas We Serve, Privacy) carry no
   fl-tpl class and were therefore rendering a collapsed banner with no
   padding and no background.

   These are lower specificity (0,1,0) than the scoped rules (0,2,0), so the
   four designed templates still win wherever they apply.
   ============================================================ */
.fl-page-hero::before{content:"";position:absolute;inset:0;background-image:url('assets/img/fl-banner-about.webp');background-size:cover;background-position:center 40%;opacity:.15;}
.fl-page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,69,126,.92) 0%,rgba(14,69,126,.6) 60%,rgba(14,69,126,.3) 100%);}
.fl-page-hero-inner{position:relative;z-index:2;padding:78px 0 74px;max-width:820px;}
.fl-page-hero h1{color:#fff;font-size:clamp(34px,4.2vw,54px);line-height:1.14;font-weight:600;margin-bottom:20px;}
.fl-page-hero p{font-size:18.5px;font-weight:300;color:#cfd8e3;max-width:640px;}
@media(max-width:760px){
.fl-page-hero-inner{padding:54px 0 50px;}
}

/* ============================================================
   FAQ page: grouped accordion.
   Cream field, stacked white question cards, centered letterspaced
   question text with a thin plus toggle, titled groups between runs.
   Uses the existing palette and type system, so it reads as the same
   site rather than a second design.
   ============================================================ */
.fl-faqp{background:var(--cream);padding:92px 0 110px;}
.fl-faqp .fl-wrap{max-width:1000px;}

.fl-faqp-intro{max-width:640px;margin:0 auto 58px;text-align:center;}
.fl-faqp-intro p{font-size:15.5px;line-height:1.85;color:var(--body);margin-bottom:14px;}
.fl-faqp-intro p:last-child{margin-bottom:0;}
.fl-faqp-intro a{color:var(--gold);font-weight:500;}
.fl-faqp-intro a:hover{text-decoration:underline;}

.fl-faqp-group{margin-bottom:18px;}
.fl-faqp-gtitle{text-align:center;font-family:var(--font-head);font-size:clamp(27px,3.1vw,38px);font-weight:500;color:var(--navy);margin:74px 0 34px;line-height:1.2;}
.fl-faqp-group:first-of-type .fl-faqp-gtitle{margin-top:0;}

.fl-faqp-list{display:flex;flex-direction:column;gap:11px;}

.fl-faqp-item{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 3px rgba(20,35,55,.05);overflow:hidden;transition:box-shadow .22s ease,border-color .22s ease;}
.fl-faqp-item:hover{box-shadow:0 6px 18px rgba(20,35,55,.08);}
.fl-faqp-item.fl-open{border-color:var(--gold-soft);box-shadow:0 10px 28px rgba(20,35,55,.10);}

.fl-faqp-q{position:relative;display:block;width:100%;background:none;border:none;cursor:pointer;padding:23px 62px 23px 62px;text-align:center;font-family:var(--font-body);}
.fl-faqp-qt{display:inline-block;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:500;color:var(--navy);line-height:1.7;}
.fl-faqp-q:hover .fl-faqp-qt{color:var(--gold);}

/* thin plus, rotates to a cross when open */
.fl-faqp-plus{position:absolute;right:26px;top:50%;width:13px;height:13px;margin-top:-6.5px;flex-shrink:0;}
.fl-faqp-plus::before,.fl-faqp-plus::after{content:"";position:absolute;background:var(--gold);transition:transform .28s ease,opacity .28s ease;}
.fl-faqp-plus::before{left:0;top:6px;width:13px;height:1.5px;}
.fl-faqp-plus::after{left:6px;top:0;width:1.5px;height:13px;}
.fl-faqp-item.fl-open .fl-faqp-plus::after{transform:rotate(90deg);opacity:0;}
.fl-faqp-item.fl-open .fl-faqp-plus::before{transform:rotate(180deg);}

.fl-faqp-a{max-height:0;overflow:hidden;transition:max-height .34s ease;}
.fl-faqp-a-inner{padding:2px 42px 28px;text-align:left;border-top:1px solid var(--line);margin:0 26px;padding-top:22px;}
.fl-faqp-a-inner p{font-size:15.5px;line-height:1.8;color:var(--body);margin-bottom:13px;}
.fl-faqp-a-inner p:last-child{margin-bottom:0;}
.fl-faqp-a-inner a{color:var(--gold);font-weight:500;}
.fl-faqp-a-inner a:hover{text-decoration:underline;}
.fl-faqp-a-inner em{font-style:italic;}

.fl-faqp-closing{max-width:640px;margin:72px auto 0;text-align:center;}
.fl-faqp-closing p{font-size:15.5px;line-height:1.85;color:var(--body);}
.fl-faqp-closing a{color:var(--gold);font-weight:500;}
.fl-faqp-closing a:hover{text-decoration:underline;}

@media(max-width:760px){
.fl-faqp{padding:60px 0 74px;}
.fl-faqp-q{padding:20px 46px 20px 22px;text-align:left;}
.fl-faqp-qt{font-size:12px;letter-spacing:.11em;}
.fl-faqp-plus{right:18px;}
.fl-faqp-a-inner{margin:0 18px;padding:20px 0 24px;}
.fl-faqp-gtitle{margin:52px 0 26px;}
}

/* Location intro: when the real-only local photo slot is absent the grid
   collapses to one column, so centre it rather than leaving it hard left. */
.fl-intro-grid.fl-no-photo{margin-left:auto;margin-right:auto;}

/* ---------------------------------------------------------------------------
   Long-body two-column sections.

   The overview (service) and profile (about) grids pair a short left rail with
   a body column that runs long once real copy is in place. Left as-is the rail
   sits at the top and leaves a dead gutter for thousands of pixels. Sticking
   the rail keeps the heading and the plain-terms callout beside the prose the
   whole way down, which is how the mockups read at their own copy length.
   Guarded on the section being tall enough to need it via the min-height on
   the body, so short pages are unchanged.
--------------------------------------------------------------------------- */
@media (min-width:981px){
  .fl-ov-grid > div:first-child,
  .fl-profile-grid > .fl-p-photo{position:sticky;top:110px;}
  /* Cap the sticky rail so a tall rail can still scroll past the header. */
  .fl-ov-grid > div:first-child{max-height:calc(100vh - 130px);overflow:visible;}
}

/* Prose rhythm inside the long body columns. Without a max measure the copy
   runs to ~90 characters, which is why these read as a wall next to the
   mockup's 65-70. */
.fl-ov-body,
.fl-p-bio > p,
.fl-intro-grid.fl-no-photo p{max-width:68ch;}
.fl-ov-body h3,
.fl-p-bio h3{font-family:var(--font-head);font-size:23px;color:var(--navy);font-weight:600;margin:34px 0 12px;}
