﻿@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@500;700&display=swap');

/* ---------- font ---------- */

:root{
    --font-jp: 'Zen Kaku Gothic New', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
    --font-en: 'Zen Kaku Gothic New', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
}
body, .font_sans-serif, .font_serif, h2, h3, h4 {
    font-family: var(--font-jp);
}

/* ---------- color ---------- */

.linkStyle{color: #202020;transition: opacity .3s;text-decoration: underline;}
.linkStyle:hover{opacity: 0.7}

:root {
    --normal_color: #202020;
    --color1: #202020;
    --color2: #f6f6f6;
    /*----color2: #f9f9f9;*/
    --color3: #a67c52;
    --color4: #c9baa9;
    --color5: #f6f6f6;
}
.pc_nav li a span.font_16 {
    color: #043077;
    font-size: 14px;
}
.bg_color2 {
    background-color: #2fa4e2;
}
.txt{
	color: var(--normal_color);
}
.pagetitle, .f_contact_img {
    background-color: #96cae7;
}


/* ======================================================================================
　　all
======================================================================================== */

#fakeloader .fl {
    max-width: 339px;
}
.pagetitle_img, .f_contact_img {
    background-image: none!important;
}
#fakeloader, .pagetitle, .f_contact_img {
    background-image: url(../dup/img/load_bg.png)!important;
    background-size: 1000px;
    background-position: top 0 left 0;
	background-repeat: repeat;
	animation: bgloop 20s linear infinite;
}
@keyframes bgloop {
	0% {background-position: top 0 left 0;}
	100% {background-position: top -400px left 400px;}
}

#page1 {overflow: hidden;}

.catch_wrap .posi_rel, .con3_title .con_box, .con3_title, .con3_inner, #con1 {
	position: relative;
}
.catch_wrap .posi_rel::before, .catch_wrap .posi_rel::after, .clipAnim .arrow::before, .con3_title::before, .con3_title .con_box::before, .con3_inner::before, .con3_inner::after, #cms_5-f .cate_box .box_txt1::after, .cms_5-f .cate_box .box_txt1::after, #con1::before {
    content: '';
    position: absolute;
    display: block;
    background-repeat: no-repeat;
    z-index: 1;
}

.sl {
    display: none;
}

.width_1280-max {
    max-width: 1400px;
}

.marker {background: linear-gradient(transparent 60%, #ededed 60%);display: inline-block;}
.hvr_border {border-color: transparent;}
.hvr_border:hover {border-color: var(--normal_color)}

#top_link a:hover, .moreBtn_wrap:hover, #con3 .linkBtn:hover, #con3 .yoyaku_btn:hover{
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px);
    -webkit-animation: easeOutBounce .6s;
    animation: easeOutBounce .6s;
}
#con3 .moreBtn_wrap:hover {
    animation: none;
}
.moreBtn_wrap, #con3 .linkBtn, #con3 .yoyaku_btn {
    transition: all .3s;
}
.all_contents .yoyaku_btn{
    padding: 30px;
    background-color: var(--color2);
    border-radius: 5px;
}

.moreBtn {
    padding: 20px 35px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    line-height: 1;
    border-radius: 100px;
    position: relative;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: var(--color1);
    box-shadow: 3px 3px 0 0 rgb(0 0 0 / 15%);
    transition: background .5s ease 0s, box-shadow .3s ease 0s, transform .3s ease 0s;
    letter-spacing: .15em;
    width: 370px;
    box-sizing: border-box;
}
#con3 .moreBtn {
    width: 100%;
    max-width: 350px;
}

/* ---------- anim ---------- */
.catchAnim {
    max-width: 487px;
    opacity: 0;
    -webkit-transition: all .5s;
    transition: all .5s;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
}
.catchAnim.start {
    -webkit-animation-name: catchAnim;
    animation-name: catchAnim;
    -webkit-animation-duration: .5s;
    animation-duration: .5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}
@keyframes catchAnim {
    0% {
        opacity: 0;
        -webkit-transform: translateY(20px);
        transform: translateY(20px)
    }

    to {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }
}

.clipAnim {
    opacity: 1;
    -webkit-clip-path: inset(0 50% -5px 50% round 999px);
    clip-path: inset(0 50% -5px 50% round 999px);
}
.anim.start .clipAnim {
    transition: -webkit-clip-path .65s ease 0s;
    transition: clip-path .65s ease 0s;
    transition: clip-path .65s ease 0s, -webkit-clip-path .65s ease 0s;
    -webkit-clip-path: inset(-5px -5px -5px -5px round 999px);
    clip-path: inset(-5px -5px -5px -5px round 999px);
}
.clipAnim .arrow {
    right: 33px;
    top: 33%;
    transform: translateY(-50%);
    transition: transform .2s ease;
}
.clipAnim .arrow::before{
    width: 14px;
    height: 23px;
    background: url(../dup/img/arrow.png) no-repeat 50%/contain;
}

.fadeinUp {
    opacity: 0;
    -webkit-transform: translateY(50px);
    transform: translateY(50px);
}
.fadeinUp.start {
    opacity: 1;
    -webkit-transition: opacity 1s,-webkit-transform .8s;
    transition: opacity 1s,-webkit-transform .8s;
    transition: transform .8s,opacity 1s;
    transition: transform .8s,opacity 1s,-webkit-transform .8s;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

/* ---------- header ---------- */
.logo1 {
    max-width: 190px;
}


/* ---------- footer ---------- */
.f_contact_box h4 {
    margin-bottom: 10px;
}

/* ---------- cursor ---------- */
.cursor{
width: 8px;
height: 8px;
position: fixed;
top: 0;
left: 0;
pointer-events: none;
z-index: 100;
transition: 0.3s;
transition-property: opacity,background,width,height,transform;
}
.cursor::before{
content: " ";
display: block;
width: 60px;
height: 60px;
position: relative;
top: -22px;
left: -18px;
opacity: 1;
transition: 0.3s;
background-image: url("./dup/img/cursor.png");
background-size: contain;
background-repeat: no-repeat;
}
.cursor.is-active,.cursor.is-active2,.cursor.is-active3,.cursor.is-active4,.cursor.is-active5{
opacity: 1;
background-color: transparent;
transform: scale(1.8);
}
.cursor::after{
content: " ";
display: block;
background-size: cover;
width: 100px;
height: 100px;
opacity: 0;
transition: 0.3s;
position: relative;
top: -100px;
left: -37px;
}
.cursor.is-active::after{
background-image: url("./dup/img/cursor_hover.png");
opacity: 1;
-webkit-animation: rotate 30s linear infinite;
animation: rotate 30s linear infinite;
}
.cursor.is-active2::after{
background-image: url("./dup/img/cursor_hover2.png");
opacity: 1;
-webkit-animation: rotate 30s linear infinite;
animation: rotate 30s linear infinite;
}
.cursor.is-active3:after{
background-image: url("./dup/img/cursor_hover3.png");
opacity: 1;
-webkit-animation: rotate 30s linear infinite;
animation: rotate 30s linear infinite;
}
.cursor.is-active4:after{
background-image: url("./dup/img/cursor_hover4.png");
opacity: 1;
-webkit-animation: rotate 30s linear infinite;
animation: rotate 30s linear infinite;
}
.cursor.is-active5:after{
background-image: url("./dup/img/cursor_hover5.png");
opacity: 1;
-webkit-animation: rotate 30s linear infinite;
animation: rotate 30s linear infinite;
}
@keyframes rotate {
    from {transform: rotate(0deg);}
    to {transform: rotate(360deg);}
}


/* ======================================================================================
　　top
======================================================================================== */

#main_img {
    min-height: 90vh;
    background-color: #fff;
    background-image: url(./Dup/img/main_visual_bg1.png), url(./Dup/img/main_visual_bg2.png), url(./Dup/img/main_visual_bg3.png), url(./Dup/img/main_visual_bg4.png), url(./Dup/img/main_visual_bg5.png);
    background-position: top left,top right,bottom left,bottom left 15%,bottom right;
    background-repeat: no-repeat;
    background-size: 26%,15%,5%,20%,21%;
    z-index: 1;
}
#main_img {
    min-height: 90vh;
    background-color: #fff;
    background-image: url(./Dup/img/main_visual_bg1.png), url(./Dup/img/main_visual_bg2.png), url(./Dup/img/main_visual_bg3.png), url(./Dup/img/main_visual_bg4.png), url(./Dup/img/main_visual_bg5.png);
    background-position: top left,top right,bottom left,bottom left 15%,bottom right;
    background-repeat: no-repeat;
    background-size: 22%,15%,14%,0%,21%;
    z-index: 1;
}
#main_img::after {
    position: absolute;
    content: "";
    left: 0;
    bottom: 338px;
    width: 100%;
    height: 126px;
    background: transparent;
    background-image: url(./dup/img/loop_txt.png);
    background-size: 1600px;
    background-position-y: 0;
    background-position-x: 0;
    background-repeat: repeat-x;
    animation: loop 30s linear infinite;
    z-index: -1;
    opacity: 0.1;
}
@keyframes loop {
	0% {background-position-x: 0;}
	100% {background-position-x: -1600px;}
}

#con1::before {
    background-color: var(--color2);
    width: 100%;
    height: 271px;
    top: 50px;
    left: 0;
}

.catch_wrap {
    top: 56%;
    width: 70%;
}
.catch_wrap .posi_rel::before {
    background-image: url(../dup/img/item2.png);
    background-size: contain;
    width: 14vw;
    height: 14vh;
    left: -14vw;
    bottom: 73%;
}
.catch_wrap .posi_rel::after {
    background-image: url(../dup/img/item3.png);
    background-size: contain;
    width: 14vw;
    height: 14vh;
    right: -15.5vw;
    bottom: 20%;
}
.item1 {
    max-width: 649px;
    max-width: 673px;
    width: 90%;
    margin: auto;
}
.catch {
    max-width: 594px;
    width: 90%;
    margin: 52px auto 0;
}

#con1 {
    padding-top: 0;
    background-color: #fff;
    position: relative;
}
#con1 h2, #con3 .title .en {
    font-size: 43px;
    color: var(--normal_color);
    font-weight: 700;
    letter-spacing: 2px;
}
#con3::before {
    background-color: var(--color5);
    background-color: #eae6de;
    width: 100%;
    height: 100%;
    max-width: 1280px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    padding: 0 5%;
    border-radius: 20px;

}

.video_area h2 {
    font-size: 43px;
}

#top_link {
    margin-top: -50px;
    margin-bottom: 137px;
    position: relative;
    z-index: 1;
}
.top_link_box li {
    padding: 5px 7px;
    width: 30%;
    max-width: 300px;
}
.top_link_box a {
    align-items: center;
    font-size: 15px;
    line-height: 1.5;
    color: #222;
    font-weight: bold;
    letter-spacing: 0.1em;
    box-shadow: 0 5px 0px rgb(235 235 235);
    box-sizing: border-box;
    border-radius: 10px;
    background: #fff;
    display: block;
    padding: 25px 10px 20px;
    height: 200px;
    display: flex;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.top_link_box ul li {
    width: 33.3333333%!important;
    box-sizing: border-box;
    border-radius: 10px;
    padding: 0 7px;
}
.top_link_box .icon {
    height: 68px;
    width: 100%;
    margin-bottom: 12px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    transition: all .5s;
}
.top_link_box li:nth-of-type(1) .icon {
    background-image: url(../dup/img/icon1.png);
}
.top_link_box li:nth-of-type(2) .icon {
    background-image: url(../dup/img/icon2.png);
}
.top_link_box li:nth-of-type(3) .icon {
    background-image: url(../dup/img/icon3.png);
}
.top_link_box .con_txt {
    margin-bottom: 0;
    width: 100%;
    padding-left: 15px;
    box-sizing: border-box;
    
    display: flex;
    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
    height: 53px;
    padding: 0;
    line-height: 1.5;
}

.con1_inner, .con3_inner {
    background-color: var(--color2);
    padding: 73px 5%;
    border-radius: 20px;
}
.con1_inner {
    background-color: #fff;
}
.heading04 {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 26px;
	text-align: center;
}

.heading04::before,
.heading04::after {
	content: '';
	width: 3px;
	height: 40px;
	background-color: var(--normal_color);
}

.heading04::before {
	margin-right: 30px;
	transform: rotate(-35deg)
}
.heading04::after {
	margin-left: 30px;
	transform: rotate(35deg)
}

.con3_inner::before {
    width: 9vw;
    height: 8vw;
    background-image: url(../dup/img/item5.png);
    background-size: contain;
    background-repeat: no-repeat;
    right: -35px;
    top: 0;
}
.con3_inner::after {
     width: 13vw;
     height: 12vw;
     background-image: url(../dup/img/item6.png);
     background-size: contain;
     background-repeat: no-repeat;
     left: -35px;
     bottom: -28px;
}
.con3_title {
    margin: auto;
    padding-bottom: 42px;
    margin-bottom: 30px;
    text-align: center;
    max-width: 1280px;
}
.con3_title::before {
    top: auto;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 23px;
    background-image: url(../dup/img/line.svg);
    background-repeat: no-repeat;
    background-size: 94%;
    background-position: center bottom;
}
.con3_title img {
    max-width: 400px;
    width: 90%;
}

.modal_bt{
    cursor: pointer;
    border-radius: 100px;
}
.modal_box{
    top: 0;
    left: 0;
    background-color: rgba(239,239,230,0.9);
    z-index: 101;
    overflow-y: scroll;
}
.modal_box .close{
    top: -25px;
    right: 20px;
    width: 50px;
    height: 50px;
    cursor: pointer;
}

#con3 {counter-reset: box 0;}

#con3 .con_box::before {
	counter-increment: box 1;
	content: "0"counter(box);
	font-size: 58px;
	line-height: 1;
	text-align: center;
	color: var(--normal_color);
	display: inline-block;
	position: absolute;
	right: 0;
	left: 0;
	top: -14px;
	margin: auto;
	z-index: 0;
}
#con3 .con_box .bg_white {
    border-radius: 20px;
    padding: 40px 30px;
}
#con3 .title {
    font-weight: bold;
    font-size: 20px;
    margin-top: 20px;
}

.check {
    padding: 10px;
    margin-bottom: 17px;
}
.check li {
    background: url(Dup/img/check.png);
    background-repeat: no-repeat;
    background-position: 0 5px;
    background-size: 28px;
    padding: 5px 5px 5px 38px;
    font-size: 15px;
    border-bottom: 2px dashed #dedede;
}
@media screen and (max-width: 667px){
.check li {
    background-size: 21px;
    padding: 2px 3px 2px 30px;
    font-size: 14px;
}
}

.cms_5-f .box_wrap {
    border: none;
    max-width: 1000px;
    margin: auto;
}
#cms_5-f .cate_box .box_txt1, .cms_5-f .cate_box .box_txt1 {
    position: relative;
    border-radius: 5px;
    width: 78%;
}
#cms_5-f .cate_box .box_txt1::before, .cms_5-f .cate_box .box_txt1::before {
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    border-color: rgba(0, 0, 0, 0);
    border-top-width: 7px;
    border-bottom-width: 7px;
    border-left-width: 15px;
    border-right-width: 10px;
    margin-top: -10px;
    border-left-color: var(--color2);
    left: 100%;
    top: 35px;
}
#cms_5-f .cate_box .box_txt1::after, .cms_5-f .cate_box .box_txt1::after {
    background-image: url(../dup/img/qa_item.png);
    background-repeat: no-repeat;
    background-size: contain;
    right: calc(80% - 100%);
    bottom: -29px;
    width: 20%;
    height: 100%;
    z-index: 2;
}
#cms_5-f .cate:before, .cms_5-f .cate:before {
    background-color: #fff;
}
#cms_5-f .cate_box .open_bt, .cms_5-f .cate_box .open_bt {
    border-bottom: 2px dashed #dedede;
    margin-bottom: 20px;
}
#cms_5-f .cate_title {
    background-color: #f7f7f7;
}

/* ======================================================================================
　　under
======================================================================================== */

.BA_type2 .box_img1_wrap, .BA_type2 .box_img2_wrap {
	width: 48%!important;
	margin: 0 1%;
}
.BA_type2 .box_img1_wrap::before, .BA_type2 .box_img2_wrap::before {
	position: absolute;
	content: "Before";
	width: 121px;
	background-color: #698ec9;
	color: #fff;
	text-align: center;
	display: block;
	left: 0;
	bottom: 0;
	margin: auto;
	z-index: 1;
	font-size: 14px;
	letter-spacing: 1px;
	padding: 4px 0px;
	box-sizing: border-box;
}
.BA_type2 .box_img2_wrap::before {
	content: "After";
	background-color: #c86675;
}

/* ---------- スマホ ---------- */
@media screen and (max-width: 667px){
.BA_type2 .box_img1_wrap::before, .BA_type2 .box_img2_wrap::before{
	width: 76px;
	font-size: 13px;
}
.BA_type2 .box_img1_wrap::before, .BA_type2 .box_img2_wrap::before{padding: 1px 0px;}
}






/* ======================================================================================
　　window size
======================================================================================== */

/* ---------- tablet ---------- */
@media screen and (max-width: 768px){
.cursor,.follower{display: none;}

.moreBtn {
    width: 100%;
    max-width: 350px;
}

#main_img {
    min-height: 68vh;
    background-size: 30%,29%,28%,0%,33%;
}
.catch_wrap .posi_rel::before {
    width: 19vw;
    height: 13vh;
    left: -14vw;
    bottom: 73%;
}
.catch_wrap .posi_rel::after {
    width: 19vw;
    height: 10vh;
    right: -14.5vw;
    bottom: 101%;
}

#con1 h2, #con3 .title .en {
    font-size: 38px;
}
.item4 {
    width: 80%;
    margin: 0 auto 20px;
}

.con1_inner, .con3_inner {
    padding: 73px 0%;
}
.con3_inner::before {
    width: 15vw;
    height: 14vw;
    right: -18px;
    top: -27px;
}
.con3_inner::after {
    width: 20vw;
    height: 20vw;
    left: -21px;
    bottom: -44px;
}
}

/* ---------- mobile ---------- */
@media screen and (max-width: 667px){
#fakeloader, .pagetitle, .f_contact_img {
    background-size: 500px;
}
#fakeloader .fl {
    width: 71%!important;
}

.moreBtn {
    font-size: 14px;
}
.clipAnim .arrow::before {
    height: 19px;
}

#main_img {
    min-height: 522px;
}
#main_img::after {
    bottom: 39%;
    height: 86px;
    background-size: 1000px;
}

.catch_wrap {
    top: 58%;
    width: 88%;
}
.catch {
    margin: 27px auto 0;
}
.catch_wrap .posi_rel::before {
    width: 34vw;
    height: 13vh;
    left: -7vw;
    bottom: 85%;
}
.catch_wrap .posi_rel::after {
    width: 31vw;
    height: 13vh;
    right: -5.5vw;
    bottom: 99%;
}

#con1::before {
    height: 290px;
}
#top_link {
    margin-bottom: 0px;
}
.top_link_box li {
    width: 42%;
}
.top_link_box li:nth-of-type(3){
    width: 88%;
    max-width: 100%;
}
.top_link_box li a{
    padding: 18px 10px 20px;
    height: 153px;
}
.top_link_box li:nth-of-type(3) a{
    height: 147px;
    padding: 16px 10px 20px;
}
.top_link_box a {
    font-size: 14px;
}
.top_link_box .icon {
    height: 43px;
}

#con1 h2, #con3 .title .en, .video_area h2 {
    font-size: 22px;
}
.heading04::before, .heading04::after {
    width: 2px;
    height: 29px;
}
.heading04::after {
    margin-left: 12px;
}
.heading04::before {
    margin-right: 12px;
}

.item4 {
    width: 100%;
}

.con3_inner {
    padding: 42px 0%;
}
.con3_title {
    padding-bottom: 21px;
}
.con3_title img {
    width: 75%;
}
.con3_inner::before {
    width: 22vw;
    height: 19vw;
    right: -9px;
    top: -22px;
}
#con3 .con_box::before {
    font-size: 48px;
}
#con3 .con_box .bg_white {
    padding: 40px 15px;
    margin-bottom: 20px;
}
.con3_inner::after {
    width: 32vw;
    height: 31vw;
    left: -9px;
    bottom: -61px;
}
#con3 .title {
    font-size: 18px;
}
.check {
    padding: 10px 0;
    margin-bottom: 17px;
}

    
#cms_5-f .cate_box .box_txt1::after, .cms_5-f .cate_box .box_txt1::after {
    right: -26px;
    bottom: -65px;
    width: 33vw;
    height: 17vh;
}
#cms_5-f .cate_box .box_txt1::before, .cms_5-f .cate_box .box_txt1::before {
    border-top-width: 10px;
    border-bottom-width: 9px;
    border-left-width: 21px;
    border-right-width: 18px;
    left: 41%;
    top: 104%;
    transform: rotate(69deg);
}
#cms_5-f .cate_box .box_txt1, .cms_5-f .cate_box .box_txt1 {
    width: 78%;
    margin-bottom: 94px;
    padding-bottom: 61px;
}

.all_contents .yoyaku_btn {
    padding: 0 0 13px;
}
}







