.partners { 
  max-width: 1200px; 
  margin: 0 auto; 
  padding: 56px 20px;
  box-sizing: border-box;
}

.partners-inner { 
  display:block; 
}

.partner-block { 
  margin:0 0 56px; 
}

.partner-title {
  font-weight: 600;
  font-size: clamp(18px, 5vw, 30px);
  color: #FC5F00;
  margin: 0;
}

.partner-sub { 
  margin:0 0 18px; 
  font-size:14px; 
  opacity:.9; 
}

.partner-logos { 
  display:grid; 
  gap:20px; 
}

.partner-logo img { 
  display:block; 
  width:100%; 
  height:100%; 
  object-fit:contain; 
}

/* 列数 */
.partner-block.premium  .partner-logos{grid-template-columns:repeat(2,1fr);}
.partner-block.plus     .partner-logos{grid-template-columns:repeat(3,1fr);}
.partner-block.diamond  .partner-logos{grid-template-columns:repeat(4,1fr);}
.partner-block.platinum .partner-logos{grid-template-columns:repeat(4,1fr);}
.partner-block.official .partner-logos{grid-template-columns:repeat(5,1fr);}

/* ロゴ高さ（目安） */
.partner-block.premium  .partner-logo img{max-height:260px;}
.partner-block.plus     .partner-logo img{max-height:180px;}
.partner-block.diamond  .partner-logo img,
.partner-block.platinum .partner-logo img{max-height:150px;}
.partner-block.official .partner-logo img{max-height:120px;}


/* レスポンシブ：スマホで余白を最小化 */
@media(max-width:980px){
  .partners {
    padding: 40px 8px; /* 左右20pxから8pxに削減 */
  }
  
  .partner-block {
    margin: 0 0 40px;
  }
  
  .partner-logos {
    gap: 12px; /* 20pxから12pxに削減 */
  }
  
  .partner-block.premium .partner-logos  { 
    grid-template-columns:1fr; 
  }
  
  .partner-block.plus .partner-logos,
  .partner-block.diamond .partner-logos,
  .partner-block.platinum .partner-logos { 
    grid-template-columns:repeat(2,1fr); 
  }
  
  .partner-block.official .partner-logos { 
    grid-template-columns:repeat(2,1fr); 
  }
}

/* さらに小さい画面（480px以下） */
@media(max-width:480px){
  .partners {
    padding: 32px 6px; /* さらに余白削減 */
  }
  
  .partner-logos {
    gap: 8px; /* さらに詰める */
  }
}