@charset "utf-8";
/* CSS Document */
/*===共通部分==============
====================================================================*/
html{
	font-size: 100%;
}

body{
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	color: #333;
	font-size: clamp(15px,2vw,18px);
	background: #fff;
	-webkit-font-smoothing: antialiased;/*アンチエイリアスを滑らかに*/
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.7;
}
p{
	letter-spacing: 0.1em;
}
h1,h2,h3,h4,h5,h6{
	font-weight: 600;
	line-height: 1.7;
}
a{
	text-decoration: none;
	color: #333;
	transition: .4s;
}
ul,ol{
	list-style: none;
	padding: 0;
}

section {
	padding: 80px 0 ;
	position: relative;
}
table{
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;/*隙間0*/
}
main{
	width: 100%;
	height: 100%;
	overflow: hidden;
}

/*改行　-------*/
@media (min-width: 451px){
	br.only450{
		display: none;
	}
}

@media (max-width: 450px){
	br.not450{
		display: none;
	}
}

span.ib{
	display: inline-block !important;
}

/*PC・SP表示-----------------------*/
.sp{
	display: none;
}
.pc{
	display: block;
}

@media (max-width: 750px) {
	.sp{
		display: block;
	}
	.pc{
		display: none;
	}
}

/*幅・高さ調整-------*/
.inner{
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
}
.inner.wide{
	max-width: 1400px;
}
.inner.max{
	max-width: none;
}
.w80{
	width: 80%;
	margin: 0 auto;
}
@media (max-width: 750px) {
	.w80{
		width: 95%;
	}
}
/*高さ*/

.mg50{
	margin-bottom: 50px !important;
}
.mg30{
	margin-bottom: 30px !important;
}

.pmg p{
	margin-bottom: 10px;
}
.pmg15 p{
	margin-bottom: 15px;
}
.pmg p:last-child,
.pmg15 p:last-child{
	margin-bottom: 0;
}
.h30{
	height: 30px;
}
.h50{
	height: 50px;
}

.t_center{
	text-align: center;
	margin: 0 auto;
}
.t_left{
	text-align: left;
}
/* 画像比率　-------------------------- */
.img_4-3{
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	/*border-radius: 15px;*/
}

.img_16-9{
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	/*border-radius: 15px;*/
}
.obj-fit{
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.obj-cov{
	width: 100%;
	height: 100%;
	object-fit: cover;	
}

/*==文字=============================================*/
.en{
	font-family: "canto", serif;
	font-weight: 600;
	font-style: italic;
}
.white{
	color: #fff !important;
}
.mincho{
	 font-family: "Zen Old Mincho", serif;
}

.font-m{
	font-size: clamp(18px,2.3vw,25px);
}
.midashi1{
	font-size: clamp(3.75rem, 2.881rem + 3.66vw, 5.625rem);
	color:#FBB03B;
	margin-bottom: 30px;	
}
.midashi1 .ja{
	font-family: "Zen Old Mincho", serif;
	font-size: clamp(18px,2.3vw,25px);
	color: #666;
	padding-left: 3rem;
	position: relative;
}
.midashi1 .ja::before,.midashi1 .ja::after{
	position: absolute;
	content: '';
	height: 2px;
	width: 2rem;
	top:50%;
	background: #FBB03B;
}
.midashi1 .ja::before{
	left: .5rem;
}
.midashi1 .ja::after{
	right: -2.5rem;
}
.midashi2{
	font-size: clamp(20px,2.5vw,35px) ;
	color: #4893AA;
	margin-bottom: 30px;
}

.stitle{
	font-size: clamp(18px,2.3vw,25px);
	border-bottom: 1px solid #FBB03B;
	border-left: 5px solid #FBB03B;
	padding: 0 0 .5rem 2rem ;
	margin-bottom: 20px;
}
.smtitle{
	font-size: clamp(16px,2.2vw,20px);
	color: #fbb03b;
	border-bottom: 1px solid #FBB03B;	
}

@media (max-width: 650px){
	.midashi1 .ja{
		display: block;
		max-width: 280px;
		margin: 0 auto;
		padding-right: 3rem;
	}	
	.midashi1 .ja::after{
		right: .5rem;
	}	
}



/*==flex-box====================================*/
.flex-box{
	display: flex;
	flex-wrap: wrap;
}
.fac{
	align-items: center;
}
.f_jsb{
	justify-content: space-between;
}




/*==背景===================================*/
.bg01::before{
	position: absolute;
	content: '';
	background: url("../img/bg_img1.png");
	background-position:left bottom;
	background-repeat: no-repeat;
	background-size: contain;
	width: 60%;
	height:100%;
	bottom: 0;
	left: 0;	
	z-index: -1;
	
}
.bg02::before,.bg02::after{
	position: absolute;
	content: '';
	width: 70%;
	height: 100%;
	z-index: -1;
}
.bg02::before{
	background: url("../img/bg_img2.png");
	background-position:right top;
	background-repeat: no-repeat;
	background-size: contain;
	width: 70%;	
	top:-2px;
	right: 0;
}
.bg02::after{
	background: url("../img/bg_img1.png");
	background-position:left bottom;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: 0;
	left: 0;		
}
/*==btn===================================*/
.btn1{
    /*アニメーションの起点とするためrelativeを指定*/
    position: relative;
	overflow: hidden;
	text-decoration: none;
	display: inline-block;
   	border: 1px solid #4893AA;/* ボーダーの色と太さ */
    padding: 10px 30px;
    text-align: center;
    outline: none;
    /*アニメーションの指定*/   
    transition: ease .2s;
	border-radius: 50px;
}
.btn1.blue{
	background: #4893AA;		
}
.btn1.orange{
	border-color: #FBB03B;
	background: #FBB03B;
		
}
/*ボタン内spanの形状*/
.btn1.blue span,.btn1.orange span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#fff;
}

.btn1.blue:hover span{
	color:#4893AA;
}
.btn1.orange:hover span{
	color:#FBB03B;
}
/*== 背景が流れる（斜め） */
.bgskew::before {
	content: '';
	position: absolute;
	top: 0;
	left: -130%;
	width:120%;
	height: 100%;
	transform: skewX(-25deg);
	background: #fff;
}
.bgskew.blue::before {
	background: #fff;
}

/*hoverした時のアニメーション*/
.bgskew:hover::before {
	animation: skewanime .5s forwards;/*アニメーションの名前と速度を定義*/
}

@keyframes skewanime {
	100% {
		left:-10%;/*画面の見えていない左から右へ移動する終了地点*/
	}
}


/*inview　animation---------------------*/
/*ani_text*/
.ani_text{
}
.ani_text{
	display: block;
	opacity: 0;
	transform: translate(10px,10px);
	transition: transform 1s cubic-bezier(.42,0,.58,1), opacity 1s cubic-bezier(.42,0,.58,1);
}
.ani_text.inview{
	opacity: 1;
	transform: translate(0,0);
}
.ani_text:nth-of-type(1){
	transition-delay:.2s;
}
.ani_text:nth-of-type(2){
	transition-delay:.4s;
}
.ani_text:nth-of-type(3){
	transition-delay:.6s;
}
.ani_text:nth-of-type(4){
	transition-delay:.8s;
}
.ani_text:nth-of-type(5){
	transition-delay:1s;
}
.ani_text:nth-of-type(6){
	transition-delay:1.2s;
}
.ani_text:nth-of-type(7){
	transition-delay:1.4s;
}
.ani_text:nth-of-type(8){
	transition-delay:1.6s;
}
.ani_text:nth-of-type(9){
	transition-delay:1.8s;
}
.ani_text:nth-of-type(10){
	transition-delay:2s;
}
.ani_text:nth-of-type(11){
	transition-delay:2.2s;
}
.ani_text:nth-of-type(12){
	transition-delay:2.4s;
}
.ani_text:nth-of-type(13){
	transition-delay:2.6s;
}
.ani_text:nth-of-type(14){
	transition-delay:2.8s;
}
.ani_text:nth-of-type(15){
	transition-delay:3s;
}
@media (max-width: 750px){
	.ani_text{
		transition-delay: 0s !important;
	}
}
/*swipe*/
.swipe{
   position: relative;
   overflow: hidden;
}
.swipe::after{
   content: '';
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   background: #FBB03B;
   pointer-events: none;
   z-index: 1;
   transform: translateX(-100%);
   transition: 1.2s ease-in-out;
}
.swipe.white::after{
   background: #fff;
}
.swipe .swipe_in{
   opacity: 0;
   transition: 0.2s ease-in;
   transition-delay: 0.6s;
}
.swipe.inview .swipe_in{
   opacity: 1;
}
.swipe.inview::after{
   transform: translateX(100%);
}

/* marker */
.marker  {
background-image: linear-gradient(120deg, #ff0,#fbb03b 100%);
background-repeat: no-repeat;
background-size: 0 0.4em;
background-position: 0 90%;
transition: background-size 1.25s ease-in;
}
.marker.inview {
  /* 横方向を100%にして、マーカーを引く */
  background-size: 100% 0.4em;
}

