/* Repeatable institution, professor and cooperation cards on 함께하는 이들. */
.partner-directory + .partner-directory { margin-top:100px; }
.partner-directory-heading { display:flex; gap:28px; align-items:flex-start; justify-content:space-between; padding-bottom:25px; border-bottom:1px solid #cbd5c5; margin-bottom:30px; }
.partner-directory-heading>div { min-width:0; }
.partner-directory-heading h3 { color:var(--deep); font-family:var(--serif); font-size:30px; line-height:1.5; margin:0; }
.partner-directory-heading p { color:var(--muted); font-size:15px; margin-top:10px; max-width:64ch; }
.partner-directory-icon { width:52px; height:52px; flex:0 0 52px; display:grid; place-items:center; border:1px solid #cbd5c5; color:var(--teal); border-radius:50%; }
.partner-directory-icon .icon { width:25px; height:25px; }
.partner-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; min-width:0; }
.partner-grid[data-count="1"] { grid-template-columns:minmax(0,1fr); }
.partner-card { display:grid; grid-template-columns:104px minmax(0,1fr); gap:28px; align-items:start; min-width:0; padding:34px; background:var(--paper); border:1px solid #d6ddcf; box-shadow:0 7px 25px #244c3e04; transition:border-color .2s,box-shadow .2s; }
.partner-card:hover { border-color:#809c87; box-shadow:0 10px 30px #244c3e09; }
.partner-card-visual { min-width:0; width:104px; }
.partner-card-visual figure { margin:0; }
.partner-card-frame { width:100%; aspect-ratio:1; overflow:hidden; position:relative; display:grid; place-items:center; background:#eef1e8; color:var(--teal); border:1px solid #dfe5d7; }
.partner-card-frame img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; max-width:100%; }
.partner-card-frame>.icon { width:37px; height:37px; }
.partner-card-visual figcaption { font-size:10px; color:var(--muted); text-align:center; line-height:1.6; margin-top:7px; overflow-wrap:anywhere; }
.partner-card--professors .partner-card-frame { border-radius:50%; background:#f2ede4; color:#906151; border-color:#e8dfd2; }
.partner-card--organizations .partner-card-frame { background:#edf1ec; }
.partner-card-copy { min-width:0; }
.partner-card-role { display:inline-block; font-size:11px; font-weight:500; line-height:1.6; letter-spacing:.02em; color:var(--teal); background:#edf1e8; padding:4px 10px; margin-bottom:13px; }
.partner-card h4 { margin:0; font-family:var(--serif); color:var(--deep); font-size:clamp(24px,2.2vw,30px); line-height:1.5; letter-spacing:-.045em; word-break:keep-all; overflow-wrap:anywhere; }
.partner-card-subtitle { color:#767b6c; font-size:13px; line-height:1.8; margin-top:10px; word-break:keep-all; overflow-wrap:anywhere; }
.partner-card-summary { color:#4c5c51; font-size:15px; line-height:1.9; margin-top:19px; max-width:74ch; overflow-wrap:anywhere; }
.partner-card-link { margin-top:22px; width:fit-content; font-size:13px; display:inline-flex; align-items:center; gap:12px; color:var(--teal); border-bottom:1px solid #9bac98; padding-bottom:5px; }
.partner-card-link .icon { width:17px; height:17px; }
.partner-directory-empty { padding:30px; border:1px dashed var(--line); font-size:15px; color:var(--muted); background:var(--paper); }
.js .partner-grid.reveal { transform:none; transition:opacity .6s; }

@media (max-width:1050px) {
  .partner-card { padding:28px; grid-template-columns:76px minmax(0,1fr); gap:22px; }
  .partner-card-visual { width:76px; }
  .partner-card-frame>.icon { width:29px; height:29px; }
}
@media (max-width:760px) {
  .partner-directory + .partner-directory { margin-top:100px; }
  .partner-directory-heading { gap:16px; padding-bottom:20px; margin-bottom:24px; }
  .partner-directory-heading h3 { font-size:25px; }
  .partner-directory-heading p { font-size:14px; }
  .partner-directory-icon { width:42px; height:42px; flex-basis:42px; }
  .partner-grid { grid-template-columns:1fr; gap:22px; }
  .partner-card { padding:25px; grid-template-columns:1fr; gap:20px; }
  .partner-card-visual { width:68px; }
  .partner-card-copy h4 { font-size:25px; }
  .partner-card-summary { font-size:15px; }
}
