@charset "utf-8";

/* font */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap');
@import url('https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp-narrow.min.css');

/* reset */
* { padding: 0; margin: 0; box-sizing: border-box; }
table { border-collapse: collapse; border-spacing: 0; }
fieldset, img { border: 0; }
address, caption, cite, code, dfn, em, var { font-style: normal; font-weight: normal; }
ol, ul { list-style: none; }
caption, th { text-align: left; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
q:before, q:after { content: ''; }
abbr, acronym { border: 0; }
section, article { display: block; }

/* iOS reset */
input[type=text] { border:none; -webkit-border-radius : 0; -webkit-appearance : none; -webkit-tap-highlight-color : rgba(0,0,0,0); }
input[type="submit"],
input[type="button"] { border-radius: 0; -webkit-box-sizing: content-box; -webkit-appearance: button; appearance: button; border: none; box-sizing: border-box; cursor: pointer; }
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration { display: none; }
input[type="submit"]::focus,input[type="button"]::focus { outline-offset: -2px; }
select { -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; outline: none; background: transparent; }
button,input[type="submit"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; border: none; outline: none; background: transparent; }
input[type="radio"] { display: none; }
input[type="radio"]:checked + label { background: #ff0000; }

/* base */
html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; }
body {
  -webkit-font-smoothing: auto; -webkit-font-feature-settings: 'palt'; font-feature-settings: 'palt';
  word-wrap : break-word; overflow-wrap : break-word; font-kerning: normal; -webkit-font-kerning: normal;
  font-family: YakuHanJP_Narrow,'Zen Kaku Gothic New',YuGothic, "Yu Gothic", "游ゴシック", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 15px; text-align: center; letter-spacing: 0.1em; font-weight: 500;
  box-sizing: border-box; background-color: #FFF; color: #000; padding: 0; margin: 0; }
img { vertical-align: bottom; height: auto; width: 100%; pointer-events: none; }
::selection { background: #000; color: #FFF; }
::-moz-selection { background: #000; }

/* iOS */
input[type="submit"],input[type="button"] { border-radius: 0; -webkit-box-sizing: content-box; -webkit-appearance: button; appearance: button; border: none; box-sizing: border-box; cursor: pointer; }
input[type="submit"]::-webkit-search-decoration,input[type="button"]::-webkit-search-decoration { display: none; }
input[type="submit"]::focus,input[type="button"]::focus { outline-offset: -2px; }
select { -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; outline: none; background: transparent; }
button,input[type="submit"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; border: none; outline: none; background: transparent; }
input[type="radio"] { display: none; }
input[type="radio"]:checked + label { background: #ff0000; }

/* link */
a:link, a:visited, a:active { color: #000; text-decoration: none; word-break: break-all !important; transition: 0.2s linear; }
a:hover { color: #000; text-decoration: none; }
a:link img { transition: 0.2s linear; }
a:hover img { -webkit-filter: brightness(110%); -moz-filter: brightness(110%); -o-filter: brightness(110%); -ms-filter: brightness(110%); filter: brightness(110%); }

/* clear */
.clear { clear: both; }
.cbox { zoom: 100%; }
.cbox:after { content: ""; clear: both; height: 0; display: block; visibility: hidden; }

/* flex */
.flex { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
.fill { object-fit: cover; font-family: 'object-fit: cover;'; }

/* options */
.r { border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%; overflow: hidden; }
.rl { -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; font-feature-settings : "pkna"; }
.pc { display:block !important; }
.sp { display:none !important; }
.pcbr { display:block !important; }
.spbr { display:inline !important; }
.pc_inline { display:inline !important; }
.sp_inline { display:none !important; }
.sp_menu { display:none !important; }
.orientation { display:none; }
.landscape { display:none; }

/* youtube */
.youtube { position: relative; width: 100%; padding-top: 56.25%; }
.youtube iframe { position: absolute; top: 0; right: 0; width: 100% !important; height: 100% !important; }

/* scrollbar */
body { -ms-overflow-style: none; scrollbar-width: none; }
body::-webkit-scrollbar { display: none; }

/* loader */
#loader-bg { position: fixed; width: 100%; height: 100vh; top: 0; left: 0; background: #ffffff; z-index: 7777; display: grid; place-items: center; }
#loader { opacity: 0; width:20%; }
#home #loader { opacity: 0; width:35%; }

/* cWrap */
.cWrap { min-width: 1025px; margin:auto; }

/* scroll */
#scroll { opacity: 0; z-index: 77; position: relative; border-left:solid 0.5px #333; height:5vw; position: absolute; right:2.75rem; bottom:2.75rem; }
#scroll span { color:#333; font-size: 0.7em; line-height: 1; position: absolute; top:-6em; left:-0.5em; -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; font-feature-settings : "pkna"; }

/* cMain */
.cMain .cMain_cover { position: relative; margin:auto; }
.cMain .cMain_cover .cMain_cover_good { width:28%; right:0; top:3em; position: absolute; z-index: 999; padding:0 5%; }
.cMain .cMain_cover .cMain_cover_lead { width:28%; right:0; bottom:2em; position: absolute; z-index: 999; }
.cMain .cMain_cover .cMain_cover_lead p { margin:auto; white-space: nowrap; font-size: 1.2em; font-weight: 400; line-height: 2.4em; letter-spacing: 0.15em; text-align: left; font-family: 'Zen Kaku Gothic New', YuGothic, "Yu Gothic", "游ゴシック", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; font-feature-settings : "pkna"; }
.cMain .cMain_movie { width:72%; margin: 6em 0 8em 0; }
.cMain .cMain_goodhouse { width:18%; margin:15em auto; }
.cMain .cMain_goodhouse a { display:block; }
.cMain .cMain_list { margin:auto; }
.cMain .cMain_list ul { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }
.cMain .cMain_list ul li { width:33.333%; margin:0 0 6rem 0; }
.cMain .cMain_list ul li .cMain_list__item_thumb { margin:0 0 2em 0; }
.cMain .cMain_list ul li .cMain_list__item_story { font-size: 1.1em; font-weight: 400; line-height: 1.5; margin:0 0 1em 0; }
.cMain .cMain_list ul li .cMain_list__item_title { font-size: 1.4em; font-weight: 400; line-height: 1.5; }
.cMain .cMain_story { min-height: 100vh; position: relative; display: grid; place-items: center; }
.cMain .cMain_story .cMain_story__item { height:100vh; display: grid; place-items: center; }
.cMain .cMain_story .cMain_story__item { opacity: 0; position: absolute; top:0; left:0; right: 0; }
.cMain .cMain_story .cMain_story__item.cMain_story__item__top { opacity: 1; }
.cMain .cMain_story .cMain_story__item img { object-fit: cover; font-family: 'object-fit: cover;'; width:100%; height:100%; }
.cMain .cMain_story .cMain_story__item img.item__l { object-position: 60% 50%; }
.cMain .cMain_story .cMain_story__item img.item__ll { object-position: 70% 50%; }
.cMain .cMain_story .cMain_story__item img.item__lll { object-position: 80% 50%; }
.cMain .cMain_story .cMain_story__item img.item__llll { object-position: 90% 50%; }
.cMain .cMain_story .cMain_story__item img.item__lllll { object-position: 100% 50%; }
.cMain .cMain_story .cMain_story__item img.item__r { object-position: 40% 50%; }
.cMain .cMain_story .cMain_story__item img.item__rr { object-position: 30% 50%; }
.cMain .cMain_story .cMain_story__item img.item__rrr { object-position: 20% 50%; }
.cMain .cMain_story .cMain_story__item img.item__rrrr { object-position: 10% 50%; }
.cMain .cMain_story .cMain_story__item img.item__rrrrr { object-position: 0% 50%; }
.cMain .cMain_story .cMain_story__item img.item__l_t { object-position: 60% 70%; }
.cMain .cMain_story .cMain_story__item img.item__ll_t { object-position: 70% 70%; }
.cMain .cMain_story .cMain_story__item img.item__lll_t { object-position: 80% 70%; }
.cMain .cMain_story .cMain_story__item img.item__llll_t { object-position: 90% 70%; }
.cMain .cMain_story .cMain_story__item img.item__lllll_t { object-position: 100% 70%; }
.cMain .cMain_story .cMain_story__item img.item__r_t { object-position: 40% 70%; }
.cMain .cMain_story .cMain_story__item img.item__rr_t { object-position: 30% 70%; }
.cMain .cMain_story .cMain_story__item img.item__rrr_t { object-position: 20% 70%; }
.cMain .cMain_story .cMain_story__item img.item__rrrr_t { object-position: 10% 70%; }
.cMain .cMain_story .cMain_story__item img.item__rrrrr_t { object-position: 0% 70%; }
.cMain .cMain_story .cMain_story__item img.item__l_b { object-position: 60% 30%; }
.cMain .cMain_story .cMain_story__item img.item__ll_b { object-position: 70% 30%; }
.cMain .cMain_story .cMain_story__item img.item__lll_b { object-position: 80% 30%; }
.cMain .cMain_story .cMain_story__item img.item__llll_b { object-position: 90% 30%; }
.cMain .cMain_story .cMain_story__item img.item__lllll_b { object-position: 100% 30%; }
.cMain .cMain_story .cMain_story__item img.item__r_b { object-position: 40% 30%; }
.cMain .cMain_story .cMain_story__item img.item__rr_b { object-position: 30% 30%; }
.cMain .cMain_story .cMain_story__item img.item__rrr_b { object-position: 20% 30%; }
.cMain .cMain_story .cMain_story__item img.item__rrrr_b { object-position: 10% 30%; }
.cMain .cMain_story .cMain_story__item img.item__rrrrr_b { object-position: 0% 30%; }
.cMain .cMain_story .cMain_story__item p { font-size: 1.3em; font-weight: 400; line-height: 2.4; letter-spacing: 0.15em; text-align: left; font-family: 'Zen Kaku Gothic New', YuGothic, "Yu Gothic", "游ゴシック", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; font-feature-settings : "pkna"; }
.cMain .cMain_story .cMain_story__item__l2 { width:80%; height:100vh; margin:auto; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
.cMain .cMain_story .cMain_story__item__sep { width:86%; height:100vh; margin:auto; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_full { width: 100%; height:100vh; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_mid { width:100%; height:100vh; padding:3rem; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_cover { width:100%; height:100vh; padding:5.5rem; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_half { width:40vw; height:40vw; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_sep { width:40vw; height:40vw; }
.cMain .cMain_story .cMain_story__item .cMain_story__txt_full { width:100%; display: grid; place-items: center; }
.cMain .cMain_story .cMain_story__item .cMain_story__txt_half { width:30vw; display: grid; place-items: center; }
.cMain .cMain_story_ex { text-align: center; margin: 8rem auto 15rem auto; }
.cMain .cMain_story_ex .cMain_story_ex_story { font-size: 1.1em; font-weight: 400; line-height: 1.5; margin:0 0 1.5em 0; }
.cMain .cMain_story_ex .cMain_story_ex_title { font-size: 2.4em; font-weight: 400; line-height: 1.5; margin:0 0 2em 0; }
.cMain .cMain_story_ex .cMain_story_ex_txt { width:40%; margin:auto; }
.cMain .cMain_story_ex .cMain_story_ex_txt p { font-size: 1.3em; font-weight: 400; line-height: 2; letter-spacing: 0.05em; ; text-align:justify; }

/* cFooter */
.cFooter .cFooter__inner { padding:0 0 8em 0; margin:auto; }
.cFooter .cFooter__inner .cFooter__banner { margin: 8em auto; }
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__txt { font-size: 1.2em; font-weight: 400; line-height: 2; }
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__txt p {  }
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__fig { width: 30%; margin: 2.5em auto 5em auto; }
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__btn a { border:solid 1px #000; border-radius: 2em; ; padding:0.75em 3em; font-size: 1.2em; font-weight: 400; line-height: 1.5; }
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__btn a:hover { border: solid 1px #000; background-color: #000; color: #ffffff; }
.cFooter .cFooter__inner .logo { width:30vw; margin: 5em auto; }
.cFooter .cFooter__inner .logo a { display:block; }
.cFooter .cFooter__inner nav ul { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; }
.cFooter .cFooter__inner nav ul li { font-size: 1.1em; font-weight: 400; line-height: 1; margin:0 0; padding:0 1em; border-left:solid 1px #333; }
.cFooter .cFooter__inner nav ul li:last-child { border-right:solid 1px #333; }

/* tablet */
@media screen and (max-width: 1024px) {

/* options */
.pc { display:none !important; }
.tb { display:block !important; }
.sp { display:none !important; }
.pcbr { display:inline !important; }
.tbbr { display:block !important; }
.spbr { display:inline !important; }
.pc_inline { display:none !important; }
.tb_inline { display:inline !important; }
.sp_inline { display:none !important; }
.landscape { font-size: 1.4em; line-height: 1em; font-weight: 400; text-align: center; position: fixed; top:0; left:0; width:100%; height:100vh; height:100dvh; background-color: #fff; z-index: 999; display: flex; justify-content: center; align-items: center; }

/* cWrap */
.cWrap { min-width: 1024px; margin:auto; }

/* scroll */
#scroll span { font-size: 1em; }

/* loader */
#loader-bg { height: 100svh; }
#loader { width:38%; }
#home #loader { width:55%; }

/* cMain */
.cMain .cMain_cover .cMain_cover_good { width:38%; margin: 1em auto; padding: 8em 0 6em 0; position: static; }
.cMain .cMain_cover .cMain_cover_lead { width:100%; margin:8em auto; position: static; }
.cMain .cMain_cover .cMain_cover_lead p { font-size: 2em; line-height: 2.5em; }
.cMain .cMain_movie { width:100%; padding:0; margin: 0 auto; }
.cMain .cMain_goodhouse { width:30%; margin:8rem auto 9rem auto; }
.cMain .cMain_list ul li { width:50%; }
.cMain .cMain_list ul li .cMain_list__item_story { font-size: 1.4em; }
.cMain .cMain_list ul li .cMain_list__item_title { font-size: 1.8em; }
.cMain .cMain_story { min-height: 100svh; }
.cMain .cMain_story .cMain_story__item { height:100svh; }
.cMain .cMain_story .cMain_story__item p { font-size: 1.8em; }
.cMain .cMain_story .cMain_story__item__l2 { width:100%; height:100svh; }
.cMain .cMain_story .cMain_story__item__sep { width:80%; height:100svh; padding: 7vh 0; padding: 7svh 0; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_full { height: 65vh; height:65svh; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_mid {height: 50vh; height:50svh; padding:0; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_cover { height: 50vh; height:50svh; padding:0; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_half { width:100%; height: 50vh; height:50svh; }
.cMain .cMain_story .cMain_story__item .cMain_story__photo_sep { width:100%; height: 40vh; height:40svh; }
.cMain .cMain_story .cMain_story__item .cMain_story__txt_full { height: 100vh; height: 100svh; }
.cMain .cMain_story .cMain_story__item .cMain_story__txt_half { width:100%; height: 50vh; height: 50svh; }
.cMain .cMain_story_ex .cMain_story_ex_story { font-size: 1.6em; }
.cMain .cMain_story_ex .cMain_story_ex_title { font-size: 3em; }
.cMain .cMain_story_ex .cMain_story_ex_txt { width:60%; }
.cMain .cMain_story_ex .cMain_story_ex_txt p { font-size: 1.8em; line-height: 1.8; }

/* cFooter */
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__fig { width: 50%; }
.cFooter .cFooter__inner .logo { width:50%; }

}

/* sp */
@media screen and (max-width: 599px) {
body { font-size: 12px; }

/* options */
.pc { display:none !important; }
.tb { display:none !important; }
.sp { display:block !important; }
.pcbr { display:inline !important; }
.tbbr { display:inline !important; }
.spbr { display:block !important; }
.pc_inline { display:none !important; }
.tb_inline { display:none !important; }
.sp_inline { display:inline !important; }

/* loader */
#loader { width:60%; }
#home #loader { width:80%; }

/* scroll */
#scroll { height:12vw; right:5vw; bottom:5vw; }
#scroll span { font-size: 0.7em; }

/* cWrap */
.cWrap { min-width:0; }

/* cMain */
.cMain .cMain_cover .cMain_cover_good { width:60%; margin: 1em auto; padding: 3rem 0; }
.cMain .cMain_cover .cMain_cover_lead { margin:5em auto; }
.cMain .cMain_cover .cMain_cover_lead p { font-size: 1.3em; line-height: 2.5em; }
.cMain .cMain_goodhouse { width:60%; margin:6rem auto; }
.cMain .cMain_list ul { display: flex; flex-direction: column; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }
.cMain .cMain_list ul li { width:100%; margin:0 0 5rem 0; }
.cMain .cMain_list ul li .cMain_list__item_story { font-size: 1.1em; }
.cMain .cMain_list ul li .cMain_list__item_title { font-size: 1.4em; }
.cMain .cMain_story .cMain_story__item p { font-size: 1.3em; line-height: 2.4; }
.cMain .cMain_story_ex .cMain_story_ex_story { font-size: 1.1em; }
.cMain .cMain_story_ex .cMain_story_ex_title { font-size: 1.8em; }
.cMain .cMain_story_ex .cMain_story_ex_txt { width:80%; }
.cMain .cMain_story_ex .cMain_story_ex_txt p { font-size: 1.2em; }

/* cFooter */
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__txt { font-size: 1.2em; font-weight: 400; line-height: 2; }
.cFooter .cFooter__inner .cFooter__banner .cFooter__banner__fig { width: 80%; margin: 3em auto 4em auto; }
.cFooter .cFooter__inner .logo { width:60%; margin: 5em auto; }
.cFooter .cFooter__inner nav ul { display: flex; flex-direction: column-reverse; flex-wrap: wrap; justify-content: center; align-items: center; }
.cFooter .cFooter__inner nav ul li { width:60%; font-size: 1.2em; margin:0.75em 0; border-left:solid 1px #333; border-right: solid 1px #333; }

}

@media screen and (max-width: 374px) {
body { font-size: 11px; }
}
@media screen and (min-width: 600px) and (max-width: 1280px) {
body { font-size: 12px; }
}
@media screen and (min-width: 1281px) and (max-width: 1300px) {
body { font-size: 12.18px; }
}
@media screen and (min-width: 1301px) and (max-width: 1325px) {
body { font-size: 12.36px; }
}
@media screen and (min-width: 1326px) and (max-width: 1350px) {
body { font-size: 12.54px; }
}
@media screen and (min-width: 1351px) and (max-width: 1375px) {
body { font-size: 12.72px; }
}
@media screen and (min-width: 1376px) and (max-width: 1400px) {
body { font-size: 12.9px; }
}
@media screen and (min-width: 1401px) and (max-width: 1425px) {
body { font-size: 13.08px; }
}
@media screen and (min-width: 1426px) and (max-width: 1450px) {
body { font-size: 13.26px; }
}
@media screen and (min-width: 1451px) and (max-width: 1475px) {
body { font-size: 13.44px; }
}
@media screen and (min-width: 1476px) and (max-width: 1500px) {
body { font-size: 13.62px; }
}
@media screen and (min-width: 1501px) and (max-width: 1525px) {
body { font-size: 13.8px; }
}
@media screen and (min-width: 1526px) and (max-width: 1550px) {
body { font-size: 13.98px; }
}
@media screen and (min-width: 1551px) and (max-width: 1575px) {
body { font-size: 14.16px; }
}
@media screen and (min-width: 1576px) and (max-width: 1600px) {
body { font-size: 14.34px; }
}
@media screen and (min-width: 1601px) and (max-width: 1625px) {
body { font-size: 14.52px; }
}
@media screen and (min-width: 1626px) and (max-width: 1650px) {
body { font-size: 14.7px; }
}
@media screen and (min-width: 1651px) and (max-width: 1675px) {
body { font-size: 14.88px; }
}
@media screen and (min-width: 1676px) and (max-width: 1700px) {
body { font-size: 15px; }
}
@media screen and (min-width: 1701px) and (max-width: 1800px) {
body { font-size: 16px; }
}
@media screen and (min-width: 1801px) and (max-width: 1900px) {
body { font-size: 17px; }
}
@media screen and (min-width: 1901px) {
body { font-size: 18px; }
}

/* movie */
.video-container { z-index: 0; position: relative; width: 100%; height:0; padding-bottom: 56.25%; }
.video-container::before { content: ""; z-index: 777; position: absolute; top:-1px; bottom:-1px; left: 0; right:-1px; width:calc(100%+2px); height:calc(100%+2px); border:solid 2px #fff; border-left:none; pointer-events: none; }
.video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#video-overlay { position: absolute; top: 10%; left: 0; width: 100%; height: 80%; background-color:transparent; z-index: 10; pointer-events: auto; }

@media screen and (max-width: 1024px) {
.video-container { z-index: 0; padding-bottom: 56.25%; margin: 0 0 0 0; }
.video-container::before { display:none; }
}

@media screen and (max-width: 599px) {
.video-container { z-index: 0; padding-bottom: 100%; margin: 0 0 0 0; }
.video-container::before { display:none; }
}
