@import url('/css/fontawesome-all.css');
@import url('/css/font-awesome.min.css');
@import url('/css/fontawesome.min.css');
@import url('/css/all.min.css');
@import url('/css/SeoJump.css');
@import url('/css/contentBuilder.css');
@import url('root.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;200;300;400;500;600;700;800;900&family=Noto+Sans+TC:wght@100;200;300;400;500;600;700;800;900&family=Jost:wght@100;200;300;400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&family=Cormorant:ital,wght@0,300..700;1,300..700&family=Didact+Gothic&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Noto+Serif+TC:wght@200..900&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap');

*, ::after, ::before { margin: 0; padding: 0; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -webkit-transition: all .2s linear; -moz-transition: all .2s linear; transition: all .2s linear; }
*:focus { outline:  none; }

body { overflow-x: hidden; overflow-y: overlay; margin: 0; min-height: 100vh; }
body::-webkit-scrollbar { width: 13px; }
body::-webkit-scrollbar-track { background: none; }
body::-webkit-scrollbar-thumb { border-radius: 8px; border: 4px solid transparent; background-clip: content-box; background-color: var(--g_200); }
body::-webkit-scrollbar-thumb:hover { background-color: var(--g_300); }

header , footer , div , nav , article , hr , p , form , label , input , button , select , textarea , ul , li , img , svg , span , font , strong , b , a , i {text-align: left;vertical-align: middle;word-wrap: break-word;word-break: break-word;line-height: 1.7;border-width: 0;font-family: var(--font-family), sans-serif;font-size: 16px;color: var(--g_charcoal);}

h1, h2, h3, h4, h5, h6 { word-wrap: break-word; word-break: break-word; line-height: 1.7; font-family: var(--font-family), sans-serif; color: var(--info); }
h1 *, h2 *, h3 *, h4 *, h5 *, h6 * { font-size: inherit; }
h1, .h1 { font-weight: bold; font-size: 2em; }
h2, .h2 { font-weight: bold; font-size: 1.5em; }
h3, .h3 { font-weight: bold; font-size: 1.17em; }
h4, .h4 { font-weight: bold; font-size: 1em; }
h5, .h5 { font-weight: bold; font-size: .83em; }
h6, .h6 { font-weight: bold; font-size: .67em; }

ul , ol { list-style: none; }

fieldset { border: 0; }
input , select , textarea {padding: .5em 1em;width: 100%;background-clip: padding-box;border: 1px solid var(--g_200);border-radius: .2em;box-shadow: none;-webkit-appearance: none;-moz-appearance: none;appearance: none;background: none;}
select {background: url("data:image/svg+xml,%3Csvg viewBox='0 0 15 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 5l-6.5 7L1 5' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat calc(100% - .5em) 50% / auto .5em;}
button { background: none; border: 0; box-shadow: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer; }
input::-webkit-outer-spin-button , input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
input[type=number] { -moz-appearance: textfield; }
input[type="password"] { font-family: auto; }
input[type="radio"] , input[type="checkbox"] { width: auto; -webkit-appearance: auto; -moz-appearance: auto; appearance: auto; }

/* img */
img { max-width: 100%; }
.img_cover { object-fit: cover; }
.img_contain { object-fit: contain; }

a , a:link , a:visited , a:hover { display: inline-block; text-decoration: none; white-space: pre-wrap; }

/* general class set */
.txt_clamp { overflow: hidden; height: 1.5em; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.d_inblock.txt_clamp { display: -webkit-inline-box; }
.atag_item { width: 100%; height: 100%; top: 0; left: 0; }

/* fancybox */
[class^="fancybox-"] , [class^="fancybox-"] * , .slick-track , .fa , .fas , .fa:before , .fas:before , .fa:after , .fas:after , .trans_none_box { -webkit-transition: none; -moz-transition: none; transition: none; }
.fancybox-infobar__body span { font-size: inherit; color: currentcolor; vertical-align: initial; }

/* webBox */
.webBox { position: relative; width: 100vw; min-height: 100vh; }
.webBox .pageh1 { position: absolute; top: 0; z-index: 1; }
.webBox .pageh1:before{content:'';width: 100%;height: 100%;background: #fff;position: absolute;top: 0;left: 0;}

.webBox .wrapper {position: relative;z-index: 2;background-image: url(/images/01/BG.jpg);background-repeat: repeat;background-position: 50% 50%;background-size: 100%;}

/* slick */
.webBox .slick-dotted.slick-slider { margin-bottom: 0; min-width: 100%; }
.webBox .slick-dotted .slick-track { min-width: 100%; }

/* workframe */
.workframe {margin: 0 auto;width: min(90%, var(--width-xl));}
.workframe_s { margin: 0 auto; width: min(95vw, var(--width-xl)); }

/* header */
header {position: fixed;width: 100%;z-index: 999;background-image: url(/images/01/BG.jpg);background-repeat: no-repeat;background-position: 50% 50%;background-size: cover;}
header .barBox {position: relative;padding: 23px 50px;width: 100vw;display: flex;z-index: 999;}
header .barBox a {display: inline-block;color: var(--info);}
header #cis {margin: 0 auto 0 0;display: flex;align-items: center;gap: 95px;}
header #cis img {width: 90px;object-fit: contain;}
header #cis p.s-visual__copy-en{font-family: "Arimo", serif;font-size: 12px;line-height: 1.5;}
header #cis p.s-visual__copy-ja{font-size: 17px;line-height: 1.5;margin-left: -25px;letter-spacing: 1px;font-weight: 300;}
header .rightBox{position:relative;}
header .rightBox >div { margin-left: 15px; display: inline-block; line-height: 50px; }
header .rightBox .language_menu{display:none;position:absolute;background-color:#fff;box-shadow:0 4px 8px rgba(0,0,0,0.1);padding: 10px 35px;z-index:1000;top: 50px;left: 0;margin: 0;}
header .rightBox .language_menu a.language{display:block;padding:8px 10px;color:#333;text-decoration:none;text-align: center;}
header .rightBox .language_menu a.language:hover{color: var(--primary);}
header .rightBox #openlanguage{background: var(--primary);display: inline-flex;align-items: center;color: white;);font-family: "Arimo", serif;font-size: 14px;font-weight: 200;border-radius: 0;padding: 13px 25px;margin-right: 23px;}
header .rightBox #openlanguage svg{fill:#fff;margin-left: 20px;}
header #searchBox form { position: absolute; background: rgb(0 0 0 / .7); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-size: 0; right: -500px; }
header #searchBox form input { padding: 5px 10px; width: 150px; background: none; display: inline-block; color: #fff; vertical-align: middle; }
header #searchBox form a { padding: 5px 10px; display: inline-block; vertical-align: middle; color: #fff; }
header #toolbar a { display: inline-block; }
header #menuIcon a {-webkit-transition: none;-moz-transition: none;-ms-transition: none;-o-transition: none;transition: none;display: inline-flex;flex-direction: column;align-items: center;}
header #menuIcon a font.btn {position: relative;width: 40px;height: 17px;display: inline-block;}
header #menuIcon a font{color:#1d201f;font-size: 12px;font-family: "Arimo", serif;text-align: center;}
header #menuIcon a font.btn span {position: absolute;width: 100%;height: 1px;background: var(--g_charcoal);display: block;top: calc(20% - 1px);right: 0;}
header #menuIcon a[data-type="1"] font.btn span:nth-child(2) {top: calc(80% - 1px);}
header #menuIcon a[data-type="1"] font.btn span { transition: transform .4s cubic-bezier(.215,.61,.355,1),opacity .4s cubic-bezier(.215,.61,.355,1), -webkit-transform .4s cubic-bezier(.215,.61,.355,1); }
header #menuIcon a[data-type="2"] font.btn span { transition: .4s cubic-bezier(.645,.045,.355,1); }
header #menuIcon a[data-type="2"] font.btn span:nth-child(1) {top: 50%;-webkit-transform: rotate(45deg);transform: rotate(15deg);}
header #menuIcon a[data-type="2"] font.btn span:nth-child(2) {top: 50%;-webkit-transform: rotate(-45deg);transform: rotate(-15deg);}
header #menuBox {overflow: hidden;position: fixed;padding: 0 5vw;width: 100vw;height: 0;background: url(/images/01/BG.jpg);right: 0;top: 0;opacity: 0;z-index: -1;display: flex;justify-content: center;align-items: center;}
header #menuBox[data-type="2"] {padding: 20vh 5vw;height: 100vh;font-size: 0;opacity: 1;z-index: 998;}
header #menuBox .box{width: 25%;display: flex;align-items: center;mask-image: url(/images/01/smoke_sprites.webp);padding-left: 2%;mask-size: 100% 4800%;mask-position: 0 0;}
header #menuBox .contactBox {border-left: 1px solid #c7c7c7;margin-left: 5%;padding-left: 5%;width: 27%;display: flex;flex-direction: column;justify-content: center;mask-image: url(/images/01/smoke_sprites.webp);padding-left: 2%;mask-size: 100% 4800%;mask-position: 0 0;}
header.open #menuBox .box, header.open #menuBox .contactBox{animation: mask-play 2s steps(47) .2s forwards}
@keyframes mask-play{from{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:0 100%;mask-position:0 100%}}
header #menuBox .box >ul {display:grid;grid-template-columns: repeat(2, 1fr);width: 100%;}
header #menuBox .box >ul >li { padding: 0 20px; }
header #menuBox .box >ul >li:last-child { border-bottom: 0; }
header #menuBox .box >ul >li >p ,
header #menuBox .box ul li .menu_body ul li .bo { position: relative; }
header #menuBox .box ul li .menu_body ,
header #menuBox .box ul li .menu_body >ul li .sub2Option ,
header #menuBox .box ul li .menu_body >ul li .sub3Option { margin-bottom: 15px; display: none; -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none; transition: none; }
header #menuBox .box >ul >li >p a {padding: 12px 0;display: flex;font-weight: 400;font-size: 20px;color: #403f41;line-height: 2;align-items: center;position: relative;}
header #menuBox .box >ul >li:first-child >p a:before, header #menuBox .box >ul >li:hover >p a:before{content:'';position: absolute;left: -30px;border: 1px solid #acacac;width: 13px;aspect-ratio: 1/1;border-radius: 50px;}
header #menuBox .box ul li b { position: absolute; padding: 5px 0; width: 23px; display: inline-block; text-align: center; color: #fff; top: calc((100% - 33px) / 2); right: 0; }
#menuBox .box ul li .menu_body >ul li .sub2Option { margin: 5px 0 15px; padding: 5px 15px; background: #3a3a3a; }
header #menuBox .box ul li .menu_body >ul li a { padding: 4px 0; display: block; font-size: 18px; color: #9b9b9b; }
header #menuBox .box ul li .menu_body .sub2Option a { color: #fff; }
header #menuBox .box ul li .menu_body .sub3Option a { color: #8b8b8b; }
header #menuBox .box ul li .menu_body .sub3Option a:before { content: "- "; }
header #menuBox .contactBox ul {padding: 20px 30px;}
header #menuBox .contactBox ul li {padding: 0 0 30px;}
header #menuBox .contactBox ul li:last-child { border-bottom: 0; }
header #menuBox .contactBox ul li h4 {font-weight: 500;font-size: 20px;color: #403f41;line-height: 2;letter-spacing: 0;}
header #menuBox .contactBox ul li p{display: flex;align-items: center;margin: 20px 0;}
header #menuBox .contactBox ul li p a {display: inline-block;font-size: 16px;}
header #menuBox .contactBox ul li p i {margin-right: 10px;font-size: 18px;display: inline-block;color: var(--secondary);}
header #menuBox .contactBox ul li.community a { margin: 15px 10px 5px 0; width: 40px; height: 40px; border: 1px #bbb solid; border-radius: 50%; display: inline-flex; justify-content: center; align-items: center; color: #bbb; }
header #menuBox .contactBox ul li.community a i { font-size: 14px; }
header #menuBox .contactBox ul li.community a svg { width: 60%; height: 60%; fill: #bbb; }
header #menuBox .contactBox .member_list{    padding: 20px 30px;}
header #menuBox .contactBox .member_list a{font-size:15px;letter-spacing: 1px;margin-right: 20px;display: inline-flex;align-items: center;}
header #menuBox .contactBox .member_list a:hover{opacity:.65}
header #menuBox .contactBox .member_list a svg{width: 15px;height: 15px;margin-left: 5px;}

header.headerfixed:before { background: #fff; }
header.headerfixed a { color: #1f1f1f; }
header.headerfixed #menuIcon a font.btn span { background: #1f1f1f; }
header.open:before { background: #1f1f1f; z-index: 999; }
header.open a {color: var(--g_charcoal);}

/* footer */
footer {padding: 4vw 0 3vw;background: var(--primary);}
footer * { color: white; }
footer .workframe{display:grid;grid-template-columns: 50% 50%;align-items: stretch;}
footer .top_box {display: flex;align-items: flex-start;justify-content: space-between;flex-direction: column;}
footer .top_box img{width: 160px;}
footer .business_info {display: flex;flex-wrap: wrap;justify-content: space-between;align-items: flex-end;flex-direction: column;}
footer .business_info a#gotop{font-family: "Arimo", serif;font-size: 15px;letter-spacing: 1px;}
footer .business_info a#gotop svg{fill:#fff;width: 20px;height: 20px;margin-right: 10px;margin*-r: ;margin*-r: 0;}
footer #f_info { width: 1%; flex: 1 1 auto; display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1em; }
footer #f_info p { display: flex; flex-wrap: wrap; }
footer #f_info p >* { display: inline-block; }
footer #f_info p font:first-child { width: 100%; font-size: .9em; }
footer #f_nav {display: grid;grid-template-columns: repeat(3, 1fr);grid-gap: 1.5em 6.5em;margin-top: 60px;}
footer #f_nav a{font-size:18px;display: flex;align-items: center;}
footer #f_nav a:before{content:'';display: inline-block;background: #757c81;width: 40px;height: 1px;margin-right: 20px;}
footer #f_other {display: flex;justify-content: center;align-items: center;color: #757c81;font-weight: 300;font-size: 12px;}
footer #f_other p{margin-left: 5px;}
footer #f_other * {font-weight: 300;font-size: 12px;color: #757c81;}
footer #f_other >div { margin: 0 .5em; }

/* contact_area */
#contact_area{padding: 4vw 0;background: #dcdcdc;}
#contact_area .title_box *{mask-image:url(/images/01/smoke_sprites.webp);mask-size: 100% 3600%;mask-position:0 0;width: fit-content;}
#contact_area .title_box .is-play {animation: mask-play 1.5s steps(35) .2s forwards;}
#contact_area .title_box h2{margin-left: 5px;}
#contact_area .title_box h2, #contact_area .title_box h2 b{font-family: "Cormorant", serif;font-size: max(6*(1vw + 1vh) / 2, 55px);font-weight: 400;text-transform: uppercase;line-height: 1;letter-spacing: 7px;color: var(--primary);}
#contact_area .title_box h2 b{display:block;margin-left: 100px;}
#contact_area .title_box p{position:absolute;top: 100px;left: 30%;font-size: 22px;letter-spacing: 5px;padding-left: 25px;}
#contact_area .title_box p:before{content:'';width: 11px;aspect-ratio: 1/1;display: inline-block;border: 1px solid #b7b9b9;border-radius: 50px;position: absolute;top: 0;left: 0;}
#contact_area .workframe{display:grid;grid-template-columns: 1fr 45%;justify-content: space-between;align-items: center;}
#contact_area article{font-size:20px;margin: 30px 0 0 55px;line-height: 2.4;}
#contact_area article a{font-size:20px;vertical-align: baseline;}
#contact_area .cobox{display: flex;align-items: center;gap: 50px;}
#contact_area .cobox >a{width:175px;aspect-ratio: 1/1;background: #efeeed;border-radius: 170px;display: inline-flex;justify-content: center;align-items: center;font-family: "Cormorant", serif;font-size: 23px;position: relative;font-weight: 400;}
#contact_area .cobox >a span{position:absolute;background: var(--secondary);width: 8px;aspect-ratio: 1/1;border-radius: 50px;bottom: 20px;animation-name: dot;animation-direction: alternate;animation-iteration-count: infinite;animation-timing-function: ease-in-out;animation-duration: 1s;}
@keyframes dot{0%{bottom:20px;}100%{bottom:40px;}}
#contact_area .follow{display:flex;justify-content: center;flex-wrap: wrap;}
#contact_area .follow h5{color: #757c81;font-family: "Cormorant", serif;font-size: 17px;width: 100%;text-align: center;margin-bottom: 20px;}
#contact_area .follow a{width: 65px;aspect-ratio: 1/1;display: inline-flex;align-items: center;justify-content: center;border-radius: 50px;margin: 0 6px;background: #efeeed;} 
#contact_area .follow a svg{width:20px;height: 20px;fill: #757c81;}

/* webSeo */
#webSeo { overflow: hidden; width: 100vw; margin-top: 2em; white-space: nowrap; box-sizing: border-box; }
#webSeo .seo { padding-left: 100%; font-weight: 100; line-height: 1; font-size: 13px; color: var(--g_400); -webkit-animation: marquee 100s linear infinite; animation: marquee 100s linear infinite; }

/* animation */
@-webkit-keyframes marquee { 0% { -webkit-transform: translate(0, 0); } 100% { -webkit-transform: translate(-100%, 0); } }
@keyframes marquee { 0% { transform: translate(0, 0); } 100% { transform: translate(-100%, 0); } }

@media screen and (max-width: 1680px) {
}
@media screen and (min-width: 1161px) {
	header #menuBox .box::-webkit-scrollbar { width: 0; }
	footer #footerinfo ul li.plus-information:hover img { display: block; }
	#gotop:hover { background: var(--primary); }
}
@media screen and (max-width: 1440px) {
    footer .workframe{grid-template-columns:45% 55%}
    #contact_area .title_box p{top: 75px;left: 26%;}
    header #menuBox .contactBox{width: 35%;}
    header #menuBox .box{width:30%}
    footer{padding-bottom:4vw}
}
@media screen and (max-width: 1280px) {
    header #menuBox .box, header #menuBox .contactBox{width: 45%;}
    footer .workframe{grid-template-columns: 40% 60%;}
    #contact_area .title_box p{top: 68px;left: 28%;}
}
@media screen and (max-width: 1160px) {
    footer #f_nav{grid-gap: 1.5em 2.5em;}
    #contact_area{padding:8vw 0}
    #contact_area .title_box p{top: 68px;left: 60%;}
    #contact_area .workframe{grid-template-columns:1fr;justify-items: center;gap: 40px;}
	header #menuBox[data-type="2"] {overflow-y: scroll;}
	header #menuBox[data-type="2"]::-webkit-scrollbar { width: 0; }
}
@media screen and (max-width: 768px) {
    footer{padding: 8vw 0 6vw;}
    header #menuBox .contactBox ul, header #menuBox .contactBox .member_list{padding: 20px 20px;}
    header #menuBox .contactBox ul li{padding:0}
    header #menuBox .box, header #menuBox .contactBox{width: 90%;margin: 0;padding: 0 15px;}
    header #menuBox .contactBox{border-left: 0;border-top: 1px solid #c7c7c7;margin-top: 20px;padding-top: 20px;}
    header #menuBox{display:flex;flex-direction: column;align-items: center;}
    header #cis p.s-visual__copy-en, header #cis p.s-visual__copy-ja{display:none;}
	footer #f_nav {grid-template-columns: repeat(2, 1fr);}
	footer #f_nav a { margin-left: 0; }
}
@media screen and (max-width: 600px) {
	body{-webkit-text-size-adjust:100%;}
    header #menuBox .box >ul >li >p a{font-size:18px;letter-spacing: 1px;}
    footer .business_info{align-items: center;}
    footer .business_info a#gotop{position:absolute;top: 60px;display: flex;align-items: center;justify-content: center;width: 100%;left: 0;}
    footer{padding-top: 40vw;position: relative;padding-bottom: 15vw;}
    footer .top_box{display:flex;flex-direction: column;align-items: center;gap: 21px;}
    footer .workframe{grid-template-columns:1fr}
    #contact_area{padding: 15vw 0;}
    #contact_area .cobox{display:flex;flex-direction: column;align-items: center;}
    #contact_area article, #contact_area article a{font-size: 17px;margin-left: 0;}
    #contact_area .title_box h2{margin: 0 auto 70px;display: block;}
    #contact_area .title_box p{top: 128px;left: 20%;}
    header .rightBox #openlanguage{margin-right: 3px;}
    header .barBox{padding: 15px 20px;}
	header .rightBox .mb { position: fixed; margin-left: 0; width: 25%; background: #1f1f1f; line-height: 100%; left: 0; bottom: 0; }
	header .rightBox #searchBox { left: 25%; }
	header .rightBox #translateLink { left: 50%; }
	header .rightBox #oredericon { left: 75%; }
	header .rightBox .mb >a { padding: 10px 0; display: block; border-left: 1px #373737 solid; text-align: center; color: #fff; }
	header .rightBox #linelink { line-height: 47px; }
	header .rightBox #linelink a { margin: auto; padding: 5px 5% 4px; width: 90%; border-left: 0; display: inline-block; line-height: 140%; font-size: 14px; }
	footer #f_info { grid-template-columns: repeat(2, 1fr); }
}