/* Base structure shared by all options. Visual identity lives in the option layer below. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.6;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--font-display);color:var(--ink);margin:0 0 .5em;line-height:1.1;text-wrap:balance}
h1{font-size:var(--h1)}
h2{font-size:var(--h2)}
h3{font-size:var(--h3);line-height:1.25}
p{margin:0 0 1em}
.wrap{max-width:1280px;margin-inline:auto;padding-inline:clamp(16px,5vw,64px)}
.prose{max-width:74ch}
.wrap.prose{max-width:1280px}
.wrap.prose>*{max-width:74ch}
.prose p,.lead{max-width:68ch}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 16px}
.skip:focus{left:8px}
.confirm{font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--confirm);background:var(--confirm-bg);padding:1px 6px;border-radius:3px;white-space:nowrap;vertical-align:middle}
.sec{padding-block:clamp(48px,7vw,112px)}
.kicker{font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.lead{font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);line-height:1.6}
.updated{font-size:.875rem;color:var(--muted);margin-top:24px}

/* Header */
.site-head{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--rule)}
.head-row{display:flex;align-items:center;gap:16px;min-height:68px}
.brand img{height:44px;width:auto}
@media (min-width:1100px){.brand img{height:52px}}
.nav{margin-left:auto;order:3}
.menu-btn{min-height:44px;min-width:64px;padding:0 14px;font:inherit;font-weight:600;background:transparent;color:var(--ink);border:1px solid var(--rule-strong);border-radius:var(--radius);cursor:pointer}
.menu-btn:hover{background:var(--hover)}
.nav ul{display:none;list-style:none;margin:0;padding:0}
.menu-open .nav ul{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--rule);padding:8px clamp(16px,5vw,64px) 16px}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 10px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.9375rem}
.nav a:hover{text-decoration:underline}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px}
.head-call{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;background:var(--btn);color:var(--btn-fg);text-decoration:none;font-weight:700;border-radius:var(--radius);white-space:nowrap;font-size:.9375rem}
.head-call:hover{background:var(--btn-hover)}
.head-call .lbl{font-weight:500;opacity:.85}
@media (max-width:420px){.head-call .lbl{display:none}.brand img{height:36px}}
@media (min-width:1100px){
 .menu-btn{display:none}
 .nav{order:2}
 .nav ul{display:flex;gap:2px;position:static}
 .head-call{margin-left:12px;order:3}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;background:var(--btn);color:var(--btn-fg);font:inherit;font-weight:700;text-decoration:none;border:0;border-radius:var(--radius);cursor:pointer;transition:background-color .2s ease-out,transform .15s ease-out}
.btn:hover{background:var(--btn-hover)}
.btn:active{transform:translateY(1px)}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px}
.link-more{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--ink)}
.link-more::after{content:" \2192";margin-left:6px}

/* Grids */
.hero-grid,.ph-grid,.intro-grid,.contact-grid,.area-grid{display:grid;gap:clamp(24px,4vw,64px)}
@media (min-width:900px){
 .hero-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center}
 .ph-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center}
 .intro-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
 .contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
 .area-grid{grid-template-columns:1fr 1fr}
 .area-grid .map{grid-column:1 / -1}
}
.svc-grid{display:grid;gap:clamp(24px,3vw,40px);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.gallery{display:grid;gap:clamp(16px,2vw,32px);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));margin-bottom:24px}
.gallery img,.svc img,.step img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery figure,.step-fig,.fig,.ph-fig{margin:0}
figcaption{font-size:.875rem;color:var(--muted);margin-top:8px;line-height:1.45}
.step-list{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:clamp(24px,3vw,40px);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.qa-list{display:grid;gap:0;max-width:80ch}
.qa{padding-block:20px;border-top:1px solid var(--rule)}
.qa h3{margin-bottom:6px}
.qa p{margin:0;max-width:68ch}
.review{margin:32px 0 0}
.review blockquote{margin:0}
.review figcaption{font-size:.9375rem}
.proof-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media (min-width:768px){.proof-row{grid-template-columns:repeat(4,1fr)}}
.proof p{margin:0;display:flex;flex-direction:column}
.proof .sm{font-size:.875rem;color:var(--muted)}
.crumbs{padding-top:20px;font-size:.875rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.ticks{padding-left:1.2em}
.ticks li{margin-bottom:6px}
.town-list{columns:2;padding-left:1.1em;margin:0 0 16px}
.town-list li{margin-bottom:4px}
.map iframe{width:100%;height:360px;border:1px solid var(--rule);display:block}
.spec{width:100%;border-collapse:collapse;margin-top:24px}
.spec caption{text-align:left;font-size:.875rem;color:var(--muted);margin-bottom:8px}
.spec th,.spec td{text-align:left;padding:14px 12px;border-top:1px solid var(--rule);vertical-align:baseline}

/* Contact */
.nap{display:grid;grid-template-columns:max-content 1fr;gap:10px 20px;margin-top:32px}
.nap dt{font-weight:700;color:var(--ink)}
.nap dd{margin:0}
.form-card{background:var(--card);padding:clamp(20px,3vw,40px);border:1px solid var(--rule)}
.form-card h2{font-size:var(--h3)}
form label{display:block;font-weight:600;margin:16px 0 6px;color:var(--ink)}
form .opt{font-weight:400;color:var(--muted)}
input,select,textarea{width:100%;min-height:48px;padding:10px 12px;font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--rule-strong);border-radius:var(--radius)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
input[aria-invalid="true"]{border-color:var(--error);border-width:2px}
form .btn{margin-top:24px;width:100%}
.form-note{margin-top:12px;font-weight:600;color:var(--ink)}

/* Footer */
.site-foot{background:var(--foot-bg);color:var(--foot-fg);padding-top:64px;margin-top:0}
.site-foot a{color:var(--foot-fg)}
.foot-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.foot-logo{width:180px;height:auto;background:#f3f1ec;padding:10px;border-radius:2px;margin-bottom:12px}
.foot-h{font-family:var(--font-body);font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--foot-fg);opacity:.8;margin-bottom:12px}
.foot-links{list-style:none;padding:0;margin:0}
.foot-links a{display:inline-flex;min-height:36px;align-items:center}
.foot-small,.foot-note{font-size:.875rem;opacity:.9}
.foot-base{border-top:1px solid rgba(255,255,255,.2);margin-top:40px;padding-block:20px;font-size:.8125rem;opacity:.85}
.site-foot .confirm{color:#3a2a00;background:#ffe9a8}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Option B: Contact Sheet. Job-site photo journal meets county paper. */
:root{
 --bg:#E7E5E0;              /* poured concrete grey */
 --card:#FBFAF7;            /* paper */
 --fg:#34322F;
 --ink:#262422;
 --muted:#5A5650;
 --accent:#730000;          /* brand oxblood */
 --link:#730000;
 --rule:#C9C5BD;
 --rule-strong:#77726A;
 --btn:#730000;
 --btn-fg:#FFFFFF;
 --btn-hover:#4F0000;
 --hover:#DDD9D2;
 --focus:#262422;
 --error:#A10000;
 --confirm:#5a3d00;--confirm-bg:#f6e3a6;
 --foot-bg:#262422;--foot-fg:#F1EFEA;
 --radius:3px;
 --font-display:"Libre Caslon Text",Georgia,"Times New Roman",serif;
 --font-body:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --h1:clamp(2.1rem,1.3rem + 3.4vw,3.75rem);
 --h2:clamp(1.7rem,1.2rem + 2vw,2.6rem);
 --h3:clamp(1.2rem,1.05rem + .6vw,1.45rem);
}
h1,h2{font-weight:700;letter-spacing:-.015em}
h3{font-family:var(--font-body);font-weight:700;font-stretch:88%}
.kicker{font-stretch:75%;font-weight:700;letter-spacing:.16em;color:var(--accent)}
.site-head{border-bottom:3px double var(--rule-strong)}

/* hero contact sheet */
.hero-b{padding-block:20px clamp(40px,6vw,88px)}
.dateline{font-stretch:75%;font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.8125rem;border-block:1px solid var(--ink);padding:8px 0;margin-bottom:24px;color:var(--ink)}
.hero-b-grid{display:grid;gap:20px}
.hero-card{background:var(--card);padding:clamp(20px,3vw,44px);border:1px solid var(--rule);box-shadow:0 1px 2px rgba(0,0,0,.06),0 10px 30px -18px rgba(0,0,0,.35)}
.hero-card h1{line-height:1.05}
.hero-sub{font-size:clamp(1.05rem,1rem + .35vw,1.25rem);max-width:44ch}
.sheet{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;background:#1d1c1a;padding:8px;border-radius:2px}
.tile{margin:0;position:relative;background:#111}
.tile img{width:100%;aspect-ratio:4/3;object-fit:cover}
.tile figcaption{position:static;margin:0;padding:6px 8px 8px;font-size:.75rem;color:#e9e6df;font-stretch:80%;letter-spacing:.04em;line-height:1.3}
.tile .fr{color:#f2c14e;font-weight:700;margin-right:4px}
@media (min-width:1000px){
 .hero-b-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch}
 .hero-card{display:flex;flex-direction:column;justify-content:center}
 .sheet{grid-template-columns:repeat(3,1fr)}
 .tile.t1{grid-column:span 2;grid-row:span 2}
 .tile.t1 img{height:100%;aspect-ratio:auto;min-height:0}
 .tile.t1{display:flex;flex-direction:column}
 .tile.t1 img{flex:1 1 auto}
}

/* proof masthead ribbon */
.proof{background:var(--ink);color:#F1EFEA;padding-block:22px}
.proof .big{font-family:var(--font-display);font-size:clamp(1.9rem,1.4rem + 1.6vw,2.75rem);line-height:1;color:#fff}
.proof .sm{color:#d6d2ca}
.proof .confirm{color:#3a2a00;background:#ffe9a8}
.proof p{border-left:1px solid rgba(255,255,255,.25);padding-left:14px}

.intro{background:var(--card)}
.review{background:var(--bg);padding:20px 24px;border-left:4px solid var(--accent)}
.review blockquote p{font-family:var(--font-display);font-style:italic;font-size:clamp(1.2rem,1.05rem + .7vw,1.55rem);line-height:1.4;color:var(--ink)}
.review figcaption{font-stretch:80%;letter-spacing:.08em;text-transform:uppercase}

/* services as newspaper columns */
.services .svc-grid{gap:0;border-top:2px solid var(--ink)}
.svc{padding:20px 20px 8px 0;border-bottom:1px solid var(--rule)}
@media (min-width:640px){.svc{padding-right:20px;border-right:1px solid var(--rule)}.svc:last-child{border-right:0}}
.svc img{margin-bottom:14px;filter:saturate(.95)}
.svc-n{font-family:var(--font-display);font-size:2rem;line-height:1;color:var(--accent);margin:0 0 6px}
.svc h3 a{color:var(--ink);text-decoration:none}
.svc h3 a:hover{text-decoration:underline}

/* film strip steps */
.steps{background:#1d1c1a;color:#E9E6DF}
.steps h2,.steps h3{color:#fff}
.steps .kicker{color:#f2c14e}
.steps .lead{color:#E9E6DF}
.step-list{gap:8px}
.step{background:#111;padding:8px 8px 16px}
.step img{margin-bottom:12px}
.step-txt{padding:0 8px}
.step-n{font-stretch:75%;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#f2c14e;font-size:.8125rem;margin:0}
.step p{color:#D8D4CC}

/* big figures */
.figs{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));border-top:2px solid var(--ink);margin-top:24px}
.figure-stat{display:flex;flex-direction:column;gap:4px;padding:20px 20px 20px 0;border-bottom:1px solid var(--rule);margin:0}
.figure-stat .v{font-family:var(--font-display);font-weight:700;font-size:clamp(2.1rem,1.5rem + 2vw,3rem);line-height:1;color:var(--accent);white-space:nowrap}
.figure-stat .k{font-weight:700;color:var(--ink);font-stretch:85%;text-transform:uppercase;letter-spacing:.08em;font-size:.875rem}
.figure-stat .d{color:var(--muted);font-size:.9375rem}
.specs .link-more{margin-top:24px}

/* contact sheet gallery */
.g-b{gap:8px}
.g-b .g-item{background:#1d1c1a;padding:8px 8px 10px}
@media (min-width:900px){.g-b{grid-template-columns:repeat(3,1fr)}}
.g-b figcaption{color:#e9e6df;padding:6px 8px 0;margin:0;font-size:.8125rem}
.g-b .fig-n{color:#f2c14e;font-weight:700}
.work .link-more{margin-top:8px}

.faq{background:var(--card)}
.qa{border-top:1px solid var(--rule)}
.qa h3{font-family:var(--font-display);font-weight:700;font-stretch:100%}
.page-head{padding-top:20px}
.ph-fig{background:#1d1c1a;padding:8px}
.ph-fig img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ph-fig figcaption{color:#e9e6df;padding:6px 4px 0}
.ph-fig .fig-n{color:#f2c14e;font-weight:700}
.cta-end{background:var(--card);border-top:3px double var(--rule-strong)}
.cta-end h2{font-size:clamp(2rem,1.3rem + 2.8vw,3.25rem)}
.prose-sec{background:var(--card);border-top:1px solid var(--rule)}
.areas{border-top:1px solid var(--rule)}

.h1-kick{display:block;font-family:var(--font-body);font-stretch:80%;font-weight:700;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);line-height:1.4;margin-bottom:14px}
.g-b .g-item img{border:0}
