/* 症例×店舗 紐付け — 対応店舗カード */
.csl-box {
    margin: 2.5em 0 1em;
    padding: 1.6em 1.6em 1.8em;
    border: 1px solid #f0d4dd;
    border-radius: 10px;
    background: #fff7fa;
}

.csl-title {
    margin: 0 0 1.1em;
    padding-bottom: .6em;
    border-bottom: 2px solid #e3528a;
    font-size: 1.15em;
    font-weight: 700;
    color: #c2336e;
    letter-spacing: .02em;
}

.csl-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .75em;
}

.csl-card {
    display: flex;
    align-items: center;
    gap: .75em;
    padding: .55em .7em;
    border: 1px solid #ececec;
    border-radius: 8px;
    background: #fff;
    text-decoration: none;
    color: #333;
    transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}

.csl-card:hover {
    border-color: #e3528a;
    box-shadow: 0 4px 12px rgba(227, 82, 138, .15);
    transform: translateY(-1px);
}

.csl-thumb {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    border-radius: 6px;
    overflow: hidden;
    background: #f4f4f4;
}

.csl-thumb-img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    display: block;
}

.csl-name {
    flex: 1 1 auto;
    font-weight: 600;
    line-height: 1.35;
    position: relative;
    padding-left: 1em;
}

.csl-name::before {
    content: "\203A";
    position: absolute;
    left: 0;
    color: #e3528a;
    font-weight: 700;
}

@media (max-width: 600px) {
    .csl-box { padding: 1.2em 1.1em 1.4em; }
    .csl-grid { grid-template-columns: 1fr 1fr; }
    .csl-thumb, .csl-thumb-img { width: 48px; height: 48px; }
    .csl-name { font-size: .92em; }
}
