:root{
  --ink:#1b1b1b;
  --ring:#e9e5ef;
  --ring-2:#ece7f3;
  --dot:#5aa5ff;
}

.partner-wrap{
  position:relative;  overflow:hidden;
}

.partner-diagram{
  position:relative; width:min(800px, 92vw); aspect-ratio:1/1; margin:0 auto;
}

/* 링 배경 */
.partner-diagram .rings{
  position:absolute; inset:0;
}
.ring{
  fill:none;
  stroke: var(--ring);
  stroke-width:5px;
  filter:url(#soft);
}

/* 로고들 */
.logo-list{ list-style:none; margin:0; padding:0; }
.logo{
  position:absolute; transform: translate(-50%, -50%);
  opacity:0; translate:0 8px; transition: opacity .6s ease, translate .6s ease;
  will-change: transform, opacity;
}
.logo.in{ opacity:1; translate:0 0; }
.logo img{
  max-width: 220px; height:auto;
}

/* 반응형: 화면에 따라 로고 크기 자동 축소 */
@media (max-width:1200px){
  .logo img{ max-width: 180px; }
}
@media (max-width:980px){
  .logo img{ max-width: 150px; }
}
@media (max-width:780px){
  .logo img{ max-width: 120px; }
}
@media (max-width:560px){
  .partner-diagram{ aspect-ratio:auto; padding-bottom: 40px; }
  /* 모바일은 겹침 방지 위해 그리드로 폴백 */
  .logo-list{
    display:grid; grid-template-columns: repeat(2, minmax(0,1fr));
    gap:18px; position:relative; top: calc(50vw); /* 원 아래로 밀어두기 */
  }
  .logo{ position:static; transform:none; opacity:1; translate:0; }
  .rings, .nodes{ display:none; }
}

/* 장식 점(노드) */
.nodes{ position:absolute; inset:0; pointer-events:none; }
.nodes .node{
  position:absolute; width:10px; height:10px; border-radius:50%;
  background:var(--dot); box-shadow:0 0 0 6px rgba(90,165,255,.18);
}

/* 접근성: 모션 최소화 */
@media (prefers-reduced-motion: reduce){
  .logo{ transition:none; }
}



/* ===== KDR Scoped Theme */
.kdr-partner{
  --kdr-bg1:#0f0e12;
  --kdr-bg2:#1a1820;
  --kdr-ink:#f5f5f7;
  --kdr-muted:#cfcfd6;

  position:relative;
  padding: clamp(56px, 8vw, 100px) 0;
  background:
    radial-gradient(1200px 800px at 70% 0%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(180deg, var(--kdr-bg2) 0%, var(--kdr-bg1) 100%);
  color: var(--kdr-ink);
  overflow:hidden;
}

.kdr-inner{ width:min(1160px, 92vw); margin:0 auto; }
.kdr-kicker img{ height: clamp(28px, 4vw, 44px); width:auto; vertical-align:middle; }
.kdr-div{
  margin: 18px 0 26px; height: 1px; border:0;
  background: linear-gradient(90deg, rgba(255,255,255,.65), rgba(255,255,255,0));
}
.kdr-title{
  margin: 0 0 10px;
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 800;
  letter-spacing: .2px;
}
.kdr-desc{
  margin: 0 0 36px;
  color: var(--kdr-muted);
  line-height: 1.8;
  font-size: clamp(14px, 1.4vw, 16px);
}

/* ===== Logos Grid */
.kdr-logos{
  margin: 0; padding: 22px 0 0; list-style: none;
  display: grid; gap: clamp(18px, 2.4vw, 28px);
  grid-template-columns: repeat(6, minmax(0,1fr));
  align-items: center;
}
@media (max-width: 1024px){ .kdr-logos{ grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px){  .kdr-logos{ grid-template-columns: repeat(2, 1fr); } }

/* item */
.kdr-logo{
  min-height: 64px;
  transform: translateY(12px) scale(.98);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.35));
}
.kdr-logo.kdr-in{ opacity: 1; transform: translateY(0) scale(1); }

.kdr-logo img{
  max-width: 100%; height: auto; 
  /* 필요시 흰처리
  filter: invert(1) brightness(1.1);
  */
}
.kdr-logo:hover img{ opacity:1; }

/* 모션 최소화 배려 */
@media (prefers-reduced-motion: reduce){
  .kdr-logo{ transition:none; transform:none; opacity:1; }
}


