
.partners-intro { margin-bottom: 36px; }
.partners-search { background: var(--color-bg); padding: 24px; border-radius: var(--radius-md); border: 1px solid var(--color-border); margin-bottom: 40px; }
.search-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.search-input { flex: 1; min-width: 200px; padding: 10px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.88rem; background: #fff; color: var(--color-text); transition: var(--transition); }
.search-input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(26,58,92,0.08); }
.search-select { padding: 10px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.88rem; background: #fff; color: var(--color-text); cursor: pointer; }
.partners-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.partner-card { background: #fff; border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--color-border); box-shadow: var(--shadow-sm); transition: var(--transition); }
.partner-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.partner-card > img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.partner-body { padding: 20px; }
.partner-body h3 { font-size: 0.92rem; font-family: var(--font-body); font-weight: 600; color: var(--color-primary); margin-bottom: 8px; line-height: 1.45; }
.partner-site { font-size: 0.8rem; color: var(--color-accent); transition: var(--transition); display: inline-block; margin-bottom: 10px; }
.partner-site:hover { text-decoration: underline; }
.partner-toggle { font-size: 0.78rem; color: var(--color-primary); border: 1px solid var(--color-border); padding: 5px 12px; border-radius: var(--radius-sm); cursor: pointer; background: #fff; transition: var(--transition); }
.partner-toggle:hover { background: var(--color-bg); }
.partner-detail { margin-top: 12px; border-top: 1px solid var(--color-border); padding-top: 12px; }
.partner-type { margin-bottom: 10px; }
.partner-type strong { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-accent); display: block; margin-bottom: 4px; }
.partner-type p { font-size: 0.75rem; color: var(--color-text-light); line-height: 1.65; }
.partner-card.hidden { display: none; }
@media(max-width:900px){ .partners-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px){ .partners-grid{grid-template-columns:1fr;} .search-row{flex-direction:column;} .search-input,.search-select{width:100%;} }
