.visual-main {
  display: block;
  width: 100%;
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 768px) {
  .visual-main {
    height: 55rem;
  }
}
@media screen and (max-width: 767px) {
  .visual-main {
    aspect-ratio: 375/240;
    height: auto;
  }
}

.visual-main-inner {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.loading {
  width: 50px;
  padding: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  --_m: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
  mask: var(--_m);
  -webkit-mask-composite: source-out;
  mask-composite: subtract;
  animation: s3 1s infinite linear;
}

@keyframes s3 {
  to {
    transform: rotate(1turn);
  }
}
.visual-loader {
  content: "";
  width: 100%;
  height: 100%;
  background: #000000;
  position: absolute;
  right: 0;
  top: 0;
  animation: fade 0.4s forwards 0.4s;
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.off.visual-loader {
  display: none;
}

.video-content {
  position: absolute;
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  opacity: 0;
  transition: opacity 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
  pointer-events: none;
}

.video-content.shown {
  opacity: 1;
}

#video-content {
  width: 100%;
  width: 177.77777778vh;
  max-width: 177.77777778vh;
  height: 56.25vw;
  min-width: 100%;
  min-height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

#profile .description {
  margin-bottom: 60px;
}
#profile .row .col-right .txt-lg {
  font-size: 2.1rem;
}
@media screen and (max-width: 767px) {
  #profile .row .col-right .txt-lg {
    text-align: center;
  }
}
#profile .row .col-right .txt-md {
  font-size: 1.6rem;
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  #profile .row .col-right .txt-md {
    text-align: center;
  }
}

#achievement {
  background-color: #fff;
}
#achievement .achievement-anchor-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 1.8rem;
  margin-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  #achievement .achievement-anchor-list {
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    row-gap: 2.5rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media screen and (min-width: 576px) and (max-width: 767px) {
  #achievement .achievement-anchor-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.8rem;
  }
}
#achievement .achievement-anchor-list a {
  max-width: 100%;
  width: 35rem;
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  #achievement .achievement-anchor-list a {
    width: 100%;
  }
}
@media screen and (min-width: 576px) and (max-width: 767px) {
  #achievement .achievement-anchor-list a {
    width: 100%;
  }
}
#achievement .achievement-anchor-list a img {
  transition: transform 0.3s;
}
#achievement .achievement-anchor-list a .detail {
  transition: 0.3s;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: rgba(35, 24, 21, 0.4);
  color: #fff;
  font-weight: bold;
  font-size: 2.4rem;
}
#achievement .achievement-anchor-list a .detail p {
  margin: 0;
}
@media screen and (min-width: 768px) {
  #achievement .achievement-anchor-list a:hover img {
    transform: scale(1.1);
  }
}
#achievement .achievement-list {
  max-width: 95rem;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #achievement .achievement-list {
    padding: 0 1rem;
  }
}
#achievement .achievement-list .achievements-block {
  border-top: 1px solid rgba(4, 37, 95, 0.4);
  padding-top: 4rem;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  #achievement .achievement-list .achievements-block {
    padding-bottom: 5rem;
  }
  #achievement .achievement-list .achievements-block:first-child {
    border-top: 0;
    padding-top: 1rem;
  }
}
#achievement .achievement-list .achievements-block .side-ttl {
  font-size: 2.1rem;
  font-weight: bold;
  color: #04255f;
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 767px) {
  #achievement .achievement-list .achievements-block .side-ttl {
    text-align: center;
    margin-bottom: 3.6rem;
  }
}
#achievement .achievement-list .achievements-block .side-ttl .ttl {
  margin: 0;
}
#achievement .achievement-list .achievements-block .main-cont {
  display: flex;
  flex-direction: column;
}
#achievement .achievement-list .achievements-block .main-cont .block {
  display: flex;
  gap: 2rem;
  padding-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  #achievement .achievement-list .achievements-block .main-cont .block {
    flex-direction: column;
  }
}
#achievement .achievement-list .achievements-block .main-cont .block:not(:first-child) {
  padding-top: 2rem;
  border-top: 1px solid rgba(126, 111, 106, 0.4);
}
#achievement .achievement-list .achievements-block .main-cont .block:last-child {
  padding-bottom: 0;
}
#achievement .achievement-list .achievements-block .main-cont .block-more {
  border-top: none !important;
}
#achievement .achievement-list .achievements-block .main-cont .block-more::before {
  content: "";
}
#achievement .achievement-list .achievements-block .main-cont .block-more::before,
#achievement .achievement-list .achievements-block .main-cont .block .year {
  width: 15rem;
  margin: 0;
}
#achievement .achievement-list .achievements-block .main-cont .block .block-inner {
  flex: 1;
}
#achievement .achievement-list .achievements-block .main-cont .block .block-inner .ttl {
  font-size: 2rem;
  margin-bottom: 0;
}
#achievement .achievement-list .achievements-block .main-cont .block .block-inner .subttl {
  font-weight: 500;
  font-size: 1.8rem;
}
#achievement .achievement-list .achievements-block .main-cont .block .block-inner ul li:not(:last-of-type) {
  margin-bottom: 10px;
}
#achievement .achievement-list .achievements-block .main-cont .block.block-more {
  display: block;
}
#achievement .achievement-list .achievements-block .main-cont .more-contents {
  display: none;
}
#achievement .achievement-list .achievements-block .main-cont .more-contents .block {
  padding-top: 2rem;
  border-top: 1px solid #7e6f6a;
}

#recommend .desc {
  text-align: center;
  letter-spacing: 0.025em;
  font-weight: bold;
  font-size: clamp(1.5rem, 1.3756906077rem + 0.3314917127vw, 1.8rem);
  line-height: 1.86;
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  #recommend .desc {
    line-height: 1.55;
    margin-bottom: 5rem;
  }
}
#recommend .recommend-list {
  display: flex;
  color: #04255f;
  text-align: center;
  line-height: 1.73;
}
@media screen and (max-width: 767px) {
  #recommend .recommend-list {
    flex-direction: column;
    margin-bottom: 3rem;
  }
}
@media screen and (min-width: 768px) {
  #recommend .recommend-list {
    margin-bottom: 5rem;
  }
}
#recommend .recommend-list .item {
  position: relative;
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  #recommend .recommend-list .item {
    width: 25%;
  }
}
#recommend .recommend-list .item:not(:last-child):after {
  content: "";
  position: absolute;
}
@media screen and (max-width: 767px) {
  #recommend .recommend-list .item:not(:last-child):after {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 5rem;
    border-bottom: 1px solid #04255f;
  }
}
@media screen and (min-width: 768px) {
  #recommend .recommend-list .item:not(:last-child):after {
    top: 50%;
    right: 0;
    transform: translateY(-65%);
    height: 4rem;
    border-right: 1px solid #04255f;
  }
}
#recommend .recommend-img {
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  #recommend .recommend-img {
    margin-bottom: 7rem;
  }
}
@media screen and (max-width: 767px) {
  #recommend .col-detail .txt-lg {
    text-align: center;
  }
}