/*
Last Updated: 2026-03-17
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: #20201e;
  letter-spacing: 0.01em;
  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
img {
  vertical-align: bottom;
  image-rendering: -webkit-optimize-contrast;
}
li { list-style: none;}
a {
  color: inherit;
  text-decoration: none;
}
#container {overflow: hidden;}
.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,
#container {
  overflow: hidden;
}
.op {transition: 0.4s;}
.op:hover {opacity: .6;}

.sp_none768,
.sp_none,
.br_none {
  display: block;
}
.pc_none,
.br_sp_none {
  display: none;
}
.pc_block785 {display: block;}
.pc_none999 {display: none;}
.pc_none850 {display: none;}
@media screen and (max-width: 999px) {
  .pc_none999 {display: block;}
}
@media screen and (max-width: 850px) {
  .pc_none850 {display: block;}
}
@media screen and (max-width: 768px) {
  .pc_none999 {display: none;}
  .pc_none850 {display: none;}
  .sp_none768 {display: none;}
  
}
@media screen and (max-width: 785px) {
  .pc_block785 {display: none;}
}
@media screen and (max-width: 599px) {
  .pc_none,
  .sp_block {
    display: block;
  }
  .sp_none,
  .pc_block,
  .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;}
}

.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_red { color: #a60000;}

.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_0 {letter-spacing: 0;}
.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_23 {font-size: clamp(1.7rem, 2.057vw, 2.3rem);}
.text_24 {font-size: clamp(1.8rem, 2.087vw, 2.4rem);}
.text_25 {font-size: clamp(1.8rem, 2.250vw, 2.5rem);}
.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,
  .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;}
.flex47{width: 47%;}
.flex48{width: 48%;}
.flex49{width: 49%;}
.flex450{width: 50%;}
.max680 {max-width: 680px;}
.row_reverse {flex-direction: row-reverse;}
.jc_b {justify-content: space-between;}
.jc_c {justify-content: center;}
.ai_c {align-items: center;}
.ai_e {align-items: flex-end;}
.ai_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) {
  .flex47,
  .flex48,
  .flex49,
  .flex50 {
    width: 100%;
  }
  .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: 600px;
  width: 100%;
  padding-bottom: 50px;
}
.ttl._01 img {max-width: 734px;}
.ttl._02 img {max-width: 739px;}
.ttl._03 img {max-width: 600px;}
.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;
    inset: 0;

    z-index: 10;

    display: flex;
    justify-content: center;
    align-items: center;

    background: #585957;

    clip-path: circle(0% at calc(100% - 64px) 64px);

    visibility: hidden;
    pointer-events: none;
}

.nav[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
}

.menu {
    width: 100%;
    height: 100%;
    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: 10%;
}
.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: 10%;
  }
  .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;
    
  }
  #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);
}



/*----------------------------------------
	mv
----------------------------------------*/
.mv { 
  background: url(../images/mv_bg.jpg);
  background-size: cover;
  background-position: top left;
}
.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_ttl {
  width: 65%;
  text-align: center;
  padding-left: 3.5vw;
}
.mv_ttl img:nth-child(1) {
  max-width: 1432px;
  width: 100%;
}
.mv_img01 {
  position: absolute;
  top: 53%;
  left: 5%; 
}
.mv_img01 img {
  max-width: 300px;
  width: 100%;
}
.mv_img02 {
  position: absolute;
  top: 36%;
  right: 2%;
}
.mv_img02 img {
  max-width: 150px;
  width: 100%;
}
.sp_mv_ttl {
  display: none;
}

@media screen and (max-width: 1200px) {
  .mv_img01 {
    top: 50%;
    left: 7%; 
  }
  .mv_img01 img {
    max-width: 200px;
  }
  .mv_img02 {
    top: 36%;
    right: 3%;
  }
  .mv_img02 img {
    max-width: 100px;
  }  
}
@media screen and (max-width: 899px) {
  .mv_img01 {
    top: 55%;
    left: 11%; 
  }
  .mv_img01 img {
    max-width: 150px;
  }
  .mv_img02 {
    top: 36%;
    right: 3%;
  }
  .mv_img02 img {
    max-width: 80px;
  }  
}
@media screen and (max-width: 768px) {
  .mv { 
    background: url(../images/sp_mv_bg.jpg);
  }
  .mv_ttl {
    display: none;
  }
  .sp_mv_ttl {
    display: block;
    padding: 100px 0 0 4vw;
  }
  .mv_img01 {
    display: none;
  }
  .mv_img02 {
    display: none;
  }
}




/*----------------------------------------
	intro
----------------------------------------*/
.intro_bg {
  background: url(../images/intro_img01.jpg) center center / cover no-repeat;
  aspect-ratio: 1920 / 1080;
}
.inner_frame.intro {
  height: 100%;
}
.intro_p {
  background-color: #a19973;
  padding: 35px;
  max-width: 400px;
  position: absolute;
  top: 20%;
  right: 20px;
}
.intro_p02 {
  display: none;
}
.intro_p > * {
  display: inline-block;
}
.intro_p h3 ,
.intro_p02 h3 {
  padding-bottom: 20px;
  font-weight: normal;
}
@media screen and (max-width: 899px) {
  .intro_p {
    max-width: 300px;
    top: 10%;
  }
}
@media screen and (max-width: 699px) {
  .intro_p {
    display: none;
  }
  .intro_p02 {
    display: block;
    background-color: #a19973;
    padding: 30px;
  }
}



/*----------------------------------------
	landplan
----------------------------------------*/
#landplan {
  background-color: #f5f0e7;
}
.land img {
  display: block;
  max-width: 1601px;
  width: 75%;
  margin: 0 auto;
}
.landplan_inner02 .flex > * {
  width: 50%;
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .landplan_inner02 .flex > * {
    width: 100%;
    padding-bottom: 0px;
  }
  .landplan_inner02 .flex div {
    padding: 0 0 50px 0;
  }
  .landplan_inner02 .flex:last-child {
    flex-direction: column-reverse;
  }
  .land img {
    width: 100%;
  }
} 




/*----------------------------------------
	space idea
----------------------------------------*/
.space_bg {
  background: url(../images/mv_bg.jpg);
  background-size: cover;
  background-position: top left;
}
.flex_maru {
  padding: 3vw 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3vw;
}
.flex_maru img {
  min-width: 0;
  max-width: 250px;

}
.space_plus {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3vw;
}
.space_plus img:first-child {
  width: 15vw;
  max-width: 150px;
}
.space_plus img:last-child {
  width: 30vw;
  max-width: 300px;
}
.space_img {
  margin: 0 auto;
  max-width: 500px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .space_img {
    margin: 0 0;
    max-width: 100%;
    width: 100%;
  }
}
@media screen and (max-width: 599px) {
  .space_bg { 
    background: url(../images/sp_mv_bg.jpg);
  }
}


/*----------------------------------------
	Ready-built house
----------------------------------------*/
.room_bg {background: #f5f0e7;}
.room_img {width: 50%;}
.room_img img {
  max-width: 511px;
  width: 100%;
}
.room_text {width: 50%;}
@media screen and (max-width: 768px) {
  .room_img,
  .room_text {
    width: 100%;
  }
  .room_img img {
    max-width: 100%;
  }
}



/*----------------------------------------
	HOUSEPLAN
----------------------------------------*/
.houseplan_bg {background: #f4f5f0;}
.plan_panel_wrap h3 img {max-width: 895px;}
.plan_tab {
  display: flex;
  gap: 8px;
}
.plan_tab li {
  transform: translateY(32px);
  /*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(32px);
}
.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,
  .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%;
    transform: translateY(35%); 
}
}






/*----------------------------------------
	equipment
----------------------------------------*/
.equipment_bg {background: #dedcd4;}
.equip_deco01 {
  position: absolute;
  top: 3%;
  right: 15%;
  opacity: 0;
  transform: scale(0);
  transition: all .5s;
}
.equip_deco01 img {max-width: 131px;}
.equip_deco02 {
  position: absolute;
  top: 3.5%;
  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_gridbox01 {
  display: grid;
  grid-template-columns: repeat(3, auto);
  row-gap: 6em;
  column-gap: 2.5em;
}
.equipment_gridbox01 img {
  max-width: 640px;
  width: 100%;
}
.equipment_gridbox02 {
  display: grid;
  grid-template-columns: repeat(2, auto);
  row-gap: 6em;
  column-gap: 2.5em;
}
.equipment_gridbox02 img {
  max-width: 500px;
  width: 100%;
}
.equipment_section02.p_t140 {
  padding-top: 6em;
}
@media screen and (max-width: 933px) {
  .equip_deco01 {
    right: 6%;
    width: 20%;
  }
  .equip_deco02 {
    left: 11%;
    width: 15%;
  }
}
@media screen and (max-width: 730px) {
  .equipment_section02 .flexbox {
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) {
  .equip_deco01 {
    top: 2%;
    right: 4%;
  }
  .equip_deco02 {
    top: 1%;
    left: 7%;
  }
  .equipment_gridbox01 {
    grid-template-columns: repeat(2, auto);
    row-gap: 2.5em;
    column-gap: 1.2em;
  }
  .equipment_gridbox02 {
    row-gap: 2.5em;
    column-gap: 1.2em;
  }
}
@media screen and (max-width: 599px) {
  .equipment_gridbox02 {
    grid-template-columns: repeat(1, auto);
  }
}


/*----------------------------------------
	ABOUT US
----------------------------------------*/
.ttl.about img {
  padding-bottom: 0;
}
.about_bg {background: #f5f4f1;}
.about_bg02 {
  background: url(../images/about_ttl_bg.jpg);
  background-size: cover;
  background-position: center center;
  height: 500px;
  width: 100%;

  display: flex;
  justify-content: center;
  align-items: center;
}
.about_img {
  width: calc(50% + ((100vw - 1050px) / 2));
  margin-left: calc((100vw - 1030px) / -2);
  flex-shrink: 0;
}
.about_img img {
  width: 100%;
  display: block;
}
@media screen and (max-width: 1080px) {
  .about_img {
    width: 50%;
    margin-left: 0;
    flex-shrink: 1;
  }
  .about_bg02 {
    height: 350px;
  }
}
.about_text {width: 50%;}
@media screen and (max-width: 768px) {
  .about_img,
  .about_text {
    width: 100%;
  }
  .about_img img {
    max-width: 100%;
  }
}
@media screen and (max-width: 499px) {
  .about_bg02 {
    height: 250px;
  }
}



/*----------------------------------------
	location
----------------------------------------*/
.location_tate {
  width: 1px;
  height: 200px;
  background: #000;
  margin: 0 auto;
}
.location_inner {width: 50%;}

@media screen and (max-width: 768px) {
  .location_tate {
    height: 100px;
  }
  .location_inner { width: 100%; }
  .location_img img {
    display: block;
    margin: 0 auto;
  }
  .location_top { gap: 30px; }
}
@media screen and (max-width: 599px) {
  
}
.location_list_frame {padding: 1vw;}
.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;
}
.list_kuhaku {
  border-bottom: none !important;
  height: calc(1.5rem + 2.4em + 1px);
}
@media screen and (max-width: 999px) {
  .box500.num_location {
    width: calc(400 * 100% / 1040);
  }
}
@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;
  }
  .list_kuhaku {
    height: 0;
    padding: 0 !important;
  }
}



/*----------------------------------------
	access
----------------------------------------*/
.bg_access {background: #f5f0e7;}
.access_inner01 {width: 48%;}
.access_inner02 {width: 52%;}
.access_info img {max-width: 500px;}
.access_img img {max-width: 500px;}
.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,
  .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;
  line-height: 1.5;
}
.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: #425261;}
.contact_wrap {padding: 5em 0 5em;}
.contact_wrap p {letter-spacing: .1em;}
.contact_flex {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
@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: 1370px) {
  .foot_list li { font-size: 1.6rem; }
}
@media screen and (max-width: 1230px) {
  .foot_list li { font-size: 1.4rem; }
}
@media screen and (max-width: 1090px) {
  .foot_list li { font-size: 1.5rem; }
  .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);
}
