/* Consolidated production stylesheet: foundation, theme, legacy components, and page components. */

:root{--ink:#07172b!important;--ink-2:#102a46!important;--paper:#fff!important;--muted:#4e6072!important;--line:#d5e0e9!important;--blue:#086fd6!important;--blue-2:#e8f4fd!important;--amber:#086fd6!important;--shadow:0 12px 32px rgba(20,55,86,.1)!important}
body{background:#fff!important;color:var(--ink)!important;font-size:1rem;line-height:1.55}
.site-header{background:rgba(255,255,255,.97)!important;color:var(--ink)!important;border-bottom:1px solid #d9e4ec!important;box-shadow:0 1px 0 rgba(7,23,43,.03)}
.nav-wrap{min-height:70px!important}.brand{font-size:.96rem}.brand-mark{background:var(--ink);border-color:var(--ink)!important;color:#fff!important;border-radius:.18rem}.brand small{color:#687b8e!important}.site-nav{background:#fff!important}.site-nav a{color:#273a4d!important;font-size:.89rem}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{background:#edf6fd!important;color:#075fac!important}.site-nav .nav-cta,.site-nav .nav-cta:hover,.site-nav .nav-cta:focus-visible{background:var(--blue)!important;color:#fff!important;border-radius:.2rem}.nav-toggle{border-color:#9eb2c2!important;color:var(--ink)!important}
.hero{padding:0!important;background:#e7f3fb!important;color:var(--ink)!important;border-bottom:1px solid #cfdeea}.hero .container{width:min(100%,var(--max))}.hero-grid{gap:0!important;min-height:500px}.hero-grid>div:first-child{padding:4.25rem 2rem 4.4rem;background:linear-gradient(90deg,#e7f3fb 72%,rgba(231,243,251,.2));position:relative;z-index:2}.hero h1{font-size:clamp(2.65rem,5.2vw,4.7rem)!important;max-width:680px}.hero .lede{color:#334a60!important;font-size:1.13rem!important;max-width:610px}.hero-media{min-height:420px}.hero-media img{height:100%;min-height:420px;aspect-ratio:auto!important;object-fit:cover;border:0!important;border-radius:0!important;box-shadow:none!important}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#e7f3fb 0,rgba(231,243,251,.32) 25%,transparent 57%);pointer-events:none}.hero-tag{right:1.25rem!important;left:auto!important;bottom:1.25rem;background:rgba(255,255,255,.94)!important;color:var(--ink);border-left:3px solid var(--blue)!important;box-shadow:0 8px 24px rgba(7,23,43,.16);z-index:2}.eyebrow,.eyebrow.light{color:#315975!important;font-size:.72rem;letter-spacing:.11em}.btn{min-height:44px!important;padding:.65rem 1rem!important;border-radius:.2rem!important}.btn-primary,.btn-dark{background:var(--blue)!important;color:#fff!important}.btn-primary:hover,.btn-dark:hover{background:#055daf!important}.btn-secondary{background:#fff!important;border-color:#8eafc9!important;color:var(--blue)!important}.btn-secondary:hover{background:#f5fbff!important}.btn-outline{border-color:#9fb5c7!important;color:#075fac!important;background:#fff!important}.button-row{gap:.65rem!important}
.trust-strip{background:#fff!important;color:#344b60!important;border-color:#d5e2eb!important}.trust-strip .container{padding-block:1.05rem!important;gap:0!important}.trust-strip .container>div{padding:.55rem 1.3rem;border-left:3px solid #d6e8f5}.trust-strip strong{color:var(--ink)!important}
section{padding:3.6rem 0!important}.section-head{margin-bottom:1.55rem!important}.section-head h2,.split h2,.cta-band h2{font-size:clamp(1.75rem,3.1vw,2.7rem)!important}.section-head p,.split p{font-size:1rem!important}.grid{gap:.8rem!important}.card{padding:1.25rem!important;border-radius:.12rem!important;border-color:#d8e3eb!important;box-shadow:0 2px 8px rgba(15,50,80,.035)!important}.card:hover{border-color:#a9c4d8!important;box-shadow:0 10px 24px rgba(15,50,80,.08)!important}.card h3{font-size:1.08rem!important}.card p{font-size:.94rem}.card-number{display:grid;place-items:center;width:2.4rem;height:2.4rem;background:#e9f4fc;color:#086fcf!important;border-radius:.2rem;font-size:.74rem}.service-card{border-top:1px solid #d8e3eb!important}.service-card:before{content:"";display:block;width:2.45rem;height:2.45rem;margin-bottom:.8rem;border:1px solid #cde0ee;border-radius:.2rem;background:linear-gradient(135deg,#eef8ff 48%,#d7eaf8 49% 52%,#eef8ff 53%)}.situation-card{padding-left:1.25rem!important;padding-top:4rem!important;text-align:center;min-height:155px}.situation-card:before{left:50%!important;top:1.3rem!important;transform:translateX(-50%);width:2.2rem!important;height:2.2rem!important;border:2px solid #0a6dcc!important;border-radius:50%;box-shadow:none!important;background:#eff8ff}
.dark-section{background:#edf7fd!important;color:var(--ink)!important;border-block:1px solid #d5e6f1}.dark-section .section-head p,.dark-section .card p{color:var(--muted)!important}.dark-section .card{background:#fff!important;border-color:#d4e1ea!important}.dark-section .card h3{color:var(--ink)!important}.dark-section .card-number,.process .card:before{color:var(--blue)!important}.technical-panel{background:#edf7fd!important;color:var(--ink)!important;border:1px solid #d1e3ef;padding:1.55rem!important;border-radius:.18rem!important}.technical-panel:after{display:none!important}.resource-box{background:#eff8fd!important;color:var(--ink)!important;border:1px solid #cfe1ee;border-radius:.18rem!important}.resource-box h2,.resource-box h3{color:var(--ink)!important}.resource-box p{color:var(--muted)!important}.resource-box a{color:var(--blue)!important}
.page-hero{position:relative;isolation:isolate;overflow:hidden;background:#e5f2fb!important;color:var(--ink)!important;padding:3.5rem 0!important;border-bottom:1px solid #cbdfea}.page-hero:after{content:"";position:absolute;z-index:-1;inset:0 0 0 55%;background:linear-gradient(90deg,#e5f2fb 0,rgba(229,242,251,.25) 42%,rgba(229,242,251,.08)),url('../images/los-angeles-right-of-way-1200.jpg') center/cover no-repeat;opacity:.95}.page-hero h1{max-width:770px;font-size:clamp(2.25rem,4.7vw,4rem)!important}.page-hero p{color:#344c62!important;max-width:690px}.breadcrumbs{color:#587087!important}.breadcrumbs a{color:#1f5f8f!important}.page-hero .eyebrow.light{color:#315975!important}.content-layout{gap:2rem!important}.prose h2{font-size:clamp(1.55rem,2.4vw,2.05rem)!important}.sidebar{border-color:#d4e1ea!important;border-radius:.15rem!important;background:#f4f9fc!important;top:86px!important}.service-detail{border-top:1px solid #d1e0e9!important;border-left:4px solid var(--blue);border-radius:.1rem!important}.form{border-radius:.15rem!important;box-shadow:0 8px 28px rgba(18,54,84,.08)}.field input,.field select,.field textarea{border-color:#9eb1c0!important;border-radius:.12rem!important}
.articles{background:#f7fafc}.article-list{gap:.85rem!important}.articles .card,.article-list .card{position:relative;overflow:hidden;padding-top:7.6rem!important}.articles .card:before,.article-list .card:before{content:"";position:absolute;inset:0 0 auto;height:6.35rem;background:linear-gradient(0deg,rgba(5,26,47,.08),transparent),url('../images/los-angeles-right-of-way-1200.jpg') center 56%/cover no-repeat}.articles .card:nth-child(2):before,.article-list .card:nth-child(2):before{background-position:center 85%}.articles .card:nth-child(3):before,.article-list .card:nth-child(3):before{background-position:right 45%}.article-meta{color:#44657f!important}
.cta-band{position:relative;isolation:isolate;background:#092945!important;color:#fff!important;padding:3rem 0!important;overflow:hidden}.cta-band:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(6,31,53,.96),rgba(6,31,53,.66)),url('../images/los-angeles-right-of-way-1200.jpg') center 70%/cover no-repeat}.cta-band .eyebrow.light{color:#a9d9ff!important}.site-footer{background:#fff!important;color:#526476!important;border-top:1px solid #d7e1e8;padding:2.5rem 0 5.5rem!important}.site-footer h2,.site-footer h3{color:var(--ink)!important}.site-footer a{color:#274b6b!important}.footer-note{border-color:#d9e3ea!important;color:#6b7b89!important}.disclaimer{background:#f7fafc}.mobile-cta{background:var(--blue)!important;color:#fff!important}
@media(min-width:700px){.trust-strip .container>div+div{border-left:1px solid #d6e3ec}.cards-3{grid-template-columns:repeat(3,1fr)!important}}
@media(min-width:920px){.site-nav{background:transparent!important}.hero-grid{grid-template-columns:1.05fr .95fr!important}.hero-grid>div:first-child{margin-left:max(0px,calc((100vw - var(--max))/2));padding-left:0}.hero-media{margin-right:max(0px,calc((100vw - var(--max))/2))}.cards-3{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:919px){.page-hero:after{inset:0;opacity:.17}.hero-grid>div:first-child{padding:3rem 1rem}.hero-media{min-height:280px}.hero-media img{min-height:280px}.site-nav{box-shadow:0 12px 24px rgba(10,35,57,.12)}}


:root{--ink:#0b1726;--ink-2:#12243a;--paper:#f4f6f7;--white:#fff;--muted:#5b6875;--line:#d8dee3;--blue:#1c5d7f;--blue-2:#b9d7e5;--amber:#e7a533;--max:1180px;--shadow:0 18px 50px rgba(9,24,39,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}button,input,select,textarea{font:inherit}.container{width:min(calc(100% - 2rem),var(--max));margin-inline:auto}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:999;background:var(--white);padding:.7rem 1rem;border:2px solid var(--amber);border-radius:.25rem}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:50;background:rgba(11,23,38,.96);color:var(--white);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}.nav-wrap{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:760;line-height:1.1;letter-spacing:-.02em}.brand-mark{width:35px;height:35px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:.25rem;color:var(--amber);font-weight:900}.brand small{display:block;color:#b7c4cf;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:.2rem}.nav-toggle{display:grid;place-items:center;width:44px;height:44px;background:transparent;border:1px solid #667383;border-radius:.3rem;color:var(--white);cursor:pointer}.nav-toggle span,.nav-toggle:before,.nav-toggle:after{content:"";display:block;width:20px;height:2px;background:currentColor;margin:2px}.site-nav{display:none;position:absolute;top:74px;left:0;right:0;background:var(--ink);padding:1rem}.site-nav.is-open{display:block}.site-nav ul{list-style:none;padding:0;margin:0;display:grid;gap:.25rem}.site-nav a{display:block;text-decoration:none;padding:.8rem;border-radius:.25rem;color:#dce4ea;font-weight:650}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{background:rgba(255,255,255,.09);color:var(--white)}.site-nav .nav-cta{background:var(--amber);color:#15202b;text-align:center}.site-nav .nav-cta:hover,.site-nav .nav-cta:focus-visible{background:#f0b447;color:#0c1722}.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin:0 0 1rem}.eyebrow.light{color:#f0ba58}.hero{background:var(--ink);color:var(--white);padding:4.5rem 0 3.5rem;overflow:hidden}.hero-grid{display:grid;gap:2.5rem}.hero h1,.page-hero h1{font-size:clamp(2.55rem,7vw,5.25rem);line-height:.98;letter-spacing:-.055em;margin:0;max-width:900px}.hero .lede{font-size:clamp(1.08rem,2vw,1.35rem);color:#c9d4dc;max-width:710px;margin:1.5rem 0 2rem}.hero-media{position:relative}.hero-media img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:.35rem;border:1px solid rgba(255,255,255,.16);box-shadow:var(--shadow)}.hero-tag{position:absolute;left:1rem;bottom:1rem;background:rgba(11,23,38,.92);border-left:3px solid var(--amber);padding:.7rem 1rem;max-width:300px;font-size:.84rem}.button-row{display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.72rem 1.1rem;border:1px solid transparent;border-radius:.22rem;font-weight:760;text-decoration:none;cursor:pointer}.btn-primary{background:var(--amber);color:#13202c}.btn-primary:hover{background:#f0b447}.btn-secondary{border-color:#7890a3;color:var(--white)}.btn-secondary:hover{background:rgba(255,255,255,.08)}.btn-dark{background:var(--ink);color:var(--white)}.btn-outline{border-color:#9aa6af;color:var(--ink);background:transparent}.trust-strip{background:#102036;color:#d8e0e6;border-top:1px solid #2a3d52}.trust-strip .container{display:grid;gap:.65rem;padding-block:1.25rem}.trust-strip strong{color:var(--white)}section{padding:4.5rem 0}.section-head{max-width:770px;margin-bottom:2rem}.section-head h2,.split h2,.cta-band h2{font-size:clamp(2rem,4vw,3.35rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 1rem}.section-head p,.split p{color:var(--muted);font-size:1.08rem}.grid{display:grid;gap:1rem}.cards-3{grid-template-columns:1fr}.card{background:var(--white);border:1px solid var(--line);padding:1.45rem;border-radius:.28rem;box-shadow:0 8px 24px rgba(9,24,39,.04)}.card h3{font-size:1.28rem;line-height:1.2;margin:.35rem 0 .65rem}.card p{color:var(--muted);margin:.45rem 0 1rem}.card a.link{font-weight:780;color:var(--blue)}.card-number{font-size:.78rem;font-weight:850;color:var(--blue);letter-spacing:.1em}.service-card{border-top:3px solid var(--blue)}.situation-card{position:relative;padding-left:3.9rem}.situation-card:before{content:"";position:absolute;left:1.45rem;top:1.65rem;width:1.45rem;height:1.45rem;border:2px solid var(--blue);box-shadow:7px 7px 0 var(--blue-2)}.dark-section{background:var(--ink);color:var(--white)}.dark-section .section-head p,.dark-section .card p{color:#b8c6d1}.dark-section .card{background:#12243a;border-color:#314458}.dark-section .card-number{color:var(--amber)}.dark-section .card h3{color:var(--white)}.process{counter-reset:step}.process .card{counter-increment:step}.process .card:before{content:"0" counter(step);display:block;color:var(--amber);font-weight:850;font-size:.83rem;letter-spacing:.12em;margin-bottom:1.2rem}.split{display:grid;gap:2rem;align-items:start}.technical-panel{background:linear-gradient(145deg,#102139,#18344e);color:var(--white);padding:2rem;border-radius:.3rem;position:relative;overflow:hidden}.technical-panel:after{content:"";position:absolute;right:-40px;bottom:-40px;width:180px;height:180px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 30px rgba(255,255,255,.03),0 0 0 60px rgba(255,255,255,.03)}.technical-panel ul{padding-left:1.1rem;position:relative;z-index:1}.technical-panel li+li{margin-top:.65rem}.articles .card{display:flex;flex-direction:column}.article-meta{font-size:.78rem;color:#6b7884;text-transform:uppercase;letter-spacing:.08em;font-weight:760}.articles .card .link{margin-top:auto}.cta-band{background:var(--blue);color:var(--white);padding:3rem 0}.cta-band .container{display:grid;gap:1.5rem;align-items:center}.cta-band h2{margin:0}.disclaimer{font-size:.88rem;color:#66727d;padding-block:1.25rem;border-top:1px solid var(--line)}.site-footer{background:#07111d;color:#c1ccd4;padding:3.5rem 0 6rem}.footer-grid{display:grid;gap:2rem}.site-footer h2,.site-footer h3{color:var(--white);margin-top:0}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li+li{margin-top:.45rem}.site-footer a{color:#d5dfe6}.footer-note{border-top:1px solid #27394b;margin-top:2rem;padding-top:1.25rem;font-size:.85rem;color:#91a0ad}.page-hero{background:var(--ink);color:var(--white);padding:3.5rem 0}.page-hero h1{font-size:clamp(2.35rem,6vw,4.4rem)}.page-hero p{color:#c7d2da;font-size:1.2rem;max-width:760px}.breadcrumbs{font-size:.85rem;color:#aab7c2;margin-bottom:1.4rem}.breadcrumbs a{color:#d9e3e9}.content-layout{display:grid;gap:2.5rem;align-items:start}.prose{max-width:780px}.prose h2{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.14;letter-spacing:-.03em;margin:2.8rem 0 1rem}.prose h3{font-size:1.25rem;margin:2rem 0 .5rem}.prose p,.prose li{color:#3f4d59}.prose li+li{margin-top:.45rem}.prose a{color:#155c80;font-weight:650}.callout{border-left:4px solid var(--amber);background:#fff8e9;padding:1.2rem 1.4rem;margin:2rem 0}.resource-box{background:var(--ink);color:var(--white);padding:1.5rem;margin-top:2.5rem;border-radius:.28rem}.resource-box h2,.resource-box h3{margin-top:0;color:var(--white)}.resource-box p{color:#c4d0d9}.resource-box a{color:#f3bd5d}.sidebar{background:var(--white);border:1px solid var(--line);padding:1.35rem;border-radius:.28rem}.sidebar h2{font-size:1rem;text-transform:uppercase;letter-spacing:.09em}.sidebar ul{padding-left:1.1rem}.sidebar li+li{margin-top:.55rem}.service-detail{scroll-margin-top:92px;background:var(--white);border:1px solid var(--line);padding:1.6rem;margin-bottom:1rem;border-top:3px solid var(--blue)}.service-detail h2{margin-top:0}.detail-grid{display:grid;gap:1rem}.detail-grid h3{font-size:.83rem;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);margin-bottom:.4rem}.detail-grid p{margin-top:0;color:#4d5b67}.form{background:var(--white);border:1px solid var(--line);padding:1.5rem;border-radius:.3rem}.form-grid{display:grid;gap:1rem}.field label{display:block;font-weight:720;margin-bottom:.35rem}.field input,.field select,.field textarea{width:100%;border:1px solid #8e9ba6;border-radius:.2rem;padding:.75rem;background:var(--white);color:var(--ink)}.field textarea{min-height:145px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(28,93,127,.25);border-color:var(--blue)}.field-error{display:none;color:#9e2a1f;font-size:.87rem;margin:.25rem 0 0}.field [aria-invalid="true"]+.field-error{display:block}.form-status{margin-top:1rem;padding:.8rem;background:#e8f4ed;border-left:3px solid #27734b;display:none}.form-status.is-visible{display:block}.article-list{display:grid;gap:1rem}.article-list .card{min-height:240px}.mobile-cta{position:fixed;z-index:45;left:.75rem;right:.75rem;bottom:.75rem;background:var(--amber);color:var(--ink);text-decoration:none;text-align:center;padding:.75rem;border-radius:.25rem;box-shadow:0 8px 30px rgba(0,0,0,.25);font-weight:800}.not-found{text-align:center;padding:7rem 0}.not-found h1{font-size:clamp(4rem,15vw,8rem);line-height:1;margin:0;color:var(--blue)}:focus-visible{outline:3px solid #f2b94e;outline-offset:3px}@media(min-width:700px){.cards-3,.article-list{grid-template-columns:repeat(2,1fr)}.process{grid-template-columns:repeat(2,1fr)}.detail-grid,.form-grid{grid-template-columns:repeat(2,1fr)}.field-full{grid-column:1/-1}.cta-band .container{grid-template-columns:1fr auto}.trust-strip .container{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.site-footer{padding-bottom:3.5rem}}@media(min-width:920px){.nav-toggle{display:none}.site-nav{display:block;position:static;background:transparent;padding:0}.site-nav ul{display:flex;align-items:center;gap:.15rem}.site-nav a{padding:.62rem .72rem}.site-nav .nav-cta{margin-left:.4rem;padding-inline:1rem}.hero{padding:6rem 0 4rem}.hero-grid{grid-template-columns:1.03fr .97fr;align-items:center}.hero-media img{aspect-ratio:4/3}.cards-3{grid-template-columns:repeat(3,1fr)}.process{grid-template-columns:repeat(4,1fr)}.split{grid-template-columns:1.05fr .95fr}.content-layout{grid-template-columns:minmax(0,1fr) 300px}.sidebar{position:sticky;top:94px}.article-list{grid-template-columns:repeat(3,1fr)}.mobile-cta{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


.icon-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.icon-item{border:1px solid var(--line);padding:1rem;text-align:center;background:#fff;font-weight:720}.category-nav{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem 0 1rem;scrollbar-width:thin}.category-nav a{white-space:nowrap;border:1px solid #b7cad9;padding:.55rem .8rem;text-decoration:none;color:#165f96;background:#fff;font-weight:700}.category-nav a:hover,.category-nav a:focus-visible{background:#edf7fd}.compact-list{display:grid;gap:.75rem}.compact-list a{display:block;padding:1rem;border:1px solid var(--line);background:#fff;text-decoration:none;font-weight:750;color:#155f98}.article-hero-image{margin:0 0 2rem}.article-hero-image img{width:100%;max-height:430px;object-fit:cover;border:1px solid var(--line)}.article-byline{font-size:.9rem;color:#5a6d7d}.faq details{border-top:1px solid var(--line);padding:1rem 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:780}.faq details p{margin-bottom:0}.notice{background:#eef7fd;border-left:4px solid var(--blue);padding:1rem 1.2rem}.legal-list{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;padding:0}.required{color:#a2241b}.page-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}.footer-brand{font-size:1.15rem;font-weight:800;color:var(--ink)}
@media(min-width:700px){.icon-row{grid-template-columns:repeat(4,1fr)}}
@media(max-width:699px){.footer-grid{grid-template-columns:1fr}.page-actions .btn{width:100%}}


/*
 * PublicRightOfWayPermits.com — Global design system
 * Static HTML/CSS component layer. No framework dependency.
 */
:root {
  /* Color */
  --color-charcoal-950: #07121f;
  --color-charcoal-900: #0b1b2b;
  --color-charcoal-800: #173047;
  --color-blue-700: #075ea8;
  --color-blue-600: #0876d1;
  --color-blue-100: #e8f3fb;
  --color-blue-050: #f4f9fc;
  --color-white: #ffffff;
  --color-neutral-050: #f7f9fa;
  --color-neutral-100: #eef2f4;
  --color-neutral-200: #d8e1e8;
  --color-neutral-500: #667789;
  --color-neutral-700: #35495c;
  --color-danger: #a3261c;
  --color-success: #26734a;

  /* Type */
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: clamp(1.75rem, 3vw, 2.5rem);
  --text-display: clamp(2.55rem, 5vw, 4.75rem);
  --leading-tight: 1.05;
  --leading-body: 1.65;

  /* Spacing: 4px base scale */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* Shape and layout */
  --container-max: 78rem;
  --radius-sm: .2rem;
  --radius-md: .35rem;
  --border-subtle: 1px solid var(--color-neutral-200);
  --shadow-sm: 0 2px 10px rgba(7, 25, 43, .06);
  --shadow-md: 0 14px 36px rgba(7, 25, 43, .12);
  --transition-fast: 160ms ease;
}

html { color-scheme: light; }
body { font-family: var(--font-sans); color: var(--color-charcoal-950); }
.container { width: min(calc(100% - 2rem), var(--container-max)); }

/* 12-column layout primitives */
.layout-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.col-span-12 { grid-column: span 12; }
.stack { display: flex; flex-direction: column; gap: var(--space-6); }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.section { padding-block: var(--space-16); }
.section--subtle { background: var(--color-neutral-050); border-block: var(--border-subtle); }
.section--blue { background: var(--color-blue-050); border-block: var(--border-subtle); }
.section--dark { background: var(--color-charcoal-950); color: var(--color-white); }

/* Type utilities */
.display { margin: 0; font-size: var(--text-display); line-height: var(--leading-tight); letter-spacing: -.05em; }
.heading-2 { margin: 0; font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -.035em; }
.lede { max-width: 44rem; font-size: var(--text-lg); color: var(--color-neutral-700); }
.eyebrow { font-size: var(--text-xs); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.text-muted { color: var(--color-neutral-500); }
.measure { max-width: 70ch; }

/* Actions */
.btn { transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast); }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--color-blue-600) !important; color: var(--color-white) !important; }
.btn-primary:hover { background: var(--color-blue-700) !important; }
.btn-secondary { background: var(--color-white) !important; border-color: #8da9bf !important; color: var(--color-blue-700) !important; }
.btn-ghost { background: transparent; border-color: currentColor; color: inherit; }

/* Reusable surfaces */
.surface { background: var(--color-white); border: var(--border-subtle); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.card { transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md) !important; }
.card--accent { border-left: 4px solid var(--color-blue-600); }
.card--quiet { background: var(--color-blue-050); box-shadow: none; }
.icon-tile { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid #c7ddea; background: var(--color-blue-050); color: var(--color-blue-700); }
.divider { height: 1px; border: 0; background: var(--color-neutral-200); }
.notice { background: var(--color-blue-050); border-left: 4px solid var(--color-blue-600); padding: var(--space-5); }
.notice--warning { background: #fff8e8; border-left-color: #b87500; }

/* Navigation and trust cues */
.site-header { isolation: isolate; }
.site-nav a { transition: color var(--transition-fast), background-color var(--transition-fast); }
.independence-bar { padding-block: var(--space-3); background: var(--color-charcoal-950); color: #d8e4ed; font-size: var(--text-sm); }
.official-resource { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border: var(--border-subtle); background: var(--color-white); }

/* Forms */
.field input, .field select, .field textarea { min-height: 46px; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.field textarea { min-height: 9rem; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 0; box-shadow: 0 0 0 3px rgba(8, 118, 209, .2); }
.required { color: var(--color-danger); }
.field [aria-invalid="true"] ~ .field-error { display: block; color: var(--color-danger); }
.form-status.is-visible { border-left-color: var(--color-success); }

/* Accessibility */
:focus-visible { outline: 3px solid #f2b23f; outline-offset: 3px; }
.skip-link { z-index: 1000; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Shared site header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, .97) !important;
  border-bottom: 1px solid transparent !important;
  box-shadow: none;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.site-header.is-scrolled {
  border-bottom-color: var(--color-neutral-200) !important;
  box-shadow: 0 6px 22px rgba(7, 25, 43, .08);
}
.header-layout {
  min-height: 72px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-6);
}
.site-brand {
  justify-self: start;
  color: var(--color-charcoal-950);
  font-size: clamp(.85rem, 1.25vw, 1rem);
  font-weight: 820;
  letter-spacing: -.025em;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
.site-brand:hover { color: var(--color-blue-700); }
.site-nav { justify-self: center; }
.site-nav ul { display: flex; align-items: center; justify-content: center; gap: var(--space-1); }
.site-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: .65rem .75rem;
  color: var(--color-neutral-700) !important;
  font-size: var(--text-sm);
  font-weight: 720;
  text-decoration: none;
}
.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a[aria-current="page"] {
  background: var(--color-blue-050) !important;
  color: var(--color-blue-700) !important;
}
.header-cta {
  justify-self: end;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .65rem 1rem;
  border: 1px solid var(--color-blue-600);
  border-radius: var(--radius-sm);
  background: var(--color-blue-600);
  color: var(--color-white);
  font-size: var(--text-sm);
  font-weight: 780;
  text-decoration: none;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}
.header-cta:hover { background: var(--color-blue-700); border-color: var(--color-blue-700); transform: translateY(-1px); }
.nav-toggle { display: none; }
.header-actions {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}
.header-phone {
  display: inline-grid;
  gap: .1rem;
  color: var(--color-charcoal-950);
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
}
.header-phone span {
  color: var(--color-blue-700);
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.header-phone strong {
  color: var(--color-charcoal-950);
  font-size: .96rem;
  font-weight: 850;
  letter-spacing: .02em;
}

/* Shared site footer */
.site-footer {
  padding: 0 !important;
  background: var(--color-charcoal-950) !important;
  color: #b9c7d2 !important;
  border-top: 0 !important;
}
.footer-disclaimer {
  padding-block: var(--space-5);
  background: #102438;
  border-bottom: 1px solid #294055;
  color: #d5e0e8;
  font-size: var(--text-sm);
}
.footer-disclaimer strong { color: var(--color-white); }
.footer-main { padding-block: var(--space-12); }
.footer-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1.35fr 1fr !important;
  gap: var(--space-10);
}
.site-footer h2,
.site-footer h3,
.site-footer .footer-brand { color: var(--color-white) !important; }
.site-footer h2,
.site-footer .footer-brand { margin: 0 0 var(--space-4); font-size: 1.05rem; line-height: 1.25; }
.site-footer h3 { margin: 0 0 var(--space-4); font-size: var(--text-sm); letter-spacing: .08em; text-transform: uppercase; }
.site-footer p { margin: 0; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li + li { margin-top: var(--space-2); }
.site-footer a { color: #c9d7e1 !important; text-decoration-color: #647c90; }
.site-footer a:hover { color: var(--color-white) !important; }
.footer-bottom {
  padding-block: var(--space-5);
  border-top: 1px solid #294055;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  color: #92a5b4;
  font-size: var(--text-xs);
}
.footer-legal { display: flex; flex-wrap: wrap; gap: var(--space-4); }

/* Homepage */
.home-hero .home-hero-copy { align-self: center; }
.home-hero .eyebrow { color: #315975 !important; }
.home-hero .lede { max-width: 42rem; }
.row-nav { background: var(--color-white); border-bottom: var(--border-subtle); }
.row-nav-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.row-nav a {
  min-height: 106px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4);
  border-left: var(--border-subtle);
  color: var(--color-charcoal-900);
  font-size: var(--text-sm);
  font-weight: 740;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.row-nav a:last-child { border-right: var(--border-subtle); }
.row-nav a:hover { background: var(--color-blue-050); color: var(--color-blue-700); }
.row-nav svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: square; stroke-linejoin: miter; }
.recognition-section { padding-block: var(--space-16); background: var(--color-white); }
.recognition-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: clamp(2rem, 7vw, 7rem); }
.recognition-grid h2 { max-width: 42rem; margin: 0; font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -.035em; }
.recognition-grid p { margin-top: 0; color: var(--color-neutral-700); font-size: var(--text-lg); }
.text-link { color: var(--color-blue-700); font-weight: 780; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.project-types { padding-block: var(--space-16) !important; background: var(--color-neutral-050); border-block: var(--border-subtle); }
.project-type-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); }
.project-type-card {
  min-height: 148px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: var(--space-4);
  padding: var(--space-5);
  border: var(--border-subtle);
  background: var(--color-white);
  color: var(--color-charcoal-950);
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}
.project-type-card:hover { border-color: #9fc2d9; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.project-type-card strong { grid-column: 1 / 3; align-self: end; font-size: 1.02rem; line-height: 1.3; }
.project-type-mark { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; background: var(--color-blue-050); color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; }
.project-type-card > span:last-child { color: var(--color-blue-700); font-size: 1.2rem; }
.help-section { padding-block: var(--space-16) !important; background: #092943; color: var(--color-white); }
.help-section .eyebrow { color: #9fd4fa !important; }
.help-steps { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #36546c; }
.help-steps article { min-height: 220px; padding: var(--space-8) var(--space-6); border-right: 1px solid #36546c; }
.help-steps article:first-child { border-left: 1px solid #36546c; }
.help-steps span { color: #72c2fa; font-size: var(--text-sm); font-weight: 850; letter-spacing: .1em; }
.help-steps h3 { margin: var(--space-10) 0 var(--space-3); font-size: 1.1rem; }
.help-steps p { margin: 0; color: #bed0dc; font-size: var(--text-sm); }
.featured-resources { padding-block: var(--space-16) !important; background: var(--color-white); }
.featured-resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.featured-resource { overflow: hidden; border: var(--border-subtle); background: var(--color-white); box-shadow: var(--shadow-sm); }
.featured-resource > img { width: 100%; height: 190px; object-fit: cover; }
.featured-resource:nth-child(2) > img { object-position: center 82%; }
.featured-resource:nth-child(3) > img { object-position: right center; }
.featured-resource > div { padding: var(--space-6); }
.featured-resource h3 { min-height: 3.2em; margin: var(--space-2) 0 var(--space-3); font-size: 1.18rem; line-height: 1.3; }
.featured-resource p { min-height: 4.5em; margin: 0 0 var(--space-5); color: var(--color-neutral-700); }
.home-cta p:not(.eyebrow) { margin: var(--space-2) 0 0; color: #d0dee8; }

/* About page */
.about-hero .container { min-height: 320px; display: flex; flex-direction: column; justify-content: center; }
.about-hero h1 { max-width: 800px; }
.about-intro { padding-block: var(--space-16); }
.right-of-way-section { padding-block: var(--space-16) !important; background: var(--color-blue-050); border-block: var(--border-subtle); }
.right-of-way-grid { display: grid; grid-template-columns: repeat(5, 1fr); border: var(--border-subtle); background: var(--color-white); }
.right-of-way-grid article { min-height: 260px; padding: var(--space-5); border-right: var(--border-subtle); }
.right-of-way-grid article:last-child { border-right: 0; }
.right-of-way-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid #d6e2ea; background: #eef5f9; }
.right-of-way-grid span,
.about-project-grid span,
.approach-grid span { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .1em; }
.right-of-way-grid h3 { margin: var(--space-5) 0 var(--space-3); font-size: 1.08rem; }
.right-of-way-grid p { margin: 0; color: var(--color-neutral-700); font-size: var(--text-sm); }
.about-projects { padding-block: var(--space-16) !important; }
.about-project-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); }
.about-project-grid a { min-height: 190px; display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-4); border: var(--border-subtle); background: var(--color-white); color: var(--color-charcoal-950); text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.about-project-grid a:hover { border-color: #9fc2d9; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.about-project-grid img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid #d6e2ea; background: #eef5f9; }
.about-project-grid strong { margin-top: var(--space-4); font-size: 1rem; line-height: 1.25; }
.approach-section { padding-block: var(--space-16) !important; background: #092943; color: var(--color-white); }
.approach-section .eyebrow { color: #9fd4fa !important; }
.approach-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #36546c; }
.approach-grid article { min-height: 230px; padding: var(--space-8) var(--space-6); border-right: 1px solid #36546c; }
.approach-grid article:first-child { border-left: 1px solid #36546c; }
.approach-grid h3 { margin: var(--space-10) 0 var(--space-3); }
.approach-grid p { margin: 0; color: #bed0dc; font-size: var(--text-sm); }
.official-resources-section { padding-block: var(--space-16) !important; background: var(--color-neutral-050); }
.official-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.official-card { padding: var(--space-6); border: var(--border-subtle); background: var(--color-white); box-shadow: var(--shadow-sm); }
.official-card > span { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.official-card h3 { margin: var(--space-5) 0 var(--space-3); }
.official-card p { min-height: 5em; color: var(--color-neutral-700); }
.about-cta p:not(.eyebrow) { margin: var(--space-2) 0 0; color: #d0dee8; }

/* Services page */
.services-hero .container { min-height: 320px; display: flex; flex-direction: column; justify-content: center; }
.service-directory { padding-block: var(--space-16) !important; background: var(--color-neutral-050); }
.service-directory-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
.service-directory-card { position: relative; min-height: 245px; display: grid; grid-template-columns: 64px 1fr; gap: var(--space-5); padding: var(--space-6); border: var(--border-subtle); background: var(--color-white); box-shadow: var(--shadow-sm); scroll-margin-top: 90px; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.service-directory-card:hover { border-color: #9fc2d9; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.service-directory-card--wide { grid-column: 1 / -1; min-height: 205px; }
.service-icon { width: 56px; height: 56px; display: grid; place-items: center; border: 1px solid #c7ddea; background: var(--color-blue-050); color: var(--color-blue-700); }
.service-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: square; stroke-linejoin: miter; }
.service-number { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .1em; }
.service-directory-card h3 { margin: var(--space-3) 0; font-size: 1.2rem; }
.service-directory-card p { margin: 0 0 var(--space-5); color: var(--color-neutral-700); }
.anchor-alias { position: absolute; top: -90px; }
.services-process { padding-block: var(--space-16) !important; background: #092943; color: var(--color-white); scroll-margin-top: 80px; }
.services-process .eyebrow { color: #9fd4fa !important; }
.services-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #36546c; }
.services-process-grid article { min-height: 220px; padding: var(--space-8) var(--space-6); border-right: 1px solid #36546c; }
.services-process-grid article:first-child { border-left: 1px solid #36546c; }
.services-process-grid span { color: #72c2fa; font-size: var(--text-sm); font-weight: 850; letter-spacing: .1em; }
.services-process-grid h3 { margin: var(--space-10) 0 var(--space-3); font-size: 1.08rem; }
.services-process-grid p { margin: 0; color: #bed0dc; font-size: var(--text-sm); }
.services-note { padding-block: var(--space-16) !important; scroll-margin-top: 80px; }
.services-note-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(2rem, 7vw, 7rem); }
.services-note-grid h2 { margin: 0 0 var(--space-5); font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -.035em; }
.services-note-grid p { color: var(--color-neutral-700); }
.services-note-panel { padding: var(--space-8); border-left: 4px solid var(--color-blue-600); background: var(--color-blue-050); }
.services-note-panel h3 { margin-top: 0; }
.services-note-panel li + li { margin-top: var(--space-2); }
.related-guides { padding-block: var(--space-16) !important; background: var(--color-neutral-050); border-top: var(--border-subtle); }
.related-guide-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.related-guide-grid a { min-height: 155px; display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-6); border: var(--border-subtle); background: var(--color-white); color: var(--color-charcoal-950); text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.related-guide-grid a:hover { border-color: #9fc2d9; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.related-guide-grid span { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.related-guide-grid strong { font-size: 1.05rem; line-height: 1.35; }
.services-cta p:not(.eyebrow) { margin: var(--space-2) 0 0; color: #d0dee8; }

/* Contact page */
.contact-hero .container { min-height: 300px; display: flex; flex-direction: column; justify-content: center; }
.contact-section { padding-block: var(--space-16) !important; background: var(--color-neutral-050); }
.contact-grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); align-items: start; gap: clamp(2rem, 6vw, 5rem); }
.contact-context { display: grid; gap: var(--space-5); }
.contact-context h2 { margin: 0 0 var(--space-4); font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -.035em; }
.contact-context p { color: var(--color-neutral-700); }
.contact-panel { padding: var(--space-6); border: var(--border-subtle); background: var(--color-white); box-shadow: var(--shadow-sm); }
.contact-panel-label { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.contact-panel h3 { margin: var(--space-3) 0 var(--space-2); }
.contact-panel p { margin: 0; font-size: var(--text-sm); }
.contact-resource-list { margin: var(--space-4) 0 0; padding: 0; list-style: none; }
.contact-resource-list li + li { margin-top: var(--space-2); }
.contact-resource-list a { color: var(--color-blue-700); font-weight: 720; }
.contact-trust { padding: var(--space-6); border-left: 4px solid var(--color-blue-600); background: var(--color-blue-050); }
.contact-trust strong { display: block; margin-bottom: var(--space-2); }
.contact-trust p { margin: 0; font-size: var(--text-sm); }
.contact-form-wrap { background: var(--color-white); border: var(--border-subtle); box-shadow: var(--shadow-md); }
.form-heading { padding: var(--space-8) var(--space-8) 0; }
.form-heading > span { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.form-heading h2 { margin: var(--space-2) 0; font-size: var(--text-2xl); line-height: 1.12; }
.form-heading p { margin: 0; color: var(--color-neutral-500); font-size: var(--text-sm); }
.project-form { padding: var(--space-8) !important; border: 0 !important; box-shadow: none !important; }
.project-form .field input,
.project-form .field select,
.project-form .field textarea { min-height: 48px; border-color: #8ea5b7 !important; background: #fff; }
.project-form .field textarea { min-height: 132px; }
.project-form #additional-information { min-height: 108px; }
.field-help { margin: var(--space-1) 0 0; color: var(--color-neutral-500); font-size: var(--text-xs); }
.field-error { margin: var(--space-1) 0 0; }
.form-submit { width: 100%; min-height: 50px !important; }
.form-static-note { margin: var(--space-5) 0 0; padding: var(--space-4); background: var(--color-blue-050); border-left: 3px solid var(--color-blue-600); color: var(--color-neutral-700); font-size: var(--text-sm); }
.form-status { margin-bottom: 0; }
.contact-next-step { padding-block: var(--space-5) !important; background: #102438; color: #d5e0e8; }
.contact-next-step p { margin: 0; }
.contact-next-step strong { color: var(--color-white); }

/* Resource hub */
.blog-hero .container { min-height: 320px; display: flex; flex-direction: column; justify-content: center; }
.pillar-section { padding-block: var(--space-16) !important; }
.pillar-article { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 430px; border: var(--border-subtle); background: var(--color-white); box-shadow: var(--shadow-md); }
.pillar-image { min-height: 430px; overflow: hidden; }
.pillar-image img { width: 100%; height: 100%; object-fit: cover; }
.pillar-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4rem); }
.pillar-copy h2 { margin: var(--space-4) 0; font-size: clamp(1.65rem, 3vw, 2.4rem); line-height: 1.12; letter-spacing: -.035em; }
.pillar-copy > p { color: var(--color-neutral-700); }
.article-category { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.article-card-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: auto; }
.article-card-footer > span { color: var(--color-neutral-500); font-size: var(--text-xs); font-weight: 750; text-transform: uppercase; }
.resource-library { padding-block: var(--space-16) !important; background: var(--color-neutral-050); border-top: var(--border-subtle); }
.category-filter { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); }
.category-filter button { min-height: 44px; padding: .6rem .9rem; border: 1px solid #aabcc9; background: var(--color-white); color: var(--color-neutral-700); font: inherit; font-size: var(--text-sm); font-weight: 720; cursor: pointer; transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast); }
.category-filter button:hover { border-color: var(--color-blue-600); color: var(--color-blue-700); }
.category-filter button.is-active { border-color: var(--color-blue-600); background: var(--color-blue-600); color: var(--color-white); }
.filter-status { margin: 0 0 var(--space-6); color: var(--color-neutral-500); font-size: var(--text-sm); }
.resource-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.resource-card { display: flex; flex-direction: column; overflow: hidden; border: var(--border-subtle); background: var(--color-white); box-shadow: var(--shadow-sm); transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.resource-card:hover { border-color: #9fc2d9; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.resource-card[hidden] { display: none; }
.resource-card > img { width: 100%; height: 185px; object-fit: cover; }
.resource-card:nth-child(2) > img { object-position: center 82%; }
.resource-card:nth-child(3) > img { object-position: right center; }
.resource-card:nth-child(4) > img { object-position: left center; }
.resource-card:nth-child(5) > img { object-position: center 70%; }
.resource-card > div { flex: 1; display: flex; flex-direction: column; padding: var(--space-6); }
.resource-card h3 { margin: var(--space-3) 0; font-size: 1.15rem; line-height: 1.3; }
.resource-card p { margin: 0 0 var(--space-6); color: var(--color-neutral-700); }
.resource-card .article-card-footer { margin-top: auto; padding-top: var(--space-3); border-top: var(--border-subtle); }
.blog-cta p:not(.eyebrow) { margin: var(--space-2) 0 0; color: #d0dee8; }

/* Article template */
.article-header { padding-block: var(--space-12); background: var(--color-blue-050); border-bottom: var(--border-subtle); }
.article-header .container { max-width: 980px; }
.article-header h1 { max-width: 930px; margin: var(--space-3) 0 var(--space-5); font-size: clamp(2.35rem, 5vw, 4rem); line-height: 1.04; letter-spacing: -.045em; }
.article-header .breadcrumbs { margin-bottom: var(--space-8); }
.article-header .article-category { display: block; }
.article-deck { max-width: 760px; color: var(--color-neutral-700); font-size: var(--text-lg); }
.article-publication { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-5); color: var(--color-neutral-500); font-size: var(--text-sm); }
.article-publication span + span::before { content: "•"; margin-right: var(--space-4); }
.article-feature { width: min(calc(100% - 2rem), 1100px); margin: var(--space-8) auto 0; }
.article-feature img { width: 100%; max-height: 520px; object-fit: cover; border: var(--border-subtle); box-shadow: var(--shadow-md); }
.article-body-section { padding-block: var(--space-12) !important; }
.article-layout { display: grid; grid-template-columns: minmax(0, 760px) 270px; justify-content: center; align-items: start; gap: clamp(2rem, 6vw, 5rem); }
.article-prose { min-width: 0; }
.article-prose > :first-child { margin-top: 0; }
.article-prose h2 { margin: var(--space-12) 0 var(--space-4); font-size: clamp(1.55rem, 2.6vw, 2.15rem); line-height: 1.15; letter-spacing: -.025em; }
.article-prose h3 { margin: var(--space-8) 0 var(--space-3); font-size: 1.2rem; }
.article-prose p,
.article-prose li { color: #3d5061; }
.article-prose li + li { margin-top: var(--space-2); }
.article-prose a { color: var(--color-blue-700); font-weight: 680; }
.article-prose .key-takeaway { margin: var(--space-10) 0; padding: var(--space-8); border-left: 5px solid var(--color-blue-600); background: var(--color-blue-050); }
.key-takeaway span { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.key-takeaway h2 { margin: var(--space-2) 0 var(--space-3); font-size: 1.45rem; }
.key-takeaway p { margin: 0; }
.article-sidebar { position: sticky; top: 96px; padding: var(--space-5); border: var(--border-subtle); background: var(--color-neutral-050); }
.article-sidebar h2 { margin: 0 0 var(--space-4); font-size: var(--text-sm); letter-spacing: .08em; text-transform: uppercase; }
.article-sidebar ul { margin: 0; padding-left: 1.1rem; }
.article-sidebar li + li { margin-top: var(--space-2); }
.article-sidebar a { color: var(--color-neutral-700); font-size: var(--text-sm); }
.article-sidebar .btn { width: 100%; margin-top: var(--space-5); }
.article-faq details { padding: var(--space-4) 0; border-top: var(--border-subtle); }
.article-faq details:last-child { border-bottom: var(--border-subtle); }
.article-faq summary { cursor: pointer; color: var(--color-charcoal-950); font-weight: 780; }
.article-faq details p { margin-bottom: 0; }
.article-related { padding-block: var(--space-16) !important; background: var(--color-neutral-050); border-top: var(--border-subtle); }
.article-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.article-related-card { min-height: 170px; display: flex; flex-direction: column; padding: var(--space-6); border: var(--border-subtle); background: var(--color-white); color: var(--color-charcoal-950); text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.article-related-card:hover { border-color: #9fc2d9; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.article-related-card span { color: var(--color-blue-700); font-size: var(--text-xs); font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.article-related-card strong { margin: auto 0 0; font-size: 1.06rem; line-height: 1.35; }
.article-cta p:not(.eyebrow) { margin: var(--space-2) 0 0; color: #d0dee8; }

/* Performance and accessibility refinements */
.site-header { -webkit-backdrop-filter: none; backdrop-filter: none; }
.field [aria-invalid="true"] ~ .field-error { display: block; }
.approach-grid span { color: #9fd4fa; }
.filter-status, .article-publication { color: var(--color-neutral-700); }
:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 5px #075fac; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* Responsive layout layer */
/* Responsive layer — mobile first, then tablet and desktop enhancements. */

@media (min-width: 40rem) {
  .col-sm-6 { grid-column: span 6; }
  .col-sm-4 { grid-column: span 4; }
  .section { padding-block: var(--space-20); }
}

@media (min-width: 48rem) {
  .col-md-8 { grid-column: span 8; }
  .col-md-6 { grid-column: span 6; }
  .col-md-4 { grid-column: span 4; }
  .col-md-3 { grid-column: span 3; }
}

@media (min-width: 64rem) {
  .col-lg-9 { grid-column: span 9; }
  .col-lg-8 { grid-column: span 8; }
  .col-lg-7 { grid-column: span 7; }
  .col-lg-6 { grid-column: span 6; }
  .col-lg-5 { grid-column: span 5; }
  .col-lg-4 { grid-column: span 4; }
  .col-lg-3 { grid-column: span 3; }
  .site-header { position: sticky; top: 0; }
}

@media (max-width: 57.49rem) {
  body.nav-open { overflow: hidden; }
  .header-layout {
    position: relative;
    min-height: 66px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-3);
  }
  .site-brand { max-width: calc(100vw - 6rem); overflow: hidden; text-overflow: ellipsis; }
  .header-actions { display: none; }
  .header-cta { display: none; }
  .nav-toggle {
    position: relative;
    z-index: 2;
    justify-self: end;
    width: 46px;
    height: 46px;
    display: inline-flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 0;
    border: 1px solid #aebfcd !important;
    border-radius: var(--radius-sm);
    background: var(--color-white) !important;
    color: var(--color-charcoal-950) !important;
  }
  .nav-toggle::before,
  .nav-toggle::after { display: none !important; }
  .nav-toggle span {
    width: 20px;
    height: 2px;
    display: block;
    margin: 0 !important;
    background: currentColor;
    transition: transform var(--transition-fast), opacity var(--transition-fast);
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav {
    position: absolute !important;
    top: 100% !important;
    left: calc(50% - 50vw) !important;
    right: calc(50% - 50vw) !important;
    display: block !important;
    max-height: calc(100vh - 66px);
    padding: var(--space-3) max(var(--space-4), calc((100vw - var(--container-max)) / 2)) var(--space-6) !important;
    overflow-y: auto;
    background: var(--color-white) !important;
    border-top: 1px solid var(--color-neutral-200);
    border-bottom: 1px solid var(--color-neutral-200);
    box-shadow: 0 18px 35px rgba(7, 25, 43, .14) !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity var(--transition-fast), visibility var(--transition-fast), transform var(--transition-fast);
  }
  .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .site-nav ul { display: grid !important; gap: var(--space-1) !important; }
  .site-nav a { min-height: 52px; display: flex; padding-inline: var(--space-4); font-size: var(--text-base); }
  .site-nav .mobile-nav-cta a {
    justify-content: center;
    margin-top: var(--space-2);
    background: var(--color-blue-600) !important;
    color: var(--color-white) !important;
  }
  .layout-grid { gap: var(--space-4); }
  .hero-grid > div:first-child { padding-inline: var(--space-4) !important; }
  .project-type-grid { grid-template-columns: repeat(2, 1fr); }
  .help-steps { grid-template-columns: repeat(2, 1fr); }
  .help-steps article:nth-child(3) { border-left: 1px solid #36546c; }
  .featured-resource-grid { grid-template-columns: repeat(2, 1fr); }
  .featured-resource:last-child { grid-column: 1 / -1; max-width: calc(50% - .5rem); }
  .right-of-way-grid { grid-template-columns: repeat(2, 1fr); }
  .right-of-way-grid article { border-bottom: var(--border-subtle); }
  .right-of-way-grid article:nth-child(even) { border-right: 0; }
  .right-of-way-grid article:last-child { grid-column: 1 / -1; }
  .about-project-grid, .approach-grid { grid-template-columns: repeat(2, 1fr); }
  .approach-grid article:nth-child(3) { border-left: 1px solid #36546c; }
  .official-card-grid { grid-template-columns: repeat(2, 1fr); }
  .official-card:last-child { grid-column: 1 / -1; }
  .services-process-grid { grid-template-columns: repeat(2, 1fr); }
  .services-process-grid article:nth-child(3) { border-left: 1px solid #36546c; }
  .related-guide-grid { grid-template-columns: repeat(2, 1fr); }
  .related-guide-grid a:last-child { grid-column: 1 / -1; }
  .pillar-article { grid-template-columns: 1fr; }
  .pillar-image { min-height: 330px; }
  .resource-card-grid { grid-template-columns: repeat(2, 1fr); }
  .article-layout { grid-template-columns: 1fr; }
  .article-sidebar { position: static; }
  .article-related-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 43.74rem) {
  :root { --text-display: clamp(2.25rem, 12vw, 3.25rem); }
  .container { width: min(calc(100% - 1.5rem), var(--container-max)); }
  .layout-grid { grid-template-columns: 1fr; }
  [class*="col-span-"], [class*="col-sm-"], [class*="col-md-"], [class*="col-lg-"] { grid-column: 1; }
  .section { padding-block: var(--space-12); }
  .button-row, .page-actions { align-items: stretch; flex-direction: column; }
  .button-row .btn, .page-actions .btn { width: 100%; }
  .hero-grid > div:first-child { padding-block: var(--space-12) !important; }
  .hero h1, .page-hero h1 { overflow-wrap: anywhere; }
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-main { padding-block: var(--space-10); }
  .footer-grid { gap: var(--space-8); }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .row-nav-grid { grid-template-columns: repeat(5, minmax(105px, 1fr)); overflow-x: auto; scrollbar-width: thin; }
  .row-nav .container { width: 100%; }
  .row-nav a { min-height: 94px; border-bottom: 0; }
  .recognition-grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .recognition-section, .project-types, .help-section, .featured-resources { padding-block: var(--space-12) !important; }
  .project-type-grid, .help-steps, .featured-resource-grid { grid-template-columns: 1fr; }
  .project-type-card { min-height: 128px; }
  .help-steps article, .help-steps article:nth-child(3) { min-height: auto; border: 0; border-bottom: 1px solid #36546c; }
  .help-steps article:first-child { border-left: 0; }
  .featured-resource:last-child { grid-column: auto; max-width: none; }
  .featured-resource h3, .featured-resource p { min-height: auto; }
  .home-cta .container { grid-template-columns: 1fr; }
  .about-hero .container { min-height: 250px; }
  .about-intro, .right-of-way-section, .about-projects, .approach-section, .official-resources-section { padding-block: var(--space-12) !important; }
  .right-of-way-grid, .about-project-grid, .approach-grid, .official-card-grid { grid-template-columns: 1fr; }
  .right-of-way-grid article, .right-of-way-grid article:nth-child(even), .right-of-way-grid article:last-child { min-height: auto; grid-column: auto; border-right: 0; border-bottom: var(--border-subtle); }
  .right-of-way-grid article:last-child { border-bottom: 0; }
  .approach-grid article, .approach-grid article:nth-child(3) { min-height: auto; border: 0; border-bottom: 1px solid #36546c; }
  .official-card:last-child { grid-column: auto; }
  .official-card p { min-height: auto; }
  .about-cta .container { grid-template-columns: 1fr; }
  .services-hero .container { min-height: 250px; }
  .service-directory, .services-process, .services-note, .related-guides { padding-block: var(--space-12) !important; }
  .service-directory-grid, .services-process-grid, .services-note-grid, .related-guide-grid { grid-template-columns: 1fr; }
  .service-directory-card, .service-directory-card--wide { min-height: auto; grid-column: auto; grid-template-columns: 52px 1fr; padding: var(--space-5); }
  .service-icon { width: 48px; height: 48px; }
  .services-process-grid article, .services-process-grid article:nth-child(3) { min-height: auto; border: 0; border-bottom: 1px solid #36546c; }
  .services-note-grid { gap: var(--space-8); }
  .services-note-panel { padding: var(--space-6); }
  .related-guide-grid a:last-child { grid-column: auto; }
  .services-cta .container { grid-template-columns: 1fr; }
  .contact-hero .container { min-height: 240px; }
  .contact-section { padding-block: var(--space-12) !important; }
  .contact-grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .contact-form-wrap { grid-row: auto; }
  .form-heading { padding: var(--space-6) var(--space-5) 0; }
  .project-form { padding: var(--space-5) !important; }
  .blog-hero .container { min-height: 250px; }
  .pillar-section, .resource-library { padding-block: var(--space-12) !important; }
  .pillar-article { min-height: auto; }
  .pillar-image { min-height: 235px; }
  .pillar-copy { padding: var(--space-6); }
  .pillar-copy .article-card-footer { align-items: flex-start; flex-direction: column; }
  .category-filter { flex-wrap: nowrap; padding-bottom: var(--space-2); overflow-x: auto; scrollbar-width: thin; }
  .category-filter button { flex: 0 0 auto; }
  .resource-card-grid { grid-template-columns: 1fr; }
  .resource-card > img { height: 210px; }
  .blog-cta .container { grid-template-columns: 1fr; }
  .article-header { padding-block: var(--space-10); }
  .article-header .breadcrumbs { margin-bottom: var(--space-6); }
  .article-header h1 { font-size: clamp(2.15rem, 11vw, 3.2rem); overflow-wrap: anywhere; }
  .article-feature { width: min(calc(100% - 1.5rem), 1100px); margin-top: var(--space-6); }
  .article-publication { gap: var(--space-2); }
  .article-publication span + span::before { margin-right: var(--space-2); }
  .article-body-section { padding-block: var(--space-10) !important; }
  .article-prose .key-takeaway { padding: var(--space-6); }
  .article-related { padding-block: var(--space-12) !important; }
  .article-related-grid { grid-template-columns: 1fr; }
}

/* Supplied PublicRightOfWayPermits.com brand artwork */
.site-brand {
  width: 310px;
  height: 70px;
  display: block;
  flex: 0 0 auto;
  overflow: hidden;
  background: url('../images/public-right-of-way-permits-logo.png') center / 310px auto no-repeat;
  font-size: 0;
  line-height: 0;
}

@media (max-width: 57.49rem) {
  .site-brand {
    width: 220px;
    height: 48px;
    max-width: calc(100vw - 5.5rem);
    background-size: 220px auto;
  }
}

@media (max-width: 22.5rem) {
  .site-brand {
    width: 180px;
    background-size: 180px auto;
  }
}

@media (min-width: 57.5rem) {
  .mobile-nav-cta { display: none; }
}

@media (max-width: 22.5rem) {
  .container { width: min(calc(100% - 1rem), var(--container-max)); }
  .brand { font-size: .82rem; }
  .brand-mark { width: 2rem; height: 2rem; }
  .card, .form, .sidebar { padding: var(--space-4) !important; }
}

@media print {
  .site-header, .mobile-cta, .nav-toggle, .cta-band { display: none !important; }
  body { color: #000; background: #fff; }
  a { color: #000; text-decoration: underline; }
  .card, .surface { box-shadow: none !important; }
}

/* Homepage visual direction — image-led Los Angeles consultancy */
.home-hero { position: relative; min-height: clamp(520px, 49vw, 700px); display: flex; align-items: center; isolation: isolate; background: #071b2d !important; color: #fff !important; }
.home-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(4, 22, 39, .94) 0%, rgba(4, 22, 39, .78) 38%, rgba(4, 22, 39, .18) 76%, rgba(4, 22, 39, .08) 100%); }
.home-hero-media { position: absolute; z-index: -2; inset: 0; overflow: hidden; }
.home-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.home-hero .container {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: clamp(1.25rem, 3vw, 3rem) 1rem;
}
.home-hero .hero-grid { min-height: 0; display: block; }
.home-hero .hero-grid > .home-hero-copy {
  max-width: 720px;
  margin: 0 auto 0 0;
  padding: clamp(4.5rem, 8vw, 7rem) 0 !important;
  background: none !important;
  text-align: left;
}
.home-hero .button-row { justify-content: flex-start; }
.home-hero .eyebrow { color: #fff !important; font-size: .8rem; letter-spacing: .16em; }
.home-hero h1 { max-width: 720px; color: #fff; font-size: clamp(3rem, 4.8vw, 4.35rem) !important; line-height: .98; text-wrap: balance; }
.home-hero .lede { max-width: 620px; color: #fff !important; font-size: clamp(1rem, 1.45vw, 1.2rem) !important; line-height: 1.5; }
.home-hero .btn { min-height: 52px !important; padding-inline: 1.45rem !important; }
.home-hero .btn-primary { box-shadow: 0 12px 30px rgba(0, 105, 224, .28); }
.home-hero .btn-secondary { border-color: rgba(255, 255, 255, .82) !important; background: rgba(5, 22, 38, .28) !important; color: #fff !important; }
.home-hero .btn-secondary:hover { background: #fff !important; color: #075fac !important; }
.home-location-card { position: absolute; right: 0; bottom: 0; min-width: min(330px, 42vw); display: flex; align-items: center; gap: 1rem; padding: 1.15rem clamp(1.25rem, 3vw, 2.5rem); border-left: 1px solid rgba(255,255,255,.65); background: rgba(255, 255, 255, .96); color: #0a2036; box-shadow: 0 -6px 22px rgba(2, 20, 38, .12); }
.home-location-card svg { width: 27px; height: 27px; flex: 0 0 auto; fill: none; stroke: #0a2036; stroke-width: 1.7; }
.home-location-card span { display: grid; line-height: 1.3; }
.home-location-card strong { font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.home-location-card small { margin-top: .2rem; color: #5a6b7b; font-size: .68rem; }

.row-nav { box-shadow: 0 8px 30px rgba(16, 45, 72, .06); }
.row-nav a { min-height: 120px; color: #09233d; }
.row-nav a:hover { transform: translateY(-2px); }
.row-nav svg { width: 38px; height: 38px; color: #0877e2; stroke-width: 1.8; }
.row-nav span { font-size: .84rem; }

.recognition-section { padding-block: clamp(4rem, 7vw, 7rem) !important; }
.recognition-grid { grid-template-columns: minmax(0, .96fr) minmax(420px, 1.04fr); gap: clamp(3rem, 7vw, 7rem); }
.recognition-copy h2 { max-width: 610px; font-size: clamp(2.15rem, 3.4vw, 3.3rem); }
.recognition-copy p { max-width: 620px; margin: 1.3rem 0 1.7rem; font-size: 1rem; }
.recognition-visual { position: relative; min-height: 365px; overflow: hidden; border: 1px solid #cfdde7; box-shadow: 0 18px 45px rgba(9, 39, 65, .14); }
.recognition-visual img { width: 100%; height: 365px; object-fit: cover; object-position: center 74%; transform: scale(1.16); }
.recognition-visual ul { position: absolute; right: 0; bottom: 0; width: min(61%, 350px); margin: 0; padding: 1.25rem 1.5rem; list-style: none; background: rgba(242, 248, 252, .97); color: #173149; }
.recognition-visual li { position: relative; padding: .48rem 0 .48rem 2.15rem; font-size: .78rem; font-weight: 680; }
.recognition-visual li::before { content: "✓"; position: absolute; left: 0; top: .3rem; width: 1.45rem; height: 1.45rem; display: grid; place-items: center; border: 1px solid #9db5c8; border-radius: 50%; color: #0875db; font-weight: 850; }

.project-types { padding-block: clamp(4rem, 6vw, 6rem) !important; background: linear-gradient(120deg, #f7fbfe, #edf7fd) !important; }
.section-head-row { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.section-head-row h2 { margin-bottom: 0; }
.section-head-row > .text-link { flex: 0 0 auto; margin-bottom: .35rem; }
.project-type-grid { gap: 1rem; }
.project-type-card { min-height: 118px; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.3rem; border-color: #d9e4ec; border-radius: .25rem; box-shadow: 0 6px 16px rgba(15, 55, 88, .05); }
.project-type-mark { width: 48px; height: 48px; background: transparent; }
.project-type-mark svg { width: 44px; height: 44px; fill: none; stroke: #0878e4; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.project-type-card strong { grid-column: auto; align-self: center; font-size: .92rem; }
.project-type-card > span:last-child { align-self: center; }

.help-section { position: relative; isolation: isolate; overflow: hidden; padding-block: clamp(4rem, 6vw, 6rem) !important; background: #061b2f !important; }
.help-section::before { content: ""; position: absolute; z-index: -2; inset: 0; background: url('../images/los-angeles-right-of-way-1200.jpg') center 60% / cover no-repeat; }
.help-section::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(3, 19, 34, .96), rgba(5, 34, 58, .86)); }
.help-section .section-head { max-width: none; }
.help-section .section-head h2 { color: #fff; }
.help-steps { border-top: 0; gap: 1.4rem; }
.help-steps article, .help-steps article:first-child { position: relative; min-height: 190px; padding: 1rem 1rem 1rem 4rem; border: 0; }
.help-steps article:not(:last-child)::after { content: ""; position: absolute; top: 2.15rem; right: -1.2rem; width: 2.3rem; height: 1px; background: rgba(255,255,255,.45); }
.help-steps span { position: absolute; left: 0; top: .75rem; width: 48px; height: 48px; display: grid; place-items: center; border: 2px solid #1888ee; border-radius: 50%; background: #eaf6ff; color: #0870d7; box-shadow: 0 0 0 5px rgba(13,119,218,.14); }
.help-steps h3 { margin: .9rem 0 1rem; color: #fff; font-size: 1rem; }
.help-steps p { max-width: 220px; color: #d9e5ed; line-height: 1.55; }

.featured-resources { padding-block: clamp(4rem, 6vw, 6rem) !important; }
.featured-resource { display: flex; flex-direction: column; border-radius: .25rem; box-shadow: 0 8px 24px rgba(12, 45, 72, .07); }
.featured-resource > img { height: 210px; }
.featured-resource > div { flex: 1; display: flex; flex-direction: column; }
.featured-resource h3 { min-height: 4.6em; font-size: 1.12rem; }
.featured-resource p { min-height: 4.6em; font-size: .92rem; }
.featured-resource .text-link { margin-top: auto; }

.home-cta { padding-block: clamp(4rem, 6vw, 6rem) !important; }
.home-cta::after { background: linear-gradient(90deg, rgba(3, 24, 42, .97), rgba(4, 36, 61, .80)), url('../images/los-angeles-right-of-way-1200.jpg') center 62% / cover no-repeat; }
.home-cta .container { grid-template-columns: minmax(0, 1fr) minmax(330px, .65fr); gap: clamp(3rem, 8vw, 8rem); }
.home-cta-copy { max-width: 700px; }
.home-cta-copy .btn { margin-top: 1.35rem; }
.home-audiences { margin: 0; padding: 0 0 0 clamp(1.5rem, 4vw, 3.5rem); border-left: 1px solid rgba(255,255,255,.38); list-style: none; }
.home-audiences li { position: relative; display: grid; padding: .6rem 0 .6rem 2.4rem; }
.home-audiences li::before { content: "◇"; position: absolute; left: 0; top: .45rem; color: #a9d9ff; font-size: 1.55rem; }
.home-audiences strong { color: #fff; font-size: .9rem; }
.home-audiences span { color: #c9d8e2; font-size: .75rem; }

@media (max-width: 57.49rem) {
  .home-hero { min-height: 590px; align-items: end; }
  .home-hero::after { background: linear-gradient(90deg, rgba(4,22,39,.92), rgba(4,22,39,.58)), linear-gradient(0deg, rgba(4,22,39,.90), transparent 65%); }
  .home-hero .home-hero-copy { max-width: 610px; padding-block: 6rem 7.5rem !important; }
  .home-location-card { min-width: min(360px, 60vw); }
  .recognition-grid { grid-template-columns: 1fr; }
  .recognition-visual { max-width: 680px; }
  .help-steps { gap: 0; }
  .help-steps article:not(:last-child)::after { display: none; }
  .home-cta .container { grid-template-columns: 1fr; }
  .home-audiences { display: grid; grid-template-columns: repeat(3, 1fr); padding: 1.5rem 0 0; border-top: 1px solid rgba(255,255,255,.35); border-left: 0; }
}

@media (max-width: 43.74rem) {
  .home-hero { min-height: 650px; }
  .home-hero-media img { object-position: 62% center; }
  .home-hero .home-hero-copy { padding-block: 5.25rem 8rem !important; }
  .home-hero h1 { font-size: clamp(2.65rem, 13vw, 3.8rem) !important; }
  .home-location-card { left: .75rem; right: .75rem; bottom: 0; min-width: 0; padding: .9rem 1rem; }
  .row-nav-grid { grid-template-columns: repeat(5, minmax(100px, 1fr)); }
  .recognition-visual { min-height: 330px; }
  .recognition-visual img { height: 330px; }
  .recognition-visual ul { width: 72%; padding: .85rem 1rem; }
  .section-head-row { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .project-type-card { min-height: 104px; grid-template-columns: 48px minmax(0,1fr) auto; }
  .help-steps article, .help-steps article:nth-child(3) { padding: 1rem 1rem 1.6rem 4.25rem; border-bottom: 1px solid rgba(255,255,255,.2); }
  .help-steps article:last-child { border-bottom: 0; }
  .featured-resource h3, .featured-resource p { min-height: auto; }
  .home-audiences { grid-template-columns: 1fr; }
}

/* Premium editorial finish shared by the static pages. */
:root {
  --color-charcoal-950: #0b1d2d;
  --color-charcoal-900: #102b40;
  --color-neutral-050: #f5f8fa;
  --color-neutral-200: #d9e2e9;
  --shadow-sm: 0 8px 24px rgba(13, 38, 59, .045);
  --shadow-md: 0 24px 56px rgba(13, 38, 59, .12);
}
body { background: #fff; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { text-wrap: balance; }
.section-head h2, .contact-context h2, .services-note-grid h2 { letter-spacing: -.045em; }
.section-head > p:last-child { max-width: 65ch; line-height: 1.7; }
.eyebrow { letter-spacing: .17em; }
.btn, .header-cta { border-radius: 3px; }
.btn { padding-inline: 1.45rem; }
.text-link { text-underline-offset: .3em; }
.site-header.is-scrolled { box-shadow: 0 8px 26px rgba(10, 28, 44, .07); }

/* A distinct, image-led introduction on the interior pages. */
.page-hero {
  min-height: 420px;
  display: flex;
  align-items: center;
  background: #0b2338 !important;
  color: #fff !important;
  border-bottom: 0 !important;
  padding-block: clamp(4rem, 7vw, 6.5rem) !important;
}
.page-hero::after {
  inset: 0 !important;
  opacity: 1 !important;
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .88) 42%, rgba(7, 26, 42, .40) 100%), url('../images/los-angeles-right-of-way-1200.jpg') center 58% / cover no-repeat !important;
}
.services-hero::after {
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .89) 43%, rgba(7, 26, 42, .45) 100%), url('../images/los-angeles-street-work.jpg') center 62% / cover no-repeat !important;
}
.contact-hero::after {
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .86) 47%, rgba(7, 26, 42, .42) 100%), url('../images/sidewalk-parkway.jpg') center 58% / cover no-repeat !important;
}
.page-hero .container { min-height: 0; position: relative; z-index: 1; }
.page-hero h1 { max-width: 830px; color: #fff; font-size: clamp(2.5rem, 4.8vw, 4.45rem) !important; line-height: 1.03; letter-spacing: -.052em; }
.page-hero p { max-width: 680px; margin: 1.4rem 0 0; color: #e2ebf2 !important; font-size: clamp(1.02rem, 1.5vw, 1.2rem); line-height: 1.65; }
.page-hero .breadcrumbs { margin-bottom: 2.2rem; color: #c3d5e3 !important; }
.page-hero .breadcrumbs a { color: #e6f2fb !important; }
.page-hero .eyebrow.light { color: #a9d9ff !important; }

/* Keep generous spacing but make the directory feel precise and architectural. */
.service-directory, .about-projects, .featured-resources, .pillar-section { background: #fff; }
.service-directory, .services-note, .related-guides,
.about-intro, .right-of-way-section, .about-projects, .approach-section,
.official-resources-section, .pillar-section, .resource-library,
.contact-section, .article-related { padding-block: clamp(4.5rem, 7vw, 7rem) !important; }
.service-directory-grid, .related-guide-grid, .official-card-grid,
.resource-card-grid, .article-related-grid { gap: 1.25rem; }
.service-directory-card {
  min-height: 260px;
  gap: 1.5rem;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  border-color: #dce5eb;
  border-radius: 3px;
  box-shadow: var(--shadow-sm);
}
.service-directory-card:hover, .related-guide-grid a:hover,
.article-related-card:hover, .resource-card:hover, .official-card:hover {
  border-color: #a7c3d6;
  box-shadow: var(--shadow-md);
}
.service-directory-card--wide { min-height: 200px; }
.service-icon { width: 62px; height: 62px; border-color: #d5e8f4; background: #eef7fd; }
.service-directory-card h3 { margin-block: .6rem .85rem; font-size: clamp(1.16rem, 1.5vw, 1.35rem); line-height: 1.23; letter-spacing: -.025em; }
.service-directory-card p { max-width: 51ch; line-height: 1.62; }
.service-directory-card .text-link { margin-top: auto; }
.service-number { color: #1b6a9f; letter-spacing: .16em; }
.services-process, .approach-section { background: #102e44; }
.services-process-grid, .approach-grid { border-top-color: rgba(210, 231, 244, .32); }
.services-process-grid article, .approach-grid article { border-color: rgba(210, 231, 244, .25) !important; }
.services-process-grid span, .approach-grid span { color: #9bd7ff; }
.services-note-panel, .contact-trust { background: #eef6fb; border-left-color: #0b75bd; }
.related-guides, .resource-library, .article-related, .contact-section { background: #f5f8fa; }
.related-guide-grid a, .official-card, .article-related-card,
.resource-card, .contact-panel, .contact-form-wrap { border-color: #dce5eb; box-shadow: var(--shadow-sm); }
.related-guide-grid a, .article-related-card { min-height: 180px; }
.related-guide-grid strong, .article-related-card strong { font-size: 1.12rem; letter-spacing: -.02em; }
.official-card h3 { letter-spacing: -.025em; }

/* Resource and contact surfaces carry the same visual cadence. */
.pillar-article { border-color: #dce5eb; box-shadow: var(--shadow-md); }
.pillar-copy h2 { font-size: clamp(1.9rem, 3vw, 2.65rem); letter-spacing: -.045em; }
.resource-card > img { height: 215px; }
.resource-card h3 { font-size: 1.22rem; letter-spacing: -.025em; }
.resource-card p { line-height: 1.6; }
.category-filter button { border-radius: 2px; }
.contact-grid { gap: clamp(2.5rem, 6vw, 6rem); }
.contact-form-wrap { border-radius: 3px; box-shadow: var(--shadow-md); }
.contact-panel { border-radius: 3px; }
.project-form .field input, .project-form .field select, .project-form .field textarea { border-radius: 2px !important; }
.project-form .field input:focus, .project-form .field select:focus,
.project-form .field textarea:focus { border-color: #0876d1 !important; }

/* Long-form pages: quieter backdrop and a narrower reading measure. */
.article-header { background: #f5f8fa; padding-block: clamp(3.25rem, 6vw, 5.5rem); }
.article-header h1 { max-width: 900px; letter-spacing: -.052em; }
.article-feature { margin-top: 0; }
.article-feature img { max-height: 490px; border: 0; box-shadow: none; }
.article-body-section { padding-block: clamp(3.5rem, 6vw, 6rem) !important; }
.article-prose { max-width: 72ch; }
.article-prose p, .article-prose li { line-height: 1.78; }
.article-prose h2 { letter-spacing: -.035em; }
.article-sidebar { border-color: #dce5eb; background: #f5f8fa; }
.site-footer { background: #0b1d2d !important; }
.footer-disclaimer { background: #102b40; }
.footer-main { padding-block: clamp(3.5rem, 6vw, 5rem); }

@media (max-width: 57.49rem) {
  .page-hero { min-height: 340px; padding-block: 3.25rem !important; }
  .page-hero::after { background-position: center !important; }
  .service-directory-card { min-height: auto; }
}
@media (max-width: 43.74rem) {
  .page-hero { min-height: 0; padding-block: 2.75rem 3.5rem !important; }
  .page-hero h1 { font-size: clamp(2.25rem, 10vw, 3.25rem) !important; }
  .page-hero .breadcrumbs { margin-bottom: 1.65rem; }
  .service-directory, .services-note, .related-guides,
  .about-intro, .right-of-way-section, .about-projects, .approach-section,
  .official-resources-section, .pillar-section, .resource-library,
  .contact-section, .article-related { padding-block: 3.75rem !important; }
  .service-directory-card { gap: 1rem; padding: 1.2rem; }
  .service-icon { width: 48px; height: 48px; }
  .resource-card > img { height: 200px; }
  .article-header { padding-block: 2.75rem; }
}

/* Distinct page imagery; flat surfaces everywhere outside hero areas. */
.about-hero::after {
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .86) 43%, rgba(7, 26, 42, .4) 100%), url('../images/about-hero.webp') center 56% / cover no-repeat !important;
}
.services-hero::after {
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .86) 43%, rgba(7, 26, 42, .4) 100%), url('../images/services-hero.webp') center 58% / cover no-repeat !important;
}
.blog-hero::after {
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .86) 43%, rgba(7, 26, 42, .4) 100%), url('../images/resources-hero.webp') center 58% / cover no-repeat !important;
}
.contact-hero::after {
  background: linear-gradient(90deg, rgba(7, 26, 42, .97) 0%, rgba(7, 26, 42, .84) 46%, rgba(7, 26, 42, .36) 100%), url('../images/contact-hero.webp') center 60% / cover no-repeat !important;
}
.page-hero:not(.about-hero):not(.services-hero):not(.blog-hero):not(.contact-hero)::after { background: none !important; }
.project-types { background: #f1f7fb !important; }
.service-card::before, .technical-panel { background: #eef7fd !important; }
.articles .card::before, .article-list .card::before { background: #e8f2f8 !important; }
.help-section { background: #102e44 !important; }
.help-section::before, .help-section::after { display: none; background: none !important; }
.cta-band { background: #102e44 !important; }
.cta-band::after, .home-cta::after { background: #102e44 !important; }

/* Homepage hero placement correction. */
.home-hero {
  align-items: center;
}
.home-hero .container {
  width: min(calc(100% - 3rem), var(--container-max));
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: 0;
}
.home-hero .hero-grid > .home-hero-copy {
  max-width: 700px;
  padding-block: clamp(4rem, 6.5vw, 6rem) !important;
}
.home-hero .lede {
  max-width: 660px;
}

@media (max-width: 57.49rem) {
  .home-hero {
    min-height: 560px;
    align-items: center;
  }
  .home-hero .container {
    width: min(calc(100% - 3rem), var(--container-max));
  }
  .home-hero .hero-grid > .home-hero-copy {
    max-width: 640px;
    padding-block: 4.75rem 6.75rem !important;
  }
}

@media (max-width: 43.74rem) {
  .home-hero {
    min-height: 620px;
    align-items: end;
  }
  .home-hero .container {
    width: min(calc(100% - 2rem), var(--container-max));
  }
  .home-hero .hero-grid > .home-hero-copy {
    padding-block: 4.5rem 7.25rem !important;
  }
}

/* Footer alignment polish. */
.site-footer {
  background: #0b1d2d !important;
  color: #c3d2dc !important;
}
.footer-main {
  padding-block: clamp(3rem, 5vw, 4.5rem) 1.5rem !important;
}
.footer-grid {
  display: grid;
  grid-template-columns: minmax(230px, 1.15fr) minmax(140px, .7fr) minmax(260px, 1.12fr) minmax(190px, .85fr) !important;
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: start;
}
.footer-grid > div {
  min-width: 0;
}
.site-footer h2,
.site-footer h3 {
  margin: 0 0 1.05rem;
  color: #fff !important;
  line-height: 1.2;
}
.site-footer h2 {
  font-size: 1rem;
  letter-spacing: -.01em;
}
.site-footer h3 {
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.site-footer p {
  max-width: 24rem;
  color: #d2dee7;
  line-height: 1.65;
}
.site-footer ul {
  display: grid;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer li + li {
  margin-top: 0;
}
.site-footer a {
  color: #d8e7f1 !important;
  text-decoration-color: rgba(216, 231, 241, .48);
}
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 2.25rem;
  padding-block: 1.25rem 0;
  border-top: 1px solid rgba(210, 231, 244, .2);
  color: #9fb3c2;
  font-size: .78rem;
}
.footer-bottom p {
  color: inherit;
}
.footer-legal {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 1.25rem !important;
}
.footer-legal a {
  display: inline-flex;
  align-items: center;
}

@media (max-width: 57.49rem) {
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2.5rem 3rem;
  }
}

@media (max-width: 43.74rem) {
  .footer-main {
    padding-block: 2.75rem 1.25rem !important;
  }
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem;
  }
  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    margin-top: 2rem;
  }
  .footer-legal {
    justify-content: flex-start;
  }
}

/* Header logo spacing polish. */
.header-layout {
  min-height: 84px;
}
.site-brand {
  width: 310px;
  height: 58px;
  margin-block: .55rem;
  background-position: left center;
  background-size: 290px auto;
}

@media (max-width: 57.49rem) {
  .header-layout {
    min-height: 72px;
  }
  .site-brand {
    width: 224px;
    height: 50px;
    margin-block: .45rem;
    background-size: 220px auto;
  }
}

@media (max-width: 22.5rem) {
  .site-brand {
    width: 184px;
    height: 44px;
    background-size: 180px auto;
  }
}

/* Blog resource cards: distinct direct images, no generated gradient artwork. */
.resource-library .resource-card {
  padding-top: 0 !important;
}
.resource-library .resource-card::before,
.resource-library .resource-card::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
.resource-library .resource-card > img {
  display: block !important;
  width: 100%;
  height: 215px;
  object-fit: cover;
  filter: none !important;
  opacity: 1 !important;
}
.resource-library .resource-card:nth-child(1) > img { object-position: center 68%; }
.resource-library .resource-card:nth-child(2) > img { object-position: center 58%; }
.resource-library .resource-card:nth-child(3) > img { object-position: center 62%; }
.resource-library .resource-card:nth-child(4) > img { object-position: center 55%; }
.resource-library .resource-card:nth-child(5) > img { object-position: center 54%; }
.resource-library .resource-card:nth-child(6) > img { object-position: center 50%; }

/* CTA contact details. */
.cta-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}
.cta-phone {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  color: #fff !important;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.cta-phone span {
  margin-right: .45rem;
  color: #a9d9ff;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

@media (max-width: 43.74rem) {
  .cta-actions {
    align-items: stretch;
    flex-direction: column;
    justify-content: flex-start;
  }
  .cta-phone {
    justify-content: center;
  }
}

/* About right-of-way cards: two-row desktop layout. */
.right-of-way-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem;
  border: 0;
  background: transparent;
}
.right-of-way-grid article,
.right-of-way-grid article:last-child {
  min-height: 0;
  border: 1px solid #d6e2ea;
  background: #fff;
}
.right-of-way-grid article:last-child {
  grid-column: auto;
}

@media (max-width: 57.49rem) {
  .right-of-way-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 43.74rem) {
  .right-of-way-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Services directory: use relevant image thumbnails instead of icons. */
.service-directory-card {
  grid-template-columns: 112px minmax(0, 1fr) !important;
  gap: 1.6rem !important;
}
.service-directory-card--wide {
  grid-template-columns: 160px minmax(0, 1fr) !important;
}
.service-image {
  width: 112px;
  min-height: 112px;
  align-self: start;
  overflow: hidden;
  border: 1px solid #d6e2ea;
  background: #eef5f9;
}
.service-directory-card--wide .service-image {
  width: 160px;
  min-height: 112px;
}
.service-image img {
  width: 100%;
  height: 100%;
  min-height: 112px;
  object-fit: cover;
}
.service-directory-card:nth-child(1) .service-image img { object-position: center 58%; }
.service-directory-card:nth-child(2) .service-image img { object-position: center 55%; }
.service-directory-card:nth-child(3) .service-image img { object-position: center 68%; }
.service-directory-card:nth-child(4) .service-image img { object-position: center 54%; }
.service-directory-card:nth-child(5) .service-image img { object-position: center 66%; }
.service-directory-card:nth-child(6) .service-image img { object-position: center 54%; }
.service-directory-card:nth-child(7) .service-image img { object-position: center 62%; }
.service-directory-card:nth-child(8) .service-image img { object-position: center 58%; }
.service-directory-card:nth-child(9) .service-image img { object-position: center 50%; }
.service-directory-card:nth-child(10) .service-image img { object-position: center 66%; }

@media (max-width: 43.74rem) {
  .service-directory-card,
  .service-directory-card--wide {
    grid-template-columns: 1fr !important;
  }
  .service-image,
  .service-directory-card--wide .service-image {
    width: 100%;
    min-height: 180px;
  }
  .service-image img {
    min-height: 180px;
  }
}

/* Article header spacing. */
.article-header .container {
  max-width: var(--container-max);
  padding-inline: 0;
}
.article-header h1 {
  max-width: 940px;
}
.article-deck {
  max-width: 800px;
}
.article-publication {
  margin-top: 1.5rem !important;
}
.article-feature {
  width: min(calc(100% - 2rem), var(--container-max));
  margin: 2.25rem auto 0 !important;
}
.article-feature img {
  width: 100%;
}

@media (max-width: 43.74rem) {
  .article-feature {
    width: min(calc(100% - 1.5rem), 1100px);
    margin-top: 1.5rem !important;
  }
}

/* Contact sidebar panel padding correction. */
.contact-panel {
  padding: clamp(1.5rem, 3vw, 2.25rem) !important;
}
.contact-panel-label {
  display: block;
  margin-bottom: .9rem;
}
.contact-panel h3 {
  margin: 0 0 .75rem !important;
}
.contact-resource-list {
  display: grid;
  gap: .7rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

/* About project cards: three-row desktop rhythm. */
.about-project-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem;
}
.about-project-grid a {
  min-height: 210px;
}

@media (max-width: 57.49rem) {
  .about-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 43.74rem) {
  .about-project-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Services related guides with image thumbnails. */
.related-guide-grid a {
  overflow: hidden;
  padding: 0 !important;
  justify-content: flex-start;
}
.related-guide-grid img {
  width: 100%;
  height: 185px;
  object-fit: cover;
  border-bottom: 1px solid #d6e2ea;
}
.related-guide-grid span,
.related-guide-grid strong {
  margin-inline: 1.5rem;
}
.related-guide-grid span {
  margin-top: 1.35rem;
}
.related-guide-grid strong {
  margin-top: auto;
  margin-bottom: 1.5rem;
}
.related-guide-grid a:nth-child(1) img { object-position: center 65%; }
.related-guide-grid a:nth-child(2) img { object-position: center 50%; }
.related-guide-grid a:nth-child(3) img { object-position: center 58%; }

/* Homepage project type cards with image thumbnails. */
.project-type-card {
  grid-template-columns: 74px minmax(0, 1fr) auto !important;
}
.project-type-image {
  width: 74px;
  height: 58px;
  display: block;
  overflow: hidden;
  border: 1px solid #d6e2ea;
  background: #eef5f9;
}
.project-type-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-type-card:nth-child(1) .project-type-image img { object-position: center 58%; }
.project-type-card:nth-child(2) .project-type-image img { object-position: center 58%; }
.project-type-card:nth-child(3) .project-type-image img { object-position: center 67%; }
.project-type-card:nth-child(4) .project-type-image img { object-position: center 54%; }
.project-type-card:nth-child(5) .project-type-image img { object-position: center 66%; }
.project-type-card:nth-child(6) .project-type-image img { object-position: center 54%; }
.project-type-card:nth-child(7) .project-type-image img { object-position: center 62%; }
.project-type-card:nth-child(8) .project-type-image img { object-position: center 58%; }

@media (max-width: 43.74rem) {
  .project-type-card {
    grid-template-columns: 82px minmax(0, 1fr) auto !important;
  }
  .project-type-image {
    width: 82px;
    height: 64px;
  }
}

/* Services directory image cards: remove number rhythm and make images feel embedded. */
.service-directory-card {
  display: flex !important;
  flex-direction: column;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}
.service-directory-card--wide {
  display: flex !important;
  grid-column: 1 / -1;
}
.service-directory-card .service-image,
.service-directory-card--wide .service-image {
  width: 100% !important;
  height: clamp(170px, 18vw, 230px);
  min-height: 0 !important;
  border: 0;
  border-bottom: 1px solid #d6e2ea;
}
.service-directory-card .service-image img {
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  object-fit: cover;
}
.service-directory-card > div:not(.service-image) {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: clamp(1.35rem, 2vw, 1.85rem);
}
.service-directory-card h3 {
  margin-top: 0 !important;
}
.service-directory-card .text-link {
  margin-top: auto;
}
.service-number {
  display: none !important;
}

@media (max-width: 43.74rem) {
  .service-directory-card .service-image,
  .service-directory-card--wide .service-image {
    height: 190px;
  }
}

/* Homepage common project types: two columns / four rows. */
.project-type-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 43.74rem) {
  .project-type-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Blog article body alignment: match global section/container rhythm. */
.article-body-section .article-layout {
  justify-content: stretch !important;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 270px) !important;
  gap: clamp(2rem, 5vw, 4rem) !important;
}
.article-prose {
  max-width: 760px;
}
.article-sidebar {
  width: 100%;
}

@media (max-width: 57.49rem) {
  .article-body-section .article-layout {
    grid-template-columns: 1fr !important;
  }
  .article-prose {
    max-width: none;
  }
}

/* Premium homepage project cards with descriptive copy. */
.project-type-card {
  min-height: 220px !important;
  grid-template-columns: 210px minmax(0, 1fr) 2.25rem !important;
  grid-template-rows: 1fr !important;
  align-items: center !important;
  align-content: center !important;
  gap: clamp(1.1rem, 2vw, 1.5rem) !important;
  padding: clamp(1rem, 1.8vw, 1.35rem) !important;
  border-color: #d3e0e8 !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,1) 0%, rgba(250,253,255,1) 56%, rgba(240,247,252,.92) 100%) !important;
  box-shadow: 0 12px 34px rgba(14, 45, 70, .07) !important;
}
.project-type-card:hover {
  border-color: #9bbbd2 !important;
  box-shadow: 0 18px 44px rgba(14, 45, 70, .12) !important;
}
.project-type-image {
  width: 210px !important;
  height: 160px !important;
  border-color: #cbdce7 !important;
  box-shadow: 0 10px 22px rgba(12, 42, 64, .1);
}
.project-type-copy {
  display: grid;
  gap: .45rem;
  min-width: 0;
  align-self: center;
}
.project-type-card strong {
  grid-column: auto !important;
  margin: 0;
  color: #071a2f;
  font-size: clamp(1rem, 1.35vw, 1.18rem) !important;
  line-height: 1.22 !important;
  letter-spacing: -.02em;
}
.project-type-copy em {
  color: #466074;
  font-size: .94rem;
  font-style: normal;
  line-height: 1.55;
}
.project-type-arrow {
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  align-self: center !important;
  justify-self: end;
  border: 1px solid #d5e4ee;
  color: #006fce !important;
  background: #f3f9fd;
}
.project-type-card:hover .project-type-arrow {
  color: #fff !important;
  border-color: #0878d8;
  background: #0878d8;
}

@media (max-width: 57.49rem) {
  .project-type-card {
    grid-template-columns: 160px minmax(0, 1fr) 2.25rem !important;
  }
  .project-type-image {
    width: 160px !important;
    height: 126px !important;
  }
}

@media (max-width: 43.74rem) {
  .project-type-card {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    align-items: stretch !important;
  }
  .project-type-image {
    width: 100% !important;
    height: 170px !important;
  }
  .project-type-arrow {
    justify-self: start;
  }
}

@media (min-width: 43.75rem) {
  .project-type-card {
    padding-block: 1.25rem !important;
  }
  .project-type-image,
  .project-type-copy,
  .project-type-arrow {
    transform: translateY(0);
  }
}

/* Standalone service detail pages. */
.service-page-hero {
  padding-block: clamp(4.25rem, 7vw, 7rem);
  background: #eef6fb;
  border-bottom: 1px solid #d4e2eb;
}
.service-page-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, .72fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.service-page-hero h1 {
  max-width: 820px;
  margin: 0;
  color: #071a2f;
  font-size: clamp(2.55rem, 5.2vw, 4.8rem);
  line-height: .98;
  letter-spacing: -.055em;
}
.service-page-hero p:not(.eyebrow) {
  max-width: 680px;
  margin: 1.35rem 0 1.9rem;
  color: #345064;
  font-size: clamp(1.04rem, 1.45vw, 1.22rem);
  line-height: 1.65;
}
.service-page-hero img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid #cbdde8;
  box-shadow: 0 18px 48px rgba(12, 42, 64, .14);
}
.service-page-section {
  padding-block: clamp(4.25rem, 7vw, 6.5rem) !important;
  background: #fff;
}
.service-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 340px);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.service-page-prose {
  max-width: 820px;
}
.service-page-prose h2 {
  margin: 2.4rem 0 .9rem;
  color: #071a2f;
  font-size: clamp(1.6rem, 2.5vw, 2.25rem);
  line-height: 1.12;
  letter-spacing: -.03em;
}
.service-page-prose h2:first-child {
  margin-top: 0;
}
.service-page-prose p,
.service-page-prose li {
  color: #3d5061;
}
.service-page-panel {
  position: sticky;
  top: 96px;
  padding: clamp(1.35rem, 2.3vw, 1.85rem);
  border: 1px solid #d6e3ec;
  background: #f4f9fc;
}
.service-page-panel h2 {
  margin: 0 0 1rem;
  color: #071a2f;
  font-size: .9rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.service-page-panel ul {
  margin: 0 0 1.5rem;
  padding-left: 1.1rem;
}
.service-page-panel li + li {
  margin-top: .55rem;
}
.service-page-panel a:not(.btn) {
  color: #0a5e9b;
  font-weight: 700;
}

@media (max-width: 57.49rem) {
  .service-page-hero-grid,
  .service-page-grid {
    grid-template-columns: 1fr;
  }
  .service-page-hero img {
    aspect-ratio: 16 / 10;
  }
  .service-page-panel {
    position: static;
  }
}

/* Final responsive optimization layer: mobile, tablet, desktop. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.container {
  width: min(calc(100% - clamp(1.25rem, 4vw, 3rem)), var(--container-max, 1200px)) !important;
}

img {
  max-width: 100%;
}

@media (min-width: 75rem) {
  .service-directory-grid,
  .project-type-grid {
    gap: 1.35rem !important;
  }

  .service-page-hero-grid {
    grid-template-columns: minmax(0, .95fr) minmax(390px, .72fr) !important;
  }
}

@media (max-width: 74.99rem) and (min-width: 57.5rem) {
  .site-brand {
    width: 255px !important;
    height: 64px !important;
    background-size: contain !important;
  }

  .site-nav a {
    padding-inline: .55rem !important;
    font-size: .88rem;
  }

  .header-phone {
    display: none !important;
  }

  .project-type-card {
    grid-template-columns: 170px minmax(0, 1fr) 2.25rem !important;
    min-height: 190px !important;
  }

  .project-type-image {
    width: 170px !important;
    height: 132px !important;
  }

  .service-page-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr) !important;
  }

  .service-page-grid {
    grid-template-columns: minmax(0, 1fr) 300px !important;
  }
}

@media (max-width: 57.49rem) {
  section,
  .service-page-section,
  .service-directory,
  .about-intro,
  .right-of-way-section,
  .about-projects,
  .resource-library,
  .article-related,
  .contact-section {
    padding-block: clamp(3rem, 9vw, 4.25rem) !important;
  }

  .header-layout {
    min-height: 76px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .site-brand {
    width: clamp(210px, 58vw, 285px) !important;
    height: 58px !important;
    margin-left: 0 !important;
    background-size: contain !important;
    background-position: left center !important;
  }

  .site-nav {
    top: 76px !important;
    max-height: calc(100vh - 76px);
    overflow-y: auto;
  }

  .site-nav a {
    min-height: 48px;
    display: flex !important;
    align-items: center;
  }

  .page-hero,
  .services-hero,
  .about-hero,
  .contact-hero,
  .blog-hero,
  .service-page-hero {
    padding-block: clamp(3.5rem, 11vw, 5rem) !important;
  }

  .page-hero h1,
  .service-page-hero h1,
  .hero h1 {
    max-width: 100%;
    font-size: clamp(2.2rem, 10vw, 3.55rem) !important;
    line-height: 1.02 !important;
  }

  .page-hero p,
  .service-page-hero p:not(.eyebrow),
  .hero .lede {
    max-width: 100%;
    font-size: 1rem !important;
  }

  .button-row,
  .page-actions {
    width: 100%;
  }

  .button-row .btn,
  .page-actions .btn {
    flex: 1 1 100%;
    width: 100%;
  }

  .service-directory-grid,
  .project-type-grid,
  .right-of-way-grid,
  .about-project-grid,
  .featured-resource-grid,
  .article-related-grid,
  .related-guide-grid,
  .official-card-grid,
  .resource-card-grid,
  .services-process-grid,
  .services-note-grid,
  .contact-grid {
    grid-template-columns: 1fr !important;
  }

  .service-directory-card,
  .service-directory-card--wide {
    min-height: 0 !important;
  }

  .service-directory-card .service-image,
  .service-directory-card--wide .service-image {
    height: clamp(180px, 52vw, 260px) !important;
  }

  .project-type-card {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
    padding: 1rem !important;
  }

  .project-type-image {
    width: 100% !important;
    height: clamp(190px, 56vw, 280px) !important;
  }

  .project-type-copy em {
    font-size: .92rem;
  }

  .service-page-hero-grid,
  .service-page-grid,
  .article-body-section .article-layout {
    grid-template-columns: 1fr !important;
    gap: 1.75rem !important;
  }

  .service-page-hero img {
    aspect-ratio: 16 / 10 !important;
  }

  .service-page-panel,
  .article-sidebar {
    position: static !important;
  }

  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 1.75rem !important;
  }
}

@media (max-width: 30rem) {
  .container {
    width: min(calc(100% - 1.25rem), var(--container-max, 1200px)) !important;
  }

  .site-brand {
    width: clamp(185px, 64vw, 235px) !important;
    height: 52px !important;
  }

  .nav-toggle {
    width: 42px !important;
    height: 42px !important;
  }

  .section-head-row {
    display: grid !important;
    gap: 1rem;
    align-items: start !important;
  }

  .project-type-image,
  .service-directory-card .service-image,
  .service-page-hero img {
    height: clamp(170px, 58vw, 230px) !important;
  }

  .footer-bottom {
    align-items: flex-start !important;
    gap: 1rem;
  }
}

/* Services dropdown navigation. */
.site-nav .nav-dropdown {
  position: relative;
}

.site-nav .nav-dropdown > a::after {
  content: "▾";
  display: inline-block;
  margin-left: .38rem;
  font-size: .7em;
  line-height: 1;
  transform: translateY(-1px);
}

.site-nav .nav-dropdown-menu {
  list-style: none;
  margin: 0;
  padding: .55rem;
}

.site-nav .nav-dropdown-menu a {
  text-decoration: none;
}

@media (min-width: 57.5rem) {
  .site-nav .nav-dropdown-menu {
    position: absolute;
    top: calc(100% + .5rem);
    left: 50%;
    z-index: 80;
    min-width: 310px;
    display: grid !important;
    gap: .15rem;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, .35rem);
    border: 1px solid #d8e4ec;
    background: #fff;
    box-shadow: 0 22px 55px rgba(9, 31, 51, .16);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  }

  .site-nav .nav-dropdown:hover .nav-dropdown-menu,
  .site-nav .nav-dropdown:focus-within .nav-dropdown-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
  }

  .site-nav .nav-dropdown-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -.65rem;
    height: .65rem;
  }

  .site-nav .nav-dropdown-menu a {
    padding: .72rem .85rem !important;
    color: #183149 !important;
    border-radius: 2px;
    font-size: .9rem;
    line-height: 1.25;
  }

  .site-nav .nav-dropdown-menu a:hover,
  .site-nav .nav-dropdown-menu a:focus-visible {
    color: #005da8 !important;
    background: #eef7fd !important;
  }
}

@media (max-width: 57.49rem) {
  .site-nav .nav-dropdown-menu {
    display: grid !important;
    gap: .15rem;
    margin: .2rem .25rem .55rem .85rem;
    padding: .35rem;
    border-left: 2px solid #0a72bd;
    background: #f4f9fc;
  }

  .site-nav .nav-dropdown-menu a {
    min-height: 42px;
    padding: .56rem .75rem !important;
    color: #17324a !important;
    font-size: .92rem;
  }

  .site-nav .nav-dropdown-menu a:hover,
  .site-nav .nav-dropdown-menu a:focus-visible {
    color: #005da8 !important;
    background: #e6f2fa !important;
  }
}

/* Contact details in footer and contact page. */
.site-footer .footer-contact {
  margin-top: 1.15rem;
  display: grid;
  gap: .45rem;
}

.site-footer .footer-contact address,
.contact-panel address {
  font-style: normal;
  line-height: 1.55;
}

.site-footer .footer-contact a {
  word-break: break-word;
}

.contact-panel address {
  color: inherit;
}
