/* ============================================================
   Invitations hub (/invitations) + category pages (/invitations/{slug})
   — events-hub.php. Builds on tradition-page.css (--tp-* tokens).
   ============================================================ */
.hub-hero-actions{margin-top:28px;display:flex;justify-content:center}

/* Category page: grid of event-page cards */
.hub-page-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.hub-page-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;height:100%;min-height:118px;padding:20px;border:1px solid var(--tp-border);border-radius:var(--tp-radius-sm,14px);background:var(--tp-bg);text-decoration:none;transition:box-shadow .2s,transform .2s,border-color .2s}
.hub-page-card:hover{border-color:rgba(var(--tp-purple-rgb),.4);box-shadow:0 14px 34px rgba(var(--tp-purple-rgb),.14);transform:translateY(-2px)}
.hub-page-card strong{font-family:'Bricolage Grotesque',var(--font-heading, system-ui, sans-serif);font-size:17px;font-weight:700;color:var(--tp-ink);line-height:1.3}
.hub-page-card em{display:inline-flex;align-items:center;gap:6px;font-style:normal;font-size:14px;font-weight:600;color:var(--tp-purple);font-family:var(--font-body, Arial, sans-serif)}
.hub-main .hub-page-card{border-color:rgba(var(--tp-purple-rgb),.35);background:var(--tp-purple-soft)}
.hub-badge{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tp-purple);background:var(--tp-bg);border:1px solid rgba(var(--tp-purple-rgb),.3);padding:4px 10px;border-radius:999px;font-family:var(--font-body, Arial, sans-serif)}

/* Hub: one block per category */
.hub-cat-list{display:grid;gap:20px}
.hub-cat{padding:26px 28px;border:1px solid var(--tp-border);border-radius:var(--tp-radius,20px);background:var(--tp-bg)}
.hub-cat-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}
.hub-cat-head > div{flex:1;min-width:0}
.hub-cat-head h2{margin:0 0 4px;font-family:'Bricolage Grotesque',var(--font-heading, system-ui, sans-serif);font-size:21px;font-weight:700;line-height:1.3}
.hub-cat-head h2 a{color:var(--tp-ink);text-decoration:none}
.hub-cat-head h2 a:hover{color:var(--tp-purple)}
.hub-cat-head p{margin:0;font-size:15px;color:var(--tp-text);line-height:1.55;font-family:var(--font-body, Arial, sans-serif)}
.hub-cat-ico{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:var(--tp-purple-soft);color:var(--tp-purple)}
.hub-cat-all{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;font-size:14px;font-weight:600;color:var(--tp-purple);text-decoration:none;white-space:nowrap;font-family:var(--font-body, Arial, sans-serif)}
.hub-cat-all:hover{background:var(--tp-purple-soft)}
.hub-cat-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hub-cat-links a{display:inline-block;padding:8px 14px;border:1px solid var(--tp-border);border-radius:999px;font-size:14px;color:var(--tp-text);text-decoration:none;font-family:var(--font-body, Arial, sans-serif);transition:border-color .2s,color .2s,background .2s}
.hub-cat-links a:hover{border-color:var(--tp-purple);color:var(--tp-purple);background:var(--tp-purple-soft)}

@media (max-width:1024px){.hub-page-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:768px){
  .hub-page-grid{grid-template-columns:repeat(2,1fr)}
  .hub-cat{padding:20px}
  .hub-cat-head{flex-wrap:wrap}
  .hub-cat-all{order:3;padding-left:0}
}
@media (max-width:480px){.hub-page-grid{grid-template-columns:1fr}}

/* Hub: "Happening now" public events */
.hub-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.hub-section-head .trad-section-title{margin-bottom:0}
