@charset "utf-8";
/*================================
#cp-about
===================================*/
#cp-about { background: #fff; transition: 15.0s; padding-top: 100px;}
.opBody #cp-about { background: #e5e5e5;}
#cp-about .cp-box{ width: 500px; background: #fff; box-shadow: 0 10px 20px rgba(0,0,0,.2); margin-top: 100px; transition: 0.8s; position: relative;}
.opBody1 #cp-about .cp-box{ margin-top: 0;}
#cp-about .cp-box .line{ position: absolute; display: block; background: #000; transition: 1.8s;}
#cp-about .cp-box .line.l1{ width: 0; height: 1px; left: 0; top: 0;}
#cp-about .cp-box .line.l2{ width: 1px; height: 0; left: 0; bottom: 0;}
#cp-about .cp-box .line.l3{ width: 1px; height: 0; right: 0; top: 0;}
.opBody1 #cp-about .cp-box .line.l1{ width: 100%;}
.opBody1 #cp-about .cp-box .line.l2, 
.opBody1 #cp-about .cp-box .line.l3{ height: 100%;}
/**/
#cp-about .cp-box .title-area{ width: 100%; display: flex; flex-direction: column; margin: 70px 0; align-items: center; justify-content: center;}
#cp-about .cp-box .title-area .svgArea{ width: 200px;}
/**/
#cp-about .cp-box .info-area{ width: 90%; margin: 0 5% 150px; display: block;}
#cp-about .cp-box .info-area h2{ display: flex; justify-content: center; margin-bottom: 10px;}
#cp-about .cp-box .info-area h2 span{ display: block; font-weight: 700; color: #333; transition: 1.8s; padding: 4px 10px; border-radius: 2px; line-height: 1em;}
.opBody1 #cp-about .cp-box .info-area h2 span{ box-shadow: 200px 0 0 0 #000 inset; color: #fff;}
#cp-about .cp-box .info-area table *{ font-size: 13px; text-align: left; color: #555555; line-height: 1.4em;}
#cp-about .cp-box .info-area table tr{ width: 100%; border-bottom: solid 1px #ddd;}
#cp-about .cp-box .info-area table tr.set > *{ opacity: 0.5; transition: 0.6s; padding:15px 10px;}
.opBody1 #cp-about .cp-box .info-area table tr > *{ opacity: 1;}
#cp-about .cp-box .info-area table tr th{ font-weight: 700; color: #222; white-space: nowrap;}
#cp-about .cp-box .info-area table tr td span{ display: block; margin-bottom: 15px;}

@media screen and (max-width: 800px) {
#cp-about .cp-box{ width: 90%;}
}
/***************************************************
 * Generated by SVG Artista on 11/25/2023, 11:28:40 AM
 * MIT license (https://opensource.org/licenses/MIT)
 * W. https://svgartista.net
 **************************************************/
#cp-about svg .cp-svg-1 { stroke: #000; fill-rule: evenodd; stroke-width: 1px; stroke-dashoffset: 1909.719970703125px; stroke-dasharray: 1909.719970703125px; fill: transparent; -webkit-transition: stroke-dashoffset 4s cubic-bezier(0.47, 0, 0.745, 0.715) 0s, fill 1.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2s; transition: stroke-dashoffset 4s cubic-bezier(0.47, 0, 0.745, 0.715) 0s, fill 1.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2s;
}
#cp-about svg .cp-svg-2 { stroke: #000; fill-rule: evenodd; fill: none;stroke-width: 4px; stroke-dashoffset: 96.2813720703125px; stroke-dasharray: 96.2813720703125px; -webkit-transition: stroke-dashoffset 4s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s, fill 1.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.1s; transition: stroke-dashoffset 4s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s, fill 1.7s cubic-bezier(0.47, 0, 0.745, 0.715) 2.1s;
}
.opBody1 #cp-about .cp-svg-1 { stroke-dashoffset: 0; fill: rgb(0, 0, 0);}
.opBody1 #cp-about .cp-svg-2 { stroke-dashoffset: 0;}
/*-- about/ pp.htm ------------------------------------*/
/*================================
プライバシーポリシー
===================================*/
#pp { padding: 60px 0;}
#pp .inner{ max-width: 800px; padding:0 5%;}
#pp .inner h2{ display: flex; flex-direction: column; align-items: center; margin:20px 0 ; border-bottom: solid 3px #000; padding-bottom: 20px;}
#pp .inner h2 .eng{ font-size: 24px; line-height: 1em;}
#pp .inner h2 .jp{ font-size: 11px; width: auto; display: inline-block; line-height: 1.4em;}
#pp .inner *{ text-align: left;}
#pp .inner h3 span{ font-size: 16px;}
#pp .inner > p{ margin: 40px 0 30px;}
#pp .inner ol {width: 100%; display: flex; flex-direction: column;}
#pp .inner > ol > li { width: 100%; list-style-type: decimal; margin-bottom: 40px;}
#pp .inner > ol li *{ font-size: 14px;}
#pp .inner > ol li b{ font-size: 14px; display: block;}
#pp .inner > ol li > span { display: block; margin: 5px 0;}
#pp .inner > ol li > span > span { margin: 15px 0; display: block; padding: 20px; background: #eee; border-radius: 10px;}
#pp .inner > ol li ol{}
#pp .inner > ol li ol li{ width: 100%; padding-left: 2em; list-style-type:none; list-style-position:inside; counter-increment: cnt;}
#pp .inner > ol li ol li:before{ display: marker; content: "(" counter(cnt) ") "; margin-left: -2em;}
@media screen and (max-width: 600px) {
#pp .inner > ol li *, 
#pp .inner > ol li b{ font-size: 13px;}
}
/*===========================
 コンタクト
===========================*/
#contactPage { padding: 140px 0 50px;}
#contactPage .inner{ max-width: 800px; padding:0 5%;}
#contactPage .inner *{ text-align: left;}
#contactPage .inner h2{ display: flex; flex-direction: column; align-items: center; justify-self: center; border-bottom: solid 3px #000; padding-bottom: 30px; margin-bottom: 50px;}
#contactPage .inner h2 .eng{ font-size: 32px; line-height: 1em;}
#contactPage .inner h2 .jp{ font-size: 12px; width: auto; display: inline-block; line-height: 1.4em;}
/**/
#contactPage .inner p span{ display: block; font-size: 12px; line-height: 1.4em;}
#contactPage .inner .info1{ }
#contactPage .inner .info1 span{ }
#contactPage .inner .info2{ display: block; padding: 18px; border-radius: 10px; background: #f0f0f0;}
#contactPage .inner .info2 b{ display: block; font-size: 14px; margin-bottom: 5px;}
/**/
#contactPage .inner .contactArea{ width: 100%; display: block; margin: 50px 0;}
#contactPage .inner .contactArea ul{ width: 100%; display: block; border-top: solid 1px #ddd;}
#contactPage .inner .contactArea ul li{ width: 100%; display: flex; flex-direction: row; justify-content: center; align-items: center; border-bottom: solid 1px #ddd; padding: 20px 5%;}
#contactPage .inner .contactArea ul li b{ flex: 1;}
#contactPage .inner .contactArea ul li > span{ width: 60%; display: block; padding-left: 5px;}
#contactPage .inner .contactArea ul li > span a.btn{ display: flex; justify-content: center; align-items: center; width: 100%; height: 60px; color: #fff; background:#d94747; border-bottom: solid 8px #a12828; border-radius: 4px; margin-top: 0; transition: 0.2s;}
#contactPage .inner .contactArea ul li > span a.btn:hover{ border-bottom: solid 0px #a12828; height: 52px; margin-top: 8px;}
/**/
#contactPage .inner .contactArea ul li > span.tel{}
#contactPage .inner .contactArea ul li > span.tel a{ display: inline-block; font-weight: bold; font-size: 26px; letter-spacing: 0;}
#contactPage .inner .contactArea ul li > span.tel p{ display: block; margin-top: 5px;}
#contactPage .inner .contactArea ul li > span.tel p span{ display: block; line-height: 1.2em; font-size: 14px; color: #555;}
@media (min-width: 751px) {
#contactPage .inner .contactArea ul li > span.tel a[href*="tel:"] {pointer-events: none; cursor: default; text-decoration: none;}
}
@media screen and (max-width: 600px) {
#contactPage .inner .contactArea ul li{ padding: 25px 0%;}
#contactPage .inner .contactArea ul li b{ font-size: 3.0vw; letter-spacing: 0; width: 45%;}
#contactPage .inner .contactArea ul li > span{ width: 55%;}
#contactPage .inner .contactArea ul li > span a.btn{ width: 100%; font-size: 3.2vw;}
#contactPage .inner .contactArea ul li > span.tel{ text-align: center;}
#contactPage .inner .contactArea ul li > span.tel a{ font-size: 4.8vw;}
#contactPage .inner .contactArea ul li > span.tel p span{ text-align: center; font-size: 2.6vw; letter-spacing: 0;}
}










/*-------------------------------------
 concept
 ------------------------------------*/
#concept-mv{ border-bottom: solid 1px #000; overflow: hidden; padding: 20px 3%; background: #fff; position: relative;}
#concept-mv .inner{ max-width: 1000px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; position: relative; z-index: 10;}
/**/
#concept-mv .ttl_h1 { height:60vh; min-height:400px; position: static;}
#concept-mv .ttl_h1 h1{ display: flex; flex-direction: column; position: relative; z-index: 1; margin: 15vh 0 0 5%;}
#concept-mv .ttl_h1 h1 .jp, 
#concept-mv .ttl_h1 h1 .jp *{ font-size: 38px; letter-spacing: 0.3em; line-height: 1em;}
#concept-mv.ser-top .inner .tit h1 .jp *{ font-size:24px;}
#concept-mv.ser-top .inner .tit h1 .jp br{ display: none;}
#concept-mv .ttl_h1 h1 .eng, 
#concept-mv .ttl_h1 h1 .eng *{ font-size: 16px; padding-bottom: 5px; line-height: 1em; letter-spacing: 0.2em;}
.opBody1 #concept-mv .ttl_h1 h1 * { opacity: 1; transition: 1.8s;}
/**/
#concept-mv .nBox{ width: 100vw; height: 40vh; font-size: 60vh; display: flex; align-items: center; justify-content: flex-end; line-height: 1em; font-weight: 500; position: absolute; right: 100vw; letter-spacing:0.4em; z-index: 100; color: #000;}
#concept-mv .nBox.num1{ top: 0;}
#concept-mv .nBox.num2{ top: 15%;}
#concept-mv .nBox.num3{ top: 30%;}
#concept-mv .nBox.num4{ top: 45%;}
.opBody #concept-mv .nBox.num1{ animation: concept-mv-num 1.4s 0.6s 1 forwards;}
.opBody #concept-mv .nBox.num2{ animation: concept-mv-num 1.2s 0.8s 1 forwards;}
.opBody #concept-mv .nBox.num3{ animation: concept-mv-num 1.5s 0.4s 1 forwards;}
.opBody #concept-mv .nBox.num4{ animation: concept-mv-num 2.2s 0.2s 1 forwards;}
@keyframes concept-mv-num{
0%{ right: 300vw; letter-spacing:0.4em; justify-content: flex-end; opacity: 1;}
100%{ right: -120vw; letter-spacing:-0.5em; justify-content: flex-start; opacity: 0;}
}
#concept-mv .inner .tit{ padding: 50px 25% 50px 5%; width: 100%;}
#concept-mv .inner .tit p{ line-height: 2.2em; opacity: 0.1;}
.opBody1 #concept-mv .inner .tit p { animation: concept-mv-p 1.2s 1.2s ease-in 1 forwards;}
@keyframes concept-mv-p {
0% {  opacity: 0.1;}
100% {  opacity: 1;}
}
@media screen and (max-width: 800px) {
#concept-mv .inner{ height:80vh; min-height: 0; align-items: center;}
#concept-mv .ttl_h1 h1{ margin: 5vh 0 0;}
#concept-mv .inner .tit{ padding: 50px 0%;}
}
@media screen and (max-width: 700px) {
#concept-mv .ttl_h1 h1 .jp, 
#concept-mv .ttl_h1 h1 .jp *{ font-size: 7.2vw;}
#concept-mv .ttl_h1 h1 .eng2, 
#concept-mv .ttl_h1 h1 .eng2 *{ font-size: 5.2vw;}
}



/*-------------------
コンセプト
page_contents
--------------------*/
.c-tag{ width: 100%; height: 1px; display: block;}
#page_contents .inner-wap { width: 100%; max-width: 1100px; display: flex; flex-direction: row; justify-content: space-between;}
#page_contents .inner-wap .page-left-wrap{ width: 140px; padding-top: 90px;}
#page_contents .inner-wap .page-right-wrap{ width: calc(100% - 150px); padding-left: 40px;}
#page_contents .inner-wap .page-right-wrap > .section{ padding: 80px 0;}
@media screen and (max-width: 800px){
#page_contents .inner-wap .page-right-wrap > .section{ padding: 50px 0;}
#page_contents .inner-wap .page-left-wrap{ display: none;}
#page_contents .inner-wap .page-right-wrap{ width:100%; padding-left: 0px; margin-top: 0;}
#page_contents .inner-wap .page-right-wrap .titArea{ padding: 0 5% !important;}
}
@media screen and (max-width: 700px){
.titArea{ width: auto; display: flex; justify-content: center;}
}

/*-------------------
#page_contents .inner-wap .page-left-wrap
--------------------*/
#page_contents .inner-wap .page-left-wrap #tag-menu{width: 100%; display: block; position: sticky; left: 0; top: 60px; margin: 0 0 80px; background: #fff;}
#page_contents .inner-wap .page-left-wrap #tag-menu li{ width: 100%; display: block;}
#page_contents .inner-wap .page-left-wrap #tag-menu li span{ display: block; font-size: 11px; font-weight: 400; padding:0 5px; margin-bottom: 4px; }
#page_contents .inner-wap .page-left-wrap #tag-menu li a{ display: block; font-size: 11px; padding:1px 5px; margin: 6px 0; border-radius: 2px; color: #777; font-weight: 300; position: relative;}
#page_contents .inner-wap .page-left-wrap #tag-menu li a::before{ content: "・";}
#page_contents .inner-wap .page-left-wrap #tag-menu li a:hover{ color: #111; font-weight: bold;}
#page_contents .inner-wap .page-left-wrap #tag-menu li a::after{ width: 0%; height: 100%; position: absolute; left: 0; top: 0; content: ""; background: #eee; transition: 0.4s; z-index: -1; } 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag1 li.t1 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag2 li.t2 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag3 li.t3 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag4 li.t4 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag5 li.t5 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag6 li.t6 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag7 li.t7 a::after, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag8 li.t8 a::after{ width: 100%;}
#page_contents .inner-wap .page-left-wrap #tag-menu.tag1 li.t1 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag2 li.t2 a,
#page_contents .inner-wap .page-left-wrap #tag-menu.tag3 li.t3 a,
#page_contents .inner-wap .page-left-wrap #tag-menu.tag4 li.t4 a,
#page_contents .inner-wap .page-left-wrap #tag-menu.tag5 li.t5 a,
#page_contents .inner-wap .page-left-wrap #tag-menu.tag6 li.t6 a,
#page_contents .inner-wap .page-left-wrap #tag-menu.tag7 li.t7 a,
#page_contents .inner-wap .page-left-wrap #tag-menu.tag8 li.t8 a { color: #000; font-weight: bold;}
@media screen and (max-width: 800px){
.left-wrap{ width: 100%; background: rgba(255,255,255,1); border-bottom: solid 1px #aaa; position: sticky; left: 0; top: 0; z-index: 100;}
#page_contents .inner-wap .page-left-wrap #tag-menu{ }
#page_contents .inner-wap .page-left-wrap #tag-menu{  display: flex; flex-direction: row; position: relative; left: auto; top: auto; margin-top: 0; padding:0; border:none; border-radius: 0 0 0 0; box-shadow: 0 0 0 rgba(0,0,0,.2); background: none;}
#page_contents .inner-wap .page-left-wrap #tag-menu li{ width: 16.66%; display: block; margin: 0; }
#page_contents .inner-wap .page-left-wrap #tag-menu li.tit{ display: none;}
#page_contents .inner-wap .page-left-wrap #tag-menu li a{ display: flex; align-items: center; justify-content: center; height: 30px; font-size: 1.8vw; letter-spacing: 0; padding:0; border-radius: 0; font-weight: 300; margin: 0;}
#page_contents .inner-wap .page-left-wrap #tag-menu li a::before{ content: ""; display: none;}
#page_contents .inner-wap .page-left-wrap #tag-menu.tag1 li.t1 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag2 li.t2 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag3 li.t3 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag4 li.t4 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag5 li.t5 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag6 li.t6 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag7 li.t7 a, 
#page_contents .inner-wap .page-left-wrap #tag-menu.tag8 li.t8 a{ background:#7F8EA7; color: #fff;}
}
/*================================
.titArea
===================================*/
.titArea{ width: 100%; display: flex; flex-direction: column;}
.titArea h2{ width: 100%; display: flex; flex-direction: column; margin-bottom: 30px;}
.titArea h2 > span{ display: flex;}
.titArea h2 > span, 
.titArea h2 > span *{ font-size: 34px; line-height: 1.4em; letter-spacing: 0.1em; font-weight: 200;}
.titArea h2 > span, .titArea h2 > span .eng{ font-size: 24px; line-height: 1.2em; padding-left: 5px;}
.titArea h2{ width: 100%; display: flex; flex-direction: column; margin-bottom: 30px;}
.titArea .txtBox{ width: 100%; display: flex; flex-direction: column; padding: 20px 60px 30px;}
.titArea .txtBox h3{ display: block; font-size: 20px; font-weight: 500; margin-bottom: 10px; position: relative;}
.titArea .txtBox h3::before{ width:6px; height: 12px; position: absolute; left: -25px; top: 4px; border-bottom: solid 2px #000; border-right: solid 2px #000; transform:rotate(45deg); content: "";}
.titArea .txtBox p{ display:block;}
.titArea .txtBox p span{ display:block; color: #555; margin-bottom: 10px;}
.titArea .txtBox h3, 
.titArea .txtBox p{ opacity: 0;}
.titArea .txtBox.setView h3 { animation: txtBoxset 0.6s ease-in 1 forwards;}
.titArea .txtBox.setView p { animation: txtBoxset 0.3s 0.1s ease-in 1 forwards;}
@keyframes txtBoxset {
0% { opacity: 0;}
100% { opacity: 1;}
}
@media screen and (max-width: 800px){
.titArea .txtBox{ padding: 20px 25px;}
.titArea .txtBox h3{ font-size: 18px;}
.titArea .txtBox h3::before{ left: -19px;}
.titArea{ border-top: solid 1px #000;}
#concept1 .titArea{ border-top: none; padding-top: 0;}
.titArea h2 { padding-top: 40px;}
#concept1 .titArea h2 { padding-top: 0;}
.titArea h2 > span, 
.titArea h2 > span *{ font-size: 5.8vw;}
.titArea h2 > span span{ font-weight: 500;}
}























