body.site-v2 .resources-hub { display:grid; gap:28px; }
body.site-v2 .resources-hub-hero { padding:clamp(26px,5vw,56px); border:1px solid #2e7f93; border-radius:18px; background:linear-gradient(125deg,#061c2a,#0b5267); color:#fff; box-shadow:0 20px 44px rgba(2,13,20,.2); }
body.site-v2 .resources-hub-hero h1 { max-width:760px; margin:8px 0 12px; color:#fff; font-size:clamp(2.1rem,5vw,4.2rem); line-height:.98; }
body.site-v2 .resources-hub-hero p { max-width:650px; margin:0; color:#fff; font-size:1.02rem; }
body.site-v2 .resources-hub-hero .eyebrow { color:#fff; }
body.site-v2 .resources-hub-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
body.site-v2 .resources-hub-actions .outline-button { border-color:#fff; color:#fff; }
body.site-v2 .tool-hub-section { display:grid; gap:14px; }
body.site-v2 .tool-hub-heading { max-width:680px; }
body.site-v2 .tool-hub-heading h2 { margin:5px 0 7px; color:#101010; font-size:clamp(1.55rem,3vw,2.35rem); }
body.site-v2 .tool-hub-heading p:not(.eyebrow) { margin:0; color:#101010; }
body.site-v2 .tool-hub-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
body.site-v2 .tool-hub-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
body.site-v2 .tool-hub-more { width:fit-content; margin:4px 0 0; padding:11px 14px; border:1px solid #1e7084; border-radius:8px; background:#fff; color:#123d55; font-weight:800; cursor:pointer; }
body.site-v2 .tool-hub-more:hover { border-color:#b7232a; color:#8b1d26; }
body.site-v2 .resource-secondary { border:1px solid #b9cbd3; border-radius:12px; background:#fff; }
body.site-v2 .resource-secondary summary { padding:16px 18px; color:#123d55; font-weight:800; cursor:pointer; }
body.site-v2 .resource-secondary[open] summary { border-bottom:1px solid #d5e2e7; }
body.site-v2 .resource-secondary > *:not(summary) { margin-left:18px; margin-right:18px; }
body.site-v2 .tool-hub-card { display:flex; min-width:0; min-height:230px; flex-direction:column; align-items:flex-start; gap:10px; padding:22px; border:1px solid #1e7084; border-radius:15px; background:#073548; color:#fff; text-decoration:none; box-shadow:0 10px 0 #021923; transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }
body.site-v2 .tool-hub-card:hover { transform:translateY(-4px); background:#0c5064; box-shadow:0 14px 0 #021923; }
body.site-v2 .tool-hub-card span { color:#fff; font:800 .68rem/1 "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; }
body.site-v2 .tool-hub-card h3 { margin:0; color:#fff; font-size:1.35rem; line-height:1.06; }
body.site-v2 .tool-hub-card p { margin:0; color:#fff; line-height:1.5; }
body.site-v2 .tool-hub-card b { margin-top:auto; color:#fff; font-size:.79rem; text-decoration:underline; text-underline-offset:3px; }
body.site-v2 .tool-hub-card-primary { border-color:#e74444; background:linear-gradient(145deg,#77151b,#b7232a); box-shadow:0 10px 0 #4c0b10; }
body.site-v2 .tool-hub-card-primary:hover { background:linear-gradient(145deg,#901820,#c52931); box-shadow:0 14px 0 #4c0b10; }
body.site-v2 .tool-hub-card-health { border-color:#e74444; background:linear-gradient(145deg,#0a2431,#15495b); }
body.site-v2 .tool-hub-section-research { padding-top:8px; border-top:2px solid #c92028; }
body.site-v2 .resources-hub .social-resource-links,
body.site-v2 .resources-hub .personal-support-card,
body.site-v2 .resources-hub .visa-resource-desk { margin-top:0; }
@media(max-width:850px) { body.site-v2 .tool-hub-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { body.site-v2 .resources-hub { gap:22px; } body.site-v2 .resources-hub-hero { padding:24px 18px; border-radius:12px; } body.site-v2 .tool-hub-grid,body.site-v2 .tool-hub-grid-two { grid-template-columns:minmax(0,1fr); } body.site-v2 .tool-hub-card { min-height:0; padding:19px; } }
/* Filtering must override the cards' explicit flex/grid display rules. */
body.site-v2 .tool-hub-card[hidden],
body.site-v2 .tool-hub-section[hidden],
body.site-v2 .tool-hub-more[hidden] { display:none!important; }
.resource-directory-controls { display:flex; flex-wrap:wrap; align-items:end; gap:16px; }
.resource-directory-controls label { display:grid; gap:6px; flex:1 1 220px; min-width:0; }
.resource-directory-controls input,.resource-directory-controls select { width:100%; min-width:0; box-sizing:border-box; min-height:44px; font:inherit; }
.resource-directory-controls p { flex-basis:100%; }
