@charset "utf-8";

/* ---------------------------------------------------------------------------------------------

　   COMMON

--------------------------------------------------------------------------------------------- */
html {
  margin-top: 0 !important;
}
.page__wrap {
  padding-top: .5rem;
}
.page__wrap .container {
  position: relative;
  z-index: 9;
}
.page__logo {
  position: absolute;
  z-index: 80;
}
.page__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  animation: rotate 20s linear infinite;
}
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* パンくず */
.pan {
  display: flex;
  align-items: center;
  position: relative;
  flex-wrap: nowrap; /* ← 折り返し禁止 */
  overflow: hidden;  /* ← はみ出し隠す */
  font-size: 14px;
}
.pan li {
  position: relative;
  line-height: 1;
  white-space: nowrap;
}
.pan li:last-child {
  padding-right: 0;
  flex: 1;                /* ← 残り幅全部使う */
  min-width: 0;           /* ← flexでellipsis効かせる超重要 */
  overflow: hidden;
  text-overflow: ellipsis;
}
.pan li::after {
  content: "";
  display: block;
  width: 1px;
  height: 1.1em;
  margin: auto;
  background: #CCCCCC;
  margin: 0 .5em;
  transform: rotate(40deg);
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
}
.pan li:first-child {
  padding-left: 0;
}
.pan li:last-child::after {
  display: none;
}
.pan li a {
  display: block;
  color: #F24671;
  line-height: 1;
  position: relative;
}

/* ページタイトル */
.page__title {
  position: relative;
  z-index: 2;
}
.page__title .en {
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1;
}
.page__title .jp {
  letter-spacing: 0.08em;
}

/* ページタイトルアニメーション */
.page__title-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  line-height: 1;
  white-space: pre;
}

.page__title-space {
  width: 0.3em;
}
.page__logo {
  opacity: 0;
  transform: translateY(-20px);
}

.btn_wrap {
  position: relative;
  z-index: 64;
}

@media only screen and ( max-width : 767px ) {
  .page {
    margin-top: 3rem;
  }
  .page__wrap {
    position: relative;
  }
  .page__logo {
    width: 21.33vw;
    top: -0.5rem;
    right: 2rem;
    opacity: 1;
  }

  /* パンくず */
  .pan {
    margin-top: 1em;
  }
  .pan li {
    padding-left: .5rem;
    padding-right: 1.5rem;
  }
  .pan li a {
  }

  /* ページタイトル */
  #contact {
    margin-top: 3.5rem;
  }
  .page__title {
    padding-top: .5rem;
    border-top: .2rem solid #212121;
  }
  .page__title .en {
    font-size: 9vw;
  }
  .page__title .jp {
    display: block;
    font-size: 3.73vw;
  }
}

@media print, screen and ( min-width : 768px ) {
  #main {
    border-top: .3rem solid #212121;
  }
  .page {
    margin-top: 10rem;
  }
  .page__logo {
    width: 8.79vw;
    top: -2.975rem;
    right: 0;
  }

  /* パンくず */
  .pan {
    margin: 3.5rem 0 1em;
  }
  .pan li {
    padding-left: 1.5rem;
    padding-right: 3rem;
  }
  .pan li a {
  }

  /* ページタイトル */
  #contact {
    margin-top: 12.125rem;
  }
  .page__title {
    display: flex;
    align-items: end;
  }
  .page__title .en {
    margin-right: 4.125rem;
    font-size: 5vw;
  }
  .page__title .jp {
    font-size: 1.5vw;
    line-height: 1;
  }
}


/* ---------------------------------------------------------------------------------------------

　   ABOUT

--------------------------------------------------------------------------------------------- */
.about h2.sec__title {
  border-top: #212121 solid 3px;
  border-bottom: #212121 solid 1px;
}

.about_first {
  position: relative;
  z-index: 10;
}
.about_border {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #212121;
  z-index: 20;
}
.about_slash {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
}
.about_slash img {
  width: 100%;
}
.about_first__img {
  position: relative;
  z-index: 3;
}

.about_first__name .en {
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  letter-spacing: .1em;
}
.about_first__name .jp {
  font-weight: 700;
}

.about_history {
  border-top: #212121 solid 1px;
  position: relative;
  z-index: 20;
  background-color: #F1F1F1;
}
.about_history h2 {
  text-align: right;
}
.about_history table,
.about_history_txt {
  position: relative;
  z-index: 14;
}
.about_history th {
  border-bottom: #CCCCCC solid 1px;
}
.about_history td {
  border-bottom: #CCCCCC solid 1px;
}
.about_history_txt {
  background-image: linear-gradient(180deg, transparent 0, transparent 98%, #CCC 100%);
	background-size: 100% 3em;
	line-height: 3em;
}

.about_company {
  position: relative;
  z-index: 21;
}
.about_company::after {
  content: "";
  position: absolute;
  z-index: 10;
}
.about_company table {
  width: 100%;
  position: relative;
  z-index: 11;
}
.about_company th {
  text-align: left;
  border-bottom: #CCCCCC solid 1px;
}
.about_company td {
  border-bottom: #CCCCCC solid 1px;
}

@media only screen and ( max-width : 767px ) {
  .about th,.about td {
    font-size: 1.3rem;
  }
  .about_first {
    padding-bottom: 1.5rem;
  }
  .about_first::before {
    content: "";
    width: 34.4%;
    height: 14%;
    background: url(../img/about/about_bg01_sp.svg) no-repeat center / cover;
    position: absolute;
    top: 4%;
    left: 8%;
    z-index: 1;
  }
  .about_first::after {
    content: "";
    width: 26.93%;
    height: 13%;
    background: url(../img/about/about_bg02_sp.svg) no-repeat center / cover;
    position: absolute;
    top: 51.5%;
    right: 2%;
    z-index: -1;
  }
  .about_slash picture {
    width: 100%;
    height: 100%;
  }
  .about_slash img {
    width: 100%;
    height: 100%;
  }
  .about_first__name {
    position: absolute;
    top: 5%;
    left: 0;
    z-index: 60;
  }
  .about_first__name .en {
    font-size: 2.2rem;
  }
  .about_first__name .jp {
    font-size: 1.5rem;
  }
  .about_first__img {
    width: 65%;
    margin: 0 auto;
    padding-top: 3.5rem;
  }
  .about_first .d-md-flex {
    margin-top: -4.5rem;
    position: relative;
    z-index: 20;
  }
  .about_first__txt img {
    display: block;
    width: 57.3333%;
    margin-bottom: 1.5rem;
  }
  .about_first__txt p {
    margin-bottom: 1.9rem;
    line-height: 2;
  }
  .about_first__txt .about_txt_p {
    margin-bottom: 0;
  }
  .about h2.sec__title {
    padding: 1rem 0;
  }
  .about table {
    table-layout: fixed;
    width: 100%;
  }
  .about th,.about td {
    padding: 1rem 0;
  }
  .about th {
    width: 25%;
    padding-right: 3rem;
    text-align: right;
  }
  .about td {
    width: 70%;
  }
  .en-US  .about th {
    width: 11rem;
  }
  .en-US  .about td {
    width: calc(100% - 11rem);
  }
  .about_history {
    margin-bottom: 3.5rem;
  }
  .about_company::after {
    background: url(../img/about/about_bg03_sp.svg) no-repeat center / cover;
    width: 7.5rem;
    height: 10rem;
    right: 1.5rem;
    top: 49%;
  }
  .about_company table {
    margin-top: 1rem;
  }
  .ba_txt {
    letter-spacing: .05rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  .about_first::before {
    content: "";
    width: 24rem;
    height: 15rem;
    background: url(../img/about/about_bg01.svg) no-repeat center / cover;
    position: absolute;
    top: -3.2rem;
    right: 27.6rem;
    z-index: 1;
  }
  .about_first::after {
    content: "";
    width: 26rem;
    height: 30rem;
    background: url(../img/about/about_bg02.svg) no-repeat center / cover;
    position: absolute;
    left: 23rem;
    bottom: -2rem;
    z-index: -1;
  }
  .about_first .d-md-flex {
    width: 100%;
    position: absolute;
    bottom: 5rem;
    z-index: 4;
  }
  .about_first__txt {
    width: 53rem;
    height: 55rem;
    display: flex;
    justify-content: space-between;
    align-items: end;
    z-index: 60;
  }
  .about_first__txt img {
    width: 53rem;
    position: absolute;
    top: 5rem;
  }
  .about_first__txt p {
    width: 37.3rem;
    line-height: 2.5;
  }
  .about_first__img {
    width: 42rem;
    margin: 10rem auto 0;
    padding: 5rem 0;
  }
  .about h2.sec__title {
    padding: 2rem 0;
  }
  .about_history {
    margin-bottom: 3rem;
  }
  .about_history::after {
    content: "";
    width: 10rem;
    height: 18rem;
    background: url(../img/about/about_bg03.svg) no-repeat center / cover;
    position: absolute;
    left: 14.9rem;
    bottom: -5.3rem;
    z-index: 10;
  }
  .about_history table,
  .about_history_txt {
    width: 50%;
    margin: 3.5rem 0 0 auto;
  }
  .about_history th {
    padding: .5rem 2rem .5rem 1rem;
  }
  .about_history td {
    padding: .5rem;
  }
  .about_history .last th,.about_history .last td {
    border-bottom: none;
  }
  .about_company::after {
    background: url(../img/about/about_bg04.svg) no-repeat center / cover;
    width: 19rem;
    height: 21rem;
    right: 28.8rem;
    bottom: -6rem;
  }
  .about_company table {
    margin-top: 5rem;
  }
  .about_company th {
    padding: 2rem 2rem 2rem 2.5rem;
  }
  .about_company td {
    padding: 2rem;
  }
  .about_first__name .en {
    font-size: 4rem;
  }
  .about_first__name .jp {
    font-size: 2.4rem;
    text-align: right;
  }
}




/* ---------------------------------------------------------------------------------------------

　   NEWS

--------------------------------------------------------------------------------------------- */
.news .container {
  position: relative;
}
.news_bg01 {
  position: absolute;
  z-index: 60;
}
.news_bg02 {
  position: absolute;
  z-index: 61;
}
.news_list {
  position: relative;
  z-index: 62;
}
.news__item:first-child a {
  border-top: #212121 solid 1px;
}
.news__item a {
  display: block;
  width: 100%;
  border-bottom: #212121 solid 1px;
  overflow: hidden;
  z-index: 0;
  text-decoration: none;
}
/* ホバーアニメーション */
/* .news__item a:hover {
  opacity: 1;
}
.news__item a::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #e1e1e1;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.6s ease;
  z-index: -1;
}
.news__item a:hover::before {
  transform: scaleX(1);
  transform-origin: left;
} */
.news .date,.news_detail .date {
  font-family: "Barlow", sans-serif;
  font-weight: 700;
  color: #CCCCCC;
}
.news__item .cat,.news_detail .cat {
  background-color: #212121;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
.news__text {
  margin-top: .3rem;
  font-weight: 700;
}
.news_list .news__text {
  white-space: nowrap; /* 折り返し無しにする */
  overflow: hidden; /* はみ出た部分を非表示 */
  text-overflow: ellipsis; /* 語尾を3点リーダーに */
}



/* pager */
.pager {
  margin-top: 5rem;
}
.pager li a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  border: #212121 solid 1.5px;
  font-family: "Barlow", sans-serif;
  font-weight: 700;
  line-height: 1;
}
.pager li a.active {
  background-color: #212121;
  color: #fff;
}
.arrow_back,.arrow_next {
  display: flex;
  justify-content: center;
}

@media only screen and ( max-width : 767px ) {
  .news_bg01 {
    /* width: 35vw;
    top: -1%;
    right: 10%; */
    display: none;
  }
  .news_bg02 {
    /* width: 16vw;
    top: 25%;
    left: 3.8%; */
    display: none;
  }
  .news__item a {
    padding: 1.8rem 0;
  }
  .news__item .date,.news_detail .date {
    letter-spacing: .1rem;
  }
  /* pager */
  .pager li {
    margin: 0 0.5rem;
  }
  .pager li a {
    width: 40px;
    height: 40px;
    font-size: 1.5rem;
  }
  .arrow_back {
    margin-right: 1.5rem;
  }
  .arrow_next {
    margin-left: 1.5rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  .news_bg01 {
    width: 12vw;
    top: -5.7%;
    right: 10%;
  }
  .news_bg02 {
    width: 46vw;
    top: 37%;
    left: 3.8%;
  }
  .news__item a {
    padding: 2.5rem 2.5rem 2.5rem 0;
    position: relative;
    display: flex;
    justify-content: flex-start;
    gap: 10rem;
  }
  .blog .news__date-cat {
    width: 34rem;
    justify-content: space-between;
  }
  .single .news__date-cat {
    gap: 10rem;
  }
  .news__date-cat {
    display: flex;
    align-items: center;
  }
  .news__item .date,.news_detail .date {
    letter-spacing: .2rem;
  }
  .news__item .date {
    font-size: 2rem;
  }
  .news__item .cat {
    padding: .5rem 1rem;
  }
  .news__text {
    font-size: 1.8rem;
  }
  .blog .news__text {
    width: calc(100% - 34rem);
  }

  /* pager */
  .pager li {
    margin: 0 1rem;
  }
  .pager li a {
    width: 55px;
    height: 55px;
    font-size: 2.4rem;
  }
  .arrow_back {
    margin-right: 3rem;
  }
  .arrow_next {
    margin-left: 3rem;
  }
}


/* ---------------------------------------------------------------------------------------------

　   NEWS_detail

--------------------------------------------------------------------------------------------- */
.news_detail img {
  width: 100%;
}
.news_detail .news__text {
  color: #212121;
  border-bottom: #212121 solid 1px;
}
.news_detail .news__date-cat {
  margin-bottom: 0 !important;
  gap: unset;
}

.news_detail strong {
  font-weight: 700;
}
.news_detail img {
  display: block;
  width: 100%;
  /* margin-bottom: 5rem; */
}
.news_detail strong {
  display: block;
}
.news_detail .btn {
  margin-top: 0;
}
.back_btn::before {
  right: auto;
  left: 1.5rem;
}
.back_btn::after {
  background: url(../img/arrow_back.svg) no-repeat center / contain;
  right: auto;
  left: 1.5rem;
}

@media only screen and ( max-width : 767px ) {
  .news_detail p {
    margin-bottom: 3rem;
    line-height: 2;
  }
  .news_detail  .news__item {
    margin-bottom: 3.5rem;
  }
  .news_detail .news__text {
    margin-bottom: 0;
    padding: .3em 0 .5em;
    font-size: 2.3rem;
    line-height: 1.5;
  }
  .news__date-cat .date {
    margin-right: 1rem;
    vertical-align: middle;
  }
  .news__date-cat .cat {
    padding: .1em .8em .2em;
    font-size: 1.1rem;
  }
  .news_detail h3 {
    margin-bottom: 1em;
    font-size: 1.95rem;
    line-height: 1.2;
  }
  .news_detail h4 {
    margin-bottom: 1em;
    padding-left: .7em;
    font-size: 1.8rem;
    line-height: 1.6;
    border-left: #F24671 solid 3px;
  }
  .news_detail strong {
    margin-bottom: 3.5rem;
  }
  .news_detail .btn_wrap {
    margin-top: 5rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  .news_detail p {
    margin-bottom: 5rem;
    line-height: 2.5;
  }
  .news_detail  .news__item {
    margin-bottom: 5rem;
  }
  .news_detail .news__text {
    margin-top: 2rem;
    padding: 2rem;
    font-size: 4.8rem;
    line-height: 1.4;
    border-top: #212121 solid 1px;
  }
  .news__date-cat .date {
    margin-right: 4rem;
  }
  .news_detail h3 {
    margin-top: 6rem;
    margin-bottom: 5rem;
    font-size: 3.6rem;
    line-height: 1;
  }
  .news_detail h4 {
    margin-bottom: 3.6rem;
    padding-left: 1.6rem;
    font-size: 2.8rem;
    line-height: 1;
    border-left: #F24671 solid 7px;
  }
  .news_detail strong {
    margin-bottom: 3.5rem;
  }
}



/* ---------------------------------------------------------------------------------------------

　   CONTACT

--------------------------------------------------------------------------------------------- */
input,textarea,label {
  font-family: YakuHanJP_Noto, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.bg_black {
  background-color: #212121;
}
.bg_black p {
  color: #CCCCCC;
}
.taC {
  text-align: center;
}


.contact__block .container {
  max-width: 108rem;
}

.bg_black {
  position: relative;
}
.contact_anime {
  z-index: 3;
}

form label {
  display: block;
  color: #fff;
  position: relative;
}

/* 必須・エラー文 */
.field {
  position: relative;
  display: block;
}
.required {
  display: inline-block;
  position: absolute;
  top: .9rem;
  color: #F24671;
  pointer-events: none;
  transition: opacity 0.2s ease;
  font-size: 2rem;
}
.required.is-hidden {
  display: none;
  opacity: 0;
  visibility: hidden;
}
.error-message {
  margin-top: 0.5rem;
  color: #F24671 !important;
  font-size: 0.9em;
}


/* input,textarea */
form input {
  width: 100%;
  padding: 2rem 1rem;
  background: none;
  border: none;
  border-bottom: #CCCCCC solid 1px;
}
form input::placeholder,
input[type="text"]:focus,
input[type="text"]:not(:placeholder-shown) {
  color: #fff;
  opacity: 1;
}
input[type="email"]:focus,
input[type="email"]:not(:placeholder-shown) {
  outline: none;
  color: #fff;
  opacity: 1;
}
form textarea {
  width: 100%;
  padding: 2rem 1rem;
  border: none;
  background: none;
  border-bottom: 1px solid #CCCCCC;
  resize: vertical;
}
form textarea::placeholder,
form textarea:focus,
form textarea:not(:placeholder-shown) {
  outline: none;
  color: #fff;
  border-bottom-color: #fff;
}
.contact__block input:placeholder-shown,
.contact__block textarea:placeholder-shown {
  font-weight: 700;
}
.contact__block input:not(:placeholder-shown),
.contact__block textarea:not(:placeholder-shown) {
  font-weight: 400;
}

/* submit button */
.contact__block .btn {
  border: none;
  background-color: #fff;
  color: #212121;
  font-size: 1.5rem;
  cursor: pointer;
  line-height: 0;
  background: url(../img/arrow.png) no-repeat 96% center / auto 2rem #fff;
}
.contact__block .btn::before,
.contact__block .btn::after {
  content: none;
}

.contact__block .btn.btn_edit {
  background: url(../img/arrow_bk.png) no-repeat 4% center / auto 2rem #CCCCCC;
}
/* .contact__block .btn.btn_edit::before {
  background: #212121;
  right: auto;
  left: 1.5rem;
}
.contact__block .btn.btn_edit::after {
  background: url(../img/arrow_edit.svg) no-repeat center / contain;
  right: auto;
  left: 1.5rem;
} */

/* contact confirm */
.contact__block table {
  width: 100%;
}
.contact__block td {
  background-image: repeating-linear-gradient(
    to right,
    #CCCCCC 0,
    #CCCCCC 4px,
    transparent 4px,
    transparent 8px
  );
  background-size: 100% 1px;
  background-position: left bottom;
  background-repeat: no-repeat;
}
.contact__block th {
  color: #fff;
  font-weight: 700;
}
.contact__block td {
  color: #CCCCCC;
}
.textarea__box {
  line-height: 2.5;
}

/* wpcf7調整 */
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
  display: none;
}
.wpcf7-not-valid-tip {
  margin-top: .5rem;
  color: #F24671;
}

@media only screen and ( max-width : 767px ) {
  .contact_anime {
    display: block;
    width: 50vw;
    margin: 0 auto;
    position: absolute;
    top: -17%;
    right: 0;
    left: 0;
  }
  .contact__block {
    margin-top: 3rem;
  }
  .contact__block th {
    display: block;
    padding: 15px 15px 10px;
    text-align: left;
  }
  .contact__block td {
    display: block;
    padding: 0 15px 15px;
  }
  .bg_black.contact__wrap {
    padding-top: 3rem;
    padding-bottom: 5rem;
  }
  .bg_black.contact__first {
    padding-top: 15rem;
  }
  .contact__first .contact__text {
    text-align: center;
    font-size: clamp(12px, 3.2vw, 16px);
  }
  .bg_black.contact__complete {
    padding-top: 3rem;
    padding-bottom: 5rem;
  }
  form input::placeholder,
  input[type="text"]:focus,
  input[type="text"]:not(:placeholder-shown) {
    font-size: 1rem;
  }
  form input::placeholder,
  form textarea::placeholder {
    font-size: 1.4rem;
  }
  /* submit button */
  .btn {
    margin-top: 3.5rem;
  }
  .contact__block .btn {
    margin-left: auto;
    margin-right: auto;
  }
  .page-id-52 .contact__block .btn {
    width: 28rem;
  }
  .form-submit .d-flex .wpcf7-previous {
    width: 100%;
    max-width: 26rem;
    margin: 1.5rem auto 0;
    order: 2;
  }
  .form-submit .d-flex .wpcf7-submit {
    width: 100%;
    max-width: 26rem;
    margin: 5rem auto 0;
    order: 1;
  }
  .wpcf7-spinner {
    display: none;
  }

  .wpcf7-not-valid-tip {
    font-size: 1rem;
  }
  .reqd01 {
    left: 5.5rem;
  }
  .reqd02 {
    left: 7.3rem;
  }
  .reqd03 {
    /* left: 12.5rem; */
    left: 11rem;
  }
  .reqd04 {
    /* left: 14.5rem; */
    left: 12.5rem;
  }
  .en-US .reqd01 {
    left: 7.5rem;
  }
  .en-US .reqd03 {
    left: 11rem;
  }
  .en-US .reqd04 {
    left: 7rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  .contact_anime {
    width: 28.2rem;
    position: absolute;
    top: -42%;
    right: 16%;
  }
  .contact__block {
    margin-top: 10rem;
  }
  .form-row--2col {
    display: flex;
    justify-content: space-between;
  }
  .form-row--2col .form-item {
    width: 48%;
  }

  .contact__block th {
  width: 21%;
  padding: 2.5rem 4rem 2.5rem 5rem;
  text-align: right;
  background-image: repeating-linear-gradient(
    to right,
    #CCCCCC 0,
    #CCCCCC 4px,
    transparent 4px,
    transparent 8px
  );
  background-size: 100% 1px;
  background-position: left bottom;
  background-repeat: no-repeat;
}
  .contact__block td {
    padding: 2.5rem 5rem 2.5rem 4rem;
    width: 79%;
  }
  .bg_black {
    padding-left: 7rem;
    padding-right: 7rem;
  }
  .bg_black.contact__wrap {
    padding-top: 7rem;
    padding-bottom: 10rem;
  }
  .bg_black.contact__first {
    padding-top: 10rem;
  }
  .bg_black.contact__complete {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
  form input::placeholder,
  input[type="text"]:focus,
  input[type="text"]:not(:placeholder-shown) {
    font-size: 1.5rem;
  }
  form input::placeholder,
  form textarea::placeholder {
    font-size: 1.8rem;
  }
  /* submit button */
  .btn {
    margin-top: 5rem;
  }
  .contact__block .btn {
    width: 30rem;
  }
  .contact__block .btn.btn_edit {
    margin-right: 2.5rem;
  }

  .reqd01 {
    left: 6.5rem;
  }
  .reqd02 {
    left: 8.3rem;
  }
  .reqd03 {
    left: 13.5rem;
  }
  .reqd04 {
    left: 15.5rem;
  }
  .en-US .reqd01 {
    left: 9.5rem;
  }
  .en-US .reqd04 {
    left: 8.5rem;
  }
}


/* ---------------------------------------------------------------------------------------------

　   WORKS

--------------------------------------------------------------------------------------------- */
.works_content {
  display: flex;
  flex-wrap: wrap;
  position: relative;
}
.works_item_text_title {
  text-align: center;
  font-weight: 700;
}
.works_item_text_year {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #ccc;
  text-align: center;
}
.works_item_img img {
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}
.works_item a {
  display: block;
}
.works_item a:hover {
  opacity: 1;
}
.works_item a:hover img {
  filter: grayscale(0%);
}
.no-post__works {
  width: 100%;
}
@media only screen and ( max-width : 767px ) {
  .page-works {
    overflow: hidden;
  }
  .works_content {
    justify-content: space-between;
  }
  .works_content:before {
    content: "";
    position: absolute;
    background: url(../img/top/works__bg.png) no-repeat center / cover;
    z-index: -1;
    width: 40rem;
    height: 34rem;
    top: 5%;
    left: 33%;
  }
  .works_content:after {
    content: "";
    position: absolute;
    background: url(../img/top/works__bg.png) no-repeat center / cover;
    z-index: -1;
    width: 40rem;
    height: 34rem;
    top: 56%;
    left: -56%;
  }
  .works_item {
    width: 48%;
    margin-bottom: 3.5rem;
  }
  .works_item:nth-child(odd) {
    margin-top: 3rem;
  }
  .page-works .pager {
    margin-top: 0;
  }
  .works_item_text_title {
    margin-top: 1rem;
    font-size: 2rem;
  }
  .works_item_text_year {
    font-size: 1.4rem;
    line-height: 1.4;
  }
  .works_item_img img {
    height: 25rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  #works .sec__title {
    margin-bottom: 13rem;
  }
  /* .works_content {
    margin-bottom: 5rem;
  } */
  .works_bg:after {
    content: "";
    position: absolute;
    right: 7.5rem;
    bottom: -32rem;
    background: url(../img/top/works__bg.png) no-repeat center / cover;
    z-index: -1;
    width: 66rem;
    height: 59rem;
  }
  .works_content:before,
  .works_content:after {
    content: "";
    position: absolute;
    background: url(../img/top/works__bg.png) no-repeat center / cover;
    z-index: -1;
    width: 66rem;
    height: 59rem;
  }
  .works_content:before {
    top: -6rem;
    right: 7rem;
  }
  .works_content:after {
    top: 61rem;
    left: 7rem;
  }
  .works_item {
    width: 22%;
    margin-right: 4%;
    margin-top: 5rem;
  }
  .works_item:nth-child(2n) {
    margin-top: 0;
  }
  .works_item:nth-child(4n) {
    margin-right: 0;
  }
  .works_item_text {
    margin-top: 2.5rem;
  }
  .works_item_text_title {
    font-size: 2rem;
    margin-bottom: .5rem;
  }
  .works_item_text_year {
    font-size: 1.2rem;
  }
  .works_item_img img {
    height: 37rem;
  }
}



/* ---------------------------------------------------------------------------------------------

　   WORKS_detail

--------------------------------------------------------------------------------------------- */
.w_d__cont01 {
  position: relative;
  z-index: 63;
}
.w_d__cont01::before {
  content: "";
  background: url(../img/works/works_bg.svg) no-repeat center / cover;
  position: absolute;
  z-index: 60;
}
.w_d__img {
  position: relative;
  z-index: 61;
}
.w_d__txt {
  position: relative;
  z-index: 62;
}
.w_d__cont01 h2 {
  margin-bottom: 2rem;
}
.w_d__cont01 h2 span {
  box-decoration-break: clone;  
  -webkit-box-decoration-break: clone;
  display: inline;
  padding: 0 .3em;
  line-height: 1.7;
  background: #D9D9D9;
}
.works_cat {
  display: flex;
  justify-content: start;
}
.works_cat li {
  margin-right: 1.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  background-color: #212121;
  font-weight: bold;
  color: #fff;
}

.w_d__cont01 table {
  width: 100%;
}
.w_d__cont01 th {
  text-align: right;
  border-bottom: #CCCCCC solid 1px;
}
.w_d__cont01 td {
  font-weight: 400;
  border-bottom: #CCCCCC solid 1px;
}
.w_d__cont02 {
  position: relative;
  z-index: 64;
}
.w_d__cont02 img {
  width: 100%;
}
.w_d__cont02_L {
  position: relative;
}
.w_d__cont02_L_img {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 480 / 570;
  overflow: hidden;
  position: relative;
  z-index: 60;
}
.w_d__cont02_R {
  position: relative;
}
.w_d__cont02_R_img {
  aspect-ratio: 530 / 330;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 60;
}
.w_d__cont02_L_img p,.w_d__cont02_R_img p {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 65;
  padding: 0 5px;
  background-color: #212121;
  color: #fff;
}
.img_box {
  width: 100%;
}
.img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}


@media only screen and ( max-width : 767px ) {
  .w_d__cont01::before {
    width: 90%;
    aspect-ratio: 289 / 258;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
    margin: 0 auto;
  }
  .w_d__cont01 h2 {
    margin-top: 2rem;
    font-size: 2em;
  }
  /* .w_d__cont01 h2 span {
    padding: 0.5rem;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    display: inline;
    line-height: 2;
  } */
  .w_d__cont01 p {
    margin: 3rem 0 2rem;
    line-height: 2;
  }
  .w_d__cont01 table {
    table-layout: fixed;
    width: 100%;
  }
  .w_d__cont01 th {
    width: 30%;
    padding: 1.5rem 3rem 1.5rem .5rem;
  }
  .w_d__cont01 td {
    width: 70%;
    padding: 1.5rem .5rem;
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: normal;
  }
  .w_d__cont02 {
    margin-top: 3.5rem;
  }
  .w_d__cont02_L_img p,.w_d__cont02_R_img p {
    font-size: .85rem;
  }
  .w_d__cont02_R_img {
    margin-top: 3.5rem;
  }
  .free_txt {
    margin-top: .8rem;
    line-height: 1.8;
  }
  .works_detail .btn {
    margin-top: 5rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  .w_d__cont01 {
    padding-top: 5rem;
    border-top: #212121 solid 1px;
    gap: 5.53%;
  }
  .w_d__cont01::before {
    width: 66rem;
    height: 59rem;
    top: 66rem;
    left: 24.2rem;
  }
  .w_d__img {
    width: 43.44%;
  }
  .w_d__txt {
    width: 51.03%;
  }
  .w_d__cont01 h2 {
    font-size: 4.8rem;
  }
  .w_d__cont01 p {
    margin: 4.5rem 0;
    line-height: 2.5;
  }
  .w_d__cont01 th {
    width: 18%;
    padding: 1.5rem 2.5rem 1.5rem 1.5rem;
  }
  .w_d__cont01 td {
    width: 82%;
    padding: 1.5rem 1.5rem 1.5rem 2.5rem;
  }
  .w_d__cont02 {
    margin-top: 5rem;
  }
  .w_d__cont02_L {
    max-width: 47.625rem;
    margin: 8rem 0 0 auto;
  }
  .w_d__cont02_L_img p,.w_d__cont02_R_img p {
    font-size: .75em;
  }
  .w_d__cont02_R {
    max-width: 45.125rem;
    margin-left: 12.3rem;
  }
  .free_txt {
    margin-top: 1rem;
    line-height: 2.5;
  }
}



/* ---------------------------------------------------------------------------------------------

　   PRIVACY

--------------------------------------------------------------------------------------------- */
.page-content hr.wp-block-separator {
  color: #CCCCCC;
  border-top: 1px solid;
}
.page-content h2 {
  font-size: 1.5em;
  margin-top: 2em;
}
.page-content p {
  line-height: 2;
}
.page-content p:first-child {
  /* line-height: normal; */
  margin-bottom: 0;
}
.page-content ol {
  list-style: decimal;
}
.page-content ol li {
  line-height: 2;
}

@media only screen and ( max-width : 767px ) {
  .privacy-policy {
    margin-top: 3.5rem;
  }
  .page-content hr.wp-block-separator {
    margin-top: 3rem;
  }
  .page-content h2 {
    margin-top: 3rem;
    margin-bottom: .5em;
  }
  .privacy-policy code {
    line-height: 2;
  }
  .page-content ol {
    margin: 1.25em 0 1.3em 1.4em;
  }
}
@media print, screen and ( min-width : 768px ) {
  .privacy-policy {
    margin-top: 7rem;
  }
  .page-content hr.wp-block-separator {
    margin: 4rem 0;
  }
  .page-content h2 {
    margin-bottom: 1.3em;
  }
  .page-content ol {
    margin: 1.25em 0 1.3em 2.4em;
  }
}


/* ---------------------------------------------------------------------------------------------

　   404

--------------------------------------------------------------------------------------------- */
.not-found__img {
  margin: 0 auto;
}
.not-found p {
  text-align: center;
  line-height: 2.5;
}
.not-found .btn_wrap {
  display: flex;
  justify-content: center;
}

@media only screen and ( max-width : 767px ) {
  .not-found__img {
    margin-bottom: 5rem;
    margin-top: 5rem;
  }
}
@media print, screen and ( min-width : 768px ) {
  .not-found__img {
    max-width: 940px;
    width: 80%;
    margin-bottom: 8.5rem;
  }
  .not-found p {
    margin-bottom: 4rem;
  }
}


/* ---------------------------------------------------------------------------------------------

　   XXX

--------------------------------------------------------------------------------------------- */

@media only screen and ( max-width : 767px ) {
}
@media print, screen and ( min-width : 768px ) {
}