/* OpCo homepage drawing (site-engine/plan_art.py). Copied into each site by site-engine/apply_plan_art.py — edit HERE. */
.pf{background:var(--soft);padding:var(--sec) 0}
.pf-in{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.5fr);gap:clamp(28px,4.5vw,72px);align-items:center}
.pf-kick{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--kelly-ink);font-weight:600;margin-bottom:14px}
.pf h2{margin:0 0 1.2rem;font-size:clamp(2.3rem,3.4vw,3.5rem);line-height:1.04;font-weight:520;letter-spacing:-.015em;color:var(--ink)}
.pf p{color:var(--muted);font-size:clamp(1.02rem,1.2vw,1.15rem);line-height:1.7;max-width:46ch}
.pf-nums{display:flex;gap:clamp(28px,4vw,48px);margin-top:30px}
.pf-nums b{display:block;font-family:var(--serif,var(--display,inherit));font-size:clamp(2.2rem,3.2vw,2.9rem);line-height:1;color:var(--ink);font-weight:500}
.pf-nums span{display:block;margin-top:6px;color:var(--muted);font-size:.9rem}
.pf-art{margin:0}
.pa{display:block;width:100%;height:auto}
.pa-cap{margin-top:12px;font-family:var(--serif,var(--display,inherit));font-style:italic;font-size:.95rem;color:var(--muted)}
@media(max-width:860px){.pf-in{grid-template-columns:1fr}.pf-art{order:2}}
/* a row of studies (Work page) */
.pa-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,36px);margin-top:clamp(24px,3vw,40px)}
.pa-strip figure{margin:0}
.pf-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:end}
.pf-head p{margin:0}
@media(max-width:860px){.pa-strip{grid-template-columns:1fr;max-width:460px}.pf-head{grid-template-columns:1fr}}
/* a study in place of a photo (service pages) */
.svc-incl .incl-im.pa-wrap{background:var(--soft)}
/* the drawing draws itself (js/plan-art.js arms it; without JS or with reduced motion it is simply finished) */
.pa .ln{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.45,.05,.3,1)}
.pa-armed .ln{stroke-dasharray:1;stroke-dashoffset:1}
.pa-armed.go .ln{stroke-dashoffset:0}
.pa-armed .ws{opacity:0;transform:scale(.93);transform-box:fill-box;transform-origin:50% 50%;transition:opacity 1.2s ease,transform 1.6s cubic-bezier(.2,.7,.3,1)}
.pa-armed.go .ws{opacity:1;transform:none}
.pa-armed .hz{opacity:0;transition:opacity .9s ease}
.pa-armed.go .hz{opacity:1}
.pa-armed .fl{transform:scale(0);transform-box:fill-box;transform-origin:50% 50%;transition:transform .55s cubic-bezier(.2,.8,.3,1)}
.pa-armed.go .fl{transform:none}
/* maintenance drawings: lawns mowed pass by pass, sprinklers bursting on */
.pa-armed .mw{transform:scaleY(0);transform-box:fill-box;transition:transform .5s cubic-bezier(.4,.1,.4,1)}
.pa-armed.go .mw{transform:none}
/* a spray bursts on, runs, then shuts off to a faint coverage outline (the finished plan stays green) */
.pa .sp{opacity:.22}
.pa-armed .sp{opacity:0;transform:scale(0);transform-box:view-box}
.pa-armed.go .sp{animation:paSpray 2.4s cubic-bezier(.2,.8,.3,1) both}
@keyframes paSpray{0%{opacity:0;transform:scale(0)}22%{opacity:1;transform:scale(1.04)}30%{transform:scale(1)}62%{opacity:1}100%{opacity:.22;transform:scale(1)}}
