/* Local collection normalization and review pages, 2026-09-09. */
.thematic-product-grid,.thematic-maker-grid,.candidate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
.thematic-product,.thematic-maker,.candidate-card{height:100%;min-width:0}
.thematic-product--wide{grid-column:auto}
.thematic-product__media{height:auto;aspect-ratio:4/3;padding:12px}
.thematic-product--wide .thematic-product__media{height:auto}
.thematic-product__media img{object-fit:contain}
.thematic-product__body{min-height:320px}
.thematic-maker__photo{height:auto;aspect-ratio:1/1}
.thematic-maker__body{min-height:300px}
@media(max-width:1100px){.thematic-product-grid,.thematic-maker-grid,.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.thematic-product-grid,.thematic-maker-grid,.candidate-grid{grid-template-columns:1fr}.thematic-product__body,.thematic-maker__body{min-height:0}}
.candidate-review{background:#efedef;color:#231f20;min-height:100vh;padding:48px 0 90px;overflow-x:hidden}
.candidate-shell{width:min(1500px,calc(100% - 48px));margin:auto}
.candidate-review h1{max-width:100%;overflow-wrap:anywhere;font-size:clamp(42px,6vw,82px);line-height:.92;letter-spacing:-.05em;margin:12px 0 20px}
.candidate-review h2{font-size:clamp(34px,4vw,58px);margin:70px 0 24px}
.candidate-note{max-width:920px;font-size:19px;line-height:1.5}
.candidate-banner{display:inline-block;padding:10px 14px;border-radius:999px;background:#4b38ff;color:#fff;font-weight:800;font-size:12px;letter-spacing:.06em}
.candidate-summary{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 34px}.candidate-summary span{padding:10px 14px;border:1px solid #c9c1ff;border-radius:999px;background:#fff}
.candidate-card{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 15px 40px rgba(35,31,32,.08)}
.candidate-card__media{display:block;aspect-ratio:4/3;overflow:hidden;background:#e6e4e7}.candidate-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.candidate-card__body{display:flex;flex:1;flex-direction:column;padding:22px}.candidate-card h3{margin:8px 0 10px;font-size:23px;line-height:1.08}.candidate-card p{color:#5e5a5f;line-height:1.42}.candidate-card__reason{margin-top:auto;padding-top:12px;border-top:1px solid #e4e0e5;font-size:13px}.candidate-status{font-weight:800;color:#4b38ff}.candidate-status--check{color:#965900}.candidate-missing{margin:18px 0;padding:18px;border:1px solid #d9c9a8;border-radius:14px;background:#fff8e9}.candidate-missing li{margin:8px 0}
@media(max-width:680px){.candidate-shell{width:calc(100% - 32px)}.candidate-review h1{font-size:38px;letter-spacing:-.035em}.candidate-review h2{font-size:34px}.candidate-banner{font-size:10px}.candidate-summary{display:grid;grid-template-columns:1fr 1fr}.candidate-summary span{min-width:0;font-size:13px}}
