/* Popular programs / universities & boards / locations link block (footer + homepage). Scoped .hub-* */
.hubs { --hub-ink:#0e2a47; --hub-muted:#4a6482; --hub-line:rgba(14,42,71,.12); --hub-chip:#fff; --hub-chip-line:rgba(14,42,71,.16); --hub-accent:#b8860b; --hub-card:#fff; }
.hubs--footer { --hub-ink:#fff; --hub-muted:rgba(255,255,255,.72); --hub-line:rgba(255,255,255,.12); --hub-chip:rgba(255,255,255,.06); --hub-chip-line:rgba(255,255,255,.16); --hub-accent:#e6b94a; --hub-card:rgba(255,255,255,.04); }
.hubs--page { background:linear-gradient(180deg,#f4f8fc 0,#eaf1f8 100%); }
.hubs__wrap { padding-block:2.5rem; }
.hubs__head { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:.75rem 1.5rem; margin-bottom:1.5rem; }
.hubs__eyebrow { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--hub-accent); }
.hubs__title { margin-top:.25rem; font-family:var(--font-display,inherit); font-weight:700; font-size:1.4rem; line-height:1.2; color:var(--hub-ink); }
.hubs__all { font-size:.875rem; font-weight:600; color:var(--hub-accent); text-decoration:none; white-space:nowrap; }
.hubs__all:hover { text-decoration:underline; }
.hubs__grid { display:grid; gap:1rem; grid-template-columns:1fr; }
@media (min-width:640px){ .hubs__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .hubs__grid { grid-template-columns:1.05fr 1fr 1.25fr; } }
.hub-card { background:var(--hub-card); border:1px solid var(--hub-line); border-radius:1rem; padding:1.15rem 1.15rem 1.25rem; }
.hubs--page .hub-card { box-shadow:0 1px 2px rgba(14,42,71,.05),0 8px 24px -14px rgba(14,42,71,.18); }
.hub-card__title { display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1rem; color:var(--hub-ink); margin:0 0 .85rem; }
.hub-card__icon { display:inline-grid; place-items:center; width:2rem; height:2rem; border-radius:.6rem; background:color-mix(in srgb,var(--hub-accent) 16%,transparent); color:var(--hub-accent); flex:none; }
.hub-card__icon svg { width:1.05rem; height:1.05rem; }
.hub-list { list-style:none; margin:0; padding:0; display:grid; gap:.2rem; }
.hub-list a { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.45rem .6rem; border-radius:.55rem; font-size:.9rem; color:var(--hub-muted); text-decoration:none; transition:background .15s,color .15s; }
.hub-list a::after { content:"\2192"; opacity:0; transform:translateX(-4px); transition:all .15s; color:var(--hub-accent); }
.hub-list a:hover, .hub-list a:focus-visible { background:color-mix(in srgb,var(--hub-accent) 12%,transparent); color:var(--hub-ink); }
.hub-list a:hover::after, .hub-list a:focus-visible::after { opacity:1; transform:none; }
.hub-chips { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem; }
.hub-chips a { display:inline-block; padding:.3rem .7rem; border:1px solid var(--hub-chip-line); background:var(--hub-chip); border-radius:999px; font-size:.82rem; color:var(--hub-muted); text-decoration:none; transition:all .15s; }
.hub-chips a:hover, .hub-chips a:focus-visible { border-color:var(--hub-accent); color:var(--hub-ink); transform:translateY(-1px); }
.hub-chips--soft a { background:transparent; border-style:dashed; font-size:.78rem; }
.hub-chips span { display:inline-block; padding:.22rem .6rem; font-size:.78rem; color:var(--hub-muted); opacity:.85; }
.hubs__browse { margin-top:1.25rem; border:1px solid var(--hub-line); border-radius:1rem; background:var(--hub-card); }
.hubs__browse > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1.15rem; font-weight:600; color:var(--hub-ink); }
.hubs__browse > summary::-webkit-details-marker { display:none; }
.hubs__browse > summary::after { content:"+"; font-size:1.3rem; line-height:1; color:var(--hub-accent); transition:transform .2s; }
.hubs__browse[open] > summary::after { transform:rotate(45deg); }
.hubs__districts { display:grid; gap:1.25rem; padding:0 1.15rem 1.25rem; grid-template-columns:1fr; }
@media (min-width:768px){ .hubs__districts { grid-template-columns:repeat(3,1fr); } }
.hubs__district h5 { margin:0 0 .5rem; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--hub-accent); font-weight:700; }
.hubs__district h5 a { color:inherit; text-decoration:none; }
.hubs__district h5 a:hover { text-decoration:underline; }
/* Areas pages */
.area-hero-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin-top:1.5rem; }
.area-hero-chips a { padding:.4rem .9rem; border-radius:999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:.9rem; text-decoration:none; }
.area-hero-chips a:hover { background:rgba(255,255,255,.2); }
.area-district { margin-top:2.5rem; }
.area-district h2 { display:flex; align-items:center; gap:.6rem; font-size:1.35rem; font-weight:700; color:#0e2a47; margin:0 0 .35rem; }
.area-district h2 small { font-size:.75rem; font-weight:600; color:#4a6482; background:#e9f0f7; border-radius:999px; padding:.15rem .6rem; }
.area-district > p { margin:0 0 1rem; color:#4a6482; font-size:.95rem; }
.area-grid { display:grid; gap:.75rem; grid-template-columns:1fr; }
@media (min-width:640px){ .area-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .area-grid { grid-template-columns:repeat(3,1fr); } }
.area-card { display:block; background:#fff; border:1px solid rgba(14,42,71,.12); border-radius:.9rem; padding:.9rem 1rem; text-decoration:none; transition:all .15s; }
.area-card:hover { border-color:#b8860b; box-shadow:0 8px 22px -14px rgba(14,42,71,.4); transform:translateY(-1px); }
.area-card strong { display:block; color:#0e2a47; font-size:.98rem; }
.area-card span { display:block; margin-top:.25rem; color:#4a6482; font-size:.82rem; line-height:1.4; }
.area-card--pop strong::after { content:"Popular"; margin-left:.5rem; font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; background:#fdf3d7; color:#8a6508; border-radius:999px; padding:.1rem .45rem; vertical-align:middle; }
.area-more { margin-top:1rem; }
.area-more h3 { font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:#4a6482; margin:0 0 .5rem; }
.area-more ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.35rem; }
.area-more li { padding:.2rem .6rem; background:#f1f5f9; border-radius:999px; font-size:.8rem; color:#3c556f; }
@media (prefers-reduced-motion:reduce){ .hub-list a, .hub-list a::after, .hub-chips a, .area-card, .hubs__browse > summary::after { transition:none; transform:none; } }

/* Campus map + directions on the area pages */
.area-map{margin:1.5rem 0;border:1px solid rgba(14,42,71,.14);border-radius:1rem;overflow:hidden;background:#fff}
.area-map iframe{display:block;width:100%;height:320px;border:0}
.area-map--wide iframe{height:380px}
.area-directions{display:flex;align-items:center;gap:.6rem;padding:.85rem 1.1rem;background:#0e2a47;color:#fff!important;font-weight:600;text-decoration:none!important}
.area-directions:hover{background:#14395f}
.area-map__note{margin:0;padding:.7rem 1.1rem;font-size:.85rem;color:#4a6482;background:#f4f8fc}
