.tgrb-hub {
–hub-ink: #12202e;
–hub-muted: #5f6f7c;
–hub-rule: #d8d0c3;
–hub-gold: #b99862;
–hub-paper: #fffaf3;
}
.tgrb-hub a {
color: var(–hub-ink);
text-decoration-thickness: .08em;
text-underline-offset: .18em;
}
.tgrb-hub-kicker {
color: #6c7b89;
font-size: .78rem;
font-weight: 700;
letter-spacing: .18em;
margin: 0 0 .8rem;
text-transform: uppercase;
}
.tgrb-hub-hero {
border-top: 1px solid var(–hub-rule);
padding-top: clamp(28px, 5vw, 54px);
}
.tgrb-hub-hero h1 {
color: var(–hub-ink);
font-family: var(–wp–preset–font-family–playfair-display);
font-size: clamp(2rem, 2.8vw, 3rem);
letter-spacing: -.04em;
line-height: 1.04;
margin: 0;
max-width: 18ch;
}
.tgrb-hub-hero .tgrb-hub-intro {
color: var(–hub-ink);
font-size: clamp(1rem, 1.25vw, 1.16rem);
line-height: 1.68;
margin: 1.15rem 0 0;
max-width: 680px;
}
.tgrb-hub-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 1.6rem;
}
.tgrb-hub-actions a {
border: 1px solid var(–hub-ink);
border-radius: 999px;
display: inline-block;
font-weight: 700;
padding: .82rem 1.15rem;
text-decoration: none;
transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}
.tgrb-hub-actions a:first-child {
background: var(–hub-ink);
color: #fffaf3;
}
.tgrb-hub-actions a:hover {
transform: translateY(-2px);
}
.tgrb-hub-lead {
background:
linear-gradient(135deg, rgba(18,32,46,.96), rgba(18,32,46,.86)),
radial-gradient(circle at 80% 18%, rgba(185,152,98,.34), transparent 34%);
color: #fffaf3;
margin: clamp(36px, 6vw, 72px) 0;
padding: clamp(28px, 5vw, 56px);
}
.tgrb-hub-lead p,
.tgrb-hub-lead h2,
.tgrb-hub-lead a {
color: inherit;
}
.tgrb-hub-lead h2 {
font-family: var(–wp–preset–font-family–playfair-display);
font-size: clamp(1.45rem, 2.1vw, 2.35rem);
letter-spacing: -.04em;
line-height: 1.06;
margin: 0;
max-width: 28ch;
}
.tgrb-hub-lead .tgrb-hub-lead-body {
font-size: .98rem;
line-height: 1.72;
max-width: 680px;
}
.tgrb-hub-lanes {
display: grid;
gap: 28px;
grid-template-columns: repeat(3, minmax(0, 1fr));
margin: clamp(34px, 5vw, 62px) 0;
}
.tgrb-hub-lane {
border-top: 2px solid rgba(185,152,98,.7);
padding-top: 18px;
}
.tgrb-hub-lane > p {
color: #6c7b89;
font-size: .75rem;
font-weight: 700;
letter-spacing: .16em;
margin: 0 0 .7rem;
text-transform: uppercase;
}
.tgrb-hub-lane h3,
.tgrb-hub-link-group h3 {
color: var(–hub-ink);
font-size: 1.35rem;
line-height: 1.05;
margin: 0 0 .75rem;
}
.tgrb-hub-lane div {
color: var(–hub-muted);
line-height: 1.72;
}
.tgrb-hub-links {
border-top: 1px solid var(–hub-rule);
display: grid;
gap: 28px;
grid-template-columns: repeat(4, minmax(0, 1fr));
padding-top: 28px;
}
.tgrb-hub-link-group ul {
list-style: none;
margin: 0;
padding: 0;
}
.tgrb-hub-link-group li + li {
border-top: 1px solid rgba(18,32,46,.12);
margin-top: .75rem;
padding-top: .75rem;
}
.tgrb-hub-close {
border-top: 1px solid var(–hub-rule);
margin-top: clamp(36px, 6vw, 72px);
padding-top: clamp(28px, 4vw, 46px);
}
.tgrb-hub-close h2 {
color: var(–hub-ink);
font-family: var(–wp–preset–font-family–playfair-display);
font-size: clamp(1.42rem, 2vw, 2.2rem);
letter-spacing: -.04em;
line-height: 1.08;
margin: 0;
max-width: 30ch;
}
.tgrb-hub-close p {
color: var(–hub-muted);
font-size: .98rem;
line-height: 1.72;
max-width: 680px;
}
@media (max-width: 900px) {
.tgrb-hub-lanes,
.tgrb-hub-links {
grid-template-columns: 1fr;
}
}
Regional map
West Michigan
Grand Rapids is the anchor, but real plans cross city lines. Use this hub when the best answer may be in Kentwood, Wyoming, Grandville, Rockford, East Grand Rapids, or the next town over.
Regional read
The surrounding-city layer matters because people do not live, spend, search, or plan strictly inside Grand Rapids city limits.
Best use
Start with the closest fit
Open the city page that matches where you are actually going, not just the biggest nearby label.
Nearby cities
Local context matters
East Grand Rapids, Kentwood, Wyoming, Grandville, and Rockford each need their own useful answers.
Planning logic
Real plans cross boundaries
Events, services, dinners, and family routines often make more sense on a regional map than a municipal one.
Use the regional map when the best answer is outside Grand Rapids proper.
The goal is simple: keep Grand Rapids as the center without pretending every useful local answer happens downtown.
Freshness Check
Reviewed: July 7, 2026. This page was checked by The Grand Rapids Best freshness system because: Core public hub has not been materially updated in 60+ days.
Source status: Missing with 0 public source link(s) and 0 trusted source record(s). No source trail has been recorded for this post yet.
Next internal paths: Best of Grand Rapids · Things To Do · Newsletter
If a linked venue, city, organizer, or official source changes after this review, treat the source itself as the final authority. Priority: High.