@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
/*
.zen-kaku-gothic-new-light {
  font-family: "Zen Kaku Gothic New", serif;
  font-weight: 300 400 500 700 900;
  font-style: normal;
}
.lato-thin {
  font-family: "Lato", serif;
  font-weight: 100 300 400 700 900;
  font-style: normal;
}
*/

body {
  background-color: #fff;
  font-family: "Zen Kaku Gothic New", serif;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-style: normal;
  line-height: 1.44em;
  color: #222;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.pc_content {
  display: block;
}
.sp_content {
  display: none;
}

/*ハンバーガーメニュー*/
nav.NavMenu {
  visibility: hidden;
  position: fixed; /*表示位置を固定*/
  z-index: 0; /*重ね順を変更*/
  top: 0; /*表示位置を指定*/
  right: 0; /*表示位置を指定*/
  background: #000; /*背景を白にする*/
  color: #fff; /*文字色を黒にする*/
  text-align: center; /*テキストを中央揃え*/
  width: 100%; /*全幅表示*/
  height: 100vh;
  /*transform: translateX(100%); ナビを上に隠す*/
  opacity: 0;
  transition: all 0.6s; /*アニメーションの時間を指定*/
}
nav.NavMenu ul {
  position: absolute;
  top: 135px;
  right: 0;
  width: 14.583vw;
  margin: 0;
}

nav.NavMenu ul li {
  list-style-type: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

nav.NavMenu ul li a {
  display: block; /*クリックできる領域を広げる*/
  color: #fff;
  padding: 0 0 1.18em;
  text-decoration: none;
  font-family: Lato;
  font-weight: 300;
  font-size: 2.778vw;
  line-height: 0.6em;
  letter-spacing: 0;
  text-align: left;
}
nav.NavMenu ul li a:hover {
  opacity: 0.7;
}
nav.NavMenu.active {
  visibility: visible;
  /* transform: translateY(0%); */
  opacity: 1;
  z-index: 3; /*重ね順を変更*/
  background-color: rgba(0, 0, 0, 0.7);
  overflow-y: auto;
  display: block;
}

.Toggle {
  display: block;
  position: fixed; /* bodyに対しての絶対位置指定 */
  right: 85px;
  top: 40px;
  width: 40px;
  height: 30px;
  cursor: pointer;
  z-index: 3;
  mix-blend-mode: difference;
}

.Toggle span {
  display: block;
  position: absolute;
  width: 40px;
  border-bottom: solid 1px #fff;
  -webkit-transition: 0.35s ease-in-out; /*変化の速度を指定*/
  -moz-transition: 0.35s ease-in-out; /*変化の速度を指定*/
  transition: 0.35s ease-in-out; /*変化の速度を指定*/
  left: 6px;
}

.Toggle span:nth-child(1) {
  top: 0;
}

.Toggle span:nth-child(2) {
  top: 15px;
}

.Toggle span:nth-child(3) {
  top: 30px;
}

/* 最初のspanをマイナス36.8度に */
.Toggle.active span:nth-child(1) {
  top: 18px;
  left: 6px;
  -webkit-transform: rotate(-36.87deg);
  -moz-transform: rotate(-36.8deg);
  transform: rotate(-36.8deg);
  border-color: #fff;
}

/* 2番目透過 */
.Toggle.active span:nth-child(2) {
  opacity: 0;
  border-color: #fff;
}
/* 3番目のspanを36.8度に */
.Toggle.active span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(36.8deg);
  -moz-transform: rotate(36.8deg);
  transform: rotate(36.8deg);
  border-color: #fff;
}

/*header*/
header {
  position: fixed;
  top: 0;
  padding: 20px 30px;
  width: 100%;
  z-index: 10;
  mix-blend-mode: difference;
}

#logo {
  position: absolute;
  width: 11.59%;
  top: 40px;
  left: 5.55%;
}

/*contents*/
#top_content {
  width: 100%;
}
#top_content li {
  display: block;/*こればないとsafariで画像に隙間ができる*/
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 760;
  overflow: hidden;
  padding:0;
  margin:0;
}
#top_content li img.top_thum {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: top;
}
#top_content li img.top_mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height:100%;
}
#top_content li a {
  display: block;
  height: 100%;
  width: 100%;
  color: #fff;
}
#top_content li .title_txt {
  position: absolute;
  left: 5.55%;
  bottom: 14%;
  width: 27.77%;
  font-family: "Zen Kaku Gothic New", serif;
  font-weight: 700;
  font-size: 2.222vw;
  line-height: 3.333vw;
  letter-spacing: 0.04em;
}
#top_content li .date {
  position: absolute;
  left: 5.55%;
  bottom: 10%;
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 0.833vw;
  line-height: 1.167vw;
  letter-spacing: 0;
}
#top_content li .pr_name {
  position: absolute;
  left: 5.55%;
  bottom: 7%;
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 0.833vw;
  line-height: 1.167vw;
  letter-spacing: 0;
}
/*bottom list*/
#bottom_article_list {
  background: #fff;
  width: 100%;
  height: 600px;
  padding: 60px 0 0 0;
}
#bottom_article_list.gray {
  background: #f2f4f7;
  height: 660px;
  margin-bottom: 70px;
}
#bottom_article_list .bottom_article_inner {
  position: relative;
  max-width: 1285px;
  width: 90%;
  margin: 0 auto;
}
#bottom_article_list .midashi {
  font-family: Lato;
  font-weight: 300;
  font-size: 60px;
  line-height: 72px;
  letter-spacing: 0;
}
#bottom_article_list a.link_txt {
  position: absolute;
  top: 40px;
  right: 0;
  font-family: "Lato", serif;
  font-weight: 300;
  font-size: 20px;
  line-height: 28px;
  letter-spacing: 0;
  text-align: right;
  text-decoration: underline;
  text-decoration-style: solid;
  text-decoration-thickness: 1px;
  color: #222;
}
#bottom_article_list a.link_txt:hover {
  opacity: 0.7;
}
#bottom_article_list.gray a.view_more {
  position: absolute;
  bottom: -110px;
  left: 50%;
  transform: translate(-50%, 0);
  font-family: Lato;
  font-weight: 300;
  font-size: 24px;
  line-height: 28.8px;
  letter-spacing: 0;
  text-align: center;
  text-decoration: underline;
  text-decoration-style: solid;
  text-decoration-thickness: 1px;
  color: #222;
}
.article_list_wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start;
  margin: 27px 0 0 0;
}
.article_list_wrap li {
  width: 23.5%;
  list-style: none;
}
.article_list_wrap li a {
  color: #222;
  text-decoration: none;
}
.article_list_wrap li a:hover {
  opacity: 0.7;
}
.article_list_wrap li .article_list_photo {
  width: 100%;
  aspect-ratio: 300 / 225;
  margin-bottom: 9px;
}
.article_list_wrap li .article_list_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article_list_wrap li .title_txt {
  font-weight: 700;
  font-size: 18px;
  line-height: 26.06px;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.article_list_wrap li .date {
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 14px;
  letter-spacing: 0;
  margin-bottom: 4px;
}
.article_list_wrap li .pr_name {
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 14px;
  letter-spacing: 0;
}

/*footer*/
footer {
  width: 100%;
  height: 190px;
  text-align: center;
}
footer .footer_inner {
  position: relative;
  width: 88.9%;
  margin: 0 5.55%;
}
footer .bottom_navi {
  position: absolute;
  top: -10px;
  left: -7px;
}
footer .bottom_navi li {
  display: inline-block;
  margin-left: 8px;
}
footer .bottom_navi li a {
  font-family: "Lato", serif;
  font-weight: 300;
  font-size: 32px;
  line-height: 44.8px;
  letter-spacing: 0;
  text-decoration: none;
  color: #222;
}
footer .bottom_navi li a:hover {
  opacity: 0.7;
}
footer .bottom_logo {
  position: absolute;
  top: 28px;
  right: 0;
  width: 16.528vw;
}
footer .bottom_left {
  position: absolute;
  top: 54px;
  left: 0;
  font-family: "Lato", serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 22.4px;
  letter-spacing: 0;
  text-align: left;
}
footer .bottom_left .copyright {
  font-size: 10px;
  line-height: 12px;
  letter-spacing: 0;
  margin: 17px 0 0 0;
}

/*Ditail Page 記事詳細*/
#ditail_top {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 760;
  overflow: hidden;
  color: #fff;
}
#ditail_top img.top_thum {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#ditail_top img.top_mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 1440 / 760;
  overflow: hidden;
}
#ditail_top .feature_no {
  position: relative;
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 0.972vw;
  line-height: 16.8px;
  letter-spacing: 0;
  margin-bottom: 4%;
}
#ditail_top .title_txt {
  position: absolute;
  left: 5.55%;
  bottom: 14%;
  width: 27.77%;
  font-family: "Zen Kaku Gothic New", serif;
  font-weight: 700;
  font-size: 2.222vw;
  line-height: 3.333vw;
  letter-spacing: 0.04em;
}
#ditail_top .date {
  position: absolute;
  left: 5.55%;
  bottom: 7%;
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 0.833vw;
  line-height: 1.167vw;
  letter-spacing: 0;
}
#ditail_top .pr_name {
  position: absolute;
  left: 5.55%;
  bottom: 10%;
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 0.833vw;
  line-height: 1.167vw;
  letter-spacing: 0;
}
#detail_content {
  max-width: 800px;
  width: 90%;
  margin: 0 auto;
}
#detail_content img {
  max-width: 100%;
  height: auto;
  margin-top: 40px;
  margin-bottom: 12px;
}
#detail_content h3 {
  font-weight: 400;
  font-size: 13px;
  line-height: 23.4px;
  letter-spacing: 0.04em;
  margin-top: 60px;
}
#detail_content h2 {
  font-weight: 700;
  font-size: 28px;
  line-height: 44.8px;
  letter-spacing: 0.04em;
  margin-top: 1.9em;
}
#detail_content p {
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
  margin-top: 1.6em;
}
#detail_content p.caption {
  font-weight: 400;
  font-size: 12px;
  line-height: 16.8px;
  letter-spacing: 0.04em;
  color: #888;
  margin-top: -3px;
  margin-bottom: 50px;
}
#detail_content a {
  color: #222;
  font-weight: 500;
}
#ditail_bottom {
  width: 90%;
  max-width: 800px;
  margin: 0 auto 135px;
}

#ditail_bottom .view_site {
  display: block;
  width: 280px;
  height: 60px;
  background-color: #222;
  font-weight: 400;
  font-size: 16px;
  line-height: 57px;
  letter-spacing: 0.04em;
  color: #fff;
  text-decoration: none;
  margin: 63px auto 0;
  text-align: center;
}
#ditail_bottom .view_site:hover {
  opacity: 0.7;
}
#ditail_bottom .site_name {
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
  margin-top: 120px;
}
#ditail_bottom .site_text_link {
  display: block;
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
  color: #222;
  margin-bottom: 45px;
}
#ditail_bottom .staff_credit {
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
  margin-bottom: 80px;
}
#ditail_bottom .share {
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
  margin-bottom: 20px;
}
#ditail_bottom .share_icon {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 168px;
  list-style: none;
}
#ditail_bottom .share_icon li img {
  height: 34px;
}

/*Archive Page 記事一覧*/
h2.page_title {
  /*下層共通*/
  font-family: "Lato", serif;
  font-weight: 300;
  font-size: 60px;
  line-height: 72px;
  letter-spacing: 0;
  margin: 179px 0 0 5.5%;
}
#archive_content {
  max-width: 1280px;
  width: 90%;
  margin: 33px auto 70px;
}

#archive_content .article_list_wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start;
  margin: 27px 0 -23px 0;
}
#archive_content .article_list_wrap li {
  width: 23.5%;
  list-style: none;
}
#archive_content .article_list_wrap li a {
  color: #222;
  text-decoration: none;
}
#archive_content .article_list_wrap li a:hover {
  opacity: 0.7;
}
#archive_content .article_list_wrap li .article_list_photo {
  width: 100%;
  aspect-ratio: 300 / 225;
  margin-bottom: 9px;
}
#archive_content .article_list_wrap li .article_list_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#archive_content .article_list_wrap li .title_txt {
  font-weight: 700;
  font-size: 18px;
  line-height: 26.06px;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
#archive_content .article_list_wrap li .date {
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 14px;
  letter-spacing: 0;
  margin-bottom: 4px;
}
#archive_content .article_list_wrap li .pr_name {
  font-family: "Lato", serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 14px;
  letter-spacing: 0;
  margin-bottom: 60px;
}

/*News Pager*/
.pager_01 {
  clear: both;
  font-family: "Lato", sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 24px;
  letter-spacing: 0.04em;
  text-align: center;
  color: #222;
  margin-top: 20px;
}
.pager_01 a {
  color: #222;
}
.pager_01 a.page-numbers {
  display: inline-block;
  margin: 0 3px;
  transition: all 0.3s ease;
  width: 50px;
  height: 50px;
  line-height: 47px;
  text-decoration: none;
}
.pager_01 a.page-numbers:hover {
  opacity: 0.7;
}
.pager_01 span.current {
  display: inline-block;
  color: #222;
  margin: 0 3px;
  width: 50px;
  height: 50px;
  border: 1px solid #222;
  border-radius: 50%;
  line-height: 47px;
}
.pager_01 a.next,
.pager_01 a.prev {
  position: relative;
  top: -3px;
  display: inline-block;
  background: none;
  width: 50px;
  height: 6px;
  text-decoration: none;
  margin: 0 20px;
}
.pager_01 a.next img,
.pager_01 a.prev img {
  width: 50px;
}

/*About*/
#lower_content {
  max-width: 800px;
  width: 90%;
  margin: 33px auto 125px;
}
#lower_content .main_photo {
  width: 100%;
}
#lower_content h3 {
  font-weight: 700;
  font-size: 28px;
  line-height: 44.8px;
  letter-spacing: 0.04em;
  margin-top: 1.4em;
  margin-bottom: 0.7em;
}
#lower_content p {
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
  margin-bottom: 1em;
}

/*Privacy Policy*/
#lower_content.privacy {
  max-width: 800px;
  width: 90%;
  margin: 60px auto 125px;
}

/*Contact*/
#lower_content.contact {
  max-width: 800px;
  width: 90%;
  margin: 60px auto 125px;
}
#lower_content .contact_txt {
  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;
}
.form_table {
  position: relative;
  width: 600px;
  margin: 0 auto;
  border-collapse: collapse;
}

.form_table th {
  display: block;
  width: 100%;
  text-align: left;
  font-weight: 400;
  font-size: 15px;
  line-height: 27px;
  letter-spacing: 0.06em;
  padding: 20px 0 0;
}

.form_table td {
  display: block;
  width: 100%;
  font-weight: 400;
  font-size: 16px;
  line-height: 28.8px;
  letter-spacing: 0.06em;
}

.form_table th span {
  font-weight: 400;
  font-size: 24px;
  line-height: 43.2px;
  letter-spacing: 0.06em;
  color: #cc0000;
}

.form_table td .form_table td label {
  position: relative;
  top: -4px;
  margin-left: 10px;
}
.form_table td .select_wrapper {
  position: relative;
}

.form_table td .select_wrapper::after {
  content: "";
  position: absolute;
  top: 12px;
  right: 16px;
  width: 14px;
  height: 14px;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  transform: rotate(45deg);
}

.form_table td select {
  width: 100%;
  padding: 9px 15px;
  height: 45px;
  border-radius: 0;
  border-bottom: 1px solid #222;
  border-radius: 0;
}
.form_table td select {
  color: black; /* option選択時の文字色 */
  -webkit-appearance: none;
  appearance: none;
}

.form_table td select.is-empty {
  color: #aaa; /* placeholder(初期値)の文字色 */
}
.form_table td input[type="text"] {
  width: 100%;
  padding: 9px 15px;
  background-color: #fff;
  height: 45px;
  border-radius: 0;
  border-bottom: 1px solid #000;
}

.form_table td input[type="mail"] {
  width: 100%;
  padding: 9px 15px;
  background-color: #fff;
  height: 45px;
  border-radius: 0;
  border-bottom: 1px solid #000;
}

.form_table td textarea {
  width: 100%;
  height: 200px;
  padding: 9px 15px;
  background-color: #fff;
  border-radius: 0;
  border: 1px solid #000;
}

::placeholder {
  color: #aaa;
}

input[type="checkbox"] {
  visibility: hidden;
  width: 1px;
  height: 30px;
}
.checkbox {
  position: relative;
  top: -18px;
  cursor: pointer;
  display: inline-block;
  padding: 0 20px 5px 30px;
  position: relative;
  width: auto;
  user-select: none;
}
.checkbox:before {
  content: "";
  position: absolute;
  top: 13%;
  left: 0;
  display: block;
  height: 20px;
  width: 20px;
  background: #fff;
  border: 1px solid #000;
}
input[type="checkbox"]:checked + .checkbox::before {
  background-color: #000;
  border: 2px solid #000;
}
.checkbox:after {
  content: "";
  position: absolute;
  top: 17%;
  left: 7px;
  display: block;
  height: 12px;
  width: 7px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  opacity: 0;
  transform: rotate(45deg);
}
input[type="checkbox"]:checked + .checkbox::after {
  opacity: 1;
}
button.order_send_btn {
  margin: 30px 28.5% 5px;
  width: 43%;
  height: 60px;
  background-color: #000;

  font-weight: 400;
  font-size: 16px;
  line-height: 25.6px;
  letter-spacing: 0.04em;

  color: #fff;
}
button.order_send_btn:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
  -moz-opacity: 0.6;
}
