@media print, screen and (min-width: 741px) {
  .p-sitemap-list {
    display: flex;
    flex-wrap: wrap;
    gap: 2.1428571429vw 4.2857142857vw;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-list {
    gap: 30px 60px;
  }
}

@media only screen and (max-width: 740px) {
  .p-sitemap-item {
    border-bottom: 1px solid #99a1af;
  }
  .p-sitemap-item:first-child {
    border-top: 1px solid #99a1af;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-item {
    flex: 0 0 calc((100% - 4.2857142857vw) / 2);
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-item {
    flex: 0 0 calc((100% - 60px) / 2);
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-item.-mt {
    margin-top: 2.8571428571vw;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-item.-mt {
    margin-top: 40px;
  }
}

.p-sitemap-txt {
  display: block;
  position: relative;
  line-height: 1.4;
  font-weight: bold;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-txt {
    padding: 10px;
    margin: 10px;
    font-size: 16px;
    font-size: 1.6rem;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-txt {
    padding: 1.4285714286vw 0.7142857143vw;
    font-size: 1.4285714286vw;
    border-bottom: 1px solid #99a1af;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-txt {
    padding: 20px 10px;
    font-size: 20px;
    font-size: 2rem;
  }
}

.p-sitemap-link {
  display: block;
  position: relative;
  line-height: 1.4;
  font-weight: bold;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-link {
    padding: 10px;
    margin: 10px;
    font-size: 16px;
    font-size: 1.6rem;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-link {
    padding: 1.4285714286vw 0.7142857143vw;
    font-size: 1.4285714286vw;
    border-bottom: 1px solid #99a1af;
    transition: color 0.4s;
  }
  .p-sitemap-link:hover {
    color: #0071bc;
  }
  .p-sitemap-link:hover:before {
    scale: 0;
  }
  .p-sitemap-link:hover:after {
    scale: 1;
  }
  .p-sitemap-link:hover .-txt {
    background-position: 0 0;
    background-size: 100% 100%;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-link {
    padding: 20px 10px;
    font-size: 20px;
    font-size: 2rem;
  }
}
.p-sitemap-link:before {
  content: "";
  display: block;
  background: #1d2951;
  border-radius: 100%;
  position: absolute;
  translate: 50% 50%;
  z-index: 1;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-link:before {
    width: 24px;
    height: 24px;
    right: 22px;
    bottom: calc(10px + 0.7em);
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-link:before {
    width: 2.1428571429vw;
    height: 2.1428571429vw;
    right: 1.7857142857vw;
    bottom: calc(1.4285714286vw + 0.7em);
    transition: scale 0.6s;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-link:before {
    width: 30px;
    height: 30px;
    right: 25px;
    bottom: calc(20px + 0.7em);
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-link:after {
    content: "";
    display: block;
    background: #0071bc;
    border-radius: 100%;
    position: absolute;
    translate: 50% 50%;
    width: 2.1428571429vw;
    height: 2.1428571429vw;
    right: 1.7857142857vw;
    bottom: calc(1.4285714286vw + 0.7em);
    scale: 0;
    transition: scale 0.6s;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-link:after {
    width: 30px;
    height: 30px;
    right: 25px;
    bottom: calc(20px + 0.7em);
  }
}
.p-sitemap-link .-txt {
  background: linear-gradient(to top, currentColor, currentColor 1px, transparent 1px, transparent) 100% 0/0 100% no-repeat;
  transition: background-size 0.4s;
}
.p-sitemap-link .-icon {
  display: block;
  background: #fff;
  mask: url(/_assets/_common/img/icon-arrow.svg) 50% 50%/contain no-repeat;
  position: absolute;
  translate: 50% 50%;
  transition: background 0.6s;
  z-index: 1;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-link .-icon {
    width: 10px;
    height: 8px;
    right: 22px;
    bottom: calc(10px + 0.7em);
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-link .-icon {
    width: 0.7142857143vw;
    height: 0.5714285714vw;
    right: 1.7857142857vw;
    bottom: calc(1.4285714286vw + 0.7em);
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-link .-icon {
    width: 10px;
    height: 8px;
    right: 25px;
    bottom: calc(20px + 0.7em);
  }
}

.p-sitemap-link-external {
  display: block;
  position: relative;
  line-height: 1.4;
  font-weight: bold;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-link-external {
    padding: 10px;
    margin: 10px;
    font-size: 16px;
    font-size: 1.6rem;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-link-external {
    padding: 1.4285714286vw 0.7142857143vw;
    font-size: 1.4285714286vw;
    border-bottom: 1px solid #99a1af;
    transition: color 0.4s;
  }
  .p-sitemap-link-external:hover {
    color: #0071bc;
  }
  .p-sitemap-link-external:hover:before {
    scale: 0;
  }
  .p-sitemap-link-external:hover:after {
    scale: 1;
  }
  .p-sitemap-link-external:hover .-txt {
    background-position: 0 0;
    background-size: 100% 100%;
  }
  .p-sitemap-link-external:hover .-icon {
    background: #0071bc;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-link-external {
    padding: 20px 10px;
    font-size: 20px;
    font-size: 2rem;
  }
}
.p-sitemap-link-external .-txt {
  background: linear-gradient(to top, currentColor, currentColor 1px, transparent 1px, transparent) 100% 0/0 100% no-repeat;
  transition: background-size 0.4s;
}
.p-sitemap-link-external .-icon {
  display: block;
  width: 1em;
  height: 0.8em;
  background: #1d2951;
  mask: url(/_assets/_common/img/icon-external.svg) 50% 50%/contain no-repeat;
  position: absolute;
  translate: 50% 50%;
  transition: background 0.6s;
  z-index: 1;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-link-external .-icon {
    right: 22px;
    bottom: calc(10px + 0.7em);
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-link-external .-icon {
    right: 1.7857142857vw;
    bottom: calc(1.4285714286vw + 0.7em);
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-link-external .-icon {
    right: 25px;
    bottom: calc(20px + 0.7em);
  }
}

@media only screen and (max-width: 740px) {
  .p-sitemap-item-child {
    padding: 0 20px 20px;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-item-child {
    padding: 20px 10px 0;
    margin-top: 0.3571428571vw;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-item-child {
    margin-top: 5px;
  }
}
.p-sitemap-item-child li {
  line-height: 1.4;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-item-child li:not(:first-child) {
    margin-top: 10px;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-item-child li:not(:first-child) {
    margin-top: 1.0714285714vw;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-item-child li:not(:first-child) {
    margin-top: 15px;
  }
}

.p-sitemap-item-child-link {
  display: inline-block;
  padding-left: 1.3em;
  position: relative;
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-item-child-link:hover .-txt {
    color: #0071bc;
    background-position: 0 0;
    background-size: 100% 100%;
  }
}
.p-sitemap-item-child-link:before {
  content: "";
  display: inline-block;
  background: #0071bc;
  mask: url(/_assets/_common/img/icon-arrow.svg) 50% 50%/contain no-repeat;
  position: absolute;
  left: 0;
  top: 0.8em;
  translate: 0 -50%;
}
@media only screen and (max-width: 740px) {
  .p-sitemap-item-child-link:before {
    width: 12px;
    height: 10px;
  }
}
@media print, screen and (min-width: 741px) {
  .p-sitemap-item-child-link:before {
    width: 0.8571428571vw;
    height: 0.7142857143vw;
  }
}
@media only screen and (min-width: 1400px) {
  .p-sitemap-item-child-link:before {
    width: 12px;
    height: 10px;
  }
}
.p-sitemap-item-child-link .-txt {
  background: linear-gradient(to top, currentColor, currentColor 1px, transparent 1px, transparent) 100% 0/0 100% no-repeat;
  transition: background-size 0.4s, color 0.4s;
}