/* Compass Lilburn Water Damage Restoration: "Locate marks".
   Utility locate paint and wire flags: dash lines, stakes, coded dots. Overpass 700 + Gelasio. */
@font-face{font-family:"Overpass";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/overpass-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Gelasio";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/gelasio-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Gelasio";font-weight:400;font-style:italic;font-display:swap;src:url(fonts/gelasio-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Gelasio";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/gelasio-latin-700-normal.woff2) format("woff2")}

:root{
  --paper:#f6f5f1;--pave:#ebe9e2;--hair:#d6d3c9;--ink:#14181d;--ink2:#4a5159;--link:#0b5aa6;--linkn:#9cc8f3;
  --yellow:#f6c500;--red:#d4382c;--green:#2e9a5b;--blue:#2b7fd6;--pbl:#cfe3f8;--pgr:#cdebd9;--prd:#f6cfca;
  --cut:#cfd5db;--dim:#aeb6bf;--wrapw:1180px;--gut:24px;--strip:38px;
  --disp:"Overpass","Arial Narrow",Arial,sans-serif;--body:"Gelasio",Georgia,"Times New Roman",serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body.lf-body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.65 var(--body);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--link);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2.5px}
:focus-visible{outline:3px solid var(--link);outline-offset:3px}
.lf-night :focus-visible,.lf-strip :focus-visible,.lf-foot :focus-visible,.lf-dock :focus-visible{outline-color:#fff}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
.lf-skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--yellow);color:var(--ink);font:700 15px var(--disp);padding:10px 16px}
.lf-skip:focus{left:8px}
.lf-wrap{max-width:var(--wrapw);margin:0 auto;padding:0 var(--gut)}

/* ---------- paint dots ---------- */
.lf-dot{display:inline-block;flex:none;width:.78em;height:.78em;border-radius:52% 46% 54% 48% / 48% 54% 46% 52%;background:#8b939c;box-shadow:inset 0 0 0 1.5px rgba(20,24,29,.3)}
.lf-dot-r{background:var(--red)}.lf-dot-y{background:var(--yellow)}.lf-dot-b{background:var(--blue)}.lf-dot-g{background:var(--green)}
.lf-dot-k{background:#fff;box-shadow:inset 0 0 0 3px var(--ink)}

/* ---------- call flag ---------- */
.lf-body a.lf-call,.lf-body a.lf-call:visited{display:inline-flex;align-items:center;gap:.55em;background:var(--yellow);color:var(--ink);font:700 1rem/1.1 var(--disp);text-decoration:none;
  padding:.8em 1.7em .8em 1.15em;clip-path:polygon(0 0,100% 0,calc(100% - .75em) 50%,100% 100%,0 100%);white-space:nowrap}
.lf-body a.lf-call span{font-size:.72em;letter-spacing:.14em;text-transform:uppercase}
.lf-body a.lf-call b{font-weight:700;font-size:1.12em;letter-spacing:.01em}
.lf-body a.lf-call:hover,.lf-body a.lf-call:active{background:#ffd93d;color:var(--ink);text-decoration:none}
.lf-body a.lf-call:focus-visible{clip-path:none}
.lf-body a.lf-call-xl{font-size:1.14rem;padding:1em 2.1em 1em 1.3em}
.lf-body a.lf-call-bar{font-size:.98rem;padding:.7em 1.6em .7em 1em}
.lf-body a.lf-call-wide{display:flex;justify-content:center;width:100%;font-size:1.12rem;padding:.85em 1.4em;clip-path:none}
.lf-btn,.lf-body a.lf-btn{display:inline-flex;align-items:center;font:700 1rem/1.1 var(--disp);color:var(--ink);text-decoration:none;border:2.5px solid var(--ink);padding:.9em 1.4em;background:transparent}
.lf-btn:hover{background:var(--ink);color:#fff}
.lf-night .lf-btn,.lf-night a.lf-btn{color:#fff;border-color:#fff}
.lf-night a.lf-btn:hover{background:#fff;color:var(--ink)}

/* ---------- header ---------- */
.lf-top{position:relative;z-index:50}
.lf-strip{background:var(--ink);color:var(--cut);height:var(--strip);display:flex;align-items:center}
.lf-strip-in{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%}
.lf-strip-a{font:700 .74rem/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lf-sec-nav{display:flex;gap:22px;flex:none}
.lf-sec-nav a{font:700 .74rem/1 var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--cut);text-decoration:none;padding:6px 0;border-bottom:2px dashed transparent}
.lf-sec-nav a:hover,.lf-sec-nav a[aria-current],.lf-sec-nav a.is-in{color:#fff;border-bottom-color:var(--yellow)}
.lf-bar{background:var(--paper);border-bottom:3px solid var(--ink);position:relative}
.lf-bar-in{display:flex;align-items:center;gap:28px;min-height:76px}
.lf-brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;margin-right:auto}
.lf-mark{width:40px;height:40px;flex:none;color:var(--ink)}
.lf-bn{display:flex;flex-direction:column;line-height:1.1}
.lf-bn b{font:700 1.28rem/1.05 var(--disp);letter-spacing:-.005em}
.lf-bn span{font:italic 400 .88rem/1.2 var(--body);color:var(--ink2);margin-top:3px}
.lf-main{display:flex;gap:6px}
.lf-main a{font:700 1rem/1 var(--disp);color:var(--ink);text-decoration:none;padding:12px 14px;border-bottom:4px dashed transparent}
.lf-main a:hover{border-bottom-color:var(--ink)}
.lf-main a[aria-current],.lf-main a.is-in{border-bottom:4px solid var(--ink)}
.lf-menu{display:none}
.lf-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;font:700 1rem/1 var(--disp);min-height:46px;padding:0 4px 0 12px;border:2.5px solid var(--ink);background:var(--paper)}
.lf-menu summary::-webkit-details-marker{display:none}
.lf-menu summary::after{content:"";width:22px;height:14px;margin-right:8px;background:repeating-linear-gradient(to bottom,var(--ink) 0 3px,transparent 3px 5.5px)}
.lf-menu[open] summary{background:var(--ink);color:#fff}
.lf-menu[open] summary::after{background:repeating-linear-gradient(to bottom,#fff 0 3px,transparent 3px 5.5px)}
.lf-panel{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:3px solid var(--ink);padding:8px var(--gut) 20px;box-shadow:0 18px 30px rgba(20,24,29,.25);z-index:70}
.lf-panel nav{display:flex;flex-direction:column}
.lf-panel a{font:700 1.12rem/1.2 var(--disp);color:var(--ink);text-decoration:none;padding:15px 2px;border-bottom:2.5px dashed var(--hair)}
.lf-panel-a{font:700 .74rem/1.4 var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin-top:16px}
@media (min-width:900px){
  .lf-top{position:sticky;top:calc(var(--strip) * -1);z-index:60}
}
@media (max-width:899px){
  .lf-main,.lf-sec-nav,.lf-body a.lf-call-bar{display:none}
  .lf-menu{display:block}
  .lf-strip-a{font-size:.68rem;letter-spacing:.1em}
  .lf-bar-in{min-height:68px;gap:14px}
  .lf-bn b{font-size:1.12rem}
}
@media (max-width:420px){.lf-bn span{display:none}.lf-mark{width:36px;height:36px}}

/* ---------- section scaffolding and the closing dash rule ---------- */
.lf-blk{position:relative;padding:76px 0 92px;--dash:var(--ink);--flagc:var(--blue)}
.lf-blk::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:repeating-linear-gradient(90deg,var(--dash) 0 22px,transparent 22px 38px)}
.lf-blk::before{content:"";position:absolute;bottom:5px;left:max(var(--gut),calc((100vw - var(--wrapw)) / 2 + var(--gut)));width:19px;height:34px;
  background:linear-gradient(var(--dash),var(--dash)) 0 0/3px 100% no-repeat,linear-gradient(var(--flagc),var(--flagc)) 3px 1px/16px 11px no-repeat}
.lf-wash{background:var(--pave)}
.lf-night{background:var(--ink);color:#e8ebee;--dash:var(--yellow);--flagc:var(--yellow)}
.lf-night a{color:var(--linkn)}
.lf-night .lf-h2,.lf-night .lf-h3{color:#fff}
.lf-night .lf-lede{color:var(--cut)}
.lf-stop,.lf-stop.lf-night{--flagc:var(--red)}
.lf-srcsec{padding:44px 0 62px}
.lf-srcsec::before{display:none}
.lf-rule{height:5px;margin:54px 0;background:repeating-linear-gradient(90deg,var(--ink) 0 22px,transparent 22px 38px);opacity:.9}
@media (max-width:759px){.lf-blk{padding:52px 0 70px}.lf-rule{margin:38px 0}}

/* ---------- type ---------- */
.lf-h1{font:700 clamp(2.2rem,5.6vw,4.35rem)/1.02 var(--disp);letter-spacing:-.014em;margin-bottom:24px;text-wrap:balance}
.lf-h1-p{font-size:clamp(2.05rem,4.3vw,3.25rem);line-height:1.05}
.lf-h1-g{font-size:clamp(1.95rem,3.8vw,2.85rem)}
.lf-em{font:italic 400 1em/1 var(--body);letter-spacing:0;color:var(--link)}
.lf-h2{font:700 clamp(1.7rem,3.1vw,2.45rem)/1.08 var(--disp);letter-spacing:-.01em;margin-bottom:26px;text-wrap:balance}
.lf-h3{font:700 clamp(1.3rem,2vw,1.6rem)/1.15 var(--disp);letter-spacing:-.005em;margin-bottom:12px}
.lf-lede{font:400 clamp(1.1rem,1.6vw,1.3rem)/1.55 var(--body);color:var(--ink2);max-width:58ch;margin-bottom:28px}
.lf-eye{display:flex;align-items:center;gap:10px;font:700 .8rem/1.2 var(--disp);letter-spacing:.15em;text-transform:uppercase;color:var(--ink2);margin-bottom:16px}
.lf-eye::before{content:"";width:.9em;height:.9em;border-radius:52% 46% 54% 48%/48% 54% 46% 52%;background:var(--blue);flex:none}
.lf-prose p{margin-bottom:1.1em;max-width:64ch}
.lf-prose p:last-child{margin-bottom:0}
.lf-prose .lf-lede{max-width:58ch}
.lf-trail{display:flex;flex-wrap:wrap;align-items:center;font:700 .78rem/1.2 var(--disp);letter-spacing:.08em;text-transform:uppercase;margin-bottom:26px;color:var(--ink2)}
.lf-trail a{color:var(--ink2);text-decoration:none;padding:6px 0}
.lf-trail a:hover{color:var(--ink);text-decoration:underline}
.lf-trail>*+*::before{content:"/";margin:0 9px;color:var(--ink2)}
.lf-acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.lf-more,.lf-body a.lf-more{display:inline-block;font:700 .82rem/1 var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:6px 0 7px;border-bottom:3px dashed var(--ink);margin-top:6px}
.lf-more:hover{border-bottom-style:solid}
.lf-night a.lf-more{color:#fff;border-bottom-color:var(--yellow)}

/* ---------- photo frames: the marked-out excavation ---------- */
.lf-ph,.lf-plot{position:relative}
.lf-plot::before{content:"";position:absolute;inset:12px -12px -12px 12px;border:3px dashed var(--ink);pointer-events:none;z-index:0}
.lf-plot img{position:relative;z-index:1;width:100%;object-fit:cover;background:var(--hair)}
.lf-night .lf-plot::before{border-color:var(--yellow)}
@media (max-width:759px){.lf-plot::before{inset:9px -9px -9px 9px;border-width:2.5px}}

/* ---------- flags planted on a painted line ---------- */
.lf-flag{display:inline-block;font:700 .9rem/1 var(--disp);color:var(--ink);text-decoration:none;background:var(--yellow);padding:9px 20px 9px 12px;clip-path:polygon(0 0,100% 0,calc(100% - 9px) 50%,100% 100%,0 100%)}
.lf-flag:hover{background:#ffd93d;color:var(--ink);text-decoration:underline}
.lf-flag:focus-visible{clip-path:none}
.lf-flag-sm{font-size:.82rem;padding:7px 18px 7px 10px;margin-bottom:12px;border-left:3px solid var(--ink)}
.lf-roll{display:flex;flex-wrap:wrap;margin:30px 0 0}
.lf-roll li{border-left:3px solid var(--ink);padding:0 16px 14px 0;background:repeating-linear-gradient(90deg,var(--ink) 0 11px,transparent 11px 19px) left bottom/100% 4px no-repeat}
.lf-roll .lf-flag{display:block}
.lf-roll li:nth-child(4n+2) .lf-flag{background:var(--pbl)}
.lf-roll li:nth-child(4n+3) .lf-flag{background:var(--pgr)}
.lf-roll li:nth-child(4n+4) .lf-flag{background:var(--prd)}
.lf-roll li:nth-child(4n+2) .lf-flag:hover{background:#dcebfa}
.lf-roll li:nth-child(4n+3) .lf-flag:hover{background:#dbf1e4}
.lf-roll li:nth-child(4n+4) .lf-flag:hover{background:#fbdcd8}
.lf-roll-c{margin-top:6px}

/* ---------- home hero ---------- */
.lf-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);background:var(--paper);border-bottom:5px solid var(--ink)}
.lf-hero-copy{padding:76px 56px 70px max(var(--gut),calc((100vw - var(--wrapw)) / 2 + var(--gut)))}
.lf-hero .lf-h1{max-width:12.5ch}
.lf-hero .lf-lede{margin-bottom:32px}
.lf-readl{margin-top:20px;font:italic 400 1.02rem/1.4 var(--body)}
.lf-where{font:700 .76rem/1.4 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-top:26px}
.lf-hero-ph{position:relative;min-height:640px;background:var(--hair)}
.lf-hero-ph.lf-plot::before{inset:0 auto 0 0;width:8px;border:0;background:repeating-linear-gradient(to bottom,var(--yellow) 0 22px,transparent 22px 38px);z-index:2}
.lf-hero-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.lf-scope{background:var(--ink);padding:20px 0}
.lf-scope ul{display:flex;flex-wrap:wrap;gap:12px 34px}
.lf-scope li{display:flex;align-items:center;gap:10px;font:700 .84rem/1.2 var(--disp);letter-spacing:.09em;text-transform:uppercase;color:#e8ebee}
@media (max-width:959px){
  .lf-hero{grid-template-columns:minmax(0,1fr)}
  .lf-hero-copy{padding:48px var(--gut) 52px}
  .lf-hero .lf-h1{max-width:none}
  .lf-hero-ph{min-height:0;aspect-ratio:4/3}
  .lf-hero-ph.lf-plot::before{inset:0 auto 0 0}
  .lf-body a.lf-call-xl{width:100%;justify-content:center}
  .lf-acts .lf-btn{width:100%;justify-content:center}
}

/* ---------- home bands ---------- */
.lf-after-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:76px;align-items:center}
.lf-after-ph img{aspect-ratio:4/5;height:auto}
.lf-path{counter-reset:s}
.lf-path li{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:18px;padding-bottom:26px}
.lf-path li:not(:last-child)::after{content:"";position:absolute;left:21.5px;top:50px;bottom:4px;border-left:3px dashed var(--ink)}
.lf-num{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--yellow);font:700 1.15rem/1 var(--disp)}
.lf-path p{padding-top:8px;max-width:56ch}
.lf-area-ph{margin-bottom:60px}
.lf-area-ph img{aspect-ratio:21/9;height:auto}
.lf-towns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.lf-town{border-top:3px dashed var(--ink);padding-top:22px}
.lf-town p{font-size:1.02rem;line-height:1.62}
.lf-town .lf-card-t{margin-bottom:8px}
.lf-quick-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:60px}
.lf-dl>div{padding:22px 0;border-bottom:2.5px dashed rgba(255,255,255,.28)}
.lf-dl>div:first-child{padding-top:0}
.lf-dl>div:last-child{border-bottom:0}
.lf-dl dt{display:flex;gap:12px;align-items:baseline;font:700 1.2rem/1.25 var(--disp);color:#fff;margin-bottom:8px}
.lf-dl dt::before{content:"";width:.7em;height:.7em;flex:none;border-radius:52% 46% 54% 48%/48% 54% 46% 52%;background:var(--blue);transform:translateY(.02em)}
.lf-dl dd{padding-left:calc(.7em + 12px);color:var(--cut);max-width:60ch}
.lf-dl-g>div{border-bottom-color:var(--hair)}
.lf-dl-g dt{color:var(--ink)}
.lf-dl-g dd{color:var(--ink2)}
.lf-close-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:start}
.lf-about .lf-plot{margin-bottom:52px}
.lf-about .lf-plot img{aspect-ratio:16/9;height:auto}
.lf-door{background:var(--ink);color:#e8ebee;padding:42px 40px 44px;position:relative}
.lf-door .lf-h2{color:#fff;font-size:clamp(1.55rem,2.6vw,2.05rem)}
.lf-door a{color:var(--linkn)}
.lf-door .lf-call{margin-top:26px}
.lf-door-a{font:700 .76rem/1.5 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:22px}
@media (max-width:899px){
  .lf-after-grid,.lf-quick-grid,.lf-close-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .lf-after-ph img{aspect-ratio:3/2}
  .lf-area-ph{margin-bottom:44px}
  .lf-area-ph img{aspect-ratio:16/9}
  .lf-about .lf-plot{margin-bottom:40px}
}
.lf-door::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:linear-gradient(90deg,var(--red) 0 22%,transparent 22% 26%,var(--yellow) 26% 48%,transparent 48% 52%,var(--blue) 52% 74%,transparent 74% 78%,var(--green) 78% 100%)}

/* ---------- service cards ---------- */
.lf-svcs-h{max-width:720px;margin-bottom:56px}
.lf-pair{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:start}
.lf-pair-r{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
.lf-pair-r .lf-pair-txt{order:2}
.lf-pair-txt p{color:var(--ink2);max-width:34ch}
.lf-pair-txt .lf-h3{margin-top:4px}
.lf-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.lf-card-ph{display:block;position:relative}
.lf-card-ph img{aspect-ratio:3/2;height:auto;object-fit:cover;width:100%;background:var(--hair)}
.lf-card-ph::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:6px;background:repeating-linear-gradient(90deg,var(--yellow) 0 20px,transparent 20px 34px)}
.lf-card-t{font:700 1.28rem/1.18 var(--disp);margin:18px 0 8px}
.lf-card-t a{color:var(--ink);text-decoration:none}
.lf-card-t a:hover{text-decoration:underline;text-decoration-thickness:2.5px}
.lf-card-d{font-size:1rem;line-height:1.58;color:var(--ink2);max-width:46ch}
@media (max-width:959px){
  .lf-pair,.lf-pair-r{grid-template-columns:minmax(0,1fr);gap:24px}
  .lf-pair-r .lf-pair-txt{order:0}
  .lf-pair-txt p{max-width:60ch}
}
@media (max-width:640px){.lf-cards{grid-template-columns:minmax(0,1fr);gap:34px}}

/* ---------- inner page header ---------- */
.lf-phead{padding:56px 0 86px;background:var(--paper)}
.lf-phead-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:68px;align-items:center}
.lf-phead-ph img{aspect-ratio:5/4;height:auto}
.lf-phead-one{max-width:820px}
@media (max-width:899px){.lf-phead-grid{grid-template-columns:minmax(0,1fr);gap:46px}.lf-phead{padding:34px 0 66px}.lf-phead-ph{order:2}.lf-phead-ph img{aspect-ratio:3/2}}

/* ---------- hubs ---------- */
.lf-grp{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;padding:34px 0 38px;border-top:4px dashed var(--ink)}
.lf-grp:first-child{padding-top:0;border-top:0}
.lf-grp-h p{color:var(--ink2);max-width:34ch}
.lf-grp-h .lf-h2{font-size:clamp(1.5rem,2.4vw,2rem)}
.lf-hrow{display:grid;grid-template-columns:minmax(110px,210px) minmax(0,1fr);gap:26px;padding:6px 0 22px;align-items:start}
.lf-hrow-ph{display:block}
.lf-hrow-ph img{aspect-ratio:4/3;height:auto;object-fit:cover;width:100%;background:var(--hair)}
.lf-hrow .lf-card-t{margin-top:0}
@media (max-width:899px){.lf-grp{grid-template-columns:minmax(0,1fr);gap:20px}}
@media (max-width:520px){.lf-hrow{grid-template-columns:104px minmax(0,1fr);gap:16px}.lf-hrow .lf-card-t{font-size:1.08rem}.lf-hrow .lf-card-d{font-size:.94rem}}
.lf-towns-h{grid-template-columns:repeat(3,minmax(0,1fr))}
.lf-town-h .lf-card-t{margin:4px 0 10px}
.lf-gcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}
.lf-gcard .lf-card-ph img{aspect-ratio:16/10}
@media (max-width:899px){.lf-towns,.lf-towns-h{grid-template-columns:minmax(0,1fr);gap:32px}.lf-gcards{grid-template-columns:minmax(0,1fr)}}

/* ---------- service pages ---------- */
.lf-stops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}
.lf-stops li{display:flex;gap:16px;align-items:flex-start;padding:20px 0;border-bottom:2.5px dashed rgba(255,255,255,.26)}
.lf-stops .lf-dot{margin-top:.52em;width:.9rem;height:.9rem}
.lf-stops p{font-size:1.06rem;line-height:1.55;color:#eef0f2}
.lf-nlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 44px}
.lf-nlist li{border-top:3px dashed var(--ink);padding-top:18px}
.lf-nlist p{max-width:56ch}
.lf-side{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:start}
.lf-side .lf-h2{margin-bottom:0}
.lf-q2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}
.lf-q{padding:24px 0 26px;border-top:3px dashed var(--ink)}
.lf-qq{display:flex;gap:12px;align-items:baseline;font:700 1.2rem/1.28 var(--disp);margin-bottom:10px}
.lf-qq::before{content:"";width:.72em;height:.72em;flex:none;border-radius:52% 46% 54% 48%/48% 54% 46% 52%;background:var(--blue)}
.lf-q p:last-child{padding-left:calc(.72em + 12px);color:var(--ink2);max-width:58ch}
.lf-dsteps .lf-wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:start}
.lf-dsteps .lf-h2{margin-bottom:0}
.lf-ptr-in{border:3px solid var(--ink);padding:30px 34px;background:var(--paper);box-shadow:10px 10px 0 var(--yellow);max-width:900px}
.lf-ptr{padding:62px 0 78px}
.lf-pairsec{padding:46px 0 62px}
.lf-pairin{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:center}
.lf-pairin .lf-h3{margin:0}
.lf-callp{padding:60px 0 74px}
.lf-callp-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:center}
.lf-callp-t{font:italic 400 clamp(1.4rem,2.6vw,2rem)/1.35 var(--body);color:#fff;max-width:36ch}
.lf-callp .lf-h2{margin-bottom:14px}
@media (max-width:899px){
  .lf-stops,.lf-nlist,.lf-q2{grid-template-columns:minmax(0,1fr)}
  .lf-side,.lf-dsteps .lf-wrap,.lf-pairin{grid-template-columns:minmax(0,1fr);gap:26px}
  .lf-side .lf-h2{margin-bottom:6px}
  .lf-callp-in{grid-template-columns:minmax(0,1fr);gap:28px}
  .lf-ptr-in{padding:24px 22px;box-shadow:7px 7px 0 var(--yellow)}
}

/* ---------- town pages ---------- */
.lf-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:72px;align-items:center}
.lf-homes .lf-plot img{aspect-ratio:4/3;height:auto}
.lf-nums li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px 0;border-bottom:2.5px dashed rgba(255,255,255,.26)}
.lf-nums li:first-child{padding-top:0}
.lf-nl{color:var(--cut);line-height:1.45}
.lf-nn{font:700 clamp(1.15rem,2.2vw,1.55rem)/1.1 var(--disp);color:#fff;text-align:right;max-width:20ch}
.lf-nums .lf-dot{width:1rem;height:1rem}
@media (max-width:899px){.lf-split{grid-template-columns:minmax(0,1fr);gap:44px}}
@media (max-width:560px){.lf-nums li{grid-template-columns:auto minmax(0,1fr);row-gap:4px}.lf-nn{grid-column:2;text-align:left;max-width:none}}

/* ---------- guides and rules ---------- */
.lf-gbody{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:64px;align-items:start}
.lf-toc{position:sticky;top:112px}
.lf-toc ol{counter-reset:t;border-left:3px dashed var(--ink);padding-left:20px}
.lf-toc li{counter-increment:t;margin-bottom:14px;font:700 .98rem/1.3 var(--disp)}
.lf-toc li::before{content:counter(t,decimal-leading-zero);display:block;font-size:.72rem;letter-spacing:.14em;color:var(--ink2);margin-bottom:2px}
.lf-toc a{display:inline-block;padding:3px 0;color:var(--ink);text-decoration:none}
.lf-toc a:hover{text-decoration:underline}
.lf-gx{background:var(--pave);border-left:8px solid var(--yellow);padding:30px 32px 32px;margin-bottom:56px}
.lf-gx .lf-path li{padding-bottom:18px}
.lf-gsec,.lf-rsec{padding:6px 0 44px;scroll-margin-top:110px}
.lf-gsec+.lf-gsec,.lf-rsec+.lf-rsec{padding-top:44px;border-top:3px dashed var(--ink)}
.lf-gclose{padding:44px 0 6px;border-top:3px dashed var(--ink);scroll-margin-top:110px}
.lf-gclose .lf-call{margin-top:30px}
.lf-rsec .lf-src{margin-top:26px}
.lf-tablesec .lf-h2{max-width:22ch}
.lf-tw{overflow-x:auto;margin-top:8px}
.lf-tbl{width:100%;border-collapse:collapse;background:var(--paper);font-size:1rem;line-height:1.5}
.lf-tbl th,.lf-tbl td{text-align:left;vertical-align:top;padding:16px 18px;border-bottom:2.5px dashed var(--hair)}
.lf-tbl thead th{background:var(--ink);color:#fff;font:700 .8rem/1.2 var(--disp);letter-spacing:.12em;text-transform:uppercase;border-bottom:0}
.lf-tbl tbody th{font:700 1.02rem/1.35 var(--disp);width:22%}
@media (max-width:899px){
  .lf-gbody{grid-template-columns:minmax(0,1fr);gap:34px}
  .lf-toc{position:static}
  .lf-toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
  .lf-gx{padding:24px 20px 26px}
}
@media (max-width:640px){
  .lf-toc ol{grid-template-columns:minmax(0,1fr)}
  .lf-tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .lf-tbl,.lf-tbl tbody,.lf-tbl tr,.lf-tbl th,.lf-tbl td{display:block;width:auto}
  .lf-tbl tr{border:3px solid var(--ink);margin-bottom:18px;background:var(--paper)}
  .lf-tbl tbody th{width:auto;background:var(--ink);color:#fff;padding:12px 16px;border:0}
  .lf-tbl td{padding:12px 16px;border-bottom:2.5px dashed var(--hair)}
  .lf-tbl td:last-child{border-bottom:0}
  .lf-tbl td::before{content:attr(data-l);display:block;font:700 .7rem/1.2 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-bottom:4px}
}

/* ---------- extra pages: timeline and seasons ---------- */
.lf-nodes{max-width:900px}
.lf-node{position:relative;padding-bottom:44px}
.lf-node .lf-h2{font-size:clamp(1.45rem,2.6vw,2rem);margin-bottom:16px}
.lf-line{margin-left:6px;border-left:4px dashed var(--ink)}
.lf-line .lf-node{padding-left:50px}
.lf-line .lf-node::before{content:"";position:absolute;left:-14px;top:5px;width:24px;height:24px;border-radius:52% 46% 54% 48%/48% 54% 46% 52%;background:var(--blue);box-shadow:inset 0 0 0 2px rgba(20,24,29,.35),0 0 0 6px var(--paper)}
.lf-line .lf-node:nth-child(6n+1)::before{background:var(--red)}
.lf-line .lf-node:nth-child(6n+2)::before{background:var(--yellow)}
.lf-line .lf-node:nth-child(6n+5)::before,.lf-line .lf-node:nth-child(6n+6)::before{background:var(--green)}
.lf-seasons{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 64px}
.lf-seasons .lf-node{border-top:3px dashed var(--ink);padding-top:22px}
.lf-seasons .lf-node::before{content:"";display:block;width:34px;height:12px;background:var(--blue);margin-bottom:14px;clip-path:polygon(0 0,100% 0,calc(100% - 7px) 50%,100% 100%,0 100%)}
.lf-seasons .lf-node:nth-child(4n+2)::before{background:var(--yellow)}
.lf-seasons .lf-node:nth-child(4n+3)::before{background:var(--red)}
.lf-seasons .lf-node:nth-child(4n+4)::before{background:var(--green)}
@media (max-width:899px){.lf-seasons{grid-template-columns:minmax(0,1fr)}.lf-line .lf-node{padding-left:34px}}

/* ---------- sources ---------- */
.lf-src{border-top:3px dashed var(--ink);padding-top:16px;max-width:820px}
.lf-src-h{font:700 .76rem/1.2 var(--disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);margin-bottom:8px}
.lf-src ul{display:grid;gap:4px}
.lf-src li{font-size:.95rem;line-height:1.45}
.lf-src-d{font:700 .72rem/1.2 var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin-top:10px}
.lf-night .lf-src{border-top-color:var(--yellow)}

/* ---------- contact and privacy ---------- */
.lf-cgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.lf-cnap address{font-style:normal;font-size:1.3rem;line-height:1.45;margin:6px 0 20px}
.lf-cnap .lf-fh{margin:0;font-size:.82rem;color:var(--ink)}
.lf-bigph{margin:0 0 18px}
.lf-bigph a{font:700 clamp(2rem,4vw,2.9rem)/1.05 var(--disp);color:var(--ink);text-decoration-style:dashed;text-decoration-thickness:3px;text-underline-offset:6px}
.lf-cnote{color:var(--ink2);margin-bottom:24px;max-width:36ch}
.lf-map{position:relative;border:3px solid var(--ink);background:var(--hair);box-shadow:12px 12px 0 var(--yellow)}
.lf-map iframe{display:block;width:100%;height:clamp(320px,38vw,460px);border:0}
.lf-cgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.lf-clist{columns:1}
.lf-clist li{border-bottom:2.5px dashed var(--hair);font:700 1.05rem/1.3 var(--disp)}
.lf-clist a{display:block;padding:12px 0;color:var(--ink);text-decoration:none}
.lf-clist a:hover{text-decoration:underline}
@media (max-width:899px){.lf-cgrid,.lf-cgrid2{grid-template-columns:minmax(0,1fr);gap:44px}.lf-map{box-shadow:8px 8px 0 var(--yellow);margin-right:8px}}
.lf-letter{background:var(--paper)}
.lf-lwrap{max-width:720px;margin:0 auto}
.lf-ldate{font:700 .78rem/1.2 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-bottom:12px}
.lf-lbody .lf-lede{margin-bottom:36px;color:var(--ink)}
.lf-lsec{padding:26px 0;border-top:2.5px dashed var(--hair);scroll-margin-top:110px}
.lf-lsec p{margin-bottom:1em;max-width:62ch}
.lf-lsec .lf-h3{margin-bottom:10px}
.lf-lsec:target{background:linear-gradient(90deg,rgba(246,197,0,.22),transparent 70%)}

/* ---------- footer ---------- */
.lf-foot{background:var(--ink);color:var(--cut);padding:70px 0 0;border-top:6px solid var(--yellow)}
.lf-foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr);gap:48px}
.lf-foot a{color:#e8ebee}
.lf-brand-f,.lf-foot a.lf-brand-f{color:#fff}
.lf-brand-f .lf-mark{color:var(--yellow)}
.lf-brand-f .lf-bn b{color:#fff}
.lf-brand-f .lf-bn span{color:var(--cut)}
.lf-paint{height:8px;width:190px;margin:26px 0 24px;background:linear-gradient(90deg,var(--red) 0 22%,transparent 22% 26%,var(--yellow) 26% 48%,transparent 48% 52%,var(--blue) 52% 74%,transparent 74% 78%,var(--green) 78% 100%)}
.lf-fh{font:700 .74rem/1.2 var(--disp);letter-spacing:.17em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.lf-foot address{font-style:normal;font-size:1.06rem;line-height:1.5;color:#fff}
.lf-foot-call{margin:22px 0 12px;font-size:.98rem;color:var(--cut);max-width:34ch}
.lf-foot-map{margin-top:18px;font:700 .8rem/1.2 var(--disp);letter-spacing:.1em;text-transform:uppercase}
.lf-foot-map a{color:#fff;text-decoration-style:dashed}
.lf-fcol li{margin-bottom:2px;font-size:.98rem;line-height:1.4}
.lf-fcol a{display:inline-block;padding:5px 0;text-decoration:none}
.lf-fcol a:hover{text-decoration:underline;color:#fff}
.lf-foot-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px;margin-top:56px;padding-top:22px;padding-bottom:30px;border-top:2.5px dashed rgba(255,255,255,.26);font-size:.9rem;color:var(--dim)}
.lf-foot-bar p{max-width:none}
.lf-foot-bar a{margin-right:16px;text-decoration:underline}
.lf-foot-bar span{font:700 .72rem/1 var(--disp);letter-spacing:.12em;text-transform:uppercase}
@media (max-width:959px){.lf-foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 36px}.lf-nap{grid-column:1/-1}}
@media (max-width:520px){.lf-foot-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- phone dock ---------- */
.lf-dock{display:none}
@media (max-width:759px){
  .lf-dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--ink);border-top:4px dashed var(--yellow);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
  body.lf-body{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  body{font-size:17px}
  .lf-h2{margin-bottom:20px}
  .lf-door{padding:34px 22px 36px}
  .lf-foot{padding-top:52px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
