diff --git a/site/assets/css/style.css b/site/assets/css/style.css
index 8940d74..b897c6e 100644
--- a/site/assets/css/style.css
+++ b/site/assets/css/style.css
@@ -6,6 +6,15 @@
(#F7F8FA) for light/secondary. Treat the green as a spotlight (~10%).
========================================================================== */
+/* Roboto, self-hosted (variable font, latin subset) — no Google Fonts request. */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url('../fonts/roboto/roboto-latin.woff2') format('woff2');
+}
+
/* ── Design Tokens ─────────────────────────────────────────────────────────────
Brand palette — "Neon Moss" on a Void-Black → Charcoal-Slate dark ramp, with
an Ash-Silver / Arctic-White light toolkit. Darks carry a cool, greenish-
@@ -15,6 +24,10 @@
--fitme-accent: #C2D500;
--fitme-accent-rgb: 194, 213, 0;
--fitme-accent-dark: #A6B600;
+ /* Text-on-light variant: #C2D500/#A6B600 are only ~1.6–2.1:1 on white/surface
+ (WCAG AA needs 4.5:1), so text uses this darker olive. Bright accent stays
+ for dark sections and button backgrounds. */
+ --fitme-accent-ink: #667000;
/* deeper moss for hover / active */
/* The Anchor — Void Black, and a cool ramp lifting toward Charcoal Slate. */
@@ -2263,6 +2276,16 @@ h3.contact-title {
display: block;
}
+/* Eyebrow on light sections: the neon accent is ~1.6:1 there (WCAG AA needs
+ 4.5:1), so those use the ink green; dark sections keep the bright accent. */
+.feature-section .section-eyebrow,
+.gallery-section .section-eyebrow,
+.service-section .section-eyebrow,
+.schedule-section .section-eyebrow,
+.workhours-section .section-eyebrow {
+ color: var(--fitme-accent-ink);
+}
+
.section-title.deco h2 {
position: relative;
display: inline-block;
@@ -2356,7 +2379,7 @@ h3.contact-title {
.mod-card.has-info { cursor: pointer; outline: none; }
-.mod-card.has-info:hover h3 { color: var(--fitme-accent-dark); }
+.mod-card.has-info:hover h3 { color: var(--fitme-accent-ink); }
.mod-card.has-info:focus-visible {
box-shadow: 0 0 0 3px rgba(var(--fitme-accent-rgb), .35);
@@ -2490,7 +2513,7 @@ h3.contact-title {
.md-card h3 {
font-size: 1.15rem;
margin: 0 .5rem;
- color: var(--fitme-accent-dark);
+ color: var(--fitme-accent-ink);
}
.md-body {
@@ -2603,7 +2626,7 @@ h3.contact-title {
border: none;
background: none;
cursor: pointer;
- color: var(--fitme-accent-dark);
+ color: var(--fitme-accent-ink);
font-weight: 700;
font-size: .85rem;
letter-spacing: .3px;
@@ -2967,7 +2990,7 @@ h3.contact-title {
}
.trial-form .consent-check a:hover {
- color: var(--fitme-accent-dark);
+ color: var(--fitme-accent-ink);
}
.trial-form .site-btn {
@@ -3247,7 +3270,7 @@ h3.contact-title {
cursor: pointer;
}
.event-consent input { margin-top: 3px; flex: 0 0 auto; }
-.event-consent a { color: var(--fitme-accent-dark); text-decoration: underline; }
+.event-consent a { color: var(--fitme-accent-ink); text-decoration: underline; }
@media (max-width: 575px) {
.event-form-grid { grid-template-columns: 1fr; }
}
@@ -3458,7 +3481,7 @@ h3.contact-title {
display: block;
font-size: .82rem;
font-weight: 700;
- color: var(--fitme-accent-dark);
+ color: var(--fitme-accent-ink);
margin-bottom: .6rem;
}
@@ -3795,7 +3818,7 @@ h3.contact-title {
.price-card.is-featured .pc-features li { color: #fff; }
.pc-features i {
- color: var(--fitme-accent-dark);
+ color: var(--fitme-accent-ink);
margin-top: 3px;
font-size: .8rem;
}
diff --git a/site/assets/fonts/roboto/roboto-latin.woff2 b/site/assets/fonts/roboto/roboto-latin.woff2
new file mode 100644
index 0000000..9b0f141
Binary files /dev/null and b/site/assets/fonts/roboto/roboto-latin.woff2 differ
diff --git a/site/gym_chooser.php b/site/gym_chooser.php
index 9ca48e4..bc61f55 100644
--- a/site/gym_chooser.php
+++ b/site/gym_chooser.php
@@ -13,9 +13,10 @@ $brand = 'FitMe';
-