﻿@import url('https://fonts.googleapis.com/css2?family=Alegreya+Sans+SC:wght@800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

.font1,.policy,#top_cms .cms_sub_title .d_inline_b,.num{
    font-family: 'Alegreya Sans SC', sans-serif;
}
.font2,.main_txt{
    font-family: 'M PLUS 1p',"游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.font3,.intro_title,.cms_title{
    font-family: 'Noto Sans JP',"游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.pd_t-80px{padding-top:80px;}


/*-all page-------------------------------
-----------------------------------------*/
body{
    letter-spacing: 1.2px;
    line-height: 2.5;
}
#body{overflow:hidden;}
.linkStyle{
    color:#bb1b21;}
.linkStyle:hover{
    transition:all 0.3s;
    opacity:0.7;
}
footer{
    position:relative;
    z-index:3;
}
.footer_nav{background-color:#333;}
.contact_bt a{
    color:white;
    background-color:#bb1b21;
}
#page_top a{color:#111!important;}



/*-top page-------------------------------
-----------------------------------------*/
#main_img::before{
    content:'';
    position:absolute;
    display:block;
    width:100%;
    height:100%;
    top:0;
    left:0;
    background-color:rgba(0,0,0,0.2);
    z-index:2;
    pointer-events:none;
}
.main_txt{
    font-size:4rem;
	/*will-change: transform;*/
}

/*--catch_bg--*/
#main_img .catch_bg{
    top:0;
    left:0;
    background-color:#111;
    z-index:1;
}
/*ローディング後にフェードイン*/
.load_fadeout {opacity : 1;}
.load_fadeout.done{opacity : 0; transform : translate(0, 0); transition : all 5s/*処理にかかる時間*/;}

/*ローディング後にフェードイン*/
.load-fade {opacity : 0; transition : all 2s/*処理にかかる時間*/;}
.load-fade.done{opacity : 1; transform : translate(-50%, -50%);}

.main_txt_sub{
    font-size:16rem;
    color:rgba(255,255,255,0.1);
    font-weight:bold;
    width:100%;
    text-align:center;
    z-index: 2;
}
#intro{
    padding: 12% 25% 6%;
    background-color:transparent;
    background-image:url(./Dup/img/intro.jpg);
    background-repeat:repeat-y;
    background-size:100%;
    position:relative;
}

#intro::before{
    content:'';
    position:absolute;
    display:block;
    width:100%;
    height:100%;
    background-color:rgba(0,0,0,0.6);
    z-index:1;
    top:0;
    left:0;
}

.intro_wrap{
    position:relative;
    z-index:1;
    padding-top: 120px;
}
.intro_title{
    font-size: 2rem;
}


.con1_title span,.con2_title,.con3_title span{
    font-size:2rem;
}
.policy{
    width:35vw;
    top: -153px;
    left: 50%;
    transform: translate(-50%);
}
/*.policy img{width:auto;}*/

/*--contents1  READ MORE--*/
#text-wrap {
    background-color:white;
    width:100%;
    height: 100%;
    display: block;
    margin: 0 auto;
    border-radius:0 0 20px 20px;
}
.hide-text {
    display: none;
}
.readmore {
    position: relative;
    height: 80px;
    width: 90px;
    margin: auto;
    margin-top:40px;
    display: block;
    background-color: transparent;
    color: #666;
    /*padding-bottom: 40px;*/
    border: none;
    outline: 0;
    transition: .5s;
    -erbkit-transition: .5s;
    text-align:center;
}
 
.readmore::after {
    content: " ";
    position: absolute;
    width: 30px;
    height: 30px;
    border-top: solid 3px #666;
    border-right: solid 3px #666;
    transform: rotate(135deg);
    -webkit-transform: rotate(135deg);
    right: 28px;
    top: 25px;
    transition: .5s;
    -erbkit-transition: .5s;
}
 
.readmore:hover::after {
    top: 40px;
}
 
.on-click {
    color: transparent!important;
}
 
.on-click {
    transform: rotate(-180deg);
    -webkit-transform: rotate(-180deg);
}

.us{
    position:relative;
    background-size: auto auto;
background-color: rgba(251, 251, 251, 1);
background-image: repeating-linear-gradient(135deg, transparent, transparent 10px, rgba(245, 245, 245, 1) 10px, rgba(245, 245, 245, 1) 20px );
}

.us::before,.us::after{
    content: '';
    position: absolute;
    display: block;
    background-repeat: no-repeat;
    z-index: 1;
    background-size: contain;
    background-position:center bottom;
}

.us::before{
    width: 20vw;
    height: 44vh;
    background-image:url(./Dup/img/mens1.png);
    left:2%;
    bottom:0;
}

.us::after{
    width: 20vw;
    height: 47vh;    
    background-image:url(./Dup/img/mens2.png);
    right:2%;
    bottom:0;
}
.us .merit{
    z-index:2;
}
.us img{width:auto;}

/*下からフェードイン*/
 .fadein2 {
  opacity: 0;
  transform : translate(-50px, 0);
  transition : all 1500ms;
}
.fadein2.scrollin{
  opacity: 1;
  transform: translate(0, 0);
}
.policy{
    font-size:6rem;
    color:#bb1b21;
    /*text-shadow:1px 1px 0 #ccc,-1px 1px 0 #ccc,1px -1px 0 #ccc,-1px -1px 0 #ccc;    */
    line-height: 1;
}

.num img{width:auto;}

#contents3 .con3_bg {
    top: 0;
    left: 0;
}
/*
#contents3 .con3_title::before {
    width: 40px;
    height: 2px;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    background-color: #fff;
}
*/
#contents3 .con3_title::before{
    position: absolute;
    display: block;
    content: "";
    pointer-events: none;
}
.bnr a:hover{transform:translateY(-3px);}
#top_cms{margin-bottom:250px;}
.cms_box .pd_t-100px{
    background-color: #bb1b21!important;
}
#top_cms .cms_box .cms_title_box{
    background-image: url(./Dup/img/bg.png);
    background-size: 100% 100%;
}
.title_item img{width:5%;}

.cms_title{
    font-size: 3rem;
    color:#fff;
    line-height: 1.2;
    width:20vw;
    margin:auto;
    position:relative;
}
.cms_title::before,.cms_title::after{
    content:'';
    position:absolute;
    display:block;
    width:40px;
    height:80px;
    background-repeat:no-repeat;
    background-size:contain;
    bottom:10px;        
}
.cms_title::before{
    background-image:url(./Dup/img/cyumoku1.png); 
    left:-50px;
}
.cms_title::after{
    background-image:url(./Dup/img/cyuumoku2.png);  
    right:-50px;
}
#top_cms .cms_title span{
    background-color:#fff;
}
#top_cms .cms_sub_title .d_inline_b{
    font-size:4.2rem;
    color:#999;
    padding-right: 100px;
}

.more a .more_bg{background-color: #bb1b21;}
.machi img{width:auto;}
.machi1{
    bottom: 0;
    left: 50%;
    transform: translate(-50%,0);
    z-index:1;
}
.machi2{
    bottom: 0;
    left: 50%;
    transform: translate(-50%,0);
    z-index:2;
}

/*下から順番にフェードイン*/
 .fadein3 {
  opacity: 0;
  transform : translate(-50%, 50px);
  transition : all 1500ms;
}
.fadein3.scrollin{
  opacity: 1;
  transform: translate(-50%, 0);
}


/*-under page-------------------------------
-----------------------------------------*/
.contents_wrap{margin-bottom:150px;}
#cms_2-e .big_cate_title{line-height:1!important;}
#cms_2-e .box_title::after{
    top:22px;
}
#page_title .page_title_gradient{
    background:none!important;
}

/* ---------- responsive ---------- */
@media screen and (max-width: 1700px){
.policy{
    top:-120px;
}    
}

@media screen and (max-width: 1400px){
.policy{
    width:45vw;
} 
#contents1 .con1_title::before, #contents1 .con1_title::after, 
#contents2 .con2_title::before, #contents2 .con2_title::after, 
#contents3 .con3_title::before, #contents3 .con3_title::after{
    display:none;
}
}

@media screen and (max-width: 1200px){
.policy {
    top: -90px;
}  
.merit img {
    width: 60vw;
}
}

@media screen and (max-width: 1000px){
.policy{
    width:55vw;
} 
.cms_title{width:40vw;}
}



/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
.main_txt {font-size: 2.5rem;}
.main_txt_sub {font-size: 8rem;}
#loader img{width:200px;}
#intro {padding: 12% 21% 6%;}
.intro_title {font-size: 1.3rem;}
.policy {
    width: 65vw;
    top: -80px;
}
.us .font1{padding-bottom:100px;}
.us::before{
    width: 25vw;
    left: -2%;
}
.us::after {
    width: 25vw;
    right: -2%;
}

.con3_wrap{padding:100px;}
.cms_title{width:50vw;}
}




/* ---------- スマートフォン ---------- */
@media screen and (max-width: 667px){
body {
    letter-spacing: 1px;
    line-height: 2;
}
#intro{padding:70px 10%;}
.intro_wrap{padding-bottom:10px;}
.main_txt {font-size: 1.9rem;}
.readmore{
    margin-top:10px;
}
.policy {width: 95vw;}
.us {
    margin-bottom: -60px;
    padding-top: 40px!important;
    padding-bottom: 250px!important;
}

.us::before, .us::after{
    bottom: 16%;
    width:40vw;
}
.merit img{width:100%;}
.con3_wrap{padding:0;}
#top_cms .cms_title{
    position: relative;
    z-index: 2;
}
#top_cms .cms_sub_title{top: -250px;}
#top_cms .cms_sub_title .d_inline_b{padding-right:0;}
.title_item img {width: 15%;}
.cms_title {
    font-size: 2rem;
    width:100%;
}
.cms_title::before, .cms_title::after{display:none;}
.title_item{transform:translateY(-60px);}

}

/* ---------- IEの処理 ---------- */
@media all and (-ms-high-contrast: none){
.contact_box a{padding-top:25px;}
    

}


