/*
Last Updated: 2026-02-10
Author:zeal
*/

/*----------------------------------------
	全体
----------------------------------------*/
html {
  font-family: "Zen Kaku Gothic New", "游ゴシック体", "Yu Gothic", YuGothic,
    "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",
    "ＭＳ ゴシック", sans-serif;
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  line-height: 1.6;
}
body {
  font-size: 1.4rem;
  color: #585957;
  letter-spacing: 0.01em;
  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
#container {
  overflow: hidden;
}
img {
  vertical-align: bottom;
}
li {
  list-style: none;
}
a {
  color: inherit;
  text-decoration: none;
}

.respon {
  width: 100%;
}
.max_respon {
  max-width: 100%;
}
.w_fit {
  width: fit-content;
}
.cover_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.left {
  float: left;
}
.right {
  float: right;
}
.hidden {
  overflow: hidden;
}


.sp_none,
.br_none {
  display: block;
}
.pc_none,
.br_sp_none {
  display: none;
}
@media screen and (max-width: 599px) {
  .pc_none {
    display: block;
  }
  .sp_none {
    display: none;
  }
  .sp_block {
    display: block;
  }
  .pc_block {
    display: none;
  }
  .pc_inline_block {
    display: none;
  }
  .sp_inline_block {
    display: inline-block;
  }
} /* end */
@media screen and (max-width: 460px) {
  .br_sp_none {
    display: block;
  }
}
@media screen and (max-width: 390px) {
  .br_none {
    display: none;
  }
}

.op {
  transition: 0.4s;
}
.op:hover {
  opacity: 0.6;
}

.section_top {
  padding-top: 12em;
}
@media screen and (max-width: 599px) {
  .section_top {
    padding-top: 4em;
  }
}



/*----------------------------------------
	position
----------------------------------------*/
.rela {
  position: relative;
}
.z_1 {
  z-index: 1;
}
.z_2 {
  z-index: 2;
}
.z_3 {
  z-index: 3;
}



/*----------------------------------------
	text
----------------------------------------*/
.text_gray { color: #585957;}
.text_white { color: #fff;}
.text_black { color: #000;}
.text_pink { color: #e35b7c;}

.text_bold { font-weight: bold;}
.text_normal { font-weight: normal;}
.text_400 { font-weight: 400;}

.text_center { text-align: center;}
.text_right { text-align: right;}
.text_left { text-align: left;}

.palt { font-feature-settings: "palt";}

/* font */
.mincho {
  font-family: "Zen Old Mincho", "游明朝体", "Yu Mincho", YuMincho,
    "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "ＭＳ 明朝",
    serif;
}
.meiryo {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3",
    "Hiragino Kaku Gothic Pro", "ＭＳ ゴシック", sans-serif;
}

/*line-height*/
.lh_09 {
  line-height: 0.9;
}
.lh_12 {
  line-height: 1.2 !important;
}
.lh_13 {
  line-height: 1.3 !important;
}
.lh_14 {
  line-height: 1.4 !important;
}
.lh_15 {
  line-height: 1.5 !important;
}
.lh_16 {
  line-height: 1.6 !important;
}
.lh_18 {
  line-height: 1.8 !important;
}
.lh_20 {
  line-height: 2 !important;
}
.lh_22 {
  line-height: 2.2 !important;
}
.lh_24 {
  line-height: 2.4 !important;
}
.lh_26 {
  line-height: 2.6 !important;
}
.lh_28 {
  line-height: 2.8 !important;
}
.lh_30 {
  line-height: 3 !important;
}
.lh_32 {
  line-height: 3.2 !important;
}
@media screen and (max-width: 768px) {
  .lh_22 {
    line-height: 2 !important;
  }
  .lh_24 {
    line-height: 2 !important;
  }
  .lh_26 {
    line-height: 2.4 !important;
  }
  .lh_28 {
    line-height: 2.4 !important;
  }
}

/*letter-spacing*/
.ls_02 {
  letter-spacing: 0.2em;
}
.ls_1 {
  letter-spacing: 1px;
}
.ls_2 {
  letter-spacing: 2px;
}
.ls_3 {
  letter-spacing: 3px;
}
.ls_4 {
  letter-spacing: 4px;
}
.ls_5 {
  letter-spacing: 5px;
}
.ls_6 {
  letter-spacing: 6px;
}
.ls_7 {
  letter-spacing: 7px;
}
.ls_8 {
  letter-spacing: 8px;
}

/*font-size*/
.text_10 {
  font-size: 1rem;
}
.text_11 {
  font-size: clamp(1rem, 0.957vw, 1.1rem);
}
.text_12 {
  font-size: clamp(1.4rem, 1.043vw, 1.2rem);
}
.text_13 {
  font-size: clamp(1.1rem, 1.13vw, 1.3rem);
}
.text_14 {
  font-size: clamp(1.4rem, 1.217vw, 1.4rem);
}
.text_15 {
  font-size: clamp(1.3rem, 1.304vw, 1.5rem);
}
.text_16 {
  font-size: clamp(1.4rem, 1.391vw, 1.6rem);
}
.text_17 {
  font-size: clamp(1.4rem, 1.478vw, 1.7rem);
}
.text_18 {
  font-size: clamp(1.5rem, 1.565vw, 1.8rem);
}
.text_19 {
  font-size: clamp(1.6rem, 1.652vw, 1.9rem);
}
.text_20 {
  font-size: clamp(1.7rem, 1.739vw, 2rem);
}
.text_22 {
  font-size: clamp(1.7rem, 1.913vw, 2.2rem);
}
.text_24 {
  font-size: clamp(1.8rem, 2.087vw, 2.4rem);
}
.text_26 {
  font-size: clamp(1.8rem, 2.261vw, 2.6rem);
}
.text_27 {
  font-size: clamp(1.8rem, 2.435vw, 2.7rem);
}
.text_28 {
  font-size: clamp(2rem, 2.435vw, 2.8rem);
}
.text_30 {
  font-size: clamp(2rem, 2.609vw, 3rem);
}
@media screen and (max-width: 599px) {
  .sp_text_left {
    text-align: left;
  }
  .sp_text_left_b {
    text-align: left;
  }
  .sp_text_left_b br {
    display: none;
  }
  .sp_text_center,
  .sp_center {
    text-align: center;
  }
} /*END*/



/*----------------------------------------
	margin
----------------------------------------*/
.m_center {
  margin-left: auto;
  margin-right: auto;
}
.m_left {
  display: block;
  margin-left: auto;
}
.m_right {
  display: block;
  margin-right: auto;
}
.m_t_auto {
  margin-top: auto;
}
.m_l {
  margin-left: 1em;
}
@media screen and (max-width: 768px) {
  .tb_m_center {
    margin-left: auto;
    margin-right: auto;
  }
  .tb_m_t30 {
    margin-top: 30px !important;
  }
  .m_l {
    margin-left: 0;
  }
}
@media screen and (max-width: 599px) {
  .sp_m_center {
    margin-left: auto;
    margin-right: auto;
  }
}



/*----------------------------------------
	flex_layout
----------------------------------------*/
.flex {
  display: flex;
}
.flexbox {
  display: flex;
}
.max680 {
  max-width: 680px;
}
.row_reverse {
  flex-direction: row-reverse;
}
.jsc_b {
  justify-content: space-between;
}
.jsc_c {
  justify-content: center;
}
.jc_c {
  justify-content: center;
}
.ali_c {
  align-items: center;
}
.ai_c {
  align-items: center;
}
.ali_e {
  align-items: flex-end;
}
.ali_s {
  align-items: flex-start;
}
.gap10 {
  gap: 10px;
}
.gap20 {
  gap: 20px;
}
.gap30 {
  gap: 30px;
}
.gap40 {
  gap: 40px;
}
.gap50 {
  gap: 50px;
}
.box500 {
  width: calc(500 * 100% / 1040);
}
.box540 {
  width: calc(540 * 100% / 1040);
  flex: none;
}
.box410 {
  width: calc(410 * 100% / 1040);
  flex: none;
}
@media screen and (max-width: 768px) {
  .tb_gap0 {
    gap: 0;
  }
  .flex {
    flex-direction: column;
  }
  .flex.sp_no_wrap,
  .sp_no_wrap {
    flex-wrap: nowrap !important;
  }
  .flex.sp_reverse {
    flex-direction: column-reverse;
  }
  .sp_reverse {
    display: flex;
    flex-direction: column-reverse;
  }
  .box410,
  .box540,
  .box500 {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .sp_max_w {
    width: 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 599px) {
  .sp_gap0 {
    gap: 0;
  }
}



/*----------------------------------------
	list box
----------------------------------------*/
.list_two {
  display: flex;
  flex-wrap: wrap;
  gap: calc(40 * 100% / 1040);
}
.list_two > li {
  width: calc(500 * 100% / 1040);
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: calc(40 * 100% / 1040);
}
@media screen and (max-width: 768px) {
  .list_two {
    gap: 0%;
  }
  .list_two > li {
    width: 100%;
    margin-bottom: 30px;
  }
  .list_two.sp_no_wrap li {
    width: calc(500 * 100% / 1040);
    margin-bottom: 0px;
  }
} /*END*/

.list_three {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(40 * 100% / 1040);
}
.list_three > li {
  flex: none;
  width: calc(320 * 100% / 1040);
  margin-bottom: calc(40 * 100% / 1040);
}
@media screen and (max-width: 768px) {
  .list_three {
    gap: 4%;
  }
  .list_three > li {
    width: 100%;
    margin-bottom: 25px;
  }
  .list_three.sp_list_two > li {
    margin-bottom: 25px;
    width: 48%;
  }
}

.list_four {
  display: flex;
  flex-wrap: wrap;
  gap: calc((100% - ((250 * 100% / 1040) * 4)) / 3);
}
.list_four > li {
  margin-bottom: calc((100% - ((250 * 100% / 1040) * 4)) / 3);
  width: calc(250 * 100% / 1040);
}
@media screen and (max-width: 768px) {
  .list_four {
    gap: 4%;
  }
  .list_four > li {
    margin-bottom: 25px;
    width: 48%;
  }
}



/*----------------------------------------
	iframe中央配置
----------------------------------------*/
/*iframe比率維持*/
.map {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: auto;
  padding: 50% 0 0;
  text-align: center;
}
.map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
  -ms-transform: translate3d(-50%, -50%, 0);
  transform: translate3d(-50%, -50%, 0);
}
.map iframe:not(:target) {
  left: 0\9;
  top: 0\9;
}
.map iframe {
  left: 0\9;
  top: 0\9;
}
@media all and (-ms-high-contrast: none) {
  .map iframe {
    left: 50%\9 !important;
    top: 50%\9 !important;
  }
}
.map { z-index: 2;} /*chrome対策*/
@media screen and (max-width: 768px) {
  .map {
    padding: 75% 0 0;
  }
} /*END*/



/*----------------------------------------
	レイアウト
----------------------------------------*/
.ttl img {
  display: block;
  margin: 0 auto;
  max-width: 737px;
  width: 100%;
}
.ttl._01 img {
  max-width: 734px;
}
.ttl._02 img {
  max-width: 739px;
}
.ttl._03 img {
  max-width: 741px;
}
.ttl._04 img {
  max-width: 735px;
}
.frame1350 {
  max-width: 1350px;
  width: 100%;
  margin-inline: auto;
}
.inner_frame {
  max-width: 1080px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 20px;
  padding-right: 20px;
  width: 100%;
  box-sizing: border-box;
}
.sp_none {
  display: block;
}
.pc_none {
  display: none;
}
@media screen and (max-width: 768px) {
  .sp_none {
    display: none;
  }
  .pc_none {
    display: block;
  }
  .inner_frame {
    padding-right: 7%;
    padding-left: 7%;
  }
} /*END*/
@media screen and (max-width: 599px) {
  .inner_frame {
    padding-right: 4.5%;
    padding-left: 4.5%;
  }
} /*END*/



/*----------------------------------------
	header
----------------------------------------*/
header {
  overflow: hidden;
}
.hamburger {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 20;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 80px;
    height: 80px;
    border: none;
    border-radius: 100vmax;
    background: #585957;
    cursor: pointer;
}
.hamburger::before,
.hamburger::after,
.hamburger .hamburgerLine {
    position: absolute;
    display: block;
    width: 50%;
    height: 4px;
    border-radius: 100vmax;
    background: #f4f5f0;
}
.hamburger::before,
.hamburger::after {
    content: "";
}
.hamburger::before {
    transform: translateY(-16px);
}
.hamburger::after {
    transform: translateY(16px);
}
.hamburger[aria-expanded="true"] .hamburgerLine {
    opacity: 0;
}
.hamburger[aria-expanded="true"]::before {
    transform: rotate(30deg);
}
.hamburger[aria-expanded="true"]::after {
    transform: rotate(-30deg);
}
.nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.nav[aria-hidden="true"] {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}
.nav[aria-hidden="false"] {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}
.menu {
    width: 100%;
    height: 100%;
    background: #585957;
    color: #f4f5f0;
}
.menu ul {
  display: grid;
  grid-template-columns: repeat(2,auto);
  justify-content: center;
  row-gap: 3em;
  column-gap: 6em;
  width: 750px;
  margin-inline: auto;
  padding-top: 15%;
}
.overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    height: 100vh;
    pointer-events: none;
}
@media screen and (max-width: 768px) {
  .hamburger {
    top: 1px;
    right: 1px;
    gap: 8px;
    width: 60px;
    height: 60px;
  }
  .hamburger::before {
    transform: translateY(-10px);
  }
  .hamburger::after {
    transform: translateY(10px);
  }
  .nav {
    background: #585957;
    overflow: auto;
  }
  .menu ul {
    grid-template-columns: repeat(1,auto);
    row-gap: 2.5em;
    column-gap: 3em;
    text-align: center;
    width: 100%;
    padding-top: 25%;
  }
  .drawer_flex.m_t80 {
    padding-bottom: 3em;
  }
}



/*----------------------------------------
	drawer
----------------------------------------*/
.drawer_flex {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2em;
}
#menu01 {
	order: 1;
}
#menu02 {
	order: 3;
}
#menu03 {
	order: 5;
}
#menu04 {
	order: 7;
}
#menu05 {
	order: 9;
}
#menu06 {
	order: 2;
}
#menu07 {
	order: 4;
}
#menu08 {
	order: 6;
}
#menu09 {
	order: 8;
}
#menu10 {
	order: 10;
}
.drawer_deco01 {
  position: fixed;
  top: 0;
  left: 0;
  width: 27.56%;
  max-width: 372px;
}
.drawer_deco02 {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 27.56%;
  max-width: 372px;
}
@media screen and (max-width: 768px) {
  .drawer_flex {
    flex-direction: column;
    gap: 1em;
    margin-top: 80px;
  }
  .drawer_flex a {
    display: block;
    width: 60%;
    margin-inline: auto;
  }
  #menu01 {
    order: 1;
  }
  #menu02 {
    order: 2;
  }
  #menu03 {
    order: 3;
  }
  #menu04 {
    order: 4;
  }
  #menu05 {
    order: 5;
  }
  #menu06 {
    order: 6;
  }
  #menu07 {
    order: 7;
  }
  #menu08 {
    order: 8;
  }
  #menu09 {
    order: 9;
  }
  #menu10 {
    order: 10;
  }
}


/*----------------------------------------
	common
----------------------------------------*/
.c_pt {
  padding-top: clamp(75px, 15vw, 150px);
}
.ttl680 {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.border_photo {
  border: 2px solid #000;
  overflow: hidden;
  border-radius: 20px;
}
.white_bg_txt {
  display: inline-block;
  padding-left: 0.5em;
  padding-right: 0.5em;
  position: relative;
}
.white_bg_txt > span {
  position: relative;
}
.white_bg_txt::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: calc(1px * infinity);
}


/*----------------------------------------
	animation
----------------------------------------*/
.mv_anime {
  animation: blur .8s .3s ease-in-out both;
}
@keyframes blur {
  0% {
    opacity: 0;
    transform: scale(.7);
    filter: brightness(50%);
  }
  100% {
    opacity: 1;
    transform: scale(1);
    filter: brightness(100%);
  }
}
.mv_ttl_anime {
  animation: BtoT .8s .3s ease-in-out both;
}
.mv_ttl_anime._01 {
  animation: BtoT .8s 1s ease-in-out both;
}
.mv_ttl_anime._02 {
  animation: BtoT .8s 1.1s ease-in-out both;
}
.mv_ttl_anime._03 {
  animation: BtoT .8s .9s ease-in-out both;
}
@keyframes BtoT {
  0% {
    opacity: 0;
    transform: translateY(20%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.smooth {
  clip-path: inset(0 90% 0 0);
  transition: 1.8s cubic-bezier(0.33, 0.23, 0.63, 1);
  transition-property: clip-path;
  line-height: 1;
}
.smooth.is-animated {
  clip-path: inset(0);
}
.slide-in {
  transform: translateY(20%);
  opacity: 0;
  overflow: hidden;
  transition: .5s linear;
}
.slide-in.is-animated {
  transform: translateY(0);
  opacity: 1;
}
.img_anime {
  display:flex;
  justify-content:center;
  align-items:center;
  perspective: 1800px;
}
.img_card3d {
  transform-style: preserve-3d;
  transform: translateZ(-900px) rotateY(70deg) rotateX(40deg);
}
.wave {
  width: 100%;
  height: auto;
}
.wave path {
  transition: stroke-dashoffset 2.5s ease-out;
}



/*----------------------------------------
	mv
----------------------------------------*/
.mv {
  background: #585957;
}
.mv_inner_frame {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1350px;
  width: 100%;
  aspect-ratio: 1350 / 920;
  height: auto;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 12em;
}
.mv_img {
  width: 65%;
  position: absolute;
  top: 9%;
  left: 2%;
}
.mv_img img:nth-child(1) {
  max-width: 548px;
  width: 35%;
  padding-bottom: 5em;
}
.mv_img img:nth-child(2) {
  max-width: 1596px;
  width: 100%;
}
.mv_copy01 {
  width: 28%;
  position: absolute;
  top: 12%;
  right: 1%;
}
.mv_copy01 img {
  max-width: 667px;
  width: 100%;
}
.mv_copy02 {
  width: 14%;
  position: absolute;
  bottom: 25%;
  right: 3%;
}
.mv_copy02 img {
  max-width: 390px;
  width: 100%;
}
.mv_ttl {
  width: 65%;
  position: absolute;
  bottom: 0;
  left: 5%;
}
.mv_ttl img:nth-child(1) {
  max-width: 1432px;
  width: 100%;
}
.mv_deco01 {
  max-width: 566px;
  width: 44%;
  position: absolute;
  bottom: 23%;
  right: -29%;
}
.mv_deco02 {
  max-width: 354px;
  width: 25%;
  position: absolute;
  top: 3%;
  right: 8%;
}
@media screen and (max-width: 768px) {
  .mv {
    height: 100svh;
    min-height: 140vw;
    max-height: 180vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mv_img {
    width: 100%;
    align-items: flex-start;
    gap: 15px;
    top: 10%;
    left: 5%;
  }
  .mv_img img:nth-child(1) {
    width: 32%;
    padding-bottom: 0;
  }
  .mv_img img:nth-child(2) {
    width: 89.5%;
  }
  .mv_copy01 {
    width: 41%;
    top: 21.5%;
    right: 6%;
  }
  .mv_copy02 {
    width: 22.5%;
    bottom: 23.8%;
    right: 2.5%;
  }
  .mv_inner_frame {
    aspect-ratio: auto;
    height: 100%;
    max-height: 160vw;
  }
  .mv_com01 {
    width: 26.08%;
  }
  .mv_com02 {
    width: 26.08%;
  }
  .mv_ttl {
    bottom: 10.5%;
    left: 7%;
    width: 89%;
  }
  .mv_deco01 {
    width: 39%;
    bottom: 7%;
    right: 1%;
  }
  .mv_deco02 {
    width: 25%;
    top: auto;
    right: auto;
    bottom: 17%;
    left: 0;
  }
}



/*----------------------------------------
	intro
----------------------------------------*/
.intro_bg {
  background: #f4f5f0;
}
.intro_wrap {
  padding-top: 13em;
}
.intro_ttl {
  margin-top: 2.5em;
}
.intro_deco01 {
  position: absolute;
  top: -5%;
  left: -12%;
  opacity: 0;
  transition: all 1s;
}
.intro_deco01 img {
  max-width: 187px;
  width: 100%;
}
.intro_deco01.is-animated {
  top: 0;
  opacity: 1;
  transition: all 1s;
}
.intro_inner {
  width: 50%;
}
.intro_img {
  max-width: 1190px;
  width: 100%;
}
.intro_laclea {
  background-image: url(..//images/intro_laclea.png);
  background-size: 100%;
  background-position: top;
  background-repeat: no-repeat;
  margin-top: 280px;
  padding-top: 105px;
}
.intro_ttl02 {
  width: 100%;
  position: absolute;
  top: -30%;
  left: 50%;
  transform: translateX(-50%);
}
.intro_deco02 {
  position: absolute;
  top: -10%;
  right: 19%;
}
.intro_deco02 img {
  max-width: 376px;
  width: 100%;
}
.intro_nami {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.intro_nami svg {
  width: 100%;
}
.intro_bottom_img {
  transform: translateY(10%);
  opacity: 0;
  transition: all .8s;
}
.intro_bottom_img.is-animated {
  transform: translateY(0);
  opacity: 1;
  transition: all .8s;
}
/* スライダー */
.wave-slider {
  display: flex;
  overflow: hidden;
  width: 100%;
  padding-top: 150px;
}
.wave-track {
  display: flex;
  animation: scrollX 80s infinite linear;
}
@keyframes scrollX {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}
.wave-item {
    margin-left: 70px;
    position: relative;
}
.wave-track .wave-item:nth-child(2n+1) {
  padding-top: 100px;
}
.wave-item img {
    width: 299px;
    height: auto;
    position: relative;
    overflow: hidden;
}
.wave-item::before,
.wave-item::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0 auto;
    transition: .3s cubic-bezier(0.45, 0, 0.55, 1);
    opacity: 0;
}
@media screen and (max-width: 1380px) {
  .intro_deco02 {
    width: 20%;
    top: -8%;
    right: 23%
  }
}
@media screen and (max-width: 768px) {
  .intro_wrap {
    padding-top: 0;
  }
  .intro_wrap .gap40 {
    gap: 20px;
  }
  .intro_ttl {
    margin-top: 3.5em;
  }
  .intro_inner {
    width: 100%;
  }
  .intro_img {
    display: block;
    width: 90%;
    margin-inline: auto;
  }
  .intro_deco01 {
    width: 50%;
    top: 0;
    right: -18%;
    left: auto;
  }
  .intro_deco01 img {
    width: 50%;
  }
  .intro_deco02 {
    width: 25%;
    top: -35px;
    right: 85px;
  }
  .intro_ttl02 {
    top: -110px;
  }
  .intro_nami {
    top: 0;
    left: 0;
    right: 0;
  }
  .intro_nami svg {
    width: 200%;
  }
  .wave-item {
    margin-left: 30px;
  }
  .wave-track .wave-item:nth-child(2n+1) {
    padding-top: 50px;
  }
  .wave-item img {
    width: 150px;
  }
  .intro_laclea {
    margin-top: 140px;
    padding-top: 80px;
  }
  .wave-slider {
    padding-top: 15%;
  }
}
@media screen and (max-width: 599px) {
  .intro_deco02 {
    width: 40%;
    top: -25px;
    right: 13px;
  }
  .intro_ttl02 {
    top: -110px;
  }
  .intro_laclea {
    padding-top: 40px;
  }
}



/*----------------------------------------
	landplan
----------------------------------------*/
.land_deco {
  padding-bottom: 21em;
}
.land_deco01 {
  position: absolute;
  bottom: 0;
  left: -30%;
  opacity: 0;
  transition: all .5s;
}
.land_deco01 img {
  max-width: 283px;
}
.land_deco01.is-animated {
  left: 0;
  opacity: 1;
  transition: all .5s;
}
.land_deco02 {
  position: absolute;
  bottom: 0;
  right: 0;
}
.land_deco02 img {
  max-width: 525px;
}
.land img {
  display: block;
  max-width: 1601px;
  width: 75%;
  margin: 0 auto;
}
.land {
  transform: scale(0);
  opacity: 0;
  transition: all .5s;
}
.land.is-animated {
  transform: scale(1);
  opacity: 1;
  transition: all .5s;
}
@media screen and (max-width: 768px) {
  .land_deco {
    padding-bottom: 8em;
  }
  .land_deco01 {
    width: 35%;
  }
  .land_deco01 img {
    width: 100%;
  }
  .land_deco02 {
    width: 45%;
  }
  .land_deco02 img {
    width: 100%;
  }
  .land img {
    width: 90%;
  }
}



/*----------------------------------------
	Ready-built house
----------------------------------------*/
video {
  max-width: 1350px;
  width: 100%;
}


/*----------------------------------------
	Ready-built house
----------------------------------------*/
.builthouse_bg {
  background: #f4f5f0;
}
.builthouse_img {
  width: 50%;
}
.builthouse_img img {
  max-width: 511px;
  width: 100%;
}
.builthouse_text {
  width: 50%;
}
@media screen and (max-width: 768px) {
  .builthouse_img {
    width: 100%;
  }
  .builthouse_text {
    width: 100%;
  }
}



/*----------------------------------------
	HOUSEPLAN
----------------------------------------*/
.houseplan_bg {
  background: #f4f5f0;
}
.houseplan_deco {
  position: absolute;
  bottom: -66%;
  right: 0;
}
.houseplan_deco img {
  max-width: 240px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .houseplan_deco {
    bottom: -78%;
    right: 0;
    width: 30%;
  }
}
.plan_panel_wrap h3 img {
  max-width: 895px;
}
.plan_tab {
  display: flex;
  gap: 8px;
}
.plan_tab li {
  transform: translateY(5px);
  transition: 300ms, opacity 0s, color 0s;
  cursor: pointer;
}
.plan_tab li.active {
  transform: translateY(0px);
  cursor: default;
  pointer-events: none;
}
.plan_tab li:hover:not(.active) {
  transform: translateY(5px);
}
.plan_panel {
  border: 2px solid #585957;
  position: relative;
  padding: 10% 8% 12%;
  box-sizing: border-box;
}
.plan_panel li {
  display: none;
  width: 100%;
  height: 100%;
  position: relative;
}
.plan_panel_wrap {
  position: relative;
}
.plan_panel_wrap::before {
  content: "";
  width: 100%;
  height: 100%;
  background: #e3e3e3;
  position: absolute;
  bottom: 0;
  right: 0;
}
.plan_ttl {
  width: 55%;
}
.plan_inner {
  width: 45%;
}
.plan_inner img {
  max-width: 368px;
}
.plan_plan._01 {
  margin-top: 32px;
}
.plan_plan img {
  max-width: 1724px;
  width: 100%;
}
.plan_img {
  display: flex;
  justify-content: center;
  gap: 30px;
}
.plan_img img {
  display: block;
  max-width: 272px;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .plan_ttl {
    width: 100%;
  }
  .plan_inner {
    width: 100%;
  }
  .plan_inner img {
    display: block;
    width: 100%;
    margin: 0 auto;
  }
  .plan_panel {
    padding: 13% 5% 15%;
  }
  .plan_img {
    gap: 0;
  }
}
@media screen and (max-width: 768px) {
  .plan_tab {
    gap: 2px;
  }
  .plan_tab li.active {
    width: 30%;
  }
  .plan_tab li {
    width: 30%;
  }
}



/*----------------------------------------
	Designer's Comment
----------------------------------------*/
.comment_bg {
  background: #e9eae5;
}
.comment_inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  padding: 8em 1em;
}
.flex_l_comment {
  width: 28%;
}
.flex_l_comment h2 img {
  max-width: 650px;
  width: 100%;
}
.flex_l_comment div img {
  max-width: 642px;
  width: 100%;
}
.flex_r_comment {
  width: 60%;
}
@media screen and (max-width: 768px) {
  .comment_inner {
    flex-direction: column;
    gap: 35px;
    padding: 5em 1em;
  }
  .flex_l_comment {
    width: 100%;
  }
  .flex_l_comment h2 img {
    display: block;
    width: 60%;
    margin-inline: auto;
  }
  .flex_l_comment div img {
    display: block;
    width: 80%;
    margin-inline: auto;
  }
  .flex_r_comment {
    width: 100%;
  }
}



/*----------------------------------------
	equipment
----------------------------------------*/
.equipment_bg {
  background: #f4f5f0;
}
.equip_deco01 {
  position: absolute;
  top: 7%;
  right: 15%;
  opacity: 0;
  transform: scale(0);
  transition: all .5s;
}
.equip_deco01 img {
  max-width: 131px;
}
.equip_deco02 {
  position: absolute;
  top: 7%;
  left: 15%;
  opacity: 0;
  transform: scale(0);
  transition: all .5s;
}
.equip_deco02 img {
  max-width: 98px;
}
.equip_deco01.is-animated,
.equip_deco02.is-animated {
  transform: scale(1);
  opacity: 1;
  transition: all .5s;
}
.equipment_gridbox {
  display: grid;
  grid-template-columns: repeat(3, auto);
  row-gap: 6em;
  column-gap: 3em;
}
.equipment_gridbox img {
  max-width: 640px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .equip_deco01 {
    top: 4%;
    right: 4%;
    width: 20%;
  }
  .equip_deco02 {
    position: absolute;
    top: 4%;
    left: 7%;
    width: 15%;
  }
  .equipment_gridbox {
    grid-template-columns: repeat(2, auto);
    row-gap: 2.5em;
    column-gap: 1.2em;
  }
}



/*----------------------------------------
	location
----------------------------------------*/
.location_inner {
  width: 50%;
}
.location_img img:nth-child(1) {
  max-width: 450px;
  width: 100%;
}
.location_deco {
  position: absolute;
  top: -22%;
  right: -20%;
  max-width: 134px;
  width: 100%;
  opacity: 0;
  transition: all .5s;
}
.location_deco.is-animated {
  right: 6%;
  opacity: 1;
  transition: all .5s;
}
@media screen and (max-width: 768px) {
  .location_inner {
    width: 100%;
  }
  .location_img img:nth-child(1) {
    display: block;
    margin: 0 auto;
  }
  .location_deco {
    top: -21%;
    right: 11%;
    width: 25%;
  }
  .location_top {
    gap: 30px;
  }
}
@media screen and (max-width: 599px) {
  .location_deco {
    top: -18%;
    right: -3%;
    width: 25%;
  }
}
.location_list_frame {
  padding: 4.8%;
}
.location_list_frame img {
  max-width: 257px;
}
.location_list {
  width: 100%;
}
.location_list > div {
  display: flex;
  justify-content: space-between;
  border-top: 1px dotted #000;
  color: #000;
  font-size: 1.5rem;
  padding: 1.2em;
  box-sizing: border-box;
}
.location_list dt {
  text-align: left;
}
.location_list dd {
  text-align: right;
}
.location_list div:last-child {
  border-bottom: 1px dotted #000;
}
@media screen and (max-width: 768px) {
  .location_list_frame {
    padding-bottom: 40px;
  }
  .location_flex {
    gap: 30px;
  }
  .location_list_three li {
    width: 60%;
  }
  .location_list_three li:nth-child(1) {
    margin-right: auto;
    margin-top: 20px;
  }
  .location_list_three li:nth-child(2) {
    margin-left: auto;
    margin-top: -15% !important;
  }
  .location_list_three li:nth-child(3) {
    margin-right: auto;
    margin-top: -18% !important;
  }
  .location_list > div {
    flex-direction: column;
    align-items: start;
  }
  .location_list dt {
    font-weight: bold;
    margin-bottom: 8px;
  }
}



/*----------------------------------------
	access
----------------------------------------*/
.bg_access {
  background: #f4f5f0;
}
.access_inner01 {
  width: 45%;
}
.access_inner02 {
  width: 55%;
}
.access_info img {
  max-width: 446px;
}
.access_img img {
  max-width: 554px;
}
.access_train {
	display: block;
	width: 80%;
	margin: 0 auto;
}
.access_train img {
  max-width: 1792px;
  margin-top: 7em;
}
@media screen and (max-width: 768px) {
  .access_inner01 {
    width: 80%;
  }
  .access_inner02 {
    width: 100%;
  }
  .access_train {
    width: 100%;
}
  .access_train img {
    margin-top: 3em;
  }
}



/*----------------------------------------
	outline
----------------------------------------*/
.outline_table_frame {
  display: flex;
  justify-content: center;
  gap: 3em;
  max-width: 100%;
}
.outline_table {
  width: 50%;
}
.outline_table th,
.outline_table td {
  box-sizing: border-box;
  border-top: 1px dotted #000;
  color: #000;
  font-size: 1.5rem;
  text-align: left;
  font-weight: normal;
}
.outline_table th {
  padding: 1.2em 0.5em 1.2em 1.2em;
}
.outline_table td {
  padding: 1.2em 1.2em 1.2em 0.5em;
}
.outline_table th {
  width: 11.5em;
  vertical-align: top;
}
.outline_table tr:last-child th,
.outline_table tr:last-child td {
  border-bottom: 1px dotted #000;
}
@media screen and (max-width: 768px) {
  .outline_table_frame {
    flex-direction: column;
    gap: 0;
  }
  .outline_table {
    width: 100%;
  }
  .outline_table + .outline_table tr:first-child th,
  .outline_table + .outline_table tr:first-child td {
    border-top: none;
  }
}



/*----------------------------------------
	contact
----------------------------------------*/
.contact_bg {
  background: #585957;
}
.contact_wrap {
  padding: 3em 0 5em;
}
.contact_wrap p {
  letter-spacing: 0.1em;
}
.contact_flex {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3em;
}
@media screen and (max-width: 768px) {
  .contact_flex {
    flex-direction: column;
    gap: 1em;
    max-width: 75%;
    margin: 0 auto;
  }
}



/*----------------------------------------
	footer
----------------------------------------*/
.foot_list {
  display: flex;
  justify-content: center;
  gap: 25px 30px;
}
.foot_list li {
  text-wrap: nowrap;
  font-size: 1.8rem;
}
.btn_foot {
  display: block;
  width: 330px;
  padding: 1.2em 1em;
  box-sizing: border-box;
  background-color: #2eb596;
  color: #fff;
  border: 1px solid #2eb596;
  border-radius: calc(1px * infinity);
  transition: 0.3s;
}
.btn_foot:hover {
  background-color: #fff;
  color: #2eb596;
}
@media screen and (max-width: 1230px) {
  .foot_list li {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 1150px) {
  .foot_list li {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 1090px) {
  .foot_list {
    flex-direction: column;
    align-items: center;
  }
}


/*----------------------------------------
	float_btn
----------------------------------------*/
.float_btn {
  position: fixed;
  bottom: 10%;
  right: 0;
  z-index: 9;
}
.float_btn li {
  max-width: 60px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .float_btn {
    bottom: 8%;
  }
  .float_btn li {
    width: 40px;
  }
}


/*----------------------------------------
	menu_line
----------------------------------------*/
.line {
  background: #9e9e9e;
  width: 100%;
  height: 1px;
}
.line_hover {
  position: relative;
  padding: 0.5em 0;
  box-sizing: border-box;
}
.line_hover::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 5px;
  border-radius: calc(1px * infinity);
  background: #f4f5f0;
  bottom: -1px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: transform 0.3s;
}
.line_hover:hover::after {
  transform: scale(1, 1);
}
