.flex-3 {
    display: flex;
    flex-wrap: wrap;             /* 折り返し可能にする */
    justify-content: space-between; /* 均等配置 */
}

.flex-3 figure {
    flex: 0 0 25%;               /* 常に4分割（PCでは4人横並び） */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;      /* 縦並び */
    align-items: center;         /* 中央寄せ */
    margin: 0;
}

.flex-3 figcaption {
    margin-top: 0.5em;
    text-align: center;
    font-size: 14px;
    min-height: 4em;             /* 高さを揃える */
}

/* スマホやタブレット用にメディアクエリを追加 */
@media (max-width: 1024px) {
  .flex-3 figure {
    flex: 0 0 50%;               /* タブレットでは2列 */
  }
}

@media (max-width: 600px) {
  .flex-3 figure {
    flex: 0 0 100%;              /* スマホでは1列 */
  }
}


.cross-box{
    margin:2em 0;
    position: relative;
    padding: 2em 1.5em;
    border-top: solid 2px black;
    border-bottom: solid 2px black;
    background-color: #ebf6f7;
}
.cross-box:before, .cross-box:after{
    content: '';
    position: absolute;
    top: -10px;
    width: 2px;
    height: -webkit-calc(100% + 20px);
    height: calc(100% + 20px);
    background-color: black;
}
.cross-box:before {left: 10px;}
.cross-box:after {right: 10px;}
.cross-box p {
    margin: 0; 
    padding: 0;
}

.btn,
a.btn,
button.btn {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  position: relative;
  display: block;
  padding: 1rem 1.5rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
  width: 30%;
}
