﻿/*===========================================================*/
/* 個別 */
/*===========================================================*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500&family=Noto+Sans+JP:wght@500&display=swap');
body,.en_font{
        font-family: "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif!important;
        font-weight: 500;
}
.linkStyle{color: #333;border-bottom: 1px solid;transition: opacity 0.5s;}
.linkStyle:hover{opacity: 0.8;}
.open_menu {
    left: 20px;
}
.close_menu, .open_menu {
    width: 60px;
    height: 60px;
}
.bg{
    width: 100%;
    height: 100%;
    background-color: rgb(255 255 255 / 25%);
}
.con_no{
            font-family: 'Montserrat',"Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif!important;
    color: #374e93;
}
.loop_txt{
    position: absolute;
    content: "";
    left: 0;
    bottom: -20px;
    width: 100%;
    height: 136px;
    background-image: url(dup/img/loop_txt.png);
    background-size: auto 100%;
    background-position-y: 0;
    background-position-x: 0;
    background-repeat: repeat-x;
    animation: loop 30s linear infinite;
}
@keyframes loop {
	0% {background-position-x: 0;}
	100% {background-position-x: -1000px;}
}
.catch{
    top: 47%;
   /* left: 50px;*/
    /*max-width: 760px;*/
    width: 80%;
}
.catch{width: 80%;text-align: center;}
.catch span{
    font-size: 7vw;
    color: #121212;
    display: inline-block;
    opacity: 0;
    font-weight: bold;
    text-shadow:3px 3px 0 #FFF, -3px -3px 0 #FFF,
              -3px 3px 0 #FFF, 3px -3px 0 #FFF,
              0px 3px 0 #FFF,  0-3px 0 #FFF,
              -3px 0 0 #FFF, 3px 0 0 #FFF;
}
.catch.start span {
  animation: poyoyon 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
}
.catch.start span:nth-of-type(2){animation-delay: 0.3s;}
.catch.start span:nth-of-type(3){animation-delay: 0.6s;}
.catch.start span:nth-of-type(4){animation-delay: 0.9s;}
.catch.start span:nth-of-type(5){animation-delay: 1.2s;}
.catch.start span:nth-of-type(6){animation-delay: 1.6s;}
@keyframes poyoyon {
  0% {
    transform: translateY(200px)rotate(20deg);
    opacity: 0;
  }
  50% {
    transform: translateY(0)rotate(-6deg);
    opacity: 1;
  }
  65% {
    transform: translateY(-20px)rotate(3deg);
  }
  100% {
    transform: translateY(0)rotate(0deg);
    opacity: 1;
  }
}
.catch02{top: 65%;}
.txt_anim6 span{
	display: inline-block;
	-webkit-transform: translateY(20px);
	transform: translateY(20px);
	-webkit-animation: .35s cubic-bezier(.175,.885,.32,1.275) both;
	animation: .35s cubic-bezier(.175,.885,.32,1.275) both;
	opacity: 0;
	font-size: 2.5vw;
	    /*text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 0px 2px 0 #FFF, 0-2px 0 #FFF, -2px 0 0 #FFF, 2px 0 0 #FFF;*/
}
.txt_anim6 span.start{
	-webkit-animation-name: slide-bs;
	animation-name: slide-bs;
	opacity: 1;
}
@keyframes slide-bs{
	0%{-webkit-transform: translateY(20px);transform: translateY(20px);}
	100%{-webkit-transform: translateY(0);transform: translateY(0);}
}
.circle {  
    width: 260px;
    height:260px;
    border-radius: 50%;
    background-color:#f00;
 
    font-size:36px;
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
   
    transform: scale(0);
    animation-name:circle;
    animation-duration:4s;
    animation-fill-mode:forwards;
    animation-iteration-count:infinite;
}
@keyframes circle{
  0%{
    transform: scale(0);    
  }
  100%{
    transform: scale(1);    
  }
}
#header h1{padding: 15px;}
#main_img .arrowWrap{color: #121212;}
#main_wrap{    
    background-color: #fffffe;
    background-image: url(Dup/img/rice-paper-4.png);
    background-size: 310px;
}
#intro h3,#contents1 h4,#problem h2 p{
    color: #374e93;
    position: relative;
}
#intro h3::after,#contents1 h4::after {
    content: "";
    position: absolute;
    width: 50px;
    height: 2px;
    box-sizing: border-box;
    border-top-style: solid;
    border-top-width: 2px;
    bottom: 10px;
    left: 0;
    transform: translateY(10px);
}
/*	problem_list ---------------------------*/
#problem{padding: 5%;}
.problem_listItem{
	width: 32%;
	max-width: 343px;
	text-align: center;
}
.problem_balloon{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 152px;
    padding: 15px 30px;
    background-color: #ffffff;
    border-radius: 10px;
    line-height: 1.5;
    /*letter-spacing: 0.2em;*/
    font-size: 18px;
    box-sizing: border-box;
    box-shadow: 2px 2px 5px rgb(0 0 0 / 5%);
}
.problem_balloon::after{
	content: "";
	position: absolute;
	bottom: -40px;
	right: 20%;
	display: block;
	width: 40px;
	height: 32px;
	background: url("../images/problem_ic01.png") no-repeat top right / contain;
}
.problem_fg{
    position: relative;
    z-index: 1;
    margin-top: -10px;
    max-width: 180px;
    margin: -20px auto 0;
}
.problem .txt_wrap{
        background-color: #fff;
    padding: 50px;
    border-radius: 10px;
    box-shadow: 2px 2px 5px rgb(0 0 0 / 5%);
}
.problem .txt_wrap a{
    display: block;
    max-width: 300px;
    margin: 0 auto;
    color: #121212;
    transition: 0.5s;
}
.problem .txt_wrap a:hover{opacity: 0.5;transform: translateY(-5px);transition: 0.5s;}
@media screen and (max-width:1024px){
	.problem_balloon{
		font-size: 1.4rem;
	}
}
@media screen and (max-width:768px){
    #problem {
    padding: 50px;
}
.problem_list {
    max-width: 600px;
    margin: 80px auto;
}
	.problem_list{
		max-width: 600px;
		margin: 80px auto;
	}
	.problem_listItem{
		position: relative;
		max-width: inherit;
		width: 100%;
	}
	.problem_listItem + .problem_listItem{
		margin-top: 35px;
	}
	.problem_balloon{
		width: 80%;
		min-height: 107px;
		height: auto;
		margin: 0 auto 0 0;
		padding: 15px 24px;
		font-size: 1.3rem;
	}
	.problem_listItem:nth-of-type(2n) .problem_balloon{
		margin: 0 0 0 auto;
	}
	.problem_balloon::after{
		display: none;
	}
	.problem_fg{
		position: absolute;
		top: 50%;
		right: 0;
		transform: translateY(-50%);
		width: 25%;
	}
	.problem_listItem:nth-of-type(2n) .problem_fg{
		right: auto;
		left: 0;
	}
}
@media screen and (max-width:667px){
    .problem_balloon{font-size: 14px;padding: 15px 20px;}
    .problem_listItem + .problem_listItem {
    margin-top: 0px;
}
#problem {
    padding: 50px 10px;
}
.problem_list {
    margin: 30px auto 50px;
}
.problem .txt_wrap{padding: 20px;}


}
/*	solution
------------------------------------------*/
#contents1{
    box-sizing: border-box;
}
#contents2 {
    height: 400px;
}
/*===========================================================*/
/* コード集 */
/*===========================================================*/
.topcms_news_type2 .cate_box {
	width: 46.33333%!important;
	margin-right: 1.5%;
	margin-left: 1.5%;
	cursor: pointer;
	border-bottom: 1px solid #ddd;
	margin-bottom: 30px;
	box-shadow: 0 6px 12px rgb(0 0 0 / 0);
	/* padding: 20px; */
	/* border-radius: 20px; */
	/* background-color: #f5f5f5; */
}
.topcms_news_type2 .cate_box:hover {
	transform: translateY(-5px);
}
.topcms_news_type2 .cate_box .box_item {
	cursor: pointer;
}
.topcms_news_type2 .txt_height {
	height: 5em
}
.topcms_news_type2 .box_img1 {
	border-radius: 10px;
}

/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
.topcms_news_type2 .cate_box {width: 100%!important;}
.topcms_news_type2 .txt_height {height: 3em}
}

.link_type2 .cate_box a {
    color: #121212;
}
.link_type2 .cate_box a:hover{    transform: translateY(-5px);transition: 0.5s;}
.link_type2 .cate_box a:before, .link_type2 .cate_box a:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgb(255 255 255 / 40%);
    z-index: 1;
}
.link_type2 .cate_box a:after {
/*    top: 100%;
    background-color: #c52e3d;
    transition: 0.5s;
	z-index: 1;*/
}
.link_type2 .cate_box a:hover:after {
    top: 0;
}
.link_type2 .cate_box .txt_wrap {
    z-index: 2;
    text-shadow: 0 2px 10px rgb(255 255 255 / 50%);
}
/*.link_type2 .more {
	letter-spacing: 3px;
    box-sizing: border-box;
	opacity: 0;
	transition: opacity .8s;
	z-index: 4;
}
.link_type2 .cate_box a:hover .more {
    opacity: 1;
    transition: opacity .8s;
}*/
#problem li:last-of-type p span{
    bottom: 0;
    right: -50px;
}

/*===========================================================*/
/* 下層 */
/*===========================================================*/
.cate_list li a{opacity: 1;transition: opacity 0.5s;}
.cate_list li a:hover{opacity: 0.5;}
#cms_2-g .cate_img1 {
     max-height: none; 
}




/*===========================================================*/
/* タブレット */
/*===========================================================*/
@media screen and (max-width: 768px){

#header h1{margin-bottom: 0;padding: 0;}
.catch span {
    font-size: 70px;
}
.txt_anim6 span{font-size: 30px;}
#problem li:last-of-type p span {
    bottom: -40px;
    right: 20px;
}



}



/*===========================================================*/
/* スマホ */
/*===========================================================*/
@media screen and (max-width: 667px){
.catch span {
    font-size: 40px;
    text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 0px 2px 0 #FFF, 0-2px 0 #FFF, -2px 0 0 #FFF, 2px 0 0 #FFF;
}
.txt_anim6 span {
    font-size: 16px;
}
.loop_txt{height: 46px;}
#contents2 {
    height: 200px;
}
#footer .tel a{font-size: 30px;}
#problem li:last-of-type p span {
    bottom: -25px;
    right: 20px;
}

}


/*===========================================================*/
/* IE */
/*===========================================================*/
@media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none){



}


/*===========================================================*/
/* Firefox */
/*===========================================================*/
@-moz-document url-prefix(){

}