.hub-wrap {
max-width:1200px;
margin:0 auto;
padding:20px;
}
.hub-title {
font-size:34px;
margin-bottom:10px;
font-weight:700;
}
.hub-sub {
color:#666;
margin-bottom:25px;
} .hub-search {
position:relative;
margin-bottom:35px;
}
.hub-search input {
width:100%;
padding:14px 18px;
border-radius:8px;
border:1px solid #ccc;
font-size:17px;
} #hub-search-results {
position:absolute;
top:52px;
left:0;
right:0;
background:#fff;
border:1px solid #ddd;
border-radius:10px;
display:none;
z-index:50;
max-height:320px;
overflow-y:auto;
}
#hub-search-results .item {
display:flex;
align-items:center;
gap:10px;
padding:8px 12px;
cursor:pointer;
}
#hub-search-results .item:hover {
background:#f5f5f5;
} #hub-search-results .item-thumb {
flex:0 0 48px;
width:48px;
height:48px;
border-radius:8px;
overflow:hidden;
background:#eee;
}
#hub-search-results .item-thumb img {
width:100%;
height:100%;
object-fit:cover;
}
#hub-search-results .item-text {
display:flex;
flex-direction:column;
gap:2px;
}
#hub-search-results .item-text .title {
font-size:14px;
font-weight:600;
}
#hub-search-results .item-text .meta {
font-size:12px;
color:#777;
} .hub-block-title {
font-size:24px;
font-weight:700;
margin:35px 0 20px;
}
.hub-block {
margin-bottom:10px;
} .hub-grid {
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:18px;
}
@media (max-width: 1100px) {
.hub-grid {
grid-template-columns:repeat(3, 1fr);
}
}
@media (max-width: 800px) {
.hub-grid {
grid-template-columns:repeat(2, 1fr);
}
}
@media (max-width: 550px) {
.hub-grid {
grid-template-columns:1fr;
}
}
.hub-card {
display:flex;
flex-direction:column;
border:1px solid #ececec;
border-radius:10px;
overflow:hidden;
background:#fff;
text-decoration:none;
color:inherit;
transition:border-color .15s ease, box-shadow .15s ease;
} .hub-card:hover {
border-color:#ddd;
box-shadow:0 2px 6px rgba(0,0,0,.05);
}
.hub-card-thumb-wrap {
width:100%;
padding-top:56.25%; position:relative;
overflow:hidden;
background:#f2f2f2;
}
.hub-card-thumb-wrap img {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
}
.hub-card-body {
padding:10px 12px 12px;
}
.hub-card-title {
font-size:15px;
font-weight:600;
margin-bottom:4px;
}
.hub-card-meta {
font-size:13px;
color:#777;
} .hub-grid-icons {
display:grid;
grid-template-columns:repeat(5, 1fr);
gap:18px;
}
@media (max-width: 1200px) {
.hub-grid-icons {
grid-template-columns:repeat(4, 1fr);
}
}
@media (max-width: 900px) {
.hub-grid-icons {
grid-template-columns:repeat(3, 1fr);
}
}
@media (max-width: 700px) {
.hub-grid-icons {
grid-template-columns:repeat(2, 1fr);
}
}
@media (max-width: 500px) {
.hub-grid-icons {
grid-template-columns:1fr;
}
}
.hub-icon-card {
display:flex;
flex-direction:column;
text-decoration:none;
color:inherit;
}
.hub-icon-thumb {
width:100%;
padding-top:100%; border-radius:18px;
overflow:hidden;
margin-bottom:8px;
background:#f2f2f2;
position:relative;
}
.hub-icon-thumb img {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
}
.hub-icon-body {
padding:2px 2px 0;
}
.hub-icon-title {
font-size:14px;
font-weight:600;
margin-bottom:2px;
}
.hub-icon-meta {
font-size:12px;
color:#777;
} .hub-tags-grid {
display:grid;
grid-template-columns:repeat(auto-fill, minmax(150px,1fr));
gap:12px;
margin-bottom:20px;
}
.hub-tag-tile {
position:relative;
display:block;
border-radius:10px;
overflow:hidden;
text-decoration:none;
color:#111;
min-height:100px;
background:#f5f5f5;
} .hub-tag-bg {
position:absolute;
inset:0;
}
.hub-tag-bg img {
width:100%;
height:100%;
object-fit:cover;
} .hub-tag-label {
position:absolute;
left:0;
right:0;
bottom:0;
padding:8px 10px;
font-size:14px;
font-weight:600;
background:linear-gradient(
to top,
rgba(0,0,0,0.55),
rgba(0,0,0,0.10),
transparent
);
color:#fff;
box-sizing:border-box;
} .hub-load-more {
margin:16px auto 0;
display:block;
padding:8px 16px;
border-radius:20px;
border:1px solid #ddd;
background:#f7f7f7;
cursor:pointer;
font-size:14px;
transition:.15s;
}
.hub-load-more:hover {
background:#eee;
}
.hub-load-more[disabled] {
opacity:.6;
cursor:not-allowed;
}