* {
  margin: 0;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
}
ul,li{
 list-style: none;
 will-change: transform;
}
a{
  display: block;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
img {
  border: 0;
  max-width: 100%;
  height: auto;
}
.link-area{
  width: 286px;
  display: block;
}
::after, ::before {
  box-sizing: border-box;
}
.card-item{
  border: 2px solid #f0f0ee;
  border-radius: 22px;
  display: inline-block;
  position: relative;
  width: 100%;
  overflow: hidden;
}
.card-item:hover{
 transform: scale(0.9);
 transition-duration: 250ms;
}
.card-item:hover img{
 transform: scale(0.7);
 transition-duration: 250ms;
 filter: brightness(70%); 
 border-radius: 20px;
}
.card-item:hover p{
 color: #000;
 transition: color 250ms ease;
}
.card-item:hover p{
 color: #30b49f;
 transform: scale(1);
}
.card-item > a {
  display: block;
  position: relative;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
.card-img {
  overflow: hidden;
  position: relative;
  border-radius: 20px 20px 0 0;
}
 .card-w{
  margin-right: 31px;
  width: 290px;
  box-sizing: border-box;
 }
.icon_img{
  border-radius: 20px 20px 0 0;
}
.card-body{
  padding-top: 30px;
  padding-bottom: 30px;
}
.card-title{
  display: block;
  overflow: hidden;
  text-align: center;
  vertical-align: top;
  color: #000;
  margin: 0 auto;
  width: fit-content;
  height: 28px;
}
.link-arrow{
  background-image:url(../images/arrow.png);
  background-repeat: no-repeat;
  background-size: 12px;
  background-position: 10px 3px;
}
.link-arrow::before {
  content: "";
  display: inline-block;
  margin: -0.8em 0.3em -0.6em -0.1em;
  width: 1.4em;
  height: 1.4em;
  background-position: center center;
  vertical-align: middle;
  line-height: 0;
}
@media screen and (max-width: 768px) {
  /* スマホ用スタイル */
  .sp{
    margin: 0 15%;
  }
}
