/* JFC live design applied to every draft content page. Text and interactions unchanged.
   Source: public site.css + overrides.css, source commit 4d821e9c63c99ea6a456168a54b15571e46981b1. */
:root{--yellow:#46d9db;--black:#0b0c0c;--line:#2b2d2d;--white:#f5f5f1;--jfc-copy:rgba(255,255,255,.72);--jfc-font-body:"Manrope",Arial,sans-serif;--jfc-font-heading:"Barlow Condensed",Arial,sans-serif}
body{background:var(--black);color:var(--white);font:16px/1.55 var(--jfc-font-body)}
.wrap,.container{width:min(1180px,calc(100% - 48px))}
p,.muted,.lead,.section-intro,.large-copy{color:var(--jfc-copy)}
p{line-height:1.82}strong{color:var(--white)}
h1,h2,h3{font-family:var(--jfc-font-heading);font-weight:900;color:var(--white);letter-spacing:-.02em}
h1,h2{text-transform:uppercase}
.page-head h1,.municipal-hero h1{font:900 clamp(3.4rem,6.2vw,6.4rem)/.87 var(--jfc-font-heading);letter-spacing:-.02em;margin:0 0 28px;overflow-wrap:normal}
h2{font:900 clamp(3rem,4.15vw,4.5rem)/.88 var(--jfc-font-heading);letter-spacing:-.025em;margin-bottom:28px}
h3,.tile h3,.case-info h3,.news h3,.steps h3,.scope-grid h3{font-family:var(--jfc-font-heading);font-weight:800;letter-spacing:-.01em;line-height:1.05}
h3{font-size:24px}.content h2{font-size:clamp(2rem,3.3vw,3rem);line-height:.92}.content p{font-size:15px;line-height:1.82}
.page-head p,.lead,.section-intro{font-size:15px;line-height:1.82}
em,.glow{color:var(--yellow);font-style:normal;text-shadow:none}
/* Live site glow: same radial gradient, blur and extent as About / Opening. */
.page-head>div,.section-heading{position:relative;isolation:isolate}
.page-head>div::before,.section-heading::before{content:"";position:absolute;z-index:-1;top:50%;left:0;width:clamp(340px,38vw,520px);height:calc(100% + 150px);background:radial-gradient(ellipse at 34% 50%,rgba(70,217,219,.2),rgba(70,217,219,.075) 44%,transparent 76%);filter:blur(14px);transform:translateY(-50%);pointer-events:none;max-width:100%}
/* Existing generic sections do not have heading wrappers; put the same glow on the heading box. */
.section>h2,.cta h2{position:relative;isolation:isolate}
.section>h2::before,.cta h2::before{content:"";position:absolute;z-index:-1;top:50%;left:0;width:clamp(340px,38vw,520px);height:calc(100% + 120px);background:radial-gradient(ellipse at 34% 50%,rgba(70,217,219,.18),rgba(70,217,219,.065) 44%,transparent 76%);filter:blur(14px);transform:translateY(-50%);pointer-events:none;max-width:100%}
.eyebrow,.tile .num,.scope-grid b,.steps b,.step::before,.arrow{color:var(--yellow);font-family:var(--jfc-font-heading);font-weight:800;letter-spacing:.08em}
.eyebrow{font-size:12px}.step::before{font-size:30px}.steps b,.scope-grid b{font-size:29px;line-height:1}
.section,.block{border-color:var(--line);padding-top:65px;padding-bottom:65px}
.intro>div:last-child,.split>div{border:0;border-left:1px solid transparent;border-image:linear-gradient(180deg,transparent,rgba(70,217,219,.78),transparent) 1}
.stats,.proof-strip{border-color:rgba(70,217,219,.45)}
.stats strong,.proof-strip strong{font-family:var(--jfc-font-heading);font-weight:900;color:var(--yellow);text-shadow:none;letter-spacing:-.04em}
.proof-strip strong{font-size:64px}.stats span,.proof-strip span{font-family:var(--jfc-font-heading);color:var(--white);font-size:15px;font-weight:800;letter-spacing:.04em}
/* The public site's outlined and filled CTA styles, applied to existing buttons. */
.btn,.button,.related a{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;border:1px solid var(--yellow);background:var(--yellow);color:#0c0d0d;font:800 13px/1 var(--jfc-font-heading);text-transform:uppercase;letter-spacing:normal;border-radius:0;box-shadow:none;transition:color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}
.btn.ghost,.button.secondary,.related a{background:transparent;color:var(--white);border-color:#ffffff9c}
.btn:hover,.button:hover{background:#fff;border-color:#fff;color:#0c0d0d;box-shadow:0 0 24px rgba(70,217,219,.22);transform:translateY(-2px)}
.btn.ghost:hover,.button.secondary:hover,.related a:hover{background:rgba(70,217,219,.08);border-color:var(--yellow);color:#fff;box-shadow:0 0 24px rgba(70,217,219,.14)}
.text-link,.source-link{color:var(--yellow);border-color:rgba(70,217,219,.45);font-family:var(--jfc-font-heading);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.text-link:hover,.source-link:hover{color:#fff;border-color:var(--yellow)}
a:hover{color:var(--yellow)}
header,.bar{background:#090a0af5;border-color:rgba(255,255,255,.12)}
.nav{gap:28px}.nav .logo img{filter:brightness(1);transition:filter .24s ease}.nav .logo:hover img,.nav .logo:focus-visible img{filter:brightness(1.25);transform:none}
.links,.nav nav{font:800 15px/1 var(--jfc-font-heading);letter-spacing:.075em;text-transform:uppercase;gap:8px}
.links a,.nav nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;color:rgba(255,255,255,.8);border-radius:6px;transition:color .2s ease,background-color .2s ease,text-shadow .2s ease,box-shadow .2s ease}
.links a[aria-current=page]{color:var(--yellow);text-shadow:none}
.links a:hover,.links a:focus-visible,.nav nav a:hover,.nav nav a:focus-visible{color:#fff;background:radial-gradient(ellipse at center,rgba(35,145,255,.24),rgba(35,145,255,.06) 75%);text-shadow:0 0 8px rgba(75,180,255,.95),0 0 22px rgba(35,145,255,.7);box-shadow:inset 0 0 22px rgba(35,145,255,.15),0 0 16px rgba(35,145,255,.14)}
.nav-cta{color:var(--yellow)}.menu{font-family:var(--jfc-font-heading);font-weight:800;border-color:rgba(255,255,255,.38);border-radius:0}
.tile,.step,.steps article,.scope-grid article,.news,.faq details{border-color:var(--line)}
.tile h3{font-size:24px}.tile p,.scope-grid p,.steps p,.news p,.case-info p{font-size:14px;line-height:1.75}
.scope-grid article{background:#101212;padding:26px 24px 24px;transition:background-color .22s ease,transform .22s ease}
.scope-grid article:hover{background:#151919;transform:translateY(-4px)}
/* Live reference cards: dark surfaces, cut corner and identical quiet image treatment. */
.case{border:0;background:#0a0c0c;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.case-image img,.project img{filter:saturate(.7) contrast(1.04) brightness(.8);transition:filter .3s ease,transform .3s ease}
.case-image:hover img,.project:hover img{filter:saturate(.94) contrast(1.02) brightness(.96)}
.case-info h3{font-size:clamp(1.55rem,2vw,2rem)}.case-image span{background:#090a0add;color:var(--white);border-color:rgba(255,255,255,.38);font-family:var(--jfc-font-heading);font-size:12px}
.project{border-color:rgba(255,255,255,.18);background:#0a0c0c}
.project:hover{border-color:var(--yellow);box-shadow:0 0 20px rgba(70,217,219,.12)}
.voice,.voice.context,.contact-card,.review-note{background:#101212;border-color:rgba(255,255,255,.18);border-radius:0;box-shadow:none}
.voice blockquote{font:800 clamp(1.9rem,3vw,2.8rem)/1.15 var(--jfc-font-heading);color:var(--white)}
.review-note{border-left-color:var(--yellow);color:rgba(255,255,255,.7)}.review-note b{color:var(--white)}
.certificate{border-color:var(--line)}.certificate>img{padding:9px;background:#0b1010;border:1px solid rgba(70,217,219,.75);box-shadow:0 0 34px rgba(70,217,219,.14)}
.video-layout video,.video{background:#050606;border:1px solid #303232;box-shadow:0 24px 65px rgba(0,0,0,.34)}
.faq summary{font-family:var(--jfc-font-body);font-size:15px;line-height:1.6;font-weight:700;color:var(--white)}.faq summary span{color:var(--yellow)}.faq p{font-size:14px;line-height:1.75}
.crumb,.news-meta,.caption,.tech-layout figcaption,.gallery figcaption{color:rgba(255,255,255,.58)}.crumb a,.source-note a{color:var(--yellow)}
.cta{background:radial-gradient(ellipse at 34% 50%,rgba(70,217,219,.12),transparent 76%)}
.footer{border-color:rgba(255,255,255,.12);font-family:var(--jfc-font-body);color:rgba(255,255,255,.7)}.footer p,.footer a{color:rgba(255,255,255,.7);font-size:13px;line-height:1.85}.footer a:hover{color:var(--yellow);text-shadow:0 0 14px rgba(70,217,219,.28)}
.dialog{background:#0b0c0c}.dialog button{background:#0b0c0c;border:1px solid rgba(255,255,255,.38);color:var(--white)}.dialog button:hover{border-color:var(--yellow);color:var(--yellow)}
.review,.draft-status,.draft-banner{background:#090a0af5;border-color:rgba(70,217,219,.45);color:rgba(255,255,255,.7)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:var(--yellow)}
@media(max-width:1050px){.links,.nav nav{font-size:13px;letter-spacing:.04em;gap:4px}.links a,.nav nav a{padding-inline:6px}.nav{gap:16px}.proof-strip strong{font-size:52px}}
@media(max-width:740px){.wrap,.container{width:min(1180px,calc(100% - 36px))}.page-head h1,.municipal-hero h1{font-size:clamp(3rem,12vw,4.8rem);line-height:.9}h2{font-size:clamp(2.45rem,10vw,3.55rem);line-height:.9}.section,.block{padding:50px 0}.page-head>div::before,.section-heading::before,.section>h2::before,.cta h2::before{width:100%;height:calc(100% + 80px);opacity:.88}.links,.nav nav{background:#0b0c0cf5;font-size:15px;gap:8px}.links a,.nav nav a{justify-content:flex-start;width:100%;min-height:44px;padding:0 10px}.scope-grid article{padding:22px 18px}.scope-grid h3{font-size:21px}.proof-strip strong{font-size:52px}.proof-strip span{font-size:14px}.content p,.page-head p{font-size:14px;line-height:1.75}.stats span{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}
