@charset "UTF-8";
/******************************* Preface ***************************************/
a:hover { color: #ff904b; }

/********************************* body ***************************************/
body { /******************************** header **************************************/ /********************************  Main Content ******************************/ /***********************************  footer ********************************/ }

body header { position: relative; }

body header .vi_wrapper { position: relative; }

body header .vi_wrapper.vi_wrapper_top .mainVi { width: 100%; height: 90vh; }

body header .vi_wrapper.vi_wrapper_top .mainVi .mv, body header .vi_wrapper.vi_wrapper_top .mainVi .mask { position: fixed; top: 0; left: 0; min-width: 100%; min-height: 100%; width: auto; height: auto; z-index: -2; }

body header .vi_wrapper.vi_wrapper_top .mainVi .mask { width: 100%; height: 100%; background: rgba(0, 0, 0, 0.2); }

body header .vi_wrapper.vi_wrapper_top .mainVi .title { position: absolute; top: 50%; left: 50%; color: #ffffff; transform: translate(-50%, -50%); padding: .5rem 2rem; }

body header .vi_wrapper.vi_wrapper_top .mainVi .title h2 { font-weight: bold; font-size: 1.875rem; line-height: 1.4; letter-spacing: .5rem; margin-bottom: 0; background: #ff904b; padding: .8rem 4rem; }

body header .vi_wrapper.vi_wrapper_backpart .mainVi { width: 100%; height: 40vh; }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .mv, body header .vi_wrapper.vi_wrapper_backpart .mainVi .mask { position: fixed; top: 0; left: 0; min-width: 100%; min-height: 100%; width: auto; height: auto; z-index: -2; }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .mask { background: rgba(0, 0, 0, 0.1); }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .title { position: absolute; top: 50%; left: 0; right: 0; margin: auto; color: #ffffff; transform: translate(0, -50%); }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .title h2 { font-weight: bold; }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .title h2 .main { font-size: 2.8rem; display: block; letter-spacing: .2rem; font-weight: bold; margin-bottom: .5rem; }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .title h2 .sub { display: block; font-size: 1rem; letter-spacing: .2rem; }

body header.header-01 { position: relative; z-index: 100; }

body header.header-01.top { height: 100vh; }

body header.header-01 .inner { position: fixed; width: 100%; display: flex; justify-content: flex-end; align-items: center; padding: 1.5rem; z-index: 100; }

body header.header-01 .inner .logo { margin-right: auto; flex: none; max-width: 260px; }

body header.header-01 .inner .logo a { display: block; }

body header.header-01 .inner .logo a img { width: 100%; display: block; margin: 0 auto; }

body header.header-01 .inner .menu-wrapper { margin-right: 4.8rem; }

body header.header-01 .inner .menu-wrapper .gnav { display: block; position: fixed; top: 0; right: -400px; bottom: 0; width: 400px; padding: 8rem 1rem; background: rgba(0, 0, 0, 0.8); overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; transition: all .5s; z-index: 3; opacity: 0; margin-right: 0; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container { width: 100%; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu { display: flex; flex-wrap: nowrap; flex-direction: column; align-items: flex-end; justify-content: center; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu > .menu-item { position: static; width: 100%; height: auto; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu > .menu-item:nth-child(n+1) { margin-left: auto; border-top: 1px solid #a9a9a9; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu > .menu-item:last-child { margin-left: auto; border-bottom: 1px solid #a9a9a9; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu li a { position: relative; display: block; padding: 1rem; font-size: 1.4rem; font-weight: bold; color: white; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu li a > span { font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", sans-serif; display: block; font-weight: normal; color: white; }

body header.header-01 .inner .menu-wrapper .gnav .menu-container .menu li a::after { position: absolute; top: 50%; right: 1rem; bottom: auto; left: auto; transform: translateY(-50%); content: ''; display: block; background-image: url(../img/arrow_.svg); background-position: center; background-repeat: no-repeat; background-size: contain; width: 14px; height: 23px; }

body header.header-01 .inner .menu-wrapper .toggle-btn { display: block; position: fixed; top: 25px; right: 25px; width: 45px; height: 50px; transition: all .5s; cursor: pointer; z-index: 3; }

body header.header-01 .inner .menu-wrapper .toggle-btn span { display: block; position: absolute; left: 0; width: 45px; height: 3px; border-radius: 3px; background-color: #fff; transition: all .5s; }

\
 body header.header-01 .inner .menu-wrapper .toggle-btn span:nth-child(1) { top: 5px; }

body header.header-01 .inner .menu-wrapper .toggle-btn span:nth-child(2) { top: 20px; }

body header.header-01 .inner .menu-wrapper.menu-open .gnav { right: 0; opacity: 1; }

body header.header-01 .inner .menu-wrapper.menu-open .toggle-btn { margin-top: 0; }

body header.header-01 .inner .menu-wrapper.menu-open .toggle-btn span { background-color: #fff; }

body header.header-01 .inner .menu-wrapper.menu-open .toggle-btn span:nth-child(1) { -webkit-transform: translateY(12px) rotate(-315deg); transform: translateY(12px) rotate(-315deg); }

body header.header-01 .inner .menu-wrapper.menu-open .toggle-btn span:nth-child(2) { top: 16px; -webkit-transform: translateY(-3px) rotate(315deg); transform: translateY(-3px) rotate(315deg); }

body header.header-01 .inner .menu-wrapper.menu-open .toggle-btn span.scroll { background-color: #000000; }

body header.header-01 .inner .menu-wrapper.menu-open #mask { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #000; opacity: .5; z-index: 2; cursor: pointer; }

body header.header-01 .inner .menu-wrapper #mask { display: none; transition: all .3s; }

body header.header-01 .mainvi { width: 100%; height: 100%; position: relative; z-index: -1; }

body header.header-01 .mainvi.mask.dark .slider div { filter: brightness(70%); }

body header.header-01 .mainvi.mask.dark .copy h1 span { color: white; }

body header.header-01 .mainvi.mask.white .slider div { filter: opacity(60%); }

body header.header-01 .mainvi.mask.white .copy h1 span { color: black; }

body header.header-01 .mainvi .slider { height: 100%; width: 100%; }

body header.header-01 .mainvi .slider div { width: 100%; height: 100%; background-repeat: no-repeat; background-position: bottom center; background-size: cover; }

body header.header-01 .mainvi .copy { position: absolute; display: flex; align-items: center; justify-content: center; top: 0; left: 0; height: 100%; width: 100%; }

body header.header-01 .mainvi .copy h1 { width: 100%; }

body header.header-01 .mainvi .copy h1 span { font-family: "Montserrat", sans-serif; display: block; padding-bottom: 1.5rem; font-size: 4vw; font-weight: 700; text-align: center; line-height: 1; }

body header.header-01 .mainvi .copy h1 span.sub { font-size: 1.1rem; font-weight: 500; line-height: 2; }

@media screen and (max-width: 1200px) { body header.header-01 .mainvi .copy h1 span { font-size: 3.5rem; }
		body header.header-01 .mainvi .copy h1 span.sub { font-size: 1.2rem; } }

body .content-wrap { padding: 4rem 2rem; }

body .content-wrap .inner.inner-s { max-width: 840px; margin: 0 auto; }

body .content-wrap .inner.inner-m { max-width: 960px; margin: 0 auto; }

body .content-wrap .inner.inner-l { max-width: 1080px; margin: 0 auto; }

body .content-wrap h1.section-title, body .content-wrap h2.section-title, body .content-wrap h3.section-title, body .content-wrap h4.section-title, body .content-wrap h5.section-title, body .content-wrap h6.section-title { margin-bottom: 3.5rem; }

body .content-wrap h1.section-title span, body .content-wrap h2.section-title span, body .content-wrap h3.section-title span, body .content-wrap h4.section-title span, body .content-wrap h5.section-title span, body .content-wrap h6.section-title span { display: block; }

body .content-wrap h1.section-title span.main, body .content-wrap h2.section-title span.main, body .content-wrap h3.section-title span.main, body .content-wrap h4.section-title span.main, body .content-wrap h5.section-title span.main, body .content-wrap h6.section-title span.main { font-size: 2.8rem; font-weight: bold; margin-bottom: .5rem; }

body .content-wrap h1.section-title span.sub, body .content-wrap h2.section-title span.sub, body .content-wrap h3.section-title span.sub, body .content-wrap h4.section-title span.sub, body .content-wrap h5.section-title span.sub, body .content-wrap h6.section-title span.sub { font-size: 1.1rem; font-weight: bold; }

body .content-wrap h1.section-title-02, body .content-wrap h2.section-title-02, body .content-wrap h3.section-title-02, body .content-wrap h4.section-title-02, body .content-wrap h5.section-title-02, body .content-wrap h6.section-title-02 { writing-mode: vertical-rl; color: #4C4948; font-size: 6.5rem; font-weight: 300; letter-spacing: 5px; }

body .content-wrap.content-wrap-about .content_ttl { font-size: 1.5rem; font-weight: bold; margin-bottom: 2rem; }

body .content-wrap.content-wrap-about .box { display: flex; }

body .content-wrap.content-wrap-about .box .text { width: 50%; }

body .content-wrap.content-wrap-about .box .thumb { width: 50%; padding-left: 4rem; }

body .content-wrap.content-wrap-company .box { display: flex; justify-content: space-between; }

body .content-wrap.content-wrap-company .box .table { width: 85%; }

body .content-wrap.content-wrap-map .box { display: flex; justify-content: space-between; }

body .content-wrap.content-wrap-map .map { width: 48%; text-align: center; }

body .content-wrap.content-wrap-map .map .map_ttl { font-weight: bold; margin-bottom: 1rem; font-size: 1.5rem; }

body .content-wrap.content-wrap-map .map .map_txt { margin-top: 1rem; }

body .content-wrap .table tr th { width: 28%; padding: 1.5rem 0; color: #fff; border-top: 1px solid #4C4948; }

body .content-wrap .table tr td { padding: 1.5rem 0; color: #fff; border-top: 1px solid #4C4948; }

body .content-wrap .map { aspect-ratio: 16/8; }

body .content-wrap .map iframe { width: 100%; height: 100%; max-height: 500px; }

body footer.footer-01 .inner { background: #000; padding: 4rem 0; }

body footer.footer-01 .inner .head .logo img { display: block; width: 100%; max-width: 260px; margin: 0 auto; padding-bottom: 1.5rem; }

body footer.footer-01 .inner .head .name { font-size: 1.2rem; font-weight: bold; padding-bottom: .5rem; }

body footer.footer-01 .copyright { background: #ff904b; color: white; padding: 1rem 0; font-size: .85rem; letter-spacing: 1.6px; }
