/******************************* Preface ***************************************/
a:hover { color: #ff904b; }

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

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 #video-background, 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: 40%; left: 7%; color: #ffffff; transform: translate(0, -50%); }

body header .vi_wrapper.vi_wrapper_top .mainVi .title h2 { font-weight: bold; font-size: 2.5rem; line-height: 1.5; margin-bottom: 1rem; }

body header .vi_wrapper.vi_wrapper_top .mainVi .title h3 { font-size: 1.1rem; }

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

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 .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: 2rem; margin-bottom: .5rem; }

body header .vi_wrapper.vi_wrapper_backpart .mainVi .title h2 .sub { font-size: 1.1rem; }

body header.header-01 .inner .logo { max-width: 260px; width: 56%; }

body header.header-01 .inner .menu-wrapper .gnav { right: -80%; width: 80%; }

body header.header-01 .inner .menu-wrapper .toggle-btn { display: block; position: fixed; top: 2.5%; right: 20px; width: 35px; height: 20px; 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: 100%; height: 3px; }

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 .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: 20px; -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 .mainvi { width: 100%; height: 100%; position: relative; z-index: -1; }

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 span { font-family: "Montserrat", sans-serif; display: block; padding-bottom: 1.5rem; font-size: 7vw; font-weight: 700; text-align: center; line-height: 1; }

body header.header-01 .mainvi .copy h1 span.sub { font-size: 3.5vw; font-weight: 500; }

body .content-wrap { padding: 3rem 1.5rem; }

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

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

body .content-wrap.inner-l { max-width: 100%; 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 { text-align: center; margin-bottom: 3rem; }

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: 2rem; 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: unset !important; font-size: 3.5rem; font-weight: 300; letter-spacing: 3px; text-align: center; margin-bottom: 2rem; }

body .content-wrap.content-wrap-about .content_ttl { text-align: center; font-size: 1.4rem; margin-bottom: 2rem; }

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

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

body .content-wrap.content-wrap-about .box .thumb { width: 100%; padding-left: 0; }

body .content-wrap.content-wrap-company .box { display: block; }

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

body .content-wrap.content-wrap-map .box { display: block; }

body .content-wrap.content-wrap-map .map { width: 100%; text-align: center; margin-bottom: 2.5rem; }

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

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

body .content-wrap .table tr th { width: 30%; padding: 1.5rem 0; }

body .content-wrap .table tr td { padding: 1.5rem 0; }

body .content-wrap .map { aspect-ratio: 2/1; }

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

body footer.footer-01 .inner { padding: 3rem 1.5rem; }

body footer.footer-01 .inner .head .logo img { display: block; padding-bottom: 2rem; width: 55%; margin: 0 auto; }

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