.chenzhou-catalog {
    --catalog-accent: #087542;
    --catalog-price: #b93821;
    padding-block: 24px 58px;
}
.catalog-heading {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px 20px;
    margin-bottom: 16px;
}
.catalog-heading h1 { font-size: clamp(29px, 4vw, 43px); }
.catalog-heading .search-form { width: min(100%, 390px); }
.catalog-panel {
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 14px clamp(15px, 2.7vw, 31px) 20px;
    background: #fff;
    scroll-margin-top: 12px;
}
.catalog-filter {
    display: grid;
    grid-template-columns: 79px minmax(0, 1fr);
    align-items: start;
    gap: 7px;
    padding-block: 8px;
    border-bottom: 1px solid #eef0eb;
    font-size: 14px;
}
.catalog-filter strong { padding-block: 4px; }
.catalog-filter > div { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 6px; }
.catalog-filter a {
    padding: 4px 9px;
    border-radius: 5px;
    color: var(--muted);
    white-space: nowrap;
    text-decoration: none;
}
.catalog-filter a:hover { background: #eef4ed; color: var(--catalog-accent); }
.catalog-filter a[aria-current] { color: var(--catalog-accent); background: #e5f2e9; font-weight: 700; }
.catalog-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    flex-wrap: wrap;
    gap: 2px 12px;
    margin-top: 13px;
    border-bottom: 1px solid var(--catalog-accent);
}
.catalog-sorts { display: flex; flex-wrap: wrap; gap: 1px 6px; }
.catalog-sorts a {
    padding: 5px 13px;
    border-radius: 7px 7px 0 0;
    color: var(--muted);
    font-size: 14px;
    text-decoration: none;
}
.catalog-sorts a:hover { color: var(--catalog-accent); }
.catalog-sorts a[aria-current] { color: #fff; background: var(--catalog-accent); font-weight: 700; }
.catalog-total { padding-bottom: 4px; color: var(--muted); font-size: 13px; }
.catalog-school {
    display: grid;
    grid-template-columns: clamp(133px, 16vw, 185px) minmax(0, 1fr) minmax(125px, auto);
    gap: 17px;
    align-items: start;
    padding-block: 17px;
    border-bottom: 1px solid #edf0ea;
}
.catalog-school:last-child { border-bottom: 0; }
.catalog-thumbnail {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 3 / 2;
    border-radius: 9px;
    background: #e9eee5;
}
.catalog-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.catalog-thumbnail span {
    position: absolute;
    right: 6px;
    bottom: 6px;
    padding: 1px 6px;
    border-radius: 4px;
    background: #192a23e8;
    color: #fff;
    font-size: 10px;
}
.catalog-school-copy h2 { margin: 1px 0 7px; font-size: clamp(17px, 2vw, 21px); overflow-wrap: anywhere; }
.catalog-school-copy h2 a { color: var(--ink); text-decoration: none; }
.catalog-school-copy h2 a:hover { color: var(--catalog-accent); text-decoration: underline; }
.catalog-address, .catalog-review { display: flex; gap: 8px; align-items: baseline; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.catalog-address .pin { align-self: start; margin-top: 5px; }
.catalog-review { margin-top: 3px; }
.catalog-review > span { font-size: 16px; line-height: 1; }
.catalog-quote { text-align: right; }
.catalog-quote > div { display: flex; justify-content: flex-end; align-items: baseline; flex-wrap: wrap; gap: 5px; }
.catalog-quote strong { color: var(--forest); font-size: 17px; white-space: nowrap; }
.catalog-quote strong.catalog-money { color: var(--catalog-price); font-size: clamp(19px, 2.3vw, 24px); }
.catalog-quote > div > span, .catalog-quote > small { color: var(--muted); font-size: 12px; }
.catalog-quote .catalog-license { color: var(--forest); font-weight: 600; }
.catalog-empty { margin-top: 15px; }
.catalog-pages { margin-bottom: 0; }

@media (max-width: 640px) {
    .chenzhou-catalog { padding-block: 15px 42px; }
    .catalog-heading { margin-bottom: 12px; }
    .catalog-panel { padding: 8px 10px 15px; }
    .catalog-filter { grid-template-columns: 57px minmax(0, 1fr); gap: 3px; font-size: 12px; }
    .catalog-filter > div { gap: 3px; }
    .catalog-filter a { padding: 4px 5px; }
    .catalog-sorts { gap: 3px; }
    .catalog-sorts a { padding: 5px 7px; font-size: 12px; }
    .catalog-total { font-size: 11px; }
    .catalog-school {
        grid-template-columns: minmax(78px, 28%) minmax(0, 1fr);
        grid-template-areas: "photo details" "photo quote";
        gap: 4px 9px;
        padding-block: 12px;
    }
    .catalog-thumbnail { grid-area: photo; }
    .catalog-thumbnail span { right: 4px; bottom: 4px; font-size: 9px; }
    .catalog-school-copy { grid-area: details; }
    .catalog-school-copy h2 { font-size: 16px; margin-bottom: 3px; }
    .catalog-address, .catalog-review { font-size: 12px; gap: 5px; }
    .catalog-quote { grid-area: quote; display: flex; align-items: baseline; gap: 5px; text-align: left; }
    .catalog-quote > div { justify-content: start; }
    .catalog-quote strong.catalog-money { font-size: 17px; }
    .catalog-quote > small { font-size: 11px; }
}
