Updated broken navigation links, added Google Analytics
This commit is contained in:
+15
-119
@@ -1196,63 +1196,6 @@
|
||||
margin-bottom: 36px;
|
||||
line-height: 1.55;
|
||||
}
|
||||
.contact-form {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
gap: 14px;
|
||||
max-width: 560px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.contact-row {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 14px;
|
||||
}
|
||||
@media (max-width: 560px) {
|
||||
.contact-row { grid-template-columns: 1fr; }
|
||||
}
|
||||
.contact-form label {
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
font-size: 13px;
|
||||
color: rgba(255,255,255,0.78);
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
.contact-form input,
|
||||
.contact-form textarea {
|
||||
font: inherit;
|
||||
color: white;
|
||||
background: rgba(255,255,255,0.06);
|
||||
border: 1px solid rgba(255,255,255,0.16);
|
||||
border-radius: 10px;
|
||||
padding: 12px 14px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
transition: border-color .15s ease, background .15s ease;
|
||||
}
|
||||
.contact-form input:focus,
|
||||
.contact-form textarea:focus {
|
||||
outline: none;
|
||||
border-color: var(--orange, #ec8b33);
|
||||
background: rgba(255,255,255,0.09);
|
||||
}
|
||||
.contact-form textarea { resize: vertical; min-height: 110px; }
|
||||
.contact-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
|
||||
.contact-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 6px;
|
||||
}
|
||||
.contact-status {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: rgba(255,255,255,0.72);
|
||||
}
|
||||
.contact-status.is-ok { color: #7ee2a8; }
|
||||
.contact-status.is-err { color: #ff9b8a; }
|
||||
.cta-flow {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
@@ -1384,6 +1327,15 @@
|
||||
.section { padding: 80px 22px; }
|
||||
}
|
||||
</style>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Z5JJBS491H"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-Z5JJBS491H');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -1933,78 +1885,22 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ───── CTA / Contact Form ───── -->
|
||||
<!-- ───── CTA ───── -->
|
||||
<section class="cta-wrap" id="contact">
|
||||
<div class="cta-card">
|
||||
<div class="cta-inner">
|
||||
<h2>Let's find <em>your</em> first improvement.</h2>
|
||||
<p>Tell us a little about your business and what you're looking to improve. We'll get back to you to talk through whether — and how — we can help.</p>
|
||||
|
||||
<form id="contact-form" class="contact-form" action="/api/contact" method="POST" novalidate>
|
||||
<div class="contact-row">
|
||||
<label>
|
||||
<span>Name</span>
|
||||
<input type="text" name="name" autocomplete="name" required />
|
||||
</label>
|
||||
<label>
|
||||
<span>Email</span>
|
||||
<input type="email" name="email" autocomplete="email" required />
|
||||
</label>
|
||||
</div>
|
||||
<label>
|
||||
<span>Company</span>
|
||||
<input type="text" name="company" autocomplete="organization" />
|
||||
</label>
|
||||
<label>
|
||||
<span>What are you looking to improve?</span>
|
||||
<textarea name="message" rows="4" required></textarea>
|
||||
</label>
|
||||
<input type="text" name="website" class="contact-hp" tabindex="-1" autocomplete="off" aria-hidden="true" />
|
||||
<div class="contact-actions">
|
||||
<button type="submit" class="btn btn-on-dark">
|
||||
Send <span class="btn-arrow">→</span>
|
||||
</button>
|
||||
<p class="contact-status" id="contact-status" role="status" aria-live="polite"></p>
|
||||
</div>
|
||||
</form>
|
||||
<div class="hero-ctas">
|
||||
<a href="#" class="btn btn-on-dark">
|
||||
Let’s Talk <span class="btn-arrow">→</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
var form = document.getElementById('contact-form');
|
||||
if (!form) return;
|
||||
var status = document.getElementById('contact-status');
|
||||
form.addEventListener('submit', function (e) {
|
||||
e.preventDefault();
|
||||
status.textContent = 'Sending…';
|
||||
status.className = 'contact-status';
|
||||
var data = new FormData(form);
|
||||
fetch(form.action, {
|
||||
method: 'POST',
|
||||
body: data,
|
||||
headers: { 'Accept': 'application/json' }
|
||||
})
|
||||
.then(function (r) { return r.json().then(function (j) { return { ok: r.ok, body: j }; }); })
|
||||
.then(function (res) {
|
||||
if (res.ok) {
|
||||
form.reset();
|
||||
status.textContent = 'Thanks — we’ll be in touch shortly.';
|
||||
status.className = 'contact-status is-ok';
|
||||
} else {
|
||||
status.textContent = (res.body && res.body.error) || 'Something went wrong. Please try again.';
|
||||
status.className = 'contact-status is-err';
|
||||
}
|
||||
})
|
||||
.catch(function () {
|
||||
status.textContent = 'Network error. Please try again.';
|
||||
status.className = 'contact-status is-err';
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!-- ───── FOOTER — orange Logotipo (no tagline), tagline removed ───── -->
|
||||
<footer class="footer">
|
||||
<div class="footer-inner">
|
||||
|
||||
Reference in New Issue
Block a user