.top-mv {
  position: relative;
  min-height: 100%;
}
@media (max-width: 768px) {
  .top-mv {
    padding-top: 6rem;
  }
}
.top-mv h1 {
  position: absolute;
  width: 0.1rem;
  height: 0.1rem;
  margin: -0.1rem;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.top-mv__content {
  position: relative;
  width: 100%;
  max-width: 48rem;
  margin: 0 auto;
  container-type: inline-size;
  container-name: top-mv;
}
@media (max-width: 768px) {
  .top-mv__content {
    overflow: hidden;
    aspect-ratio: 480/762;
    height: auto;
    padding-bottom: 0;
  }
}
.top-mv__stage {
  position: relative;
  width: 48rem;
  height: 76.2rem;
}
@media (max-width: 768px) {
  .top-mv__stage {
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: top left;
    transform: scale(calc(2.0833333333cqw / 1rem));
    /* 上の「長さ÷長さ」の計算は Firefox が解釈できず拡大縮小されない（2026-10-17、Android の Firefox で判明）。
       同じ倍率（枠の幅 ÷ 480px）を三角関数で出す書き方を後に置き、解釈できるブラウザではこちらが使われる */
    transform: scale(tan(atan2(100cqw, 48rem)));
  }
}
.top-mv__img01 {
  background: url("../img/mv-bg01.webp") no-repeat;
  background-size: cover;
  position: absolute;
  top: 2.4rem;
  left: 0;
  width: 29.4rem;
  height: 29.8rem;
}
.top-mv__img01 img {
  position: absolute;
  left: 1.6rem;
  right: 5.4rem;
  top: 0.9rem;
  bottom: 0.9rem;
  width: 22.4rem;
  object-fit: contain;
  margin: auto;
  opacity: 0;
  transform: scale(0);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: top-mv-scale-bounce 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0s forwards;
}
.top-mv__img02 {
  background: url("../img/mv-bg02.webp") no-repeat;
  background-size: cover;
  position: absolute;
  top: 33.4rem;
  right: 2.5rem;
  width: 18.4rem;
  height: 17.8rem;
}
.top-mv__img02 img {
  position: absolute;
  right: -2.5rem;
  top: 1.8rem;
  width: 23rem;
  object-fit: contain;
  margin: auto;
  opacity: 0;
  transform: scale(0);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: top-mv-scale-bounce 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards;
}
.top-mv__img03 {
  background: url("../img/mv-bg03.webp") no-repeat;
  background-size: cover;
  position: absolute;
  top: 47.6rem;
  left: 2.8rem;
  width: 19.6rem;
  height: 19rem;
}
.top-mv__img03 img {
  position: absolute;
  right: 1.3rem;
  left: 1.2rem;
  top: 1.2rem;
  bottom: 2rem;
  width: 19.7rem;
  object-fit: contain;
  margin: auto;
  opacity: 0;
  transform: scale(0);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: top-mv-scale-bounce 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.5s forwards;
}
.top-mv__img04 {
  background: url("../img/mv-bg04.webp") no-repeat;
  background-size: cover;
  position: absolute;
  top: 55.9rem;
  right: 4.6rem;
  width: 17.6rem;
  height: 16.8rem;
  z-index: 2;
}
.top-mv__img04 img {
  position: absolute;
  left: -1.2rem;
  bottom: 0.4rem;
  width: 23.5rem;
  object-fit: contain;
  margin: auto;
  opacity: 0;
  transform: scale(0);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: top-mv-scale-bounce 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.75s forwards;
}
.top-mv__top {
  position: absolute;
  top: 4.8rem;
  right: 4rem;
  width: 16.2rem;
  display: inline-flex;
  align-items: flex-start;
  flex-direction: row-reverse;
  justify-content: space-between;
  opacity: 0;
  transform: translateY(0.8rem);
  animation: top-mv-fade-in-text 1s ease-out 0.6s forwards;
}
.top-mv__ttl {
  font-size: 2.8rem;
  font-weight: 500;
  letter-spacing: 0.29em;
  line-height: 1;
  padding-right: 1.6rem;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  background-image: linear-gradient(to bottom, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 0.2rem 1rem;
  background-position: right top;
  background-repeat: repeat-y;
}
.top-mv__ttl span {
  color: #2641ac;
  font-weight: 500;
}
.top-mv__bottom {
  position: absolute;
  top: 34.6rem;
  left: 4rem;
  opacity: 0;
  transform: translateY(0.8rem);
  animation: top-mv-fade-in-text 1s ease-out 0.85s forwards;
}
.top-mv__txt {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.top-mv__txt span {
  color: #2641ac;
  font-weight: 500;
}
.top-mv__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-bottom: 3.2rem; /* 下の「まずはお気軽にお問い合わせ下さい」との間。2026-10-17 に 2.4rem から広げた */
  /* 外側の余白は列の間隔（gap 1.6rem）の半分にする。区切り線を間隔の中央に置く（下の nth-child(2)）のと合わせて、
     端の列の「画面端との余白」と「区切り線との余白」が同じになる */
  padding: 0 0.8rem;
}
.top-mv__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
}
.top-mv__item:nth-child(2) {
  border-right: 0.1rem dashed #d4d4d4;
  border-left: 0.1rem dashed #d4d4d4;
  /* 区切り線を列の間隔の中央に置く（箱を左右に 0.8rem 広げ、同じ分の padding で中身の位置は変えない） */
  margin: 0 -0.8rem;
  padding: 0 0.8rem;
}
.top-mv__icon {
  width: 3.2rem;
}
.top-mv__sbtxt {
  /* 画面が狭いときや文字を大きくする設定のときも、<br> の位置だけで改行し、文字の塊を列の中央に置く
     （列からはみ出す場合は左右に均等にはみ出す） */
  font-size: min(1.5rem, 4vw);
  font-weight: 500;
  line-height: 130%;
  letter-spacing: 0.05em;
  text-align: center;
  white-space: nowrap;
  width: max-content;
  max-width: none;
}
.top-mv__sbtxt span {
  color: #b6964b;
}
.top-product {
  padding-top: 4.8rem;
  background: #fff;
}
@media (max-width: 768px) {
  .top-product {
    padding-top: 4rem;
  }
}
.top-product__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 1.6rem;
}
.top-product__ttl span {
  color: #b6964b;
}
.top-product__link {
  display: block;
}
.top-product__link + .top-product__link {
  margin-top: 1.6rem;
}
.top-news {
  padding: 4rem 0 5.7rem;
  background: #fff;
}
.top-news .heading-en {
  font-size: 2.4rem;
}
.top-news__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 2.4rem;
}
.top-news__head .heading {
  text-align: left;
}
.top-news__more {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.top-news__more .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.top-news__more .arrow img {
  width: 1.1rem;
}
.top-news__list {
  display: flex;
  flex-direction: column;
  border-top: 0.1rem solid #ebebeb;
  border-left: 0.1rem solid #ebebeb;
  border-right: 0.1rem solid #ebebeb;
}
.top-news__item {
  border-bottom: 0.1rem solid #ebebeb;
}
.top-news__link {
  display: flex;
  flex-direction: column;
  padding: 0.8rem 1.6rem;
}
.top-news__date {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
}
.top-news__ttl {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
.top-about {
  padding: 4.8rem 0 6.4rem;
  background: #f5f6f8;
  border-radius: 0 3.2rem 0 0;
}
.top-about__content {
  background: #fff;
  border-radius: 0.8rem;
  padding: 2.4rem;
  margin-top: 2.4rem;
}
.top-about__txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-top: 0.8rem;
  text-align: center;
}
.top-strength {
  padding-bottom: 4.8rem;
  background: #f5f6f8;
  text-align: center;
}
.top-strength__list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin-top: 2.4rem;
}
.top-strength__item {
  background: #fff;
  padding: 2.4rem;
  border-radius: 0.8rem;
  text-align: right;
}
.top-strength__img {
  margin-top: 2.4rem;
}
.top-strength__txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-top: 1.6rem;
  text-align: left;
}
.top-strength__txt strong {
  color: #2641ac;
}
.top-strength__link {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin: 3.2rem auto 0;
  background: #394883;
  width: 22.6rem;
  height: 4.8rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  color: #fff;
}
.top-strength__link .arrow img {
  width: 1.1rem;
}
.top-service {
  padding: 4.8rem 0;
  background: #394883;
  border-radius: 3.2rem 0 0 0;
  text-align: center;
}
.top-service .heading-en {
  color: #bac0d9;
}
.top-service .heading-en:before {
  content: "";
  background: url("../img/landmark-gray.webp") no-repeat;
  background-size: cover;
}
.top-service .heading-ttl {
  color: #fff;
}
.top-service__desc {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  margin-top: 2.4rem;
}
.top-service__list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin-top: 3.2rem;
}
.top-service__item {
  background: #fff;
  border-radius: 0.8rem;
  text-align: right;
}
.top-service__item[id] {
  scroll-margin-top: 3rem;
}
@media (max-width: 768px) {
  .top-service__item[id] {
    scroll-margin-top: 13rem;
  }
}
.top-service__img {
  padding: 1.6rem 2.4rem 0;
}
.top-service__content {
  padding: 0 1.6rem 2.4rem;
  margin-top: 0.8rem;
}
.top-service__ttl {
  font-size: 1.8rem;
  font-weight: 500;
  color: #2641ac;
  margin-top: 1.6rem;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
}
.top-service__txt {
  font-size: 1.4rem;
  font-weight: 500;
  margin-top: 0.8rem;
  line-height: 200%;
  text-align: left;
}
.top-service__txt span {
  color: #2641ac;
  font-weight: 700;
}
.top-service__more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin: 1.6rem auto 0;
  color: #fff;
  background: #394883;
  width: 20rem;
  height: 4.8rem;
  border-radius: 100rem;
}
.top-service__more .arrow img {
  width: 1.1rem;
}
.top-service__link {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin: 3.2rem auto 0;
  color: #333333;
  background: #e8ebf6;
  width: 21.2rem;
  height: 4.8rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}
.top-service__link .arrow img {
  width: 1.1rem;
}
.top-service.entertainment-about .top-service__txt {
  font-size: 1.5rem;
}
.top-service.entertainment-about .top-service__img {
  padding: 2.4rem 2.4rem 0;
}
.top-service.visa-service .top-service__img {
  padding: 2.4rem 2.4rem 0;
}
.top-case {
  padding: 4.8rem 0 6.4rem;
  text-align: center;
}
.top-case__list {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.top-case__link {
  background: #f5f6f8;
  border-radius: 0.4rem;
  padding: 1.4rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.top-case__img {
  width: 32%;
  position: relative;
  padding-top: 21%;
}
.top-case__img img {
  border-radius: 0.4rem;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-case__content {
  width: 63%;
}
.top-case__category {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.top-case__category span {
  font-size: 1.1rem;
  letter-spacing: 0.05em;
  font-weight: 500;
  line-height: 150%;
  color: #737373;
  border: 0.1rem solid #d4d4d4;
  border-radius: 100rem;
  background: #fff;
  padding: 0.2rem 0.8rem;
}
.top-case__ttl {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #394883;
  margin-top: 0.6rem;
  text-align: left;
}
@media (max-width: 768px) {
  .top-case__ttl {
    margin-top: 0.4rem;
  }
}
.top-column {
  background: #fdfdfd;
  padding-bottom: 4.8rem;
}
.top-column__head {
  display: flex;
  justify-content: center;
  margin-bottom: 2.4rem;
}
.top-column__head .heading {
  text-align: left;
}
.top-column__head .heading-ttl {
  text-align: center;
}
.top-column__more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  background: #394883;
  border-radius: 100rem;
  color: #fff;
  width: 15.3rem;
  height: 4.8rem;
  margin: 2.4rem auto 0;
}
.top-column__more .arrow img {
  width: 1.1rem;
}
.top-column__nav {
  margin: 0 auto 2.4rem;
  display: table;
}
@media (max-width: 768px) {
  .top-column__nav {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .top-column__nav::-webkit-scrollbar {
    display: none;
  }
}
.top-column__nav-inner {
  position: relative;
  background: #f4f4f4;
  padding: 0.4rem;
  border-radius: 100rem;
}
@media (max-width: 768px) {
  .top-column__nav-inner {
    display: inline-flex;
    width: max-content;
    min-width: 100%;
    box-sizing: border-box;
  }
}
.top-column__nav-list {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
@media (max-width: 768px) {
  .top-column__nav-list {
    justify-content: flex-start;
    width: 100%;
  }
}
.top-column__nav-indicator {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  height: calc(100% - 0.8rem);
  background: #394883;
  border-radius: 100rem;
  transition: transform 0.3s ease, width 0.3s ease;
  z-index: 0;
  pointer-events: none;
}
.top-column__nav-item {
  position: relative;
  z-index: 1;
}
.top-column__nav-item.is-active .top-column__nav-btn {
  color: #fff;
}
.top-column__nav-btn {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  padding: 0.4rem 1.2rem;
  border: none;
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .top-column__nav-btn {
    letter-spacing: 0;
    font-size: 1.2rem;
  }
}
.top-column__panels {
  position: relative;
  text-align: center;
}
.top-column__list {
  display: none;
  flex-direction: column;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left top;
  background-repeat: repeat-x;
}
.top-column__list.is-active {
  display: flex;
}
.top-column__item {
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.top-column__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2rem 0;
}
.top-column__img {
  width: 27%;
  position: relative;
  padding-top: 15%;
}
@media (max-width: 768px) {
  .top-column__img {
    width: 34%;
    padding-top: 18%;
  }
}
.top-column__img img {
  border-radius: 0.4rem;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-column__content {
  width: 68%;
}
@media (max-width: 768px) {
  .top-column__content {
    width: 61%;
  }
}
.top-column__ttl {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
}
.top-column__flex {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.top-column__date {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
}
.top-column__category {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.top-column__category span {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #737373;
}
.top-office {
  padding-top: 4.8rem;
  background: #f5f6f8;
  border-radius: 0 3.2rem 0 0;
}
.top-office__img {
  margin-top: 2.4rem;
  border-radius: 0.4rem;
}
@media (max-width: 768px) {
  .top-office__img {
    margin-top: 1.6rem;
  }
}
.top-office__content {
  margin-top: 1.6rem;
}
@media (max-width: 768px) {
  .top-office__content {
    margin-top: 2.4rem;
  }
}
.top-office__content dl {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex;
  flex-direction: column;
  width: 100%;
  border-bottom: none;
}
.top-office__content dt {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
}
.top-office__content dd {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  margin-bottom: 0.8rem;
}
.top-office__content dd:last-child {
  margin-bottom: 0;
}
.top-office__map {
  width: 100%;
  height: 24rem;
  margin-top: 1.6rem;
}
@media (max-width: 768px) {
  .top-office__map {
    height: 19.5rem;
    border-radius: 0.4rem;
    margin-top: 2.4rem;
  }
}
.top-office__map iframe {
  width: 100%;
  height: 100%;
}

.page-mv {
  position: relative;
  background: #394883;
  border-radius: 0 0 3.2rem 0;
  padding: 4.1rem 0;
}
@media (max-width: 768px) {
  .page-mv {
    padding: 11.3rem 0 4.1rem;
  }
}
.page-mv:after {
  content: "";
  background: url("../img/symbol.webp?v=20261014") no-repeat;
  background-size: contain;
  width: 13.5rem;
  height: 13.5rem;
  opacity: 0.15;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 2.4rem;
  margin: auto;
}
@media (max-width: 768px) {
  .page-mv:after {
    top: 7.2rem;
  }
}
.page-mv .inner {
  padding: 0 4.8rem;
}
.page-mv__en {
  font-size: 4rem;
  color: #bac0d9;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  font-family: "Bitter", serif;
}
.page-mv__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
  color: #fff;
}
.page-service__top {
  padding: 4rem 0 6.4rem;
}
.page-service__top-ttl {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #394883;
  margin-bottom: 1.6rem;
  text-align: center;
}
.page-service__top-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
}
.page-service__top-list {
  margin-top: 3.2rem;
}
.page-service__top-list .slick-track {
  gap: 1.2rem;
}
.page-service__top-item {
  position: relative;
  padding-top: 66%;
}
.page-service__top-item img {
  border-radius: 0.4rem;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page-service__main {
  padding: 4.8rem 0;
  background: #394883;
}
.page-service__main .heading {
  text-align: center;
}
.page-service__main .heading-en {
  justify-content: center;
  color: #bac0d9;
}
.page-service__main .heading-en:before {
  background: url("../img/landmark-gray.webp") no-repeat;
  background-size: cover;
}
.page-service__main .heading-ttl {
  color: #fff;
}
.page-service__main .top-service__list {
  margin-top: 2.4rem;
}
.page-service__main-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: 2.4rem;
  padding: 0.8rem;
  border-radius: 0.4rem;
}
.page-service__main-list.entertainment-list {
  background: #fff6ef;
}
.page-service__main-item {
  background: #fff;
  padding: 0.4rem 1.6rem;
  border-radius: 0.4rem;
  border: 0.1rem solid #ebebeb;
}
.page-service__main-item .arrow {
  background: transparent;
  width: 2rem;
  height: 2rem;
  border-radius: 0;
}
.page-service__main-item .arrow img {
  width: 100%;
  height: 100%;
}
.page-service__main-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.page-service__main-icon {
  width: 4rem;
  display: block;
}
.page-service__main-ttl {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #394883;
  text-align: center;
}
.page-service__main-flex {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem 2.4rem 0;
}
.page-service__main-flex .top-service__img {
  width: 9.2rem;
  min-width: 9.2rem;
  padding: 0;
}
.page-service__main-flex .top-service__content {
  width: 100%;
  white-space: nowrap;
}
.page-service__main-flex .top-service__ttl {
  margin: 0;
  text-align: left;
  font-size: 1.6rem;
}
.page-service__main-container {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.page-service__head {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: 2.4rem;
}
.page-service__mv {
  padding-bottom: 3.2rem;
}
@media (max-width: 768px) {
  .page-service__mv {
    padding: 7.2rem 0 2.4rem;
  }
}
.page-service__mv-img {
  margin-bottom: 2.4rem;
  padding: 3.2rem 2.4rem 0;
}
.page-service__mv-ttl {
  display: inline;
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  padding-bottom: 0.8rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-service__mv-ttl span {
  color: #2641ac;
}
@media (max-width: 768px) {
  .page-service__mv-ttl {
    font-size: 2.6rem;
  }
}
.page-service__mv-txt {
  margin-top: 1.6rem;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-service__mv-list {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  margin-top: 2.4rem;
}
.page-service__mv-list.visa-mv-list {
  margin-bottom: 1.6rem;
}
.page-service__mv-item {
  background: #fffbf1;
  border-radius: 0.4rem;
  padding: 0.7rem 0;
  text-align: center;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.page-service__mv-item .price {
  font-size: 3.2rem;
  font-weight: 700;
  font-family: "Bitter", serif;
  line-height: 100%;
  letter-spacing: 0.05em;
  color: #c56727;
}
.page-service__mv-item .price span {
  font-size: 1.5rem;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
}
.page-service__mv-item .day {
  font-size: 3.2rem;
  font-weight: 700;
  font-family: "Bitter", serif;
  line-height: 100%;
  letter-spacing: 0.05em;
  color: #c56727;
}
.page-service__mv-item .day span {
  font-size: 1.5rem;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
}
.page-service__mv-item .icon {
  width: 3.2rem;
  margin: auto;
  display: block;
}
.page-service__mv-item .emphasis {
  font-size: 2rem;
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 0.05em;
  color: #c56727;
  margin-top: 0.2rem;
}
.page-service__mv-sbtxt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 130%;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
}
@media (max-width: 768px) {
  .page-service__mv-sbtxt {
    font-size: 1.2rem;
  }
}
.page-service__mv-sbtxt span {
  color: #c56727;
}
.page-service__mv .cta-flex {
  padding: 0;
}
.page-service__action {
  border: 0.1rem solid #ebebeb;
  padding: 1.8rem 1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem;
  margin: 1.6rem auto;
  border-radius: 0.4rem;
  max-width: 39.4rem;
}
@media (max-width: 768px) {
  .page-service__action {
    padding: 1.8rem 0.8rem;
    gap: 1rem;
  }
}
.page-service__action-left {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.page-service__action-left .check {
  width: 2.6rem;
  display: block;
}
.page-service__action-ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .page-service__action-ttl {
    font-size: 1.4rem;
  }
}
.page-service__action-right .price {
  display: flex;
  align-items: baseline;
}
.page-service__action-right .price .num {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #b6964b;
  font-family: "Bitter", serif;
}
@media (max-width: 768px) {
  .page-service__action-right .price .num {
    font-size: 3rem;
  }
}
.page-service__action-right .price .num span {
  font-size: 1.5rem;
  font-family: "Noto Sans JP", sans-serif;
}
.page-service__action-right .price .tax {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-left: 0.4rem;
}
.page-service__action-txt {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #737373;
}
@media (max-width: 768px) {
  .page-service__action-txt {
    font-size: 1.1rem;
  }
}
.page-service__catch {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem;
  margin: 1.6rem auto;
  border-radius: 0.4rem;
  max-width: 40.2rem;
  padding: 1.2rem 2.7rem;
  border: 0.1rem solid #ebebeb;
}
.page-service__catch-left {
  width: 4.5rem;
  min-width: 4.5rem;
}
.page-service__catch-right {
  width: 100%;
}
.page-service__catch-ttl {
  font-size: 1.8rem;
  color: #b6964b;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-bottom: 0.2rem;
}
.page-service__catch-txt {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #737373;
}
.page-service__store {
  padding: 1.2rem 0 2.4rem;
}
.page-service__store-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 2.1rem;
}
.page-service__store-heading:before {
  content: "";
  background: #ebebeb;
  width: 0.3rem;
  height: 3rem;
  display: block;
  transform: rotate(330deg);
}
.page-service__store-heading:after {
  content: "";
  background: #ebebeb;
  width: 0.3rem;
  height: 3rem;
  display: block;
  transform: rotate(30deg);
}
.page-service__store-heading__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__store-heading__ttl span {
  color: #394883;
}
.page-service__store-ttl {
  font-size: 1.6rem;
  border-left: 0.3rem solid #394883;
  padding-left: 0.8rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-bottom: 0.8rem;
}
.page-service__store-list {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.page-service__store-list.store-list01 .page-service__store-item {
  background: #f5f6f8;
}
.page-service__store-list.store-list02 .page-service__store-item {
  background: #f3f7f9;
}
.page-service__store-list.store-list03 .page-service__store-item {
  background: #fdfaf4;
}
.page-service__store-list.store-list04 .page-service__store-item {
  background: #f8f4f4;
}
.page-service__store-item {
  background: #f5f6f8;
  border-radius: 0.8rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  text-align: right;
}
.page-service__store-item:last-child {
  margin-bottom: 1.6rem;
}
.page-service__store-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  padding: 0.4rem 1.6rem;
  border-radius: 0.4rem;
  border: 0.1rem solid #ebebeb;
}
.page-service__store-link .arrow {
  width: 2rem;
}
.page-service__store-img {
  width: 4rem;
  min-width: 4rem;
}
.page-service__store-content {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.page-service__store-sbttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #394883;
  text-align: left;
}
.page-service__store-txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-service__work-wrap {
  position: relative;
  padding-top: 4.8rem;
  background: url("../img/service-work-bg.webp") no-repeat;
  background-size: cover;
  background-position: center;
  background-color: #f5f6f8;
  border-radius: 0 0 0 3.2rem;
}
.page-service__work-wrap:before {
  content: "";
  background: #f5f6f8;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.page-service__work-wrap .inner {
  padding: 0 3.6rem;
}
@media (max-width: 768px) {
  .page-service__work-wrap .inner {
    padding: 0 2rem;
  }
}
.page-service__work-ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  margin-bottom: 2.4rem;
}
.page-service__work-heading {
  font-size: 1.4rem;
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 170%;
  display: block;
  text-align: center;
  margin-bottom: 0.8rem;
}
.page-service__work-list + .page-service__work-heading {
  margin-top: 0.8rem;
}
.page-service__work-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
}
.page-service__work-item {
  padding: 1.6rem;
  text-align: center;
  background: #f8f8f8;
  border-radius: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
@media (max-width: 768px) {
  .page-service__work-item {
    padding: 1.6rem 1.2rem;
  }
}
.page-service__work-sbttl {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #394883;
}
@media (max-width: 768px) {
  .page-service__work-sbttl {
    font-size: 1.4rem;
  }
}
/* 幅 320px の小さいスマホで「許可がないと頼めない」」などが枠から 6px はみ出すため、少しだけ小さくする */
@media (max-width: 359px) {
  .page-service__work-sbttl {
    font-size: 1.3rem;
  }
}
.page-service__work-txt {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__work-img {
  width: 25.6rem;
  margin: auto;
}
.page-service__work.entertainment-work .page-service__work-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.page-service__work.entertainment-work .page-service__work-sbttl {
  font-size: 1.4rem;
  color: #333333;
  line-height: 170%;
}
.page-service__work.visa-work .page-service__work-sbttl {
  font-size: 1.2rem;
  color: #333333;
}
.page-service__work.visa-work .page-service__work-sbttl span {
  font-size: 1.5rem;
  color: #394883;
}
.page-service__note {
  padding: 3.3rem 0 3.8rem;
  background: #fdfdfd;
}
.page-service__note .cta {
  margin-top: 2.4rem;
}
.page-service__note .cta-flex {
  padding: 0;
}
.page-service__note-heading {
  margin-bottom: 0.8rem;
  text-align: center;
}
.page-service__note-heading__ttl {
  position: relative;
  font-size: 2.4rem;
  color: #c56727;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  display: inline-block;
  z-index: 2;
}
.page-service__note-heading__ttl:after {
  content: "";
  background: url("../img/service-note.webp") no-repeat;
  background-size: cover;
  width: 8rem;
  height: 8rem;
  display: block;
  position: absolute;
  top: 0;
  right: -3rem;
  z-index: -1;
}
.page-service__note-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-service__note-txt span {
  color: #394883;
}
.page-service__note-txt.center {
  text-align: center;
}
.page-service__note-list {
  display: flex;
  gap: 1.6rem;
  margin: 2.4rem 0;
}
.page-service__note-item {
  width: 100%;
  border-radius: 0.4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.page-service__note-item:nth-child(1) {
  border: 0.1rem solid #394883;
}
.page-service__note-item:nth-child(1) .page-service__note-sbttl {
  background: #394883;
}
.page-service__note-item:nth-child(2) {
  border: 0.1rem solid #4d4d4d;
}
.page-service__note-item:nth-child(2) .page-service__note-sbttl {
  background: #4d4d4d;
}
.page-service__note-sbttl {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #fff;
  padding: 0.4rem 0;
  text-align: center;
  width: 100%;
}
.page-service__note-content {
  padding: 1.6rem 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.page-service__note-price {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0.05em;
}
.page-service__note-price strong {
  color: #c56727;
  font-size: 2.8rem;
  margin: 0 0.2rem;
  font-weight: 500;
}
.page-service__note-price span {
  color: #c56727;
}
.page-service__note-sbtxt {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-top: 0.4rem;
  text-align: center;
}
.page-service__note-ttl {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 0.8rem;
  padding-bottom: 0.8rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-service__note.visa-note {
  padding: 3.3rem 0 3.2rem;
}
.page-service__note.visa-note .page-service__note-heading__ttl:after {
  background: url("../img/service-note02.webp") no-repeat;
  background-size: cover;
  left: 0;
  right: 0;
  top: -1.6rem;
  margin: auto;
  width: 10.1rem;
  height: 9.6rem;
}
.page-service__country {
  padding: 4.8rem 0 6.4rem;
  background: #fdfdfd;
}
.page-service__country-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 2.4rem;
}
.page-service__country-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 3.2rem;
  border-top: 0.1rem solid #ebebeb;
  border-left: 0.1rem solid #ebebeb;
  border-right: 0.1rem solid #ebebeb;
}
.page-service__country-item {
  border-bottom: 0.1rem solid #ebebeb;
  padding: 0.9rem 2.8rem;
  display: flex;
  align-items: center;
  gap: 1.7rem;
}
@media (max-width: 768px) {
  .page-service__country-item {
    padding: 0.9rem 1rem;
    gap: 1.5rem;
  }
}
.page-service__country-item:nth-child(even) {
  border-left: 0.1rem solid #ebebeb;
}
.page-service__country-item:last-child .page-service__country-img img {
  width: 2.7rem;
  min-width: 2.7rem;
  margin: auto;
}
.page-service__country-img {
  width: 4.5rem;
  min-width: 4.5rem;
}
@media (max-width: 768px) {
  .page-service__country-img {
    width: 4rem;
    min-width: 4rem;
  }
}
.page-service__country-ttl {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 200%;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .page-service__country-ttl {
    font-size: 1.4rem;
  }
}
.page-service__country-sbtxt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-top: 2.4rem;
  padding: 1.6rem;
  background: #f5f6f8;
}
.page-service__qualification {
  padding-bottom: 1.6rem;
  background: #fdfdfd;
}
.page-service__qualification-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-top: 2.4rem;
  text-align: center;
}
.page-service__qualification-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: 2.4rem;
}
.page-service__qualification-item {
  border-radius: 0.8rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  text-align: right;
}
.page-service__qualification-item:nth-child(1) {
  background: #f5f6f8;
}
.page-service__qualification-item:nth-child(2) {
  background: #f3f7f9;
}
.page-service__qualification-item:nth-child(3) {
  background: #f2fbf4;
}
.page-service__qualification-item:nth-child(4) {
  background: #fdfaf4;
}
.page-service__qualification-item:nth-child(5) {
  background: #fff6ef;
}
.page-service__qualification-item:nth-child(6) {
  background: #f8f4f4;
}
.page-service__qualification-img {
  width: 4rem;
  min-width: 4rem;
}
.page-service__qualification-content {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.page-service__qualification-ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #394883;
  text-align: left;
}
.page-service__qualification-sbtxt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-bottom: 0.8rem;
  text-align: left;
}
.page-service__product {
  padding-top: 5.3rem;
  background: #f5f6f8;
}
.page-service__product-container {
  background: #fff;
  padding: 1.6rem;
  border-radius: 0.8rem;
}
.page-service__product-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 0.8rem;
}
@media (max-width: 768px) {
  .page-service__product-flex {
    padding: 0;
  }
}
.page-service__product-img {
  width: 17.1rem;
  min-width: 17.1rem;
}
@media (max-width: 768px) {
  .page-service__product-img {
    width: 12.1rem;
    min-width: 12.1rem;
  }
}
.page-service__product-content {
  width: 100%;
  text-align: center;
}
.page-service__product-txt {
  position: relative;
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: center;
}
.page-service__product-txt:after {
  content: "";
  background: url("../img/arrow-bottom.webp") no-repeat;
  background-size: cover;
  width: 100%;
  height: 0.9rem;
  position: absolute;
  bottom: -1.6rem;
  left: 0;
  right: 0;
  margin: auto;
}
.page-service__product-ttl {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 2.4rem;
}
@media (max-width: 768px) {
  .page-service__product-ttl {
    font-size: 2rem;
  }
}
.page-service__product-explain {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 1.6rem;
}
@media (max-width: 768px) {
  .page-service__product-explain {
    font-size: 1.4rem;
  }
}
.page-service__product-explain span {
  color: #b6964b;
}
.page-service__product.contract-product {
  padding-bottom: 5.3rem;
}
.page-service__reason {
  padding: 6.4rem 0 4.8rem;
  background: #f5f6f8;
}
.page-service__reason .heading-ttl {
  line-height: 150%;
}
.page-service__reason-list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin: 2.4rem 0 3.2rem;
}
.page-service__reason-item {
  padding: 2.4rem;
  background: #fff;
  border-radius: 0.8rem;
  text-align: center;
}
.page-service__reason-num {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #bac0d9;
  font-family: "Bitter", serif;
}
.page-service__reason-ttl {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  padding-bottom: 0.8rem;
  margin: 0.4rem 0 1.6rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
@media (max-width: 768px) {
  .page-service__reason-ttl {
    font-size: 1.6rem;
  }
}
.page-service__reason-img {
  border-radius: 0.4rem;
  margin-bottom: 1.6rem;
}
.page-service__reason-txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-service__reason-txt span {
  color: #2641ac;
}
.page-service__reason .cta-flex {
  padding: 0;
}
.page-service__price {
  padding: 4.8rem 0 6.4rem;
  background: #fdfdfd;
}
.page-service__price-desc {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 2.4rem;
}
@media (max-width: 768px) {
  .page-service__price-desc {
    font-size: 1.4rem;
  }
}
.page-service__price-table {
  margin-top: 3.2rem;
}
.page-service__price-table table {
  border-top: 0.1rem solid #ebebeb;
  width: 100%;
}
.page-service__price-table table th {
  width: 44%;
  background: #ebebeb;
  text-align: center;
  padding: 0.8rem 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-bottom: 0.1rem solid #fff;
}
@media (max-width: 768px) {
  .page-service__price-table table th {
    font-size: 1.3rem;
  }
}
.page-service__price-table table th.all {
  background: #b6964b;
  color: #fff;
}
.page-service__price-table table td {
  width: 56%;
  padding: 0.8rem 0;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-right: 0.1rem solid #ebebeb;
  border-bottom: 0.1rem solid #ebebeb;
  text-align: center;
}
@media (max-width: 768px) {
  .page-service__price-table table td {
    font-size: 1.3rem;
  }
}
.page-service__price-table table td.all {
  background: #fffbf1;
}
.page-service__price-content {
  margin-top: 2.4rem;
  padding: 1.6rem;
  background: #f5f6f8;
  display: inline-block;
  width: 100%;
}
.page-service__price-ttl {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__price-txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__price-txt span {
  color: #2641ac;
  font-weight: 700;
}
.page-service__price-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-left: 2rem;
}
.page-service__price-item {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  list-style: disc;
}
.page-service__price.entertainment-price table th {
  width: 64%;
}
.page-service__price.entertainment-price table td {
  width: 35%;
}
.writing .page-service__price.entertainment-price table th,
.contract .page-service__price.entertainment-price table th,
.retirement .page-service__price.entertainment-price table th,
.inheritance .page-service__price.entertainment-price table th,
.certified-mail .page-service__price.entertainment-price table th {
  width: 50%;
  text-wrap: balance;
}
.writing .page-service__price.entertainment-price table td,
.contract .page-service__price.entertainment-price table td,
.retirement .page-service__price.entertainment-price table td,
.inheritance .page-service__price.entertainment-price table td,
.certified-mail .page-service__price.entertainment-price table td {
  width: 50%;
  word-break: keep-all;
}
.subsidy .page-service__price.entertainment-price table th {
  width: 40%;
  word-break: keep-all;
}
.subsidy .page-service__price.entertainment-price table td {
  width: 60%;
}
@media (max-width: 359px) {
  .subsidy .page-service__price.entertainment-price table th {
    width: 36%;
  }
  .subsidy .page-service__price.entertainment-price table td {
    width: 64%;
  }
}
.page-service__flow {
  padding-bottom: 4.8rem;
  background: #fdfdfd;
}
.page-service__flow-wrap {
  display: flex;
  justify-content: space-between;
  gap: 1.6rem;
  margin-top: 2.4rem;
}
.page-service__flow-list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.page-service__flow-item {
  display: flex;
  justify-content: space-between;
  gap: 1.6rem;
}
.page-service__flow-icon {
  display: block;
  min-width: 6.4rem;
  width: 6.4rem;
}
.page-service__flow-content {
  width: 100%;
}
.page-service__flow-num {
  display: inline-block;
  font-size: 1.3rem;
  color: #e8ebf6;
  font-weight: 400;
  line-height: 200%;
  letter-spacing: 0.05em;
  font-family: "Bitter", serif;
  background: #394883;
  border-radius: 100rem;
  padding: 0 1.2rem;
}
.page-service__flow-ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #394883;
  margin: 0.8rem 0;
}
.page-service__flow-txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-service__flow-pay {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fffbf1;
  padding: 0.8rem 1.6rem;
  margin-top: 0.8rem;
}
.page-service__flow-pay p {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .page-service__flow-pay p {
    font-size: 1.3rem;
  }
}
.page-service__flow-note {
  margin-top: 2.4rem;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__area {
  padding: 4.8rem 0;
  background: url("../img/service-area-bg.webp") no-repeat;
  background-size: cover;
  background-position: center;
}
.page-service__area-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 2.4rem;
}
.page-service__area-wrap {
  background: #fff;
  padding: 2.4rem;
  margin-top: 2.4rem;
}
.page-service__area-img {
  position: relative;
}
.page-service__area-img img {
  display: block;
  width: 100%;
  height: auto;
}
.page-service__area-svg {
  display: block;
  width: 100%;
  height: auto;
}
.page-service__area-hotspot {
  cursor: pointer;
}
.page-service__area-hotspot .page-service__area-region {
  transition: fill 0.2s ease, filter 0.2s ease;
}
.page-service__area-hotspot:hover .page-service__area-region, .page-service__area-hotspot:focus-visible .page-service__area-region {
  fill: #a8c73f;
  filter: brightness(0.95);
}
.page-service__area-hotspot:focus-visible {
  outline: none;
}
.page-service__area-hotspot:focus-visible .page-service__area-region {
  stroke: #394883;
  stroke-width: 1.2;
}
.page-service__area-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
  margin-top: 1.6rem;
}
.page-service__area-link {
  background: #e8ebf6;
  border-radius: 100rem;
  padding: 1rem 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  text-align: center;
  border: 0.1rem solid #bac0d9;
}
.page-service__area-link .arrow {
  width: 1.1rem;
}
.page-service__risk {
  padding: 4.8rem 0 6.4rem;
  background: #f5f6f8;
  border-radius: 3.2rem 0 0 0;
}
.page-service__risk-desc {
  margin-top: 2.4rem;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
}
.page-service__risk-list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin-top: 2.4rem;
}
.page-service__risk-list + .cta {
  margin-top: 3.2rem;
}
.page-service__risk-item {
  background: #fff;
  border-radius: 0.8rem;
  padding: 2.4rem;
  text-align: center;
}
.page-service__risk-icon {
  display: block;
  width: 7.2rem;
  margin: auto;
}
.page-service__risk-num {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #bac0d9;
  margin-top: 1.6rem;
  font-family: "Bitter", serif;
}
.page-service__risk-ttl {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  padding-bottom: 0.8rem;
  margin: 0.4rem 0 1.6rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-service__risk-txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-service__risk-img {
  display: block;
  margin: 2.4rem auto;
}
@media (max-width: 768px) {
  .page-service__risk-img {
    width: 90%;
  }
}
.page-service__risk.entertainment-risk {
  margin-bottom: 4.8rem;
}
.page-service__risk-note {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 180%;
  letter-spacing: 0.05em;
  margin-top: 2rem;
}
.page-service__compare {
  margin-top: 2.4rem;
  overflow-x: auto;
}
.page-service__compare-table {
  width: 100%;
  min-width: 32rem;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  border-top: 0.1rem solid #fff;
}
@media (max-width: 768px) {
  .page-service__compare-table {
    font-size: 1.2rem;
  }
}
.page-service__compare-table th,
.page-service__compare-table td {
  border: 0.1rem solid #ebebeb;
  padding: 0.8rem 1.6rem;
  vertical-align: middle;
}
.page-service__compare-table thead th {
  background: #ebebeb;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  border-top: none;
}
@media (max-width: 768px) {
  .page-service__compare-table thead th {
    font-size: 1.2rem;
  }
}
.page-service__compare-table thead th:first-child {
  border-left: 0.1rem solid #fff;
  border-right: 0.1rem solid #fff;
  border-bottom: 0.1rem solid #fff;
}
.page-service__compare-table thead th:nth-child(2) {
  border-left: 0.1rem solid #fff;
  border-right: 0.1rem solid #fff;
  border-bottom: 0.1rem solid #fff;
}
.page-service__compare-table thead th:last-child {
  border-right: 0.1rem solid #fff;
}
.page-service__compare-table thead th.is-recommend {
  background: #b6964b;
  color: #fff;
}
.page-service__compare-table tbody tr:last-child th {
  border-bottom: none;
}
.page-service__compare-table tbody th {
  background: #ebebeb;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #4d4d4d;
  border-bottom: 0.1rem solid #fff;
  border-left: 0.1rem solid #fff;
  border-right: 0.1rem solid #fff;
}
@media (max-width: 768px) {
  .page-service__compare-table tbody th {
    font-size: 1.2rem;
  }
}
.page-service__compare-table tbody td {
  background: #fff;
  padding: 1.8rem 0.8rem;
}
@media (max-width: 768px) {
  .page-service__compare-table tbody td {
    padding: 1.4rem 0.2rem;
  }
}
.page-service__compare-table tbody td.is-recommend {
  background: #fffbf1;
}
.page-service__about {
  background: #f5f6f8;
  padding-bottom: 4.8rem;
  margin-bottom: 4.8rem;
}
.page-service__about-head {
  padding-bottom: 2.4rem;
}
.page-service__about-content {
  background: #fff;
  padding: 2.4rem;
  border-radius: 0.8rem;
  margin-top: 2.4rem;
}
.page-service__about-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-service__about-txt span {
  color: #2641ac;
}
.page-service__about-foot {
  margin-top: 2.4rem;
  text-align: center;
}
.page-service__about-ttl {
  margin-bottom: 0.8rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #394883;
}
.page-service__about-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
}
.page-service__about-list + .page-service__about-ttl {
  margin-top: 2.4rem;
}
.page-service__about-link {
  border-radius: 100rem;
  background: #e8ebf6;
  border: 0.1rem solid #bac0d9;
  padding: 0.8rem 1.6rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 768px) {
  .page-service__about-link {
    height: 100%;
    font-size: 1.2rem;
    padding: 0.8rem 1rem;
  }
}
.page-service__about-link .arrow {
  width: 1.1rem;
}
.page-service__about-more {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-top: 3.2rem;
}
.page-service__about-more .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-service__about-more .arrow img {
  width: 1.1rem;
}
.page-service__faq {
  background: #fdfdfd;
  padding-bottom: 4rem;
  text-align: center;
}
.page-service__faq-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.page-service__faq-item {
  border-radius: 0.4rem;
  overflow: hidden;
}
.page-service__faq-item.is-open .page-service__faq-a {
  grid-template-rows: 1fr;
}
.page-service__faq-item.is-open .page-service__faq-icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}
.page-service__faq-q {
  margin: 0;
}
.page-service__faq-btn {
  color: #333333; /* 未指定だとiOS Safariでボタンの文字が青になるため */
  width: 100%;
  display: flex;
  align-items: baseline;
  gap: 1.2rem;
  padding: 1.6rem;
  background: #f5f6f8;
  border: none;
  border-radius: 0.4rem;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.3s ease, border-radius 0.3s ease;
}
.page-service__faq-q-mark {
  font-family: "Bitter", serif;
  font-size: 2rem;
  font-weight: 500;
  line-height: 150%;
  color: #2641ac;
  letter-spacing: 0.05em;
}
.page-service__faq-q-txt {
  flex: 1;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-service__faq-icon {
  position: relative;
  width: 1.4rem;
  height: 1.4rem;
  flex-shrink: 0;
}
.page-service__faq-icon::before, .page-service__faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #4d4d4d;
  transform: translate(-50%, -50%);
}
.page-service__faq-icon::before {
  width: 1.4rem;
  height: 0.2rem;
}
.page-service__faq-icon::after {
  width: 0.2rem;
  height: 1.4rem;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.page-service__faq-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease;
}
.page-service__faq-a-inner {
  overflow: hidden;
}
.page-service__faq-a-txt {
  display: flex;
  gap: 1.2rem;
  padding: 1.6rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-service__faq-a-mark {
  font-family: "Bitter", serif;
  font-size: 2rem;
  font-weight: 500;
  line-height: 150%;
  color: #b6964b;
}
.page-service__col {
  padding: 0 2.4rem 2.4rem;
}
.page-service__requirements {
  background: #f5f6f8;
  padding: 4.8rem 0;
}
.page-service__requirements-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 2.4rem;
}
.page-service__requirements-txt + .page-service__requirements-sbttl {
  margin-top: 2.4rem;
}
.page-service__requirements-sbttl {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-bottom: 0.8rem;
  text-align: center;
}
.page-service__requirements-sbttl + .page-service__requirements-list {
  margin-bottom: 2.4rem;
}
.page-service__requirements-list {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  margin-top: 2.4rem;
}
.page-service__requirements-item {
  background: #fff;
  border-radius: 0.4rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.page-service__requirements-ttl {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
  padding-left: 3.2rem;
  position: relative;
}
.page-service__requirements-ttl:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3rem;
  width: 2rem;
  height: 2rem;
  background: url("../img/check-mark-blue.webp") no-repeat;
  background-size: cover;
}
.page-service__requirements-sbtxt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__type {
  background: #f5f6f8;
  padding: 4.8rem 0 0;
}
.page-service__type-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: 2.4rem;
}
.page-service__type-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
  margin-top: 2.4rem;
}
@media (max-width: 768px) {
  .page-service__type-list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.page-service__type-item {
  background: #fff;
  border-radius: 0.8rem;
  padding: 1.6rem;
}
.page-service__type-img {
  width: 7.2rem;
  display: block;
  margin: 0 auto 0.8rem;
}
.page-service__type-ttl {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 0.8rem;
}
.page-service__type-sbtxt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-service__type-sbttl {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin: 2.4rem 0 0.8rem;
  text-align: center;
}
.page-service__type-sblist {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.8rem;
}
.page-service__type-sbitem {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  padding: 0.4rem 1.6rem;
  background: #fdfdfd;
  border-radius: 10rem;
  border: 0.1rem solid #ebebeb;
}
.page-service__more {
  background: #394883;
  width: 20rem;
  height: 4.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #fff;
  border-radius: 100rem;
  margin: 1.6rem auto 0;
}
.page-service__more .arrow {
  width: 1.1rem;
}
.page-message__profile {
  background: #fff;
}
@media (max-width: 768px) {
  /* メンバー紹介の記事ページ：スマホでは固定ヘッダーの下の余白を詰める（代表挨拶のページは対象外） */
  .single-member .page-message__profile {
    padding-top: 2rem;
  }
}
.page-message__profile-img {
  width: 24rem;
  display: block;
  margin: auto;
  transform: translateY(4.8rem);
}
.page-message__profile-content {
  background: #f5f6f8;
  border-radius: 0.8rem;
  padding: 6.4rem 2.4rem 2.4rem;
}
.page-message__profile-head {
  text-align: center;
  margin: 0 2.4rem 1.6rem;
  padding-bottom: 1.6rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-message__profile-en {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #bac0d9;
  font-family: "Bitter", serif;
}
.page-message__profile-name {
  font-size: 2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-message__profile-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-message__profile-wrap {
  padding: 3.2rem 0 4rem;
}
.page-message__profile-ttl {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #394883;
  text-align: left;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
  padding-bottom: 1.2rem;
  margin-bottom: 1.6rem;
}
.page-message__profile-table {
  margin-bottom: 2.4rem;
}
.page-message__profile-history {
  display: grid;
  grid-template-columns: 7.2rem 1fr;
  gap: 0.8rem;
}
.page-message__profile-history dt,
.page-message__profile-history dd {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin: 0;
}
.page-message__profile-history dt {
  white-space: nowrap;
}
.page-message__profile-sbtxt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-bottom: 2.4rem;
}
.page-message__profile-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.page-message__profile-item {
  position: relative;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  padding-left: 1.5rem;
}
.page-message__profile-item:before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.1rem;
  width: 0.5rem;
  height: 0.5rem;
  display: block;
  border-radius: 50%;
  background: #333333;
}
.page-member {
  padding: 4rem 0;
}
.page-member__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem 1.6rem;
}
.page-member__link {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding: 0 0.8rem 1.6rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-member__img {
  border-radius: 0.4rem;
}
.page-member__content {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.8rem;
}
.page-member__en {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.05em;
  font-family: "Bitter", serif;
  color: #bac0d9;
}
.page-member__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-member__right .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-member__right .arrow img {
  display: block;
  width: 1.1rem;
}
.page-strength__main {
  background: #fff;
  padding: 4rem 0;
}
.page-strength__main-img {
  margin-bottom: 1.6rem;
}
.page-strength__main-txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-strength__five {
  background: #f5f6f8;
  padding: 4.8rem 0;
  border-radius: 0 3.2rem 0 0;
}
.page-strength__five-list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.4rem;
  gap: 0.4rem 1.2rem;
}
.page-strength__five-item {
  background: #394883;
  border-radius: 8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 12rem;
  height: 12rem;
}
@media (max-width: 768px) {
  .page-strength__five-item {
    width: 10rem;
    height: 10rem;
  }
}
.page-strength__five-en {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.05em;
  font-family: "Bitter", serif;
  color: #bac0d9;
}
.page-strength__five-ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #fff;
}
@media (max-width: 768px) {
  .page-strength__five-ttl {
    font-size: 1.4rem;
  }
}
.page-strength__list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin-top: 2.4rem;
}
.page-strength__item {
  background: #fff;
  padding: 2.4rem;
  border-radius: 0.8rem;
  text-align: right;
}
.page-strength__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 0.8rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-strength__num {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #bac0d9;
  margin-bottom: 0.4rem;
  font-family: "Bitter", serif;
}
.page-strength__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #2641ac;
  white-space: nowrap;
}
.page-strength__subttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  margin-top: 0.4rem;
  text-align: center;
}
.page-strength__img {
  margin-top: 1.6rem;
}
.page-strength__txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
  margin-top: 1.6rem;
}
.page-strength__txt strong {
  color: #2641ac;
}
.page-strength__service {
  background: #394883;
  border-radius: 3.2rem 0 0 0;
  padding: 4.8rem 0;
  text-align: center;
}
.page-strength__service .heading-en {
  color: #bac0d9;
}
.page-strength__service .heading-en:before {
  content: "";
  background: url("../img/landmark-gray.webp") no-repeat;
  background-size: cover;
}
.page-strength__service .heading-ttl {
  color: #fff;
}
.page-strength__service-list {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  margin-top: 2.4rem;
}
.page-strength__service-link {
  background: #fff;
  padding: 1.6rem 2.4rem;
  border-radius: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-strength__service-link .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-strength__service-link .arrow img {
  display: block;
  width: 1.1rem;
}
.page-strength__service-more {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin: 3.2rem auto 0;
  background: #e8ebf6;
  width: 21.2rem;
  height: 4.8rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}
.page-strength__service-more .arrow img {
  width: 1.1rem;
}
.page-news {
  padding: 4rem 0;
}
.page-news__list {
  display: flex;
  flex-direction: column;
}
.page-news__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem;
  padding: 2rem 0;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-news__link .arrow img {
  display: block;
  width: 1.1rem;
  min-width: 1.1rem;
}
.page-news__date {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  margin-bottom: 0.4rem;
}
.page-news__ttl {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-case {
  padding: 4rem 0 8rem;
  background: #f5f6f8;
}
.page-case + .cta {
  background: #f5f6f8;
  padding-bottom: 4rem;
}
.page-case__nav-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.page-case__nav-link {
  display: block;
  border: 0.1rem solid #bac0d9;
  background: #fff;
  padding: 0.8rem 1.6rem;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  border-radius: 100rem;
}
.page-case__nav-link.is-active {
  background: #e8ebf6;
}
.page-case__wrap .pagination {
  margin-top: 2.4rem;
}
.page-case__list {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-top: 2.4rem;
}
.page-case__item {
  background: #fff;
  padding: 2.4rem;
  border-radius: 0.8rem;
}
.page-case__img {
  position: relative;
  padding-top: 66%;
  margin-bottom: 1.6rem;
}
.page-case__img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.page-case__content {
  text-align: right;
}
.page-case__category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.6rem;
  text-align: left;
}
.page-case__category span {
  color: #737373;
  padding: 0.2rem 0.8rem;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  border-radius: 100rem;
  border: 0.1rem solid #d4d4d4;
}
.page-case__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
  color: #394883;
}
.page-case__more {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-top: 1.6rem;
}
.page-case__more .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-case__more .arrow img {
  width: 1.1rem;
}
.page-column__main-ttl {
  position: absolute;
  width: 0.1rem;
  height: 0.1rem;
  margin: -0.1rem;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.page-column__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
  margin-bottom: 1.6rem;
}
.page-column__pickup {
  background: #f5f6f8;
  padding: 4rem 0;
}
.page-column__pickup .heading {
  display: flex;
  align-items: center;
  justify-content: left;
  gap: 0.8rem;
}
.page-column__pickup .heading-en {
  font-size: 2.8rem;
  font-weight: 500;
  margin-bottom: 0;
}
.page-column__pickup .heading-ttl {
  font-size: 1.2rem;
}
.page-column__pickup-list {
  position: relative;
  margin-top: 2.4rem;
}
.page-column__pickup-list .slick-list {
  overflow: hidden;
}
.page-column__pickup-list .slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 2.4rem;
}
.page-column__pickup-list .slick-dots li {
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 100rem;
  background: #cecece;
}
.page-column__pickup-list .slick-dots li.slick-active {
  background: #2641ac;
}
.page-column__pickup-list .slick-dots button {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 0;
}
.page-column__pickup-arrow {
  position: absolute;
  top: 33%;
  z-index: 1;
  width: 4rem;
  height: 4rem;
  border-radius: 100rem;
  background: #394883;
  border: 0.1rem solid #ebebeb;
  cursor: pointer;
}
.page-column__pickup-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.6rem;
  height: 0.6rem;
  border-top: 0.2rem solid #fff;
  border-right: 0.2rem solid #fff;
}
.page-column__pickup-arrow--prev {
  left: -1.6rem;
}
.page-column__pickup-arrow--prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.page-column__pickup-arrow--next {
  right: -1.6rem;
}
.page-column__pickup-arrow--next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}
.page-column__pickup-img {
  position: relative;
  padding-top: 66%;
  margin-bottom: 1.6rem;
}
.page-column__pickup-img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0.4rem;
}
.page-column__pickup-date {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  margin-bottom: 0.8rem;
}
.page-column__pickup-ttl {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-bottom: 0.8rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.page-column__pickup-category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
}
.page-column__pickup-category span {
  color: #737373;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-column__new {
  padding: 4rem 0;
  background: #fff;
  text-align: center;
}
.page-column__new.is-new-list {
  padding: 4rem 0 7.1rem;
}
.page-column__new.is-category-groups {
  padding: 4rem 0;
}
.page-column__new .heading {
  display: flex;
  align-items: center;
  justify-content: left;
  gap: 0.8rem;
}
.page-column__new .heading-en {
  font-size: 2.8rem;
  font-weight: 500;
  margin-bottom: 0;
}
.page-column__new .heading-ttl {
  font-size: 1.2rem;
}
.page-column__new-group {
  margin-bottom: 8rem;
  text-align: center;
}
.page-column__new-group:last-child {
  margin-bottom: 0;
}
.page-column__new-group-ttl {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: left;
  gap: 0.8rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: left;
  margin-bottom: 1.6rem;
}
.page-column__new-group-ttl::before {
  content: "";
  background: url("../img/landmark-blue.webp") no-repeat;
  background-size: cover;
  display: block;
  width: 1.2rem;
  height: 1.2rem;
}
.page-column__new-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem 2.4rem;
  margin-top: 1.6rem;
}
.page-column__new-group .page-column__new-list {
  margin-top: 0;
}
.page-column__new-img {
  position: relative;
  padding-top: 66%;
  margin-bottom: 1.2rem;
}
.page-column__new-img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.page-column__new-date {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  margin-bottom: 0.4rem;
  text-align: left;
}
.page-column__new-ttl {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.page-column__new-empty {
  margin: 3.2rem 0 1.6rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-column__new-category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-top: 0.8rem;
}
.page-column__new-category span {
  color: #737373;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-column__new-more {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-top: 2.5rem;
}
.page-column__new-more .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-column__new-more .arrow img {
  width: 1.1rem;
}
.page-column__ranking {
  padding: 4rem 0;
  background: #f5f6f8;
  text-align: center;
}
.page-column__ranking .heading {
  display: flex;
  align-items: center;
  justify-content: left;
  gap: 0.8rem;
}
.page-column__ranking .heading-en {
  font-size: 2.8rem;
  font-weight: 500;
  margin-bottom: 0;
}
.page-column__ranking .heading-ttl {
  font-size: 1.2rem;
}
.page-column__ranking-list {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  margin-top: 1.6rem;
}
.page-column__ranking-link {
  display: flex;
  justify-content: space-between;
}
.page-column__ranking-img {
  width: 38%;
  position: relative;
  padding-top: 21%;
}
.page-column__ranking-img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0.4rem;
}
.page-column__ranking-content {
  width: 57%;
  text-align: left;
}
.page-column__ranking-num {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: 0.4rem;
  border-radius: 0.4rem;
  padding: 0 0.6rem;
  font-family: "Bitter", serif;
}
.page-column__ranking-num--1 {
  background: #b6964b;
}
.page-column__ranking-num--2 {
  background: #8baecc;
}
.page-column__ranking-num--3 {
  background: #cc8f8b;
}
.page-column__ranking-num--4 {
  background: #a6a6a6;
}
.page-column__ranking-ttl {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
  margin-bottom: 0.4rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.page-column__ranking-flex {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
}
.page-column__ranking-date {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  margin-bottom: 0.4rem;
  text-align: left;
}
.page-column__ranking-category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
}
.page-column__ranking-category span {
  color: #737373;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-column__search {
  padding: 4rem 0 3.2rem;
  background: #fdfdfd;
}
.page-column__search-label {
  display: block;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-bottom: 1.2rem;
}
.page-column__search-field {
  position: relative;
}
.page-column__search-input {
  width: 100%;
  padding: 1.2rem 5.6rem 1.2rem 1.2rem;
  font-size: 1.4rem;
  line-height: 170%;
  letter-spacing: 0.05em;
  border: 0.1rem solid #d4d4d4;
  border-radius: 0.4rem;
  background: #fff;
}
.page-column__search-input::placeholder {
  color: #c4c4c4;
}
.page-column__search-btn {
  position: absolute;
  top: 50%;
  right: 1.2rem;
  transform: translateY(-50%);
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #333333;
  cursor: pointer;
}
.page-column__search-icon {
  display: block;
  width: 2.4rem;
  height: 2.4rem;
}
.page-column__category {
  padding-bottom: 4rem;
  background: #fdfdfd;
}
.page-column__category .heading {
  display: flex;
  align-items: center;
  justify-content: left;
  gap: 0.8rem;
}
.page-column__category .heading-en {
  font-size: 2.8rem;
  font-weight: 500;
  margin-bottom: 0;
}
.page-column__category .heading-ttl {
  font-size: 1.2rem;
}
.page-column__category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.6rem;
}
.page-column__category-link {
  display: inline-flex;
  align-items: center;
  background: #f4f4f4;
  border-radius: 100rem;
  padding: 0.8rem 1.6rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-faq {
  padding: 4rem 0;
}
.page-faq__nav {
  margin-bottom: 4rem;
}
.page-faq__nav-list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 0.8rem;
}
@media (max-width: 768px) {
  .page-faq__nav-list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.page-faq__nav-item {
  height: 100%;
}
.page-faq__nav-btn {
  width: 100%;
  background: #fff;
  padding: 1.8rem 1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  border: 0.1rem solid #ebebeb;
  border-radius: 0.4rem;
  height: 100%;
  cursor: pointer;
  text-align: left;
  color: inherit;
  font-family: inherit;
}
.page-faq__nav-btn .arrow {
  display: block;
  width: 2rem;
  min-width: 2rem;
  transform: rotate(-90deg);
}
.page-faq__modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
.page-faq__modal.is-open {
  opacity: 1;
  visibility: visible;
}
.page-faq__modal.is-open .page-faq__modal-dialog {
  transform: translateY(0) scale(1);
  opacity: 1;
}
.page-faq__modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.page-faq__modal-dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 48rem;
  max-height: min(85vh, 85dvh);
  background: #fff;
  border-radius: 1.6rem;
  padding: 5.6rem 2rem 3.2rem;
  overflow-y: auto;
  opacity: 0;
  transform: translateY(1.6rem) scale(0.96);
  transition: transform 0.35s ease, opacity 0.35s ease;
}
.page-faq__modal-close {
  position: absolute;
  top: 1.6rem;
  right: 1.6rem;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.page-faq__modal-close::before, .page-faq__modal-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 0.2rem;
  background: #4d4d4d;
}
.page-faq__modal-close::before {
  transform: rotate(45deg);
}
.page-faq__modal-close::after {
  transform: rotate(-45deg);
}
.page-faq__modal-panel[hidden] {
  display: none;
}
.page-faq__modal-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.page-faq__modal-item {
  margin: 0;
}
.page-faq__modal-link {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  padding: 1.6rem;
  border: 0.1rem solid #ebebeb;
  border-radius: 0.8rem;
  background: #fff;
  text-align: left;
  text-decoration: none;
  font-family: inherit;
  cursor: pointer;
}
.page-faq__modal-link .arrow {
  display: block;
  width: 2rem;
  min-width: 2rem;
  transform: rotate(-90deg);
}
.page-faq__modal-link-name {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.page-faq__wrap {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
.page-faq__container {
  scroll-margin-top: 3rem;
}
@media (max-width: 768px) {
  .page-faq__container {
    scroll-margin-top: 8rem;
  }
}
.page-faq__ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 0 0 1.6rem;
}
.page-faq__ttl::before, .page-faq__ttl::after {
  content: "";
  display: block;
  width: 2.4rem;
  height: 0.1rem;
  background: #2641ac;
  flex-shrink: 0;
}
.page-faq__sections {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}
.page-faq__section {
  scroll-margin-top: 3rem;
}
@media (max-width: 768px) {
  .page-faq__section {
    scroll-margin-top: 8rem;
  }
}
.page-faq__subttl {
  position: relative;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin: 0 0 1.6rem;
  text-align: center;
}
.page-faq__qa-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.page-faq__qa-item {
  border-radius: 0.4rem;
  overflow: hidden;
}
.page-faq__qa-item.is-open .page-faq__qa-a {
  grid-template-rows: 1fr;
}
.page-faq__qa-item.is-open .page-faq__qa-a-inner {
  padding: 0 1.6rem 1.6rem;
}
.page-faq__qa-item.is-open .page-faq__qa-icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}
.page-faq__qa-q {
  margin: 0;
}
.page-faq__qa-btn {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 1.6rem;
  border: none;
  background: #f5f6f8;
  cursor: pointer;
  text-align: left;
}
.page-faq__qa-mark {
  flex-shrink: 0;
  color: #2641ac;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 180%;
  letter-spacing: 0.05em;
  font-family: "Bitter", serif;
}
.page-faq__qa-txt {
  flex: 1;
  margin: 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #333;
}
.page-faq__qa-icon {
  position: relative;
  width: 2rem;
  height: 2rem;
  min-width: 2rem;
  margin: auto;
}
.page-faq__qa-icon::before, .page-faq__qa-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #4d4d4d;
  transform: translate(-50%, -50%);
}
.page-faq__qa-icon::before {
  width: 1rem;
  height: 0.15rem;
}
.page-faq__qa-icon::after {
  width: 0.15rem;
  height: 1rem;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.page-faq__qa-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease;
  overflow: hidden;
  background: #f5f6f8;
}
.page-faq__qa-a-inner {
  overflow: hidden;
  min-height: 0;
  display: flex;
  gap: 0.8rem;
  padding: 0 1.6rem;
}
.page-faq__qa-a-inner .page-faq__qa-mark {
  color: #fb6b6d;
}
.page-faq__item {
  border-radius: 0.4rem;
  overflow: hidden;
}
.page-faq__item.is-open .page-faq__a {
  grid-template-rows: 1fr;
}
.page-faq__a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease;
}
.page-privacy {
  padding-top: 4rem;
  padding-bottom: 8rem;
}
.page-privacy__main-ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-decoration: underline;
  text-underline-offset: 0.4rem;
  margin-bottom: 2.4rem;
  text-align: center;
}
.page-privacy__main-ttl:not(:first-child) {
  margin-top: 6.4rem;
}
.page-privacy__ttl {
  background: #f4f4f4;
  border-left: 0.4rem solid #2641ac;
  padding: 0.8rem 1.6rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin: 3.2rem 0 2.4rem;
}
.page-privacy__num-ttl {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin: 2.4rem 0 1.6rem;
}
.page-privacy__txt {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-privacy__list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.page-privacy__item {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  letter-spacing: 0.05em;
  list-style: none;
}
.page-privacy__box {
  margin-top: 3.2rem;
  padding: 2.4rem;
  background: #f4f4f4;
}
.page-privacy__box-ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-bottom: 1.6rem;
}
.page-privacy__footer {
  margin-top: 2.4rem;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: right;
}
.page-privacy__table-wrap {
  margin-top: 1.6rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.page-privacy__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 1.4rem;
  line-height: 180%;
  letter-spacing: 0.05em;
}
.page-privacy__table th,
.page-privacy__table td {
  border: 0.1rem solid #d9d9d9;
  padding: 1.2rem 1.6rem;
  vertical-align: top;
  text-align: left;
  font-weight: 400;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.page-privacy__table thead th {
  background: #f4f4f4;
  font-weight: 500;
}
.page-privacy__table tbody th[scope=row] {
  background: #f4f4f4;
  font-weight: 500;
}
.page-privacy__table thead th:nth-child(1),
.page-privacy__table tbody th[scope=row] {
  width: 28%;
}
.page-privacy__table thead th:nth-child(2),
.page-privacy__table tbody td:nth-child(2) {
  width: 52%;
}
.page-privacy__table thead th:nth-child(3),
.page-privacy__table tbody td:nth-child(3) {
  width: 20%;
}
.page-privacy__table--2col tbody th[scope=row] {
  width: 34%;
}
.page-privacy__table--2col tbody td {
  width: 66%;
}
@media (max-width: 768px) {
  .page-privacy__table {
    font-size: 1.2rem;
  }
  .page-privacy__table th,
  .page-privacy__table td {
    padding: 1rem 0.8rem;
  }
}
.page-sitemap__list {
  padding-top: 4rem;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.page-sitemap__link {
  background: #f4f4f4;
  padding: 0.9rem 1.6rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-sitemap__link .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-sitemap__link .arrow img {
  display: block;
  width: 1.1rem;
}
.page-sitemap__sublist {
  display: flex;
  flex-direction: column;
}
.page-sitemap__sublink {
  padding: 1.2rem 0.8rem;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
}
.page-sitemap__sublink .arrow img {
  display: block;
  width: 1.1rem;
  min-width: 1.1rem;
}
.page-404 {
  padding-top: 5.6rem;
}
@media (max-width: 768px) {
  .page-404 {
    margin-top: 7.2rem;
  }
}
.page-404 .inner {
  padding: 0 4.8rem;
}
.page-404__ttl {
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0.1em;
  font-family: "Bitter", serif;
  color: #2641ac;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
}
.page-404__ttl span {
  font-size: 4.6rem;
  font-weight: 700;
  font-family: "Bitter", serif;
}
.page-404__sbttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 1.6rem 0 3rem;
}
.page-404__txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-404__list {
  display: flex;
  flex-direction: column;
  margin: 3.2rem 0;
  padding-left: 2rem;
}
.page-404__item {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  list-style: unset;
}
.page-404 .prev-btn {
  padding-bottom: 1.6rem;
}
.page-contact {
  padding: 4rem 0 0;
}
.page-contact.visa, .page-contact.other, .page-contact.entertainment, .page-contact.construction {
  padding: 4rem 0;
}
.page-contact__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  display: block;
  text-align: center;
}
.page-contact__list {
  margin-top: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.page-contact__item {
  background: #f5f6f8;
  padding: 1.4rem;
}
.page-contact__item .top-column__more {
  justify-content: right;
}
.page-contact__item .arrow {
  background: #394883;
  width: 4rem;
  height: 2.4rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.8rem;
  margin-left: auto;
}
.page-contact__item .arrow img {
  width: 1.1rem;
}
.page-contact__link {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}
.page-contact__img {
  width: 13rem;
  min-width: 13rem;
}
@media (max-width: 768px) {
  .page-contact__img {
    width: 10rem;
    min-width: 10rem;
  }
}
.page-contact__content {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.page-contact__sbttl {
  font-size: 1.6rem;
  color: #394883;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .page-contact__sbttl {
    font-size: 1.4rem;
  }
}
.page-contact__progress {
  margin-bottom: 2.4rem;
}
.page-contact__progress-list {
  display: flex;
  align-items: center;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: step;
}
.page-contact__progress-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  flex: 1;
}
.page-contact__progress-item::before {
  content: "";
  position: absolute;
  top: 1.3rem;
  left: calc(-50% + 1.3rem);
  width: calc(100% - 2.6rem);
  height: 0.1rem;
  background: #d4d4d4;
}
.page-contact__progress-item:first-child::before {
  display: none;
}
.page-contact__progress-item.is-done .page-contact__progress-num {
  background: #394883;
  color: #fff;
  border-color: #394883;
}
.page-contact__progress-item.is-done .page-contact__progress-label {
  color: #333;
}
.page-contact__progress-item.is-done::before {
  background: #394883;
}
.page-contact__progress-item.is-active .page-contact__progress-num {
  background: #fff;
  color: #394883;
  border-color: #394883;
}
.page-contact__progress-item.is-active .page-contact__progress-label {
  color: #333;
}
.page-contact__progress-item.is-active::before {
  background: #394883;
}
.page-contact__progress-num {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 100%;
  border: 0.1rem solid #d4d4d4;
  background: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  color: #a6a6a6;
  line-height: 150%;
  margin-bottom: 0.4rem;
}
.page-contact__progress-label {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
}
.page-contact__form .wpcf7-form {
  position: relative;
}
.page-contact__form .wpcf7-response-output {
  display: none !important;
  margin: 1.6rem 0 0;
  padding: 1.2rem 1.6rem;
  border: 0.1rem solid #d80000;
  background: #fff5f5;
  color: #d80000;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 150%;
  text-align: center;
}
.page-contact__form .wpcf7-form.invalid .wpcf7-response-output,
.page-contact__form .wpcf7-form.unaccepted .wpcf7-response-output,
.page-contact__form .wpcf7-form.payment-required .wpcf7-response-output,
.page-contact__form .wpcf7-form.failed .wpcf7-response-output,
.page-contact__form .wpcf7-form.aborted .wpcf7-response-output,
.page-contact__form .wpcf7-form.spam .wpcf7-response-output {
  display: block !important;
}
.page-contact__form .wpcf7-not-valid-tip {
  font-size: 1.2rem;
  color: #d80000;
  margin-top: 0.4rem;
}
.page-contact__step[hidden] {
  display: none !important;
}
.page-contact__question {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 2.4rem;
}
.page-contact__radio-list .wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.page-contact__radio-list .wpcf7-list-item {
  margin-bottom: 0.8rem;
  background: #f4f4f4;
  border-radius: 0.4rem;
}
.page-contact__radio-list .wpcf7-list-item:last-child {
  margin-bottom: 0;
}
.page-contact__radio-list .wpcf7-list-item:has(input[type=radio]:checked) {
  background: #e8ebf6;
}
.page-contact__radio-list .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding: 1.2rem 2.4rem;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
}
.page-contact__radio-list .wpcf7-list-item input[type=radio] {
  appearance: none;
  -webkit-appearance: none;
  width: 2.4rem;
  min-width: 2.4rem;
  height: 2.4rem;
  border: 0.2rem solid #d4d4d4;
  background: #fff;
  border-radius: 100%;
  position: relative;
  cursor: pointer;
}
.page-contact__radio-list .wpcf7-list-item input[type=radio]:checked {
  border-color: #394883;
}
.page-contact__radio-list .wpcf7-list-item input[type=radio]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 100%;
  background: #394883;
}
.page-contact__fields {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  background: #f8f8f8;
  padding: 1.6rem 1.6rem 2.4rem;
  border-radius: 0.8rem;
}
.page-contact__fields br {
  display: none;
}
.page-contact__field--privacy {
  text-align: center;
  margin-top: 2.4rem;
}
.page-contact__field--privacy .wpcf7-acceptance {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 170%;
}
.page-contact__field--privacy .wpcf7-acceptance .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.page-contact__field--privacy input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 2.4rem;
  min-width: 2.4rem;
  height: 2.4rem;
  border: 0.1rem solid #394883;
  border-radius: 0.4rem;
  position: relative;
  cursor: pointer;
  background: #fff;
}
.page-contact__field--privacy input[type=checkbox]:checked {
  border-color: #394883;
  background: #394883;
}
.page-contact__field--privacy input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 45%;
  left: 50%;
  width: 0.5rem;
  height: 0.9rem;
  border: solid #fff;
  border-width: 0 0.2rem 0.2rem 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
.page-contact__field--privacy a {
  color: #2641ac;
  text-decoration: underline;
}
.page-contact__field--privacy .wpcf7-form-control-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.page-contact__field--privacy .wpcf7-not-valid-tip {
  display: block;
  color: #d80000;
}
.page-contact__label {
  display: block;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
}
.page-contact__required {
  color: #d80000;
}
.page-contact input[type=text],
.page-contact input[type=email],
.page-contact input[type=tel],
.page-contact input[type=url] {
  width: 100%;
  padding: 0.8rem 1.6rem;
  font-size: 1.4rem;
  line-height: 200%;
  font-weight: 500;
  letter-spacing: 0.05em;
  border: 0.1rem solid #ebebeb;
  border-radius: 0.4rem;
  background: #fff;
}
.page-contact input[type=text]::placeholder,
.page-contact input[type=email]::placeholder,
.page-contact input[type=tel]::placeholder,
.page-contact input[type=url]::placeholder {
  color: #c4c4c4;
}
.page-contact textarea {
  width: 100%;
  height: 12.4rem;
  padding: 0.8rem 1.6rem;
  font-size: 1.5rem;
  line-height: 200%;
  letter-spacing: 0.05em;
  border: 0.1rem solid #ebebeb;
  border-radius: 0;
  background: #fff;
  resize: vertical;
  border-radius: 0.4rem;
}
.page-contact textarea::placeholder {
  color: #c4c4c4;
}
.page-contact__actions {
  margin-top: 2.4rem;
}
.page-contact__actions-inner {
  text-align: center;
}
.page-contact__actions-inner > p {
  display: contents;
}
.page-contact__actions-inner > p br {
  display: none;
}
.page-contact__actions-inner .wpcf7-spinner {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5rem;
  margin: auto;
}
.page-contact__next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 18.3rem;
  height: 4.8rem;
  background: #333333;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border: 0;
  border-radius: 100rem;
  cursor: pointer;
  transition: opacity 0.3s;
}
.page-contact__next:hover {
  opacity: 0.8;
}
.page-contact__next[hidden] {
  display: none !important;
}
.page-contact__next:after {
  content: "";
  background: url("../img/arrow-white.webp") no-repeat;
  background-size: contain;
  background-position: center;
  width: 1.1rem;
  height: 1.6rem;
  display: block;
}
.page-contact__prev {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: transparent;
  border: 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #737373;
  cursor: pointer;
  transition: opacity 0.3s;
  margin: 2.4rem auto 0;
  padding: 0;
  position: relative;
  text-decoration: underline;
}
.page-contact__prev:hover {
  opacity: 0.7;
  text-decoration: none;
}
.page-contact__prev[hidden] {
  display: none !important;
}
.page-contact__prev:before {
  content: "";
  background: url("../img/arrow-gray.webp") no-repeat;
  background-size: contain;
  background-position: center;
  width: 1.1rem;
  height: 1.1rem;
  display: block;
}
.page-contact .wpcf7-form input[type=submit] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 21.2rem;
  height: 4.8rem;
  background-color: #b6964b;
  background-image: url("../img/arrow-white.webp");
  background-repeat: no-repeat;
  background-position: right 2.8rem center;
  background-size: 1.1rem 0.8rem;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border: 0;
  border-radius: 100rem;
  cursor: pointer;
  transition: opacity 0.2s;
  padding-right: 1.6rem;
}
.page-contact .wpcf7-form input[type=submit]:hover {
  opacity: 0.8;
}
.page-contact .wpcf7-form input[type=submit][hidden] {
  display: none !important;
}
.page-contact .wpcf7-form .form-wrap .page-contact__field--privacy,
.page-contact .wpcf7-form .form-wrap .page-contact__actions {
  margin-top: 1.2rem;
}
.page-contact .wpcf7-form .form-wrap input[type=submit] {
  background-color: #333333;
  background-image: url("../img/arrow-white.webp");
  background-repeat: no-repeat;
  background-position: right 2.8rem center;
  background-size: 1.1rem 0.8rem;
}
.page-thanks {
  padding: 5.6rem 0;
  text-align: center;
}
@media (max-width: 768px) {
  .page-thanks {
    padding: 12.8rem 0 5.6rem;
  }
}
.page-thanks__en {
  font-family: "Bitter", serif;
  font-size: 4rem;
  font-weight: 500;
  color: #2641ac;
  line-height: 100%;
  letter-spacing: 0.1em;
  margin-bottom: 0.8rem;
}
.page-thanks__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-bottom: 2.4rem;
}
.page-thanks__body {
  margin-bottom: 2.4rem;
}
.page-thanks__body p {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-thanks__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 15.4rem;
  height: 4.8rem;
  background: #333333;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border: 0;
  border-radius: 100rem;
  text-decoration: none;
  transition: opacity 0.2s;
}
.page-thanks__btn:hover {
  opacity: 0.8;
}
.page-thanks__btn .arrow {
  width: 1.1rem;
  transform: scale(-1, 1);
}
.page-prev {
  text-align: center;
}
.page-prev__link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  margin-top: 3.2rem;
  text-decoration: underline;
}
.page-prev__link:hover {
  opacity: 0.7;
  text-decoration: none;
}
.page-subsidy .single-entertainment__ttl {
  font-size: 2.6rem;
}
@media (max-width: 768px) {
  .page-subsidy .single-entertainment__ttl {
    font-size: 2.1rem;
  }
}
.page-subsidy__work {
  padding: 1.2rem 0 2.4rem;
}
.page-subsidy__work-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 2.1rem;
}
.page-subsidy__work-heading:before {
  content: "";
  background: #ebebeb;
  width: 0.3rem;
  height: 3rem;
  display: block;
  transform: rotate(330deg);
}
.page-subsidy__work-heading:after {
  content: "";
  background: #ebebeb;
  width: 0.3rem;
  height: 3rem;
  display: block;
  transform: rotate(30deg);
}
.page-subsidy__work-heading__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.page-subsidy__work-list {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.page-subsidy__work-list.contract__work .page-subsidy__work-ttl {
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
  padding-bottom: 0.4rem;
}
.page-subsidy__work-item {
  background: #f5f6f8;
  border-radius: 0.8rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.page-subsidy__work-item:last-child {
  margin-bottom: 1.6rem;
}
.page-subsidy__work-item:nth-child(1) {
  background: #f5f6f8;
}
.page-subsidy__work-item:nth-child(2) {
  background: #f3f7f9;
}
.page-subsidy__work-item:nth-child(3) {
  background: #fdfaf4;
}
.page-subsidy__work-item:nth-child(4) {
  background: #f8f4f4;
}
.page-subsidy__work-content {
  text-align: center;
}
.page-subsidy__work-ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #394883;
}
.page-subsidy__work-sbttl {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 200%;
  letter-spacing: 0.05em;
}
.page-subsidy__work-price {
  text-align: center;
  font-weight: 500;
  font-size: 1.8rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
  padding-bottom: 0.4rem;
}
.page-subsidy__work-price span {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #394883;
  margin-left: 0.3rem;
}
.page-subsidy__work-txt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  text-align: left;
}
.page-retirement .single-entertainment__ttl {
  font-size: 2.4rem;
}
@media (max-width: 768px) {
  .page-retirement .single-entertainment__ttl {
    font-size: 1.9rem;
  }
}
.page-retirement.page-service__note.visa-note .page-service__note-heading__ttl:after {
  top: -2.6rem;
  width: 8.1rem;
  height: 7.6rem;
}
.page-retirement .page-service__mv-list {
  margin: 2.4rem 0 1.6rem;
}

.single-news {
  padding-top: 4rem;
}
.single-news__head {
  margin-bottom: 2.4rem;
}
.single-news__date {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  margin-bottom: 0.4rem;
}
.single-news__ttl {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-bottom: 2.4rem;
}
.single-news__img {
  position: relative;
  padding-top: 56%;
}
.single-news__img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.single-news__content h2 {
  margin: 2.4rem 0;
  background: #f4f4f4;
  border-left: 0.4rem solid #2641ac;
  padding: 0.8rem 1.6rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.single-news__content h3 {
  position: relative;
  margin: 2.4rem 0;
  padding-bottom: 1.6rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  border-bottom: 0.2rem solid #ebebeb;
}
.single-news__content h3:after {
  content: "";
  position: absolute;
  background: #2641ac;
  width: 8rem;
  height: 0.2rem;
  bottom: -0.2rem;
  left: 0;
}
.single-news__content p,
.single-news__content span {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
}
.single-news__content a {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  color: #2641ac;
  text-decoration: underline;
}
.single-news__content > p + p {
  margin-top: 1.6rem;
}
.single-news .prev-btn {
  padding-bottom: 0.8rem;
}
.single-case__wrap {
  padding-bottom: 4rem;
}
.single-case__head {
  background: #f5f6f8;
  padding: 4rem 0;
}
@media (max-width: 768px) {
  /* スマホでは固定ヘッダーの下の余白を詰める（本文の上端は main の padding で72px下げている） */
  .single-case__head {
    padding-top: 2rem;
  }
}
.single-case__category {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
}
.single-case__category span {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  border: 0.1rem solid #bac0d9;
  background: #fff;
  border-radius: 100rem;
  padding: 0.8rem 1.6rem;
}
.single-case__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-bottom: 1.6rem;
}
.single-case__content {
  background: #fff;
  border-radius: 0.8rem;
  padding: 2.4rem;
}
.single-case__img {
  position: relative;
  padding-top: 66%;
  margin-bottom: 1.6rem;
}
.single-case__img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.single-case__detail dl dt {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 180%;
  color: #a6a6a6;
}
.single-case__detail dl dd {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 180%;
  color: #222222;
}
.single-case__detail dl dd + dt {
  margin-top: 0.8rem;
}
.single-case__foot {
  background: #fff;
  padding-top: 4rem;
}
.single-case__foot h2 {
  margin: 3.2rem 0 1.6rem;
  background: #f4f4f4;
  border-left: 0.4rem solid #2641ac;
  padding: 0.8rem 1.6rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.single-case__foot h2:first-child {
  margin-top: 0;
}
.single-case__foot h3 {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 170%;
  margin: 1.6rem 0 0.8rem;
  color: #394883;
}
.single-case__foot p,
.single-case__foot span {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
}
.single-case__foot p + p {
  margin-top: 1.6rem;
}
.single-column__head {
  padding-top: 3.2rem;
  margin-bottom: 3.2rem;
}
@media (max-width: 768px) {
  /* スマホでは固定ヘッダーの下の余白を詰める */
  .single-column__head {
    padding-top: 2rem;
  }
}
.single-column__ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin-bottom: 1.6rem;
}
.single-column__img {
  position: relative;
  margin-bottom: 1.6rem;
}
.single-column__flex {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin-bottom: 0.8rem;
}
.single-column__public {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
}
.single-column__update {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
}
.single-column__category {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.8rem;
}
.single-column__category span {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #737373;
}
.single-column__content h2 {
  margin: 2.4rem 0;
  background: #f4f4f4;
  border-left: 0.4rem solid #2641ac;
  padding: 0.8rem 1.6rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.single-column__content .single-column__summary h2 {
  margin: 0;
  border-left: 0.4rem solid #2641ac;
  border-radius: 0;
}
.single-column__content .single-column__summary ul {
  list-style: none;
  margin: 1.6rem 0;
  padding: 1.6rem 1.6rem 1.6rem 2rem;
  border: none;
  border-radius: 0;
  background: #fffbef;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.single-column__content .single-column__summary ul li {
  position: relative;
  padding-left: 1.6rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 200%;
  letter-spacing: 0.05em;
  list-style: none;
}
.single-column__content .single-column__summary ul li::marker {
  content: none;
}
.single-column__content .single-column__summary ul li::before {
  content: "";
  position: absolute;
  top: 1.4rem;
  left: 0.1rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: #fffbef;
  z-index: 2;
}
.single-column__content .single-column__summary ul li::after {
  content: "";
  position: absolute;
  top: 1.3rem;
  left: 0;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: #333333;
}
.single-column__content h3 {
  position: relative;
  margin: 2.4rem 0;
  padding-bottom: 1.6rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  border-bottom: 0.2rem solid #ebebeb;
}
.single-column__content h3:after {
  content: "";
  position: absolute;
  background: #2641ac;
  width: 8rem;
  height: 0.2rem;
  bottom: -0.2rem;
  left: 0;
}
.single-column__content h4 {
  position: relative;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  margin: 1.6rem 0;
  padding-left: 1.6rem;
}
.single-column__content h4:before {
  content: "";
  display: block;
  background: #2641ac;
  border-radius: 50%;
  width: 0.8rem;
  height: 0.8rem;
  position: absolute;
  top: 1rem;
  left: 0;
}
.single-column__content p,
.single-column__content span {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
}
.single-column__content > p + p {
  margin-top: 1.6rem;
}
.single-column__content strong {
  font-weight: 700;
  background: -webkit-linear-gradient(transparent 60%, #fff19f 60%);
  background: linear-gradient(transparent 60%, #fff19f 60%);
}
.single-column__content a {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  color: #2641ac;
  text-decoration: underline;
  word-break: break-all;
}
/* 一覧表などで日本語名の下に添える英語名（2026-10-17） */
.single-column__content .u-en {
  display: inline-block;
  font-size: 1.1rem;
  line-height: 140%;
  color: #737373;
  overflow-wrap: anywhere; /* 長い英語名は途中でも折り返し、列が広がりすぎないようにする */
}
/* 在留資格の一覧表（3 列）：1 列目（名称＋英語名）の幅を抑えて、2 列目の説明文の幅を確保する */
.single-column__content table.list29 th:first-child,
.single-column__content table.list29 td:first-child {
  width: 30%;
}
.single-column__content .column-related {
  margin: 1.6rem 0;
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.4rem;
  padding: 1.2rem 1.6rem;
}
.single-column__content .column-related__label {
  display: block;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 170%;
  color: #394883;
}
.single-column__content ul {
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.4rem;
  padding: 1.6rem 1.6rem 1.6rem 3.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 2.4rem 0;
}
.single-column__content ul li {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  list-style: disc;
}
.single-column__content ul li::marker {
  color: #394883;
}
.single-column__content ol {
  background: #f5f6f8;
  border-radius: 0.4rem;
  padding: 1.6rem 1.6rem 1.6rem 3.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 2.4rem 0;
}
.single-column__content ol li {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  list-style: auto;
}
.single-column__content ol li::marker {
  color: #394883;
  font-weight: 700;
}
.single-column__content img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
  object-position: center;
  margin-bottom: 2.4rem;
}
/* 記事中の図（画像＋キャプション）（2026-10-20） */
.single-column__content figure {
  margin: 2.4rem 0;
}
.single-column__content figure img {
  margin-bottom: 0.8rem;
}
.single-column__content figcaption {
  font-size: 1.3rem;
  line-height: 170%;
  color: #737373;
}
.single-column__content table {
  border-top: 0.1rem solid #ebebeb;
  border-left: 0.1rem solid #ebebeb;
  border-collapse: collapse;
  width: 100%;
  margin: 2.4rem 0;
}
.single-column__content .table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 2.4rem 0;
}
.single-column__content .table-scroll table {
  margin: 0;
  min-width: 100rem;
}
.single-column__content table th {
  background: #ebebeb;
  padding: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-bottom: 0.1rem solid #fff;
}
@media (max-width: 768px) {
  .single-column__content table th {
    font-size: 1.3rem;
  }
}
.single-column__content table td {
  padding: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-right: 0.1rem solid #ebebeb;
  border-bottom: 0.1rem solid #ebebeb;
}
@media (max-width: 768px) {
  .single-column__content table td {
    font-size: 1.3rem;
  }
}
.single-column__toc {
  margin: 3.2rem 0;
  border: 0.1rem solid #f1f1f1;
  border-radius: 0.6rem;
  overflow: hidden;
  background: #fff;
}
.single-column__toc.is-open .single-column__toc-body {
  display: block;
}
.single-column__toc.is-open .single-column__toc-icon {
  transform: rotate(180deg);
}
.single-column__toc-toggle {
  color: #333333; /* 未指定だとiOS Safariでボタンの文字が青になるため */
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.8rem 1.6rem;
  border: 0;
  background: #f1f1f1;
  cursor: pointer;
  text-align: left;
}
.single-column__toc-toggle span {
  font-weight: 500;
}
.single-column__toc-label {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 160%;
}
.single-column__toc-icon {
  position: relative;
  display: block;
  width: 1.2rem;
  height: 1.2rem;
  min-width: 1.2rem;
  transition: transform 0.2s ease;
}
.single-column__toc-icon::before {
  content: "";
  position: absolute;
  top: 45%;
  left: 50%;
  width: 0.7rem;
  height: 0.7rem;
  border-right: 0.2rem solid #333;
  border-bottom: 0.2rem solid #333;
  transform: translate(-50%, -60%) rotate(45deg);
}
.single-column__toc-body {
  display: none;
  padding: 0 1.6rem;
}
.single-column__toc-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  display: block !important;
  gap: 0 !important;
}
.single-column__toc-item {
  list-style: none !important;
  padding: 1.6rem 0;
  border-bottom: 0.1rem solid #ebebeb;
}
.single-column__toc-item:last-child {
  border-bottom: 0;
}
.single-column__toc-item::marker {
  content: none;
  color: transparent;
}
.single-column__toc-link {
  display: flex;
  align-items: flex-start;
  gap: 1.8rem;
  text-decoration: none !important;
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  line-height: 180% !important;
  color: #333333 !important;
}
.single-column__toc-num {
  flex-shrink: 0;
  color: #2641ac;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  font-family: "Bitter", serif;
  letter-spacing: 0.02em;
}
.single-column__toc-text {
  flex: 1;
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  line-height: 180% !important;
}
.single-column__toc-sublist {
  list-style: none !important;
  margin: 0.8rem 0 0 !important;
  padding: 0 0 0 4rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  display: flex !important;
  flex-direction: column;
  gap: 0.8rem !important;
}
.single-column__toc-subitem {
  list-style: none !important;
  position: relative;
  padding-left: 1.2rem;
}
.single-column__toc-subitem::before {
  content: "";
  position: absolute;
  top: 0.9rem;
  left: 0;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 100%;
  background: #333;
}
.single-column__toc-subitem::marker {
  content: none;
  color: transparent;
}
.single-column__toc-sublink {
  display: block;
  color: #333 !important;
  text-decoration: none !important;
  font-size: 1.4rem !important;
  font-weight: 400 !important;
  line-height: 170% !important;
}
.single-column__toc-subtext {
  font-size: 1.4rem !important;
  font-weight: 400 !important;
  line-height: 170% !important;
}
.single-column__profile {
  margin: 3.2rem 0;
  background: #fff;
  border: 0.1rem solid #ebebeb;
  border-radius: 0.4rem;
  padding: 1.6rem 2.4rem;
}
.single-column__profile-flex {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}
.single-column__profile-img {
  display: block;
  height: 6.4rem;
  width: 6.4rem;
  min-width: 6.4rem;
}
.single-column__profile-img img {
  border-radius: 100rem;
  margin: 0 !important;
}
.single-column__profile-content {
  width: 100%;
}
.single-column__profile-post {
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 200%;
}
.single-column__profile-name {
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  line-height: 200%;
}
.single-column__profile-txt p {
  font-size: 1.3rem !important;
  font-weight: 400;
  line-height: 200%;
  margin-top: 1.6rem;
}
.single-column__profile-link {
  display: inline-block;
  margin-top: 0.8rem;
  font-size: 1.3rem;
  line-height: 200%;
  color: #2641ac;
  text-decoration: underline;
}
.single-column__recommend {
  padding: 4rem 0;
}
.single-column__recommend .heading {
  display: flex;
  align-items: center;
  justify-content: left;
  gap: 0.8rem;
}
.single-column__recommend .heading-en {
  font-size: 2.8rem;
  font-weight: 500;
  margin-bottom: 0;
}
.single-column__recommend .heading-ttl {
  font-size: 1.2rem;
}
.single-column__recommend-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
  margin-top: 1.6rem;
}
.single-column__recommend-img {
  position: relative;
  padding-top: 66%;
  margin-bottom: 1.2rem;
}
.single-column__recommend-img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.single-column__recommend-date {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  color: #a6a6a6;
  margin-bottom: 0.4rem;
  text-align: left;
}
.single-column__recommend-ttl {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.single-column__recommend-category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-top: 0.8rem;
}
.single-column__recommend-category span {
  color: #737373;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.single-service__cta {
  background: #fffbf1;
  padding: 1.6rem;
  margin: 2.4rem 0;
}
@media (max-width: 768px) {
  .single-service__cta {
    padding: 1.6rem 0.8rem;
  }
}
.single-service__cta-ttl {
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  line-height: 160% !important;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 0 0 1.2rem !important;
}
.single-service__cta-ttl span {
  color: #c56727;
  font-weight: 700 !important;
  font-size: 1.6rem !important;
  line-height: 160% !important;
}
.single-service__cta-flex {
  display: flex;
  justify-content: space-between;
  gap: 1.2rem;
}
@media (max-width: 768px) {
  .single-service__cta-flex {
    gap: 0.8rem;
  }
}
.single-service__cta-flex .line,
.single-service__cta-flex .web {
  width: 100%;
}
.single-construction__content {
  padding-bottom: 3.2rem;
}
.single-construction__content h2 {
  margin: 2.4rem 0;
  background: #f4f4f4;
  border-left: 0.4rem solid #2641ac;
  padding: 0.8rem 1.6rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.single-construction__content h2:first-child {
  margin-top: 0;
}
.single-construction__content h3 {
  position: relative;
  margin: 2.4rem 0;
  padding-bottom: 1.6rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  border-bottom: 0.2rem solid #ebebeb;
}
.single-construction__content h3:after {
  content: "";
  position: absolute;
  background: #2641ac;
  width: 8rem;
  height: 0.2rem;
  bottom: -0.2rem;
  left: 0;
}
.single-construction__content p,
.single-construction__content span {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
}
.single-construction__content strong {
  font-weight: 700;
}
.single-construction__content a {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  color: #2641ac;
  text-decoration: underline;
  word-break: break-all;
}
.single-construction__content ul {
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.4rem;
  padding: 1.6rem 1.6rem 1.6rem 3.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 2.4rem 0;
}
.single-construction__content ul li {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  list-style: disc;
}
.single-construction__content ul li::marker {
  color: #394883;
}
.single-construction__content ol {
  background: #f5f6f8;
  border-radius: 0.4rem;
  padding: 1.6rem 1.6rem 1.6rem 3.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 2.4rem 0;
}
.single-construction__content ol li {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  list-style: auto;
}
.single-construction__content ol li::marker {
  color: #394883;
  font-weight: 700;
}
.single-construction__content img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
  object-position: center;
  margin: 2.4rem 0;
}
.single-construction__content table {
  border-top: 0.1rem solid #ebebeb;
  border-left: 0.1rem solid #ebebeb;
  border-collapse: collapse;
  table-layout: auto !important;
  width: 100%;
  margin: 2.4rem 0;
}
.single-construction__content table th {
  background: #ebebeb;
  padding: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-bottom: 0.1rem solid #fff;
}
@media (max-width: 768px) {
  .single-construction__content table th {
    font-size: 1.3rem;
  }
}
.single-construction__content table td {
  padding: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-right: 0.1rem solid #ebebeb;
  border-bottom: 0.1rem solid #ebebeb;
  border-left: none;
  border-top: none;
}
@media (max-width: 768px) {
  .single-construction__content table td {
    font-size: 1.3rem;
  }
}
.single-construction__content table:not(:has(th)) tbody tr td:first-child {
  color: #394883;
}
.single-construction__area {
  position: relative;
  padding: 3.2rem 0;
  background: url("../img/service-area-bg02.webp") no-repeat;
  background-size: cover;
  background-position: center;
  margin-bottom: 4rem;
}
.single-construction__area-ttl {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 160%;
  letter-spacing: 0.05em;
  text-align: center;
  color: #394883;
}
.single-construction__area-wrap {
  background: #fff;
  padding: 2.4rem;
  margin-top: 1.6rem;
}
.single-construction__area-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.single-construction__area-item {
  width: calc((100% - 0.8rem) / 2);
}
.single-construction__area-link {
  background: #e8ebf6;
  border-radius: 100rem;
  padding: 1rem 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  text-align: center;
  border: 0.1rem solid #bac0d9;
}
.single-construction__area-link .arrow {
  width: 1.1rem;
}
.single-entertainment__mv {
  padding-bottom: 1.6rem;
  background: #fdfdfd;
}
@media (max-width: 768px) {
  .single-entertainment__mv {
    padding: 7.2rem 0 2.4rem;
  }
}
.single-entertainment__main {
  text-align: center;
  background: #fdfdfd;
}
.single-entertainment__ttl {
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.05em;
  margin-bottom: 1.6rem;
  background-image: linear-gradient(to right, #d4d4d4, #d4d4d4 0.4rem, transparent 0.4rem);
  background-size: 1rem 0.2rem;
  background-position: left bottom;
  background-repeat: repeat-x;
  display: inline-block;
}
.single-entertainment__txt {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  margin-bottom: 1.6rem;
  text-align: left;
}
.single-entertainment__price {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin-bottom: 2.4rem;
}
.single-entertainment__label {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 130%;
  letter-spacing: 0.05em;
  background: #fffbf1;
  display: inline-block;
  padding: 0.8rem;
}
.single-entertainment__num {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 130%;
  letter-spacing: 0.05em;
  color: #c56727;
}
.single-entertainment__num strong {
  font-size: 3.6rem;
  font-family: "Bitter", serif;
  margin-right: 0.2rem;
}
.single-entertainment__price-note {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 130%;
  letter-spacing: 0.05em;
  color: #c56727;
  text-align: center;
  margin-top: -1.6rem;
  margin-bottom: 2.4rem;
}
.single-entertainment__heading {
  position: relative;
  padding: 1.2rem 0;
  background: #b6964b;
}
.single-entertainment__heading:after {
  content: "";
  display: inline-block;
  vertical-align: middle;
  color: #b6964b;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 2.4rem 1.6rem;
  border-top-color: currentColor;
  border-bottom: 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1.6rem;
  margin: auto;
}
.single-entertainment__heading-ttl {
  font-size: 2rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  color: #fff;
}
.single-entertainment__wrap {
  padding: 3.2rem 0 4rem;
}
.single-entertainment__sbttl {
  font-size: 1.8rem;
  font-weight: 700;
  color: #c56727;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.single-entertainment__list {
  display: flex;
  gap: 0.8rem;
  margin: 1.6rem 0;
}
.single-entertainment__list.girlsbar-entertainment .single-entertainment__item-ttl {
  font-size: 1.4rem;
  letter-spacing: 0;
}
.single-entertainment__item {
  padding: 0.8rem 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.single-entertainment__item:nth-child(1) {
  background: #fff6ef;
}
.single-entertainment__item:nth-child(2) {
  background: #f8f4f4;
}
.single-entertainment__item:nth-child(3) {
  background: #f5f6f8;
}
.single-entertainment__item-sbttl {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  color: #737373;
}
.single-entertainment__item-ttl {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.single-entertainment__sbtxt {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  text-align: left;
  margin-bottom: 2.4rem;
}
.single-entertainment__img {
  margin-bottom: 2rem;
}
.single-entertainment .cta-flex {
  padding: 0;
}
.single-entertainment .page-service__product {
  padding-bottom: 4.8rem;
}
.single-entertainment .page-service__risk {
  padding: 4.8rem 0;
}
.single-entertainment .top-column {
  padding: 4.8rem 0 6.4rem;
}
.single-visa__content {
  padding-bottom: 3.2rem;
}
.single-visa__content h2 {
  margin: 2.4rem 0;
  background: #f4f4f4;
  border-left: 0.4rem solid #2641ac;
  padding: 0.8rem 1.6rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
}
.single-visa__content h2:first-child {
  margin-top: 0;
}
.single-visa__content h3 {
  position: relative;
  margin: 2.4rem 0;
  padding-bottom: 1.6rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.05em;
  border-bottom: 0.2rem solid #ebebeb;
}
.single-visa__content h3:after {
  content: "";
  position: absolute;
  background: #2641ac;
  width: 8rem;
  height: 0.2rem;
  bottom: -0.2rem;
  left: 0;
}
.single-visa__content p,
.single-visa__content span {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
}
.single-visa__content p strong,
.single-visa__content span strong {
  font-weight: 700;
  background: -webkit-linear-gradient(transparent 60%, #fff19f 60%);
  background: linear-gradient(transparent 60%, #fff19f 60%);
}
.single-visa__content strong {
  font-weight: 700;
}
.single-visa__content a {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  color: #2641ac;
  text-decoration: underline;
  word-break: break-all;
}
.single-visa__content ul {
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.4rem;
  padding: 1.6rem 1.6rem 1.6rem 3.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 2.4rem 0;
}
.single-visa__content ul li {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  list-style: disc;
}
.single-visa__content ul li::marker {
  color: #394883;
}
.single-visa__content ol {
  background: #f5f6f8;
  border-radius: 0.4rem;
  padding: 1.6rem 1.6rem 1.6rem 3.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 2.4rem 0;
}
.single-visa__content ol li {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 200%;
  list-style: auto;
}
.single-visa__content ol li::marker {
  color: #394883;
  font-weight: 700;
}
.single-visa__content img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
  object-position: center;
  margin: 2.4rem 0;
}
.single-visa__content table {
  border-top: 0.1rem solid #ebebeb;
  border-left: 0.1rem solid #ebebeb;
  border-collapse: collapse;
  table-layout: auto !important;
  width: 100%;
  margin: 2.4rem 0;
}
.single-visa__content table thead {
  border-bottom: none;
}
.single-visa__content table thead th {
  text-align: center;
}
.single-visa__content table th {
  background: #ebebeb;
  padding: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border: 0.1rem solid #fff;
}
@media (max-width: 768px) {
  .single-visa__content table th {
    font-size: 1.3rem;
  }
}
.single-visa__content table td {
  padding: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 200%;
  letter-spacing: 0.05em;
  border-right: 0.1rem solid #ebebeb;
  border-bottom: 0.1rem solid #ebebeb;
  border-left: none;
  border-top: none;
}
@media (max-width: 768px) {
  .single-visa__content table td {
    font-size: 1.3rem;
  }
}
.single-visa__content table:not(:has(th)) tbody tr td:first-child {
  color: #394883;
}

@media (prefers-reduced-motion: reduce) {
  .page-service__faq-btn,
  .page-service__faq-a,
  .page-service__faq-icon::after {
    transition: none;
  }
}
.service main {
  background: #f5f6f8;
}
.service main .cta {
  padding-top: 4rem;
}

.construction main {
  background: #fff;
}
.construction .top-column {
  padding-bottom: 6.4rem;
}

@media (max-width: 768px) {
  .visa .page-service__mv-ttl {
    font-size: 2.2rem;
  }
}

.message .top-office {
  margin-bottom: 4rem;
}

.strength main {
  background: #f5f6f8;
}
.strength main .page-service__flow {
  padding-top: 4.8rem;
}
.strength main .cta {
  background: #fff;
}
.strength main .breadcrumbs {
  margin-top: 0;
  padding-top: 4rem;
}

@media (max-width: 768px) {
  /* 固定ヘッダー（高さ7.2rem）の分だけ本文を下げる。コラムの記事・新着一覧・分類ページ・検索結果・事例とメンバーの記事ページも同じ */
  .column main,
  .single-column main,
  .single-case main,
  .single-member main,
  .post-type-archive-column main,
  .tax-column-category main,
  .search main {
    padding-top: 7.2rem;
  }
}

.entertainment .wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.entertainment .block {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.entertainment main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  min-height: auto;
  padding-bottom: 0;
}
.entertainment .page-contact {
  flex: 1 0 auto;
  padding: 4rem 0;
}
.entertainment .page-contact__actions {
  padding-bottom: 0;
}
.entertainment .footer--contact {
  width: 100%;
  max-width: none;
  margin-top: auto;
  padding: 4rem 0 4.8rem;
  background: transparent;
  box-shadow: none;
  clip-path: none;
  text-align: center;
}

@media (max-width: 768px) {
  .thanks .thanks .wrapper {
    padding-top: 7.2rem !important;
  }
}
.thanks .thanks .wrapper .block {
  height: 100vh;
}
.thanks .thanks .wrapper .block main {
  height: 100%;
  min-height: auto;
  padding-bottom: 0;
}
.thanks .footer {
  max-width: none;
  margin: 0;
  background: transparent;
  box-shadow: none;
  clip-path: none;
}

@keyframes top-mv-en-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes top-mv-scale-bounce {
  0% {
    opacity: 0;
    transform: scale(0);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes top-mv-fade-in-text {
  0% {
    opacity: 0;
    transform: translateY(0.8rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .top-mv__img01 img,
  .top-mv__img02 img,
  .top-mv__img03 img,
  .top-mv__img04 img,
  .top-mv__top,
  .top-mv__bottom {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* 改行の調整
   ・見出しや表の見出しは、行の長さをそろえる
   ・金額や表の中の言葉は、途中で改行しない
   ※ main への text-wrap: pretty は、iOS Safariで本文が早めに折り返され左寄りに見えるため削除 */
main .wp-block-heading,
main .wp-block-table th,
.single-entertainment__heading-ttl,
.page-service__flow-ttl,
.page-service__work-sbttl:not(:has(br)) {
  text-wrap: balance;
}
.wp-block-table th {
  word-break: keep-all;
}
.u-nowrap {
  white-space: nowrap;
}
.page-service__action-left,
.page-service__action-right .price .num,
.page-service__flow-pay p:last-child {
  white-space: nowrap;
  flex-shrink: 0;
}
@media (max-width: 374px) {
  .page-service__mv-ttl {
    font-size: 2.2rem;
  }
  .page-service__action-right .price {
    flex-wrap: wrap;
  }
  .page-service__action-right .price .num {
    font-size: 2.6rem;
  }
  .page-service__action-right .price .tax {
    white-space: nowrap;
  }
}
@media (max-width: 359px) {
  .cta-flex .line a,
  .cta-flex .web a {
    gap: 0.4rem;
    font-size: 1.3rem;
  }
  .cta-flex .line a .icon,
  .cta-flex .web a .icon {
    width: 2.4rem;
  }
}
/* ====================================================
/* ====================================================
パラリー（Parally）のサービスページ（/service/parally/、2026-10-20〜22）
本文は固定ページの本文に HTML で書き、コラム本文の見た目（.single-column__content）を土台にする。
部品の名前は parally- で始める。色はサイト共通（紺 #394883、濃い青 #2641ac、薄い青 #e8ebf6、薄い灰色 #f5f6f8、
注記の灰色 #737373、薄いだいだい #fdf3ea／#f3d2b3）。このページだけ、ボタン以外は紺で塗りつぶさない
==================================================== */
/* --- ページ全体 --- */
.page-parally {
  padding: 2.4rem 0 4.8rem;
}
.page-parally [id] {
  scroll-margin-top: 8rem; /* 目次から飛んだとき、見出しが固定ヘッダーに隠れないように */
}
.page-parally .single-column__content > ul,
.page-parally .single-column__content > ol {
  margin: 1.6rem 0 2.4rem; /* 部品ごとの余白は、あとの指定で上書きする */
}
/* 見出しや短い文の最後の行に 1 文字だけ落ちるのを防ぐ（対応ブラウザのみ。iPhone の Safari は未対応で、そのまま） */
.page-parally :is(h1, h2, h3, h4, dt, li, th, td, .parally-cards__ttl, .parally-steps__ttl, .parally-cta__ttl, .parally-price__name, .parally-formula p, .parally-hero__sub) {
  text-wrap: pretty;
}
.page-parally :is(h1, h2, h3, h4, .parally-cards__ttl, .parally-steps__ttl, .parally-cta__ttl, .parally-toc li) {
  word-break: auto-phrase;
}

/* --- 表（コラムの表の見た目に、このページだけの調整を足す） --- */
.page-parally .single-column__content .table-scroll table {
  min-width: 64rem; /* コラムの横スクロールの表（100rem）より狭くてよい */
}
.page-parally .single-column__content table :is(td, th):first-child {
  min-width: 8em; /* 1 列目（項目名）が細くなりすぎないように */
  font-weight: 700;
}
.page-parally .single-column__content table.parally-check :is(td, th):first-child {
  min-width: 0; /* 料金の ○／― の表は 4 列あるので、1 列目を広げない */
}
.page-parally .single-column__content table.parally-models :is(td, th):first-child,
.page-parally .single-column__content table.parally-models :is(td, th):last-child {
  min-width: 0;
  white-space: nowrap; /* モデル名と単価（短い）を改行させず、説明の列に幅を回す */
}
.single-column__content table.parally-check td:not(:first-child) {
  text-align: center;
  color: #394883;
  font-weight: 700;
}
.page-parally .single-column__content td span.u-nowrap {
  font-size: inherit; /* コラム用の span の指定（1.5rem・200%）を受けないようにする */
  font-weight: inherit;
  line-height: inherit;
}

/* --- 文字の部品（出典・注記、小見出しの前置き、数字） --- */
.single-column__content .parally-src {
  margin: 0.8rem 0 2.4rem;
  font-size: 1.2rem;
  line-height: 170%;
  color: #737373;
}
.single-column__content table + .parally-src,
.single-column__content .table-scroll + .parally-src,
.single-column__content .parally-note + .parally-src {
  margin-top: -1.2rem; /* 表・囲みのすぐ下の出典は、表に近づける */
}
.single-column__content .parally-lead {
  font-weight: 500;
  color: #394883;
}
.single-column__content .parally-hero__badges strong,
.single-column__content .parally-price__num strong {
  background: none; /* コラムの strong の黄色い下線を消す */
  font-family: "Bitter", serif;
  color: #2641ac;
}

/* --- 先頭の大きな見出し --- */
.parally-hero {
  margin-bottom: 3.2rem;
  padding: 2.4rem 1.6rem;
  background: #f5f6f8;
  border-radius: 0.8rem;
  text-align: center;
}
.single-column__content .parally-hero__slogan {
  font-family: "Bitter", serif;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 150%;
  color: #394883;
}
.parally-hero__ttl {
  margin: 0.8rem 0;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.05em;
}
.single-column__content .parally-hero__sub {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 170%;
  color: #394883;
}
.single-column__content .parally-hero__txt {
  margin-top: 1.6rem;
  text-align: left;
  font-size: 1.4rem;
  line-height: 190%;
}
.single-column__content .parally-hero__note {
  margin-top: 1.2rem;
  text-align: left;
  font-size: 1.2rem;
  line-height: 170%;
  color: #737373;
}
/* 月額・無料お試し・初期費用の 3 つの箱 */
.single-column__content ul.parally-hero__badges {
  flex-direction: row;
  gap: 0.8rem;
  margin: 1.6rem 0;
  padding: 0;
  border: 0;
}
.single-column__content ul.parally-hero__badges li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex: 1;
  list-style: none;
  padding: 0.8rem 0.4rem;
  background: #fff;
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.6rem;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 150%;
}
.single-column__content .parally-hero__badges strong {
  display: block; /* 月額は数字の下に単位 */
  font-size: 2.4rem;
  line-height: 130%;
}
.single-column__content span.parally-hero__badge-num {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 130%;
  white-space: nowrap; /* 「1か月」「0円」は数字と単位を 1 行に */
}
.single-column__content .parally-hero__badge-num strong {
  display: inline;
  margin-right: 0.2rem;
}
.single-column__content span.parally-hero__badge-label {
  display: block;
  font-size: 1.2rem;
  line-height: 150%;
  color: #737373;
}
.single-column__content span.parally-hero__badge-sub {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 150%;
  color: #737373;
}

/* --- 申込みボタン（サイト共通の WEB 相談ボタンと同じ色・形）と、相談の囲み --- */
.single-column__content .parally-cta-btn {
  margin: 2.4rem 0 0;
}
.single-column__content .parally-cta-btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 6.4rem;
  padding: 0.8rem 1.6rem;
  background: #394883;
  border-radius: 0.4rem;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-decoration: none;
}
.single-column__content .parally-cta-btn a::after {
  content: "";
  display: block;
  flex: 0 0 1.6rem;
  height: 1.6rem;
  margin-left: 0.8rem;
  background: url("../img/arrow-white.webp") no-repeat center/contain;
}
.parally-cta {
  margin: 3.2rem 0;
  padding: 2rem 1.6rem;
  background: #e8ebf6;
  border-radius: 0.8rem;
}
.single-column__content .parally-cta__ttl {
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 160%;
  text-align: center;
  color: #394883;
}
.single-column__content .parally-cta__txt {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  line-height: 190%;
}
.parally-cta .parally-cta-btn {
  margin-top: 1.6rem;
}

/* --- 要点・目次・結論の囲み --- */
.single-column__content dl.parally-points {
  margin: 2.4rem 0;
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.4rem;
  overflow: hidden;
}
.parally-points dt {
  padding: 0.6rem 1.6rem;
  background: #e8ebf6;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 170%;
  color: #394883;
}
.parally-points dd {
  margin: 0;
  padding: 1.2rem 1.6rem;
  font-size: 1.4rem;
  line-height: 190%;
}
.parally-toc {
  margin: 2.4rem 0 3.2rem;
  border: 0.1rem solid #f1f1f1;
  border-radius: 0.6rem;
  overflow: hidden;
}
.single-column__content .parally-toc__ttl {
  padding: 0.8rem 1.6rem;
  background: #f1f1f1;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 170%;
}
.single-column__content .parally-toc ol {
  margin: 0;
  padding: 1.2rem 1.6rem 1.2rem 3.6rem;
  background: #fff;
  border-radius: 0;
  gap: 0;
}
.single-column__content .parally-toc ol li,
.single-column__content .parally-toc a {
  font-size: 1.4rem;
  line-height: 210%;
}
.single-column__content .parally-toc a {
  color: #333333;
  text-decoration: none;
}
.parally-note {
  margin: 2.4rem 0;
  padding: 1.6rem;
  background: #fdf3ea;
  border: 0.1rem solid #f3d2b3;
  border-radius: 0.6rem;
}
.single-column__content .parally-note p {
  font-size: 1.4rem;
  line-height: 190%;
}
.single-column__content .parally-note p + p {
  margin-top: 0.8rem;
}
.single-column__content .parally-note a {
  font-size: 1.4rem;
}

/* --- 標語・式と「作業時間を減らす」：ボタンと見分けやすいよう、塗りつぶさずに上下の線で囲む --- */
.parally-formula {
  margin: 2.4rem 0;
  padding: 1.4rem 0.8rem;
  border-top: 0.2rem solid #394883;
  border-bottom: 0.2rem solid #394883;
  text-align: center;
}
.single-column__content .parally-formula p {
  line-height: 170%;
}
.single-column__content .parally-formula__en {
  font-family: "Bitter", serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: #394883;
}
.single-column__content .parally-formula__main {
  font-size: 1.7rem;
  font-weight: 700;
  color: #394883;
}
.single-column__content .parally-formula__sub {
  font-size: 1.3rem;
}
.parally-goal {
  margin: 2.4rem 0;
}
.single-column__content .parally-goal__main {
  position: relative;
  padding: 1rem;
  border-top: 0.2rem solid #394883;
  border-bottom: 0.2rem solid #394883;
  color: #394883;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 150%;
  text-align: center;
}
.single-column__content .parally-goal__main::after {
  content: ""; /* 下向きの三角 */
  position: absolute;
  left: 50%;
  bottom: -1.6rem;
  transform: translateX(-50%);
  border: 0.8rem solid transparent;
  border-top: 0.8rem solid #394883;
}
.single-column__content ul.parally-goal__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
  margin: 2rem 0 0;
  padding: 0;
  border: 0;
}
.single-column__content ul.parally-goal__list li {
  list-style: none;
  padding: 1rem 0.4rem;
  background: #f5f6f8;
  border-radius: 0.6rem;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 150%;
  text-align: center;
  color: #333333;
}

/* --- 先生の声（吹き出し風） --- */
.single-column__content ul.parally-voices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
  padding: 0;
  border: 0;
}
.single-column__content ul.parally-voices li {
  list-style: none;
  padding: 1.2rem 1rem;
  background: #fff;
  border: 0.1rem solid #d4d4d4;
  border-radius: 1.2rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 160%;
}
.single-column__content ul.parally-voices li::before {
  content: "「";
}
.single-column__content ul.parally-voices li::after {
  content: "」";
}

/* --- カード（1 列／2 列、「限界01」のラベル、「パラリーによる対応」の白い囲み） --- */
.single-column__content ul.parally-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  padding: 0;
  border: 0;
}
.single-column__content ul.parally-cards > li {
  list-style: none;
  padding: 1.2rem 1.4rem;
  background: #f5f6f8;
  border-radius: 0.6rem;
}
.single-column__content .parally-cards__label {
  display: inline-block;
  margin-bottom: 0.4rem;
  padding: 0 0.8rem;
  background: #fff;
  border: 0.1rem solid #394883;
  border-radius: 0.3rem;
  color: #394883;
  font-family: "Bitter", serif;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 170%;
}
.single-column__content .parally-cards__ttl {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 160%;
  color: #394883;
}
.single-column__content .parally-cards__txt {
  margin-top: 0.4rem;
  font-size: 1.4rem;
  line-height: 180%;
}
.single-column__content .parally-cards__answer {
  margin-top: 0.8rem;
  padding: 1rem 1.2rem;
  background: #fff;
  border-radius: 0.4rem;
  font-size: 1.4rem;
  line-height: 180%;
}
.single-column__content span.parally-cards__answer-label {
  display: block;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 170%;
  color: #2641ac;
}
.single-column__content ul.parally-cards--2 {
  grid-template-columns: 1fr 1fr;
}
.single-column__content .parally-cards--2 > li {
  padding: 1rem 1.2rem;
}
.single-column__content .parally-cards--2 .parally-cards__ttl {
  font-size: 1.4rem;
}
.single-column__content .parally-cards--2 .parally-cards__txt {
  font-size: 1.3rem;
}

/* --- 手順（番号と下向きの矢印。--plain は番号なし、--cards は矢印なしの灰色のカード） --- */
.single-column__content ol.parally-steps {
  counter-reset: parally-step;
  margin: 2.4rem 0;
  padding: 0;
  background: none; /* コラムの ol の灰色の地を消す */
  border-radius: 0;
  gap: 2.4rem;
}
.single-column__content ol.parally-steps > li {
  position: relative;
  list-style: none;
  counter-increment: parally-step;
  padding: 1.2rem 1.4rem 1.2rem 5.2rem;
  background: #fff;
  border: 0.1rem solid #d4d4d4;
  border-radius: 0.6rem;
}
.single-column__content ol.parally-steps > li::before {
  content: counter(parally-step); /* 丸数字 */
  position: absolute;
  top: 1.2rem;
  left: 1.4rem;
  width: 2.6rem;
  height: 2.6rem;
  background: #394883;
  border-radius: 50%;
  color: #fff;
  font-family: "Bitter", serif;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 2.6rem;
  text-align: center;
}
.single-column__content ol.parally-steps > li + li::after {
  content: ""; /* 前の項目との間の下向きの矢印 */
  position: absolute;
  top: -2.1rem;
  left: 50%;
  transform: translateX(-50%);
  border: 0.8rem solid transparent;
  border-top: 0.9rem solid #bac0d9;
}
.single-column__content ol.parally-steps--plain > li {
  padding-left: 1.4rem;
}
.single-column__content ol.parally-steps--plain > li::before {
  content: none;
}
.single-column__content ol.parally-steps--cards {
  gap: 1rem;
}
.single-column__content ol.parally-steps--cards > li {
  background: #f5f6f8;
  border: 0;
}
.single-column__content ol.parally-steps--cards > li + li::after {
  content: none;
}
.single-column__content ol.parally-steps > li.is-result {
  background: #e8ebf6; /* 成果物 */
  border-color: #bac0d9;
}
.single-column__content ol.parally-steps > li.is-ask {
  background: #fdf3ea; /* 先生に確認 */
  border-color: #f3d2b3;
}
.single-column__content ol.parally-steps > li.is-judge {
  border: 0.2rem dashed #394883; /* 分かれ道 */
}
.single-column__content .parally-steps__ttl {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 170%;
  color: #394883;
}
.single-column__content .parally-steps__txt {
  font-size: 1.4rem;
  line-height: 180%;
}
.single-column__content .parally-steps__ttl + .parally-steps__txt {
  margin-top: 0.2rem;
}
.single-column__content .parally-steps__sub {
  margin-top: 0.6rem;
  font-size: 1.3rem;
  line-height: 170%;
  color: #737373;
}

/* --- 横に流れる手順（裁判の進め方） --- */
.single-column__content ul.parally-chain {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.8rem 2.2rem;
  padding: 1.2rem 1.2rem 1.2rem 1.6rem;
  background: #f5f6f8;
  border: 0;
}
.single-column__content ul.parally-chain li {
  position: relative;
  list-style: none;
  padding: 0.4rem 1rem;
  background: #fff;
  border: 0.1rem solid #d4d4d4;
  border-radius: 0.4rem;
  font-size: 1.3rem;
  line-height: 160%;
}
.single-column__content ul.parally-chain li + li::before {
  content: "→";
  position: absolute;
  left: -1.8rem;
  top: 50%;
  transform: translateY(-50%);
  color: #737373;
  font-size: 1.2rem;
}
.single-column__content ul.parally-chain li.is-ask {
  background: #fdf3ea;
  border-color: #f3d2b3;
  font-weight: 700;
}

/* --- 作業時間の帯 --- */
.parally-bars {
  margin: 1.6rem 0 2.4rem;
}
.parally-bars__row + .parally-bars__row {
  margin-top: 1.2rem;
}
.single-column__content .parally-bars__label {
  margin-bottom: 0.4rem;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 150%;
}
.parally-bars__bar {
  display: flex;
  border-radius: 0.4rem;
  overflow: hidden;
}
.single-column__content span.parally-bars__seg {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4rem;
  padding: 0.4rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 140%;
  text-align: center;
}
.parally-bars__seg--work {
  flex: 0 0 50%;
  background: #737373;
}
.parally-bars__seg--work.parally-bars__seg--full {
  flex-basis: 100%;
}
.parally-bars__seg--free {
  flex: 0 0 50%;
  background: #2641ac;
}
.parally-bars__seg--study {
  flex: 0 0 25%;
  background: #8c6d1f; /* 白い小さな文字が読めるよう、濃いめの色（コントラスト 4.5 以上） */
}
.parally-bars__seg--tune {
  flex: 0 0 25%;
  background: #a8541a;
}

/* --- 契約類型のタグ --- */
.single-column__content ul.parally-tags {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.6rem;
  padding: 0;
  border: 0;
}
.single-column__content ul.parally-tags li {
  list-style: none;
  padding: 0.3rem 0.8rem;
  background: #f5f6f8;
  border-radius: 0.3rem;
  color: #333333;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 160%;
}
.single-column__content ul.parally-tags li.is-common {
  background: #fdf3ea;
  font-weight: 700;
}

/* --- 料金（税抜を大きく、税込を小さく。このページだけの表記） --- */
.single-column__content ul.parally-price {
  gap: 1.6rem;
  padding: 0;
  border: 0;
}
.single-column__content ul.parally-price > li {
  list-style: none;
  padding: 1.6rem;
  border: 0.2rem solid #e8ebf6;
  border-radius: 0.8rem;
  text-align: center;
}
.single-column__content ul.parally-price > li.is-recommend {
  border-color: #394883;
}
.single-column__content .parally-price__badge {
  display: inline-block;
  margin-bottom: 0.6rem;
  padding: 0 1rem;
  border: 0.1rem solid #394883;
  border-radius: 0.3rem;
  color: #394883;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 180%;
}
.single-column__content .parally-price__name {
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 150%;
  color: #394883;
}
.single-column__content .parally-price__target {
  font-size: 1.2rem;
  line-height: 170%;
  color: #737373;
}
.single-column__content .parally-price__num {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 150%;
}
.single-column__content .parally-price__num strong {
  margin: 0 0.2rem;
  font-size: 3.2rem;
}
.single-column__content .parally-price__tax {
  font-size: 1.2rem;
  line-height: 170%;
  color: #737373;
}
.single-column__content .parally-price__desc {
  margin-top: 0.8rem;
  font-size: 1.3rem;
  line-height: 180%;
  text-align: left;
}

/* --- 当てはまるもの（チェック印）と、導入前のご質問（Q1〜） --- */
.single-column__content ul.parally-checklist {
  padding-left: 1.6rem;
}
.single-column__content ul.parally-checklist li {
  position: relative;
  padding-left: 2.4rem;
  list-style: none;
}
.single-column__content ul.parally-checklist li::before {
  content: ""; /* チェック印 */
  position: absolute;
  top: 0.9rem;
  left: 0;
  width: 1.3rem;
  height: 0.7rem;
  border-left: 0.25rem solid #394883;
  border-bottom: 0.25rem solid #394883;
  transform: rotate(-45deg);
}
.single-column__content ol.parally-qlist {
  padding-left: 4.4rem;
}
.single-column__content ol.parally-qlist li::marker {
  content: "Q" counter(list-item) "　";
  font-family: "Bitter", serif;
}

/* --- 開発者と、開発者のコメント --- */
.parally-profile {
  margin: 2.4rem 0;
  padding: 1.6rem;
  border: 0.1rem solid #e8ebf6;
  border-radius: 0.6rem;
}
.single-column__content .parally-profile__label {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 170%;
  color: #394883;
}
.single-column__content .parally-profile__name {
  font-size: 2rem;
  font-weight: 700;
  line-height: 150%;
}
.single-column__content .parally-profile__role {
  margin-bottom: 0.8rem;
  font-size: 1.3rem;
  line-height: 160%;
  color: #737373;
}
.single-column__content .parally-profile__txt {
  font-size: 1.4rem;
  line-height: 190%;
}
.parally-quote {
  margin: 2.4rem 0;
  padding: 1.6rem;
  background: #f5f6f8;
  border-radius: 0.6rem;
}
.single-column__content .parally-quote p {
  font-size: 1.4rem;
  line-height: 190%;
}
.single-column__content .parally-quote p + p {
  margin-top: 0.8rem;
}
.parally-quote cite {
  display: block;
  margin-top: 1.2rem;
  font-size: 1.2rem;
  font-style: normal;
  line-height: 160%;
  text-align: right;
  color: #737373;
}

/* --- よくあるご質問（Q と A の印） --- */
.single-column__content dl.parally-faq {
  margin: 2.4rem 0;
}
.parally-faq dt {
  position: relative;
  padding: 1.2rem 1.2rem 1.2rem 4rem;
  background: #f5f6f8;
  border-radius: 0.4rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 170%;
}
.parally-faq dd {
  position: relative;
  margin: 0 0 2rem;
  padding: 1.2rem 0 0 4rem;
  font-size: 1.4rem;
  line-height: 190%;
}
.parally-faq dt::before,
.parally-faq dd::before {
  position: absolute;
  top: 1.5rem;
  left: 1.4rem;
  font-family: "Bitter", serif;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
}
.parally-faq dt::before {
  content: "Q";
  color: #2641ac;
}
.parally-faq dd::before {
  content: "A";
  color: #b6964b;
}
.single-column__content .parally-faq a {
  font-size: 1.4rem;
}

/* --- パラリーのお問い合わせフォーム（/contact/parally/）：同意のチェックの上の注記（共有先の案内） --- */
.page-contact__privacy-note {
  margin-bottom: 1.2rem;
  font-size: 1.2rem;
  line-height: 170%;
  text-align: left;
  color: #737373;
}
