<!doctype html>
<html lang="en">
<head>
<meta
charset="utf-8" />
<meta
name="viewport" content="width=device-width,
initial-scale=1" />
<title>Springfield Lawyer | Over 35 Years of Legal
Experience</title>
<meta
name="description" content="Springfield lawyer with over 35
years of legal experience. Call David now for a consultation." />
<meta
name="robots" content="index,follow"
/>
<!--
Optional: basic social preview -->
<meta
property="og:title"
content="Springfield Lawyer | Over 35 Years of Legal Experience"
/>
<meta
property="og:description"
content="Call now for a consultation 217-210-7200." />
<meta
property="og:type"
content="website" />
<!--
Optional: local-business schema (edit fields) -->
<script
type="application/ld+json">
{
"@context":"https://schema.org",
"@type":"LegalService",
"name":"Springfield Lawyer",
"telephone":"+1-217-210-7200",
"areaServed":"Springfield, IL",
"address":{
"@type":"PostalAddress",
"addressLocality":"Springfield",
"addressRegion":"IL",
"addressCountry":"US"
}
}
</script>
<style>
:root{
--bg:#0b0b0b;
--card:#121212;
--text:#f5f5f5;
--muted:#bdbdbd;
--line:#2a2a2a;
--accent:#ffffff;
--focus: rgba(255,255,255,.18);
}
*{box-sizing:border-box}
body{
margin:0;
font-family:
system-ui, -apple-system, Segoe UI, Roboto,
Helvetica, Arial, sans-serif;
background:var(--bg);
color:var(--text);
line-height:1.4;
}
a{color:inherit}
.wrap{
max-width: 880px;
margin: 0 auto;
padding: 40px
18px 80px;
}
header{
text-align:center;
padding: 24px
10px 10px;
}
.kicker{
font-size: 14px;
letter-spacing:.08em;
text-transform: uppercase;
color: var(--muted);
margin: 0 0 10px;
}
h1{
margin: 0;
font-size: clamp(34px, 6vw, 56px);
letter-spacing: -0.02em;
}
.phone{
margin: 14px 0 0;
font-size: clamp(20px, 3vw, 28px);
font-weight: 700;
}
.phone
a{
text-decoration:
none;
border-bottom:
1px solid rgba(255,255,255,.25);
}
.divider{
height:1px;
background: var(--line);
margin: 34px 0;
}
.section-title{
text-align:center;
margin:0 0 14px;
font-size: 22px;
}
.card{
background: var(--card);
border: 1px
solid var(--line);
border-radius: 14px;
padding: 18px;
}
label{
display:block;
margin: 12px 0 6px;
color: var(--muted);
font-size: 14px;
}
input, textarea{
width:100%;
padding: 12px 12px;
border-radius: 10px;
border: 1px
solid var(--line);
background: #0f0f0f;
color: var(--text);
outline: none;
}
input:focus, textarea:focus{
border-color: rgba(255,255,255,.35);
box-shadow: 0 0
0 4px var(--focus);
}
textarea{min-height:
120px; resize: vertical;}
.row{
display:grid;
grid-template-columns: 1fr;
gap: 12px;
}
@media
(min-width: 720px){
.row{grid-template-columns: 1fr 1fr;}
}
.hint{
margin: 10px 0 0;
color: var(--muted);
font-size: 13px;
}
.actions{
display:flex;
gap: 10px;
align-items:center;
margin-top: 14px;
flex-wrap: wrap;
}
button{
padding: 12px 16px;
border-radius: 10px;
border: 1px
solid rgba(255,255,255,.25);
background: transparent;
color: var(--text);
font-weight: 700;
cursor: pointer;
}
button:hover{border-color: rgba(255,255,255,.5)}
.status{
color: var(--muted);
font-size: 13px;
min-height: 18px;
}
footer{
text-align:center;
color: var(--muted);
font-size: 13px;
margin-top: 28px;
}
/* Cookie banner
*/
.cookie{
position: fixed;
left: 16px;
right: 16px;
bottom: 16px;
max-width: 980px;
margin: 0 auto;
background: rgba(18,18,18,.96);
border: 1px
solid var(--line);
border-radius: 14px;
padding: 14px 14px;
display: none;
backdrop-filter:
blur(6px);
}
.cookie
.top{
display:flex;
align-items:flex-start;
justify-content:
space-between;
gap: 12px;
flex-wrap: wrap;
}
.cookie
strong{display:block;
margin-bottom: 4px;}
.cookie
p{
margin: 0;
color: var(--muted);
font-size: 13px;
max-width: 720px;
}
.cookie
.btns{
display:flex;
gap: 8px;
margin-top: 10px;
}
.cookie
.btn{
padding: 10px 12px;
border-radius: 10px;
border: 1px
solid rgba(255,255,255,.25);
background: transparent;
color: var(--text);
font-weight: 700;
cursor:pointer;
font-size: 13px;
}
.cookie
.btn.primary{
background: rgba(255,255,255,.10);
border-color: rgba(255,255,255,.35);
}
</style>
</head>
<body>
<div
class="wrap">
<header>
<!-- EDIT THESE LINES -->
<p
class="kicker">Springfield Lawyer <br>
Mr. David Patrick Hall</p>
<h1>Over 35
Years of Legal Experience</h1>
<p
class="phone">
<a href="tel:+12172107200">1-217-210-7200</a>
</p>
<!-- /EDIT -->
</header>
<div
class="divider"></div>
<h2
class="section-title">Contact Us</h2>
<div
class="card">
<!--
FORM OPTIONS:
Option A
(Easiest): Formspree
1) Create a Formspree form, get your endpoint URL.
2) Replace
ACTION_URL below with it.
3) Set
method="POST" and remove the JS submit handler if you want.
Option B (No
service): mailto fallback (works, but less reliable
for users).
-->
<form
id="contactForm" novalidate>
<div
class="row">
<div>
<label
for="name">Name</label>
<input
id="name" name="name" autocomplete="name"
/>
</div>
<div>
<label
for="email">Email *</label>
<input
id="email" name="email" type="email" autocomplete="email" required />
</div>
</div>
<label
for="message">Message</label>
<textarea id="message" name="message"
placeholder="Briefly describe what you need."></textarea>
<p
class="hint">
Sign up for
our email list for updates, promotions, and more.
</p>
<div
class="actions">
<button
type="submit">Send</button>
<span
class="status" id="status"></span>
</div>
<p
class="hint" style="margin-top:12px;">
This site is
protected by reCAPTCHA and the Google
<a href="https://policies.google.com/privacy"
target="_blank" rel="noopener">Privacy Policy</a>
and
<a href="https://policies.google.com/terms"
target="_blank" rel="noopener">Terms of Service</a>
apply.
</p>
</form>
</div>
<footer>
<!-- EDIT NAME/YEAR -->
Copyright ©
<span id="year"></span> Springfield Lawyer Mr. David
Patrick Hall- All Rights Reserved.
</footer>
</div>
<!--
Cookie banner -->
<div
class="cookie" id="cookieBanner"
role="dialog" aria-live="polite" aria-label="Cookie
notice">
<div
class="top">
<div>
<strong>This website uses cookies.</strong>
<p>
We use
cookies to analyze website traffic and optimize your website experience. By
accepting our use of cookies,
your data
will be aggregated with all other user data.
</p>
<div
class="btns">
<button
class="btn" id="cookieDecline">Decline</button>
<button
class="btn primary" id="cookieAccept">Accept</button>
</div>
</div>
</div>
</div>
<script>
// Footer year
document.getElementById("year").textContent = new Date().getFullYear();
// Cookie banner
const cookieKey = "site_cookie_consent_v1";
const banner = document.getElementById("cookieBanner");
const existing = localStorage.getItem(cookieKey);
if (!existing) banner.style.display
= "block";
document.getElementById("cookieAccept").addEventListener("click", () => {
localStorage.setItem(cookieKey,
"accepted");
banner.style.display = "none";
});
document.getElementById("cookieDecline").addEventListener("click", () => {
localStorage.setItem(cookieKey,
"declined");
banner.style.display = "none";
});
// Contact form
behavior (choose one approach below)
// APPROACH 1:
Simple mailto fallback (no backend)
// Pros: no
service needed. Cons: opens user's email app; not reliable on all devices.
const form = document.getElementById("contactForm");
const statusEl = document.getElementById("status");
form.addEventListener("submit",
(e) => {
e.preventDefault();
const name = document.getElementById("name").value.trim();
const email = document.getElementById("email").value.trim();
const message = document.getElementById("message").value.trim();
if (!email) {
statusEl.textContent = "Email is required.";
return;
}
// EDIT THESE:
const toEmail = "davehall@motion.net";
const subject = encodeURIComponent("Website Contact Request");
const body = encodeURIComponent(
`Name:
${name}\nEmail: ${email}\n\nMessage:\n${message}\n`
);
window.location.href = `mailto:${toEmail}?subject=${subject}&body=${body}`;
statusEl.textContent = "Opening your email app...";
});
// APPROACH 2: Formspree (recommended if you want the form to actually submit)
// 1) Create a Formspree form and get your endpoint.
// 2) Replace
ENDPOINT below and uncomment this block.
/*
const ENDPOINT =
"https://formspree.io/f/xxxxxxx";
form.addEventListener("submit",
async (e) => {
e.preventDefault();
statusEl.textContent = "Sending...";
const formData = new FormData(form);
try {
const res =
await fetch(ENDPOINT, { method:
"POST", body: formData, headers: { "Accept": "application/json" } });
if (res.ok) {
statusEl.textContent = "Sent. We will contact you
shortly.";
form.reset();
} else {
statusEl.textContent = "Send failed. Try again or
call.";
}
} catch {
statusEl.textContent = "Send failed. Check connection.";
}
});
*/
</script>
</body>
</html>