@charset "UTF-8";

#loading-screen {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100dvh;
	height: 100vh; /* フォールバック */
	z-index: 10000;
	background-color: #000;
	display: none;
}

#loading-video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 100%;
	object-fit: cover;
	background-color: #000;
}

.indexwrapper {
	overflow: hidden;
}

/* indexkv ---------------------------------------*/
.indexkv { 
	position: relative;
	z-index: 1;
	background: #fde311;
}

.indexkv-slider { 
	margin-left: min(calc(223 / 1440 * 100vw), 223px);
}

.indexkv-slider::after { 
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, rgba(253, 227, 17, 1) 0%, rgba(253, 227, 17, 1) 4%, rgba(253, 227, 17, 0.5) 35%, rgba(253, 227, 17, 0) 65%, rgba(253, 227, 17, 0) 100%);
	content: '';
}

.indexkv-slider-list > li img {
	width: 100%;
}

.indexkv-slider .swiper-pagination {
	left: unset;
	width: fit-content;
	right: 20%;
	bottom: 8%;
}

.indexkv-slider .swiper-pagination .swiper-pagination-bullet{
	width: 9px;
	height: 9px;
	margin:0 10px;
	background: #d2d2d2;
	opacity: 1;
}

.indexkv-slider .swiper-pagination .swiper-pagination-bullet-active {
	background: #fde311;
}

.indexkv-title { 
	position: absolute;
	top: 41%;
	left: 22%;
	z-index: 1;
}

.indexkv-title span {
	font-size: calc(46 / 1440 * 100vw);
	font-weight: 700;
	line-height: 1.75;
	letter-spacing: 0.12em;
	color: #141414;
	text-shadow: 0 0 16px rgba(253, 227, 17, 0.3);
	transition: all 1s cubic-bezier(0.77, 0, 0.175, 1);
	opacity: 0;
}

.indexkv-title span:nth-of-type(1){transition-delay:0.05s;}
.indexkv-title span:nth-of-type(2){transition-delay:0.1s;}
.indexkv-title span:nth-of-type(3){transition-delay:0.15s;}
.indexkv-title span:nth-of-type(4){transition-delay:0.2s;}
.indexkv-title span:nth-of-type(5){transition-delay:0.25s;}
.indexkv-title span:nth-of-type(6){transition-delay:0.3s;}
.indexkv-title span:nth-of-type(7){transition-delay:0.35s;}
.indexkv-title span:nth-of-type(8){transition-delay:0.4s;}
.indexkv-title span:nth-of-type(9){transition-delay:0.45s;}
.indexkv-title span:nth-of-type(10){transition-delay:0.5s;}
.indexkv-title span:nth-of-type(11){transition-delay:0.55s;}
.indexkv-title span:nth-of-type(12){transition-delay:0.6s;}
.indexkv-title span:nth-of-type(13){transition-delay:0.65s;}
.indexkv-title span:nth-of-type(14){transition-delay:0.7s;}
.indexkv-title span:nth-of-type(15){transition-delay:0.75s;}
.indexkv-title span:nth-of-type(16){transition-delay:0.8s;}
.indexkv-title span:nth-of-type(17){transition-delay:0.85s;}
.indexkv-title span:nth-of-type(18){transition-delay:0.9s;}
.indexkv-title span:nth-of-type(19){transition-delay:0.95s;}
.indexkv-title span:nth-of-type(20){transition-delay:1s;}
.indexkv-title span:nth-of-type(21){transition-delay:1.05s;}
.indexkv-title span:nth-of-type(22){transition-delay:1.1s;}
.indexkv-title span:nth-of-type(23){transition-delay:1.15s;}
.indexkv-title span:nth-of-type(24){transition-delay:1.2s;}
.indexkv-title span:nth-of-type(25){transition-delay:1.25s;}
.indexkv-title span:nth-of-type(26){transition-delay:1.3s;}
.indexkv-title span:nth-of-type(27){transition-delay:1.35s;}
.indexkv-title span:nth-of-type(28){transition-delay:1.4s;}
.indexkv-title span:nth-of-type(29){transition-delay:1.45s;}
.indexkv-title span:nth-of-type(30){transition-delay:1.5s;}
.indexkv-title span:nth-of-type(31){transition-delay:1.55s;}
.indexkv-title.is-show span {opacity: 1;}


.indexkv-news { 
	position: absolute;
	bottom: -20px;
	right: 0;
	z-index: 3;
	width: min(calc(652 / 1440 * 100vw), 652px);
	min-width: 500px;
	background: #fde311;
	border-radius: 4px 0 0 4px;
	padding: 24px 70px 24px 30px;
}

.indexkv-news-list { 

}

.indexkv-news-list > li { 

}

.indexkv-news-list > li + li { 
	margin-top: 20px;
}

.indexkv-news-list > li a { 
	display: flex;
	gap: 16px;
}

.indexkv-news-time { 
	font-size: 12px;
	letter-spacing: 0.14em;
	flex-shrink: 0;
}

.indexkv-news-category { 
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	flex-shrink: 0;
}

.indexkv-news-category span { 
	display: block;
	flex-shrink: 0;
	font-size: 10px;
	line-height: 1.1;
	text-align: center;
	letter-spacing: 0.2em;
	color: #141414;
	background: #fff;
	border-radius: 2px;
	padding: 5px 12px;
}

.indexkv-news-title { 
	display: -webkit-box;
	position: relative;
	width: fit-content;
	font-size: 12px;
	letter-spacing: 0.14em;
	padding-right: 30px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	overflow: hidden;
}

.indexkv-news-title::before {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 17px;
	height: 17px;
	background: #141414;
	border-radius: 50%;
	content: '';
}

.indexkv-news-title::after {
	position: absolute;
	top: 6px;
	right: 4px;
	z-index: 1;
	width: 0;
	height: 0;
	border-style: solid;
	border-top: 3px solid transparent;
	border-bottom: 3px solid transparent;
	border-left: 7px solid #ffffff;
	border-right: 0;
	content: '';
}

.indexkv-link { 
	display: flex;
	flex-direction: column;
	gap: 34px;
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 3;
	padding-top: min(calc(90 / 1440 * 100vw), 90px);
	padding-left: 18px;
	width: 62px;
	height: min(calc(100% - 304px), 700px);
	background: rgba(253, 227, 17, 0.8);
	clip-path: polygon(0 62px, 100% 0, 100% 100%, 0 100%);
}

.indexkv-link > li { 

}

.indexkv-link-side { 
	position: relative;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .2em;
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
}

.indexkv-link-side .icon-document { margin: 0 0 14px;}
.indexkv-link-side .icon-faq { margin: 0 0 10px;}
.indexkv-link-side .icon-contact { margin: 0 0 10px;}

.indexkv-scroll {
	position: absolute;
	bottom: 10px;
	right: min(calc(680 / 1440 * 100vw), 680px);
	z-index: 1;
}

.indexkv-scroll-text {
	font-size: 12px;
	line-height: 1;
	text-align: center;
	letter-spacing: 0.05em;
	color: #fff;
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	text-orientation: sideways;
	margin: 0 auto 10px;
	padding-left: 2px;
}

.indexkv-scroll-circle {
	display: block;
	position: relative;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fde311;
	margin: 0 auto;
	overflow: hidden;
}

.indexkv-scroll-circle::after {
	position: absolute;
	top: -5px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #fff;
	content: '';
	animation: scroll-circle 1.2s infinite linear;
}

@keyframes scroll-circle {
	0% {
		transform: translate(-50%, 0);
	}
	100% {
		transform: translate(-50%, 24px);
	}
}


/* indexabout ---------------------------------------*/
.indexabout {
	position: relative;
	padding: 134px 20px 12px;
}

.indexabout-num {
	top: 56px;
	right: 48px;
}

.indexabout-wrapper {
	display: flex;
	gap: calc(33 / 1090 * 100%);
	margin-bottom: 40px;
}

.indexabout-summary {
	width: calc(600 / 1090 * 100%);
}

.indexabout-more {
	margin-top: 66px;
}

.indexabout-image {
	position: relative;
	margin-right: calc(50% - 50vw);
	margin-top: 120px;
	width: min(calc(calc(457 / 1090 * 100%) + 50vw - 50%), 632px);
	height: fit-content;
}

.indexabout-image::before {
	position: absolute;
	top: 22px;
	left: -22px;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: #eee;
	content: '';
}

.indexabout-image img {
	width: 100%;
}

.indexabout-decotext {
	display: flex;
}

.indexabout-decotext span {
	margin: 0 auto 0 calc(400 / 1440 * 100vw);
	width: calc(1800 / 1440 * 100vw);
	font-size: calc(128 / 1440 * 100vw);
	font-weight: 700;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	color: rgba(158, 158, 158, 0.12);
	white-space: nowrap;
	animation: scroll-deco 20s linear infinite;
}


/* indexservice ---------------------------------------*/
.indexservice {
	position: relative;
	padding: 100px 20px 70px;
	background: #fde311;
}

.indexservice-deco {
	left: 0;
	background: #fde311;
	clip-path: polygon(0 0, 100% 55px, 100% 100%, 0 100%);
}

.indexservice-num {
	top: 110px;
	left: calc(50% - 572px);
	transform: translateX(-50%);
}

.indexservice-head {
	display: flex;
	gap: calc(50 / 1090 * 100%);
	margin-bottom: 104px;
}

.indexservice-head-image {
	margin-right: calc(50% - 50vw);
	width: calc(calc(322 / 1090 * 100%) + 50vw - 50%);
	height: fit-content;
	order: 2;
	box-shadow: 0 2px 9px rgba(4, 0, 0, 0.16);
}

.indexservice-head-image img {
	width: 100%;
}

.indexservice-head-summary {
	flex: 1;
	order: 1;
}

.indexservice-more {
	margin-top: 80px;
}

.indexservice-body {
	position: relative;
}

.indexservice-image-01 {
	position: absolute;
	top: 4px;
	left: calc(50% - 50vw);
	width: calc(333 / 1090 * 100%);
	box-shadow: 0 2px 9px rgba(4, 0, 0, 0.16);
}

.indexservice-image-02 {
	position: absolute;
	top: 466px;
	left: calc(80 / 1090 * 100%);
	width: calc(208 / 1090 * 100%);
	box-shadow: 0 2px 9px rgba(4, 0, 0, 0.16);
}

.indexservice-image-01 img,
.indexservice-image-02 img {
	width: 100%;
}

.indexservice-block {
	position: relative;
	padding-left: 60px;
}

.indexservice-block-01 {margin: 0 0 110px calc(330 / 1090 * 100%);}
.indexservice-block-02 {margin: 0 60px 0 calc(130 / 1090 * 100%);}

.indexservice-block-title {
	font-size: 28px;
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.2em;
	margin-bottom: 14px;
}

.indexservice-block-title::before {
	position: absolute;
	top: 12px;
	left: 0;
	z-index: 1;
	width: 29px;
	height: 29px;
	background: url('../img/common/icon_checked.png') no-repeat;
	background-size: contain;
	content: '';
}

.indexservice-block-text {
	font-size: 12px;
	font-weight: 300;
	line-height: 2.5;
	letter-spacing: 0.14em;
}

.indexservice-block-image {
	margin-top: 60px;
	width: 100%;
}

.indexservice-block-image img {
	width: 100%;
}


/* indexmessage ---------------------------------------*/
.indexmessage {
	position: relative;
	padding: 120px 20px 40px;
	background: rgba(238, 238, 238, 0.35);
}

.indexmessage-deco {
	bottom: 100%;
	left: 0;
	background: rgba(238, 238, 238, 0.35);
	clip-path: polygon(0 0, 100% 55px, 100% 100%, 0 100%);
}

.indexmessage-title {
	margin-bottom: 60px;
}

.indexmessage-title strong {
	display: block;
	font-size: 48px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.14em;
	margin-bottom: 4px;
}

.indexmessage-title b {
	display: block;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.14em;
}

.indexmessage-text {
	font-size: 14px;
	font-weight: 400;
	line-height: 2.5;
	text-align: center;
	letter-spacing: 0.2em;
	margin-bottom: 10px;
}

.indexmessage-decotext {
	display: flex;
}

.indexmessage-decotext span {
	margin: 0 auto 0 calc(220 / 1440 * 100vw);
	width: calc(1500 / 1440 * 100vw);
	font-size: calc(128 / 1440 * 100vw);
	font-weight: 700;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	color: rgba(158, 158, 158, 0.12);
	white-space: nowrap;
	animation: scroll-deco 20s linear infinite;
}


/* large pc */
@media screen and (min-width: 768px) and (max-width: 1919px){

}

@media screen and (min-width: 1441px){
	.indexabout-num {
		right: unset;
		left: calc(50% + 664px);
		transform: translateX(-50%);
	}

	.indexservice-image-01 {
		left: -175px;
	}
}

/* small pc */
@media screen and (min-width: 768px) and (max-width: 1200px){
	.indexservice-head-summary {
		padding-left: 40px;
	}

	.indexservice-num {
		left: 30px;
		transform: unset;
	}

	.sectionagent-num {
		left: 160px;
		transform: unset;
	}
}

@media screen and (min-width: 768px) and (max-width: 1100px){
	.indexkv-link {
		gap: 20px;
	}

	.indexkv-link-side .icon-document { margin: 0 0 10px;}
	.indexkv-link-side .icon-faq { margin: 0 0 6px;}
	.indexkv-link-side .icon-contact { margin: 0 0 6px;}

	.indexkv-link-side {
		font-size: 12px;
	}

	.indexkv-slider .swiper-pagination {
		bottom: 10%;
	}

	.indexkv-scroll {
		right: 520px;
	}
}

@media screen and (min-width: 768px) and (max-width: 900px){
	.indexkv-link {
		gap: 10px;
	}

	.indexkv-link-side .icon-document { margin: 0 0 4px;}
	.indexkv-link-side .icon-faq { margin: 0 0 4px;}
	.indexkv-link-side .icon-contact { margin: 0 0 4px;}

	.indexkv-link-side {
		font-size: 11px;
	}

	.indexkv-title {
		left: 28%;
	}
}


/* sp only */
@media screen and (max-width: 767px){

	/* indexkv ---------------------------------------*/
	.indexkv-slider { 
		margin-left: unset;
	}
	
	.indexkv-slider::after { 
		background: linear-gradient(90deg, rgba(253, 227, 17, 1) 0%, rgba(253, 227, 17, 1) 25%, rgba(253, 227, 17, 0) 70%, rgba(253, 227, 17, 0) 100%);
	}

	.indexkv-slider-list > li {
		height: 530px;
	}

	.indexkv-slider-list > li img {
		height: 100%;
		object-fit: cover;
		object-position: right;
	}
	
	.indexkv-slider .swiper-pagination {
		right: 10%;
		bottom: 5%;
	}
	
	.indexkv-title { 
		top: unset;
		bottom: 11%;
		left: 10%;
	}

	.indexkv-title span {
		font-size: min(calc(23 / 375 * 100vw), 30px);
	}
	
	.indexkv-news { 
		bottom: -26px;
		right: 0;
		width: calc(340 / 375 * 100vw);
		min-width: unset;
		border-radius: 2px 0 0 2px;
		padding: 8px 16px;
	}

	.indexkv-news-list > li + li { 
		margin-top: 20px;
	}
	
	.indexkv-news-list > li a { 
		gap: 4px;
	}
	
	.indexkv-news-time { 
		padding-top: 1px;
		font-size: 9px;
	}
	
	.indexkv-news-category { 
		gap: 2px;
		margin-top: 2px;

	}

	.indexkv-news-category span { 
		font-size: 8px;
		padding: 2px 4px;
	}
	
	.indexkv-news-title { 
		font-size: 11px;
		padding-right: 20px;
	}
	
	.indexkv-news-title::before {
		top: 2px;
		width: 14px;
		height: 14px;
	}
	
	.indexkv-news-title::after {
		top: 6px;
		right: 3px;
		border-left: 6px solid #ffffff;
	}

	.indexkv-scroll {
		bottom: -22px;
		right: unset;
		left: 8px;
		
	}
	
	.indexkv-scroll-text {
		font-size: 11px;
		padding-left: 2px;
	}


	/* indexabout ---------------------------------------*/
	.indexabout {
		padding: 80px 14px 40px;
	}
	
	.indexabout-num {
		top: 44px;
		right: 14px;
	}
	
	.indexabout-wrapper {
		display: block;
		margin-bottom: 40px;
	}
	
	.indexabout-summary {
		width: 100%;
		margin-bottom: 50px;
	}
	
	.indexabout-more {
		margin-top: 36px;
	}
	
	.indexabout-image {
		margin: 0 -14px 0 auto;
		width: calc(267 / 375 * 100vw);
	}
	
	.indexabout-image::before {
		top: 10px;
		left: -10px;
	}

	.indexabout-decotext {
	}
	
	.indexabout-decotext span {
		margin: 0 auto 0 calc(200 / 375 * 100vw);
		width: calc(900 / 375 * 100vw);
		font-size: calc(64 / 375 * 100vw);
		animation: scroll-deco 20s linear infinite;
	}


	/* indexservice ---------------------------------------*/
	.indexservice {
		padding: 30px 14px 50px;
	}
	
	.indexservice-deco {
		clip-path: polygon(0 0, 100% 35px, 100% 100%, 0 100%);
	}
	
	.indexservice-num {
		top: calc(calc(156 / 375 * 100vw) + 64px);
		left: 14px;
		transform: unset;
	}
	
	.indexservice-head {
		display: block;
		margin-bottom: 50px;
		padding-left: 20px;
	}
	
	.indexservice-head-image {
		margin: 0 -14px 30px auto;
		width: calc(250 / 375 * 100vw);
	}
	
	.indexservice-head-summary {
		width: 100%;
	}
	
	.indexservice-more {
		margin-top: 30px;
	}
	
	.indexservice-image-01 {
		position: unset;
		margin: 0 auto 24px -14px;
		width: calc(177 / 375 * 100vw);
	}
	
	.indexservice-image-02 {
		position: unset;
		margin: 0 auto 36px 10%;
		width: calc(121 / 375 * 100vw);
	}
	
	.indexservice-block {
		padding-left: 34px;
	}
	
	.indexservice-block-01 {margin: 0 0 30px 14px;}
	.indexservice-block-02 {margin: 0 0 0 14px;}
	
	.indexservice-block-title {
		font-size: 20px;
		line-height: 1.6;
		margin-bottom: 14px;
	}
	
	.indexservice-block-title::before {
		top: 8px;
		width: 19px;
		height: 19px;
	}
	
	.indexservice-block-text {
		font-size: 14px;
		font-weight: 400;
		line-height: 1.714;
	}
	
	.indexservice-block-image {
		margin-top: 40px;
		margin-left: -30px;
		width: calc(100% + 30px);
	}
		
	
	/* indexmessage ---------------------------------------*/
	.indexmessage {
		padding: 40px 14px 40px;
	}
	
	.indexmessage-deco {
		clip-path: polygon(0 0, 100% 35px, 100% 100%, 0 100%);
	}
	
	.indexmessage-title {
		margin-bottom: 30px;
	}
	
	.indexmessage-title strong {
		font-size: 32px;
		margin-bottom: 10px;
		line-height: 1.05;
	}
	
	.indexmessage-title b {
		font-size: 18px;
	}
	
	.indexmessage-text {
		font-size: 12px;
		font-weight: 400;
		line-height: 2;
		text-align: center;
		margin-bottom: 20px;
	}
	
	.indexmessage-decotext {
	}
	
	.indexmessage-decotext span {
		margin: 0 auto 0 calc(100 / 375 * 100vw);
		width: calc(390 / 375 * 100vw);
		font-size: calc(64 / 375 * 100vw);
		animation: scroll-deco 20s linear infinite;
	}


}


/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px){

}