feat: socials grid, cookie consent (GDPR/CCPA/PIPEDA), privacy & terms pages, enhanced SEO meta tags

- index.tsx: full socials section (YouTube, X, Instagram, Facebook, TikTok, Patreon)
- index.tsx: enhanced meta description + keywords
- _document.tsx: global meta keywords, proper OG image dimensions, twitter:creator
- _app.tsx: cookie consent component mounted globally
- CookieConsent.tsx: GDPR/CCPA/PIPEDA compliant banner with accept/decline + localStorage + GA disable
- pages/privacy.tsx: full Privacy Policy (GDPR, CCPA/CPRA, PIPEDA sections)
- pages/terms.tsx: Terms & Conditions (IP, governing law NE, disclaimers)
- Home.module.css: socialGrid/socialBtn styles, footerLinks, legal page styles
- footer: Privacy Policy + Terms links on all pages
This commit is contained in:
2026-04-11 08:43:19 -05:00
parent e616b6efe5
commit f44909eca9
7 changed files with 1022 additions and 45 deletions
+99
View File
@@ -410,10 +410,109 @@
opacity: 0.5;
}
/* ── Social buttons ──────────────────────────────────────────────────────── */
.socialGrid {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
justify-content: center;
margin-top: 1.75rem;
}
.socialBtn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.65rem 1.25rem;
background: var(--dark-card);
color: var(--bone-dim);
border: 1px solid var(--border);
font-size: 0.8rem;
letter-spacing: 0.08em;
text-transform: uppercase;
transition: border-color 0.2s, color 0.2s, background 0.2s;
white-space: nowrap;
}
.socialBtn:hover {
border-color: var(--red);
color: var(--bone);
background: rgba(192, 57, 43, 0.08);
}
/* ── Footer links ────────────────────────────────────────────────────────── */
.footerLinks {
display: flex;
gap: 1.5rem;
font-size: 0.75rem;
color: var(--bone-dim);
opacity: 0.7;
}
.footerLinks a:hover {
opacity: 1;
color: var(--bone);
}
/* ── Legal pages (privacy / terms) ──────────────────────────────────────── */
.legal {
max-width: 820px;
margin: 0 auto;
padding: 8rem 2.5rem 6rem;
}
.legalTitle {
font-family: var(--font-display);
font-size: clamp(1.8rem, 3.5vw, 2.8rem);
color: var(--bone);
margin-bottom: 0.5rem;
}
.legalUpdated {
font-size: 0.75rem;
color: var(--bone-dim);
opacity: 0.5;
margin-bottom: 3rem;
display: block;
}
.legalSection {
margin-bottom: 2.5rem;
}
.legalSection h2 {
font-family: var(--font-display);
font-size: 1.15rem;
color: var(--bone);
margin-bottom: 0.75rem;
padding-bottom: 0.4rem;
border-bottom: 1px solid var(--border);
}
.legalSection p,
.legalSection li {
font-size: 0.9rem;
color: var(--bone-dim);
line-height: 1.8;
margin-bottom: 0.75rem;
}
.legalSection ul {
padding-left: 1.5rem;
}
.legalSection a {
color: var(--red);
text-decoration: underline;
}
/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
.nav { padding: 1rem 1.25rem; }
.navLinks { display: none; }
.about { grid-template-columns: 1fr; gap: 2.5rem; }
.footer { flex-direction: column; text-align: center; }
.footerLinks { justify-content: center; }
.socialGrid { gap: 0.5rem; }
.legal { padding: 6rem 1.25rem 4rem; }
}