@charset "utf-8";
:root{

	--MAIN_WHITE:#fff;
	--MAIN_BLACK:#404040;
	--MAIN_PURPLE:#7F49D8;
	--MAIN_GRAY:#A5A5A5;
	--MAIN_YELLOW:#F5EC0B;
	--MAIN_BLUE:#00AAC7;
	--BG_BLUE:#B1E8E3;
	--BG_GRAY:#EEE;
	--BG_GRADATION_PALE:linear-gradient(-45deg,rgb(39, 214, 214, .6) 0%, rgb(84, 142, 215, .6) 40%,#7F49D8 100%);
	--BG_GRADATION:linear-gradient(-45deg,rgb(39, 214, 214) 0%, rgb(84, 142, 215) 50%,#7F49D8 100%);
	--BG_GRADATION_ARROW:linear-gradient(-110deg, rgb(84, 142, 215) 0%,#7F49D8 100%);
	--BG_GRADATION_ARROW_PREV:linear-gradient(-10deg, rgb(84, 142, 215) 0%,#7F49D8 100%);
	--BG_GRADATION_ARROW_NEXT:linear-gradient(-10deg,#7F49D8 0%, rgb(84, 142, 215) 100%);
	--PUBLIC_BOX_SHADOW:0 0 10px rgba(0,0,0,.2);
	--PUBLIC_BORDER_RADIUS:16px;
	--FONT_ROBOTO: 'Roboto', sans-serif;
}
/* リセットCSS */
*{margin:0;padding:0;min-height: 0;min-width: 0;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
html {height:100%;}
li>ul, li>ol, blockquote>ul, blockquote>ol,ul{margin:0;padding:0}
button{padding:0;}
ul li ,ol li{list-style:none;}
h1,h2,h3,h4,h5,h6{font-weight: normal;font-size: 100%;margin: 0;}
p{margin: 0;}
a:focus, *:focus{ outline:none; }
article, header, footer, aside, figure, figcaption, nav, section,main{ 
  display:block;
}
body{
	font-family: 'Noto Sans JP',"游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
	font-weight: 400;
	font-feature-settings: "palt" 1;
	letter-spacing: 0.06em;
	width:100%;
	color: var(--MAIN_BLACK);
	position:relative;
	z-index: 0;
}
a{
	text-decoration: none;
	outline: none;
	word-wrap: break-word;
	color: var(--MAIN_BLACK);
}
a img,a{
	-webkit-transition: all 0.5s ease;
	-moz-transition: all 0.5s ease;
	-o-transition: all 0.5s ease;
	transition: all  0.5s;
}
img{
	height: auto;
	max-width: 100%;
	box-sizing: unset;
	vertical-align: bottom;
}
/* form初期化 */
input[type="button"],input[type="text"],input[type="submit"],textarea,select,button{
	-webkit-appearance: none;
	border-radius: 0;
	border: none;
	font-size: 16px;
	color: var(--MAIN_BLACK);
	background: var(--MAIN_WHITE);
}
/* フォントCSS */

/* notosans読み込み */
@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 400;
	src: url('../font/notosans-r.woff') format('woff'),
			url('../font/notosans-r.eot')  format('eot');
	font-display: swap;
}
@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 500;
	src: url('../font/notosans-m.woff') format('woff'),
			url('../font/notosans-m.eot')  format('eot');
	font-display: swap;
}
@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 700;
	src: url('../font/notosans-b.woff') format('woff'),
			url('../font/notosans-b.eot')  format('eot');
	font-display: swap;
}
.font-robot{
	font-family: var(--FONT_ROBOTO);
}
/* img用クラス */
.imgauto{
	height: auto;
	width: 100%;
	box-sizing: unset;
	line-height: 1rem;
	display: block;
}
.imgauto-h{
	height: 100%;
	width: 100%;
	box-sizing: unset;
	line-height: 1rem;
	display: block;
	object-fit: cover;
}

::placeholder{opacity: .6;}
button{
	cursor: pointer;
}
/* インナー設定 */
.inner,
.pc-inner,
.sp-inner{
	margin-left: auto;
	margin-right: auto;
}
/* フレックス */
.flex{
	display: flex;
}
.fxw{
	display: flex;
	flex-wrap: wrap;
}
.jcsb{
	display: flex;
	justify-content: space-between;
}
/* スライダー読み込みまで非表示 */

.slide.slick-initialized{
	opacity: 1;
}
@media screen and (min-width: 768px){
	.slide{
		opacity: 0;
		transition: opacity .3s linear;
	}
}
@media screen and (max-width: 767px){
	.slide:not(.top-point__slider){
		opacity: 0;
		transition: opacity .3s linear;
	}
}
/* スクロールバー消す */
.y-scroll,
.x-scroll{
	-ms-overflow-style: none;/* IE, Edge 対応 */
	scrollbar-width: none; /* Firefox 対応 */
}
.y-scroll{
	overflow-y: scroll;
	overflow-x: auto;
}
.x-scroll{
	overflow-x: scroll;
	overflow-y: auto;
}
.y-scroll::-webkit-scrollbar,
.x-scroll::-webkit-scrollbar{/* Chrome, Safari 対応 */
	display: none;
}
/* 縦書き */
.tategaki{
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	-o-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}


@media screen and (min-width: 951px){
	.hamburger{
		display: none !important;
	}
}
@media screen and (min-width: 768px){
	body{
		font-size: 15px;
		line-height: 1.7;
		-ms-text-size-adjust: 100%;
		-webkit-text-size-adjust: 100%;
	}
	a:hover{
		opacity: 0.7;
		text-decoration: none;
	}
	a:hover img{
		opacity:0.75 !important;
	}
	a[href^="tel:"] {
		pointer-events: none;
	}
	.sp{
		display: none !important;
	}

}
@media screen and (max-width: 767px){
	body{
		font-size: 14px;
		line-height: 1.6;
	}
	.pc{
		display: none !important;
	}
}


/* --------------------header------------------- */
.headerarea{
	position:absolute;
	top: 0;
	left: 0;
	width: 100%;
}
.headerarea a{
	color: var(--MAIN_WHITE);
}
.hd-wrap {
	max-width: 1720px;
	margin-inline:auto;
	width: 90%;
	justify-content: space-between;
	align-items: center;
	margin-top: 20px;
	flex-wrap: wrap;
}

.hd-logo {
	font-size: 34px;
}

.hd-nav__list {
	gap: 1.5em;
	font-size: clamp(12px,1.2vw,16px);
	font-weight: bold;
}


.hd-btn {
	font-size: clamp(12px,1.2vw,16px);
	--btn_width:clamp(10rem, 3.111rem + 14.35vw, 13.875rem);
}
@media screen and (min-width: 1471px){
	.hd-nav__list {
		padding-inline: 1em;
	}
}
@media screen and (max-width: 1470px){
	.hd-logo{
		width: 100%;
		text-align: center;
	}
	.hd-nav__list {
		padding-right: 1em;
	}
}

@media screen and (min-width: 768px) and (max-width: 950px){
	.hd-btn{
		display: none;
	}
	.hd-wrap{
		justify-content: center;
	}
}
@media screen and (max-width: 767px){
	.headerarea{
		display: none;
	}
}

/* --------------------footer------------------- */
.footerarea{
	padding-top: 40px;
}
.ft-logo{
	display: flex;
	align-items: center;
}
.ft-logo span{
	display: block;
}
.ft-logo span.min > a{
	color: var(--MAIN_PURPLE);
}

.ft-logo span.sub{
	font-weight: bold;
	font-size: clamp(17px,1.2vw,20px);
}


.ft-nav{
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.ft-nav__list{
	font-size: clamp(14px,1.6vw,16px);
	gap: 1.5em;
}
.ft-wrap__top{
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
	flex-wrap: wrap;
	gap: 10px;
}

.ft-btm__contents{
	background: var(--BG_GRADATION);
	padding-block: 20px;
}
.ft-btm__wrap{
	align-items: center;
	font-size: 14px;
	font-weight: 400;
	flex-wrap: wrap;
}

.ft-btm__links{
	gap:2em;
}
.ft-btm__links a{
	color: var(--MAIN_WHITE);
}
.ft-btm__copy{
	color:var(--MAIN_WHITE);
}
@media screen and (min-width: 768px) and (max-width: 950px){
	.ft-wrap{
		--wrapper_width:95%;
	}
}
@media screen and (min-width: 768px){
	.ft-btn{
		--btn_width: 222px;
	}
	.ft-logo span.sub{
		margin-left: 1em;
	}
	.ft-logo span.min > a{
		font-size: clamp(28px,3.4vw,34px);
	}
	.ft-btm__wrap{
		justify-content: space-between;
	}
	.ft-nav__list{
		display: flex;
		font-weight: bold;
		flex-wrap: wrap;
	}
	.ft-nav{
		margin-bottom: 40px;

	}
}
@media screen and (max-width: 767px){
	.ft-nav{
		flex-flow: column;
	}
	.ft-nav__list{
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		column-gap: 10px;
		row-gap: 10px;
		margin-bottom: var(--public_mgb);
		font-size: 12px;
		width: 100%;
	}
	.ft-nav__list > li{
		flex: 1;
	}
	.ft-nav__list a{
		background-color: var(--BG_GRAY);
		padding: 10px 0;
		text-align: center;
		display: block;
	}
	.ft-wrap__top{
		display: contents;
	}
	.ft-logo{
		flex-flow: column;
		margin-bottom: var(--public_mgb);
	}
	.ft-logo span.sub{
		text-align: center;

	}
	.ft-logo span.min > a{
		font-size: 34px;
	}
	.ft-btm__wrap{
		gap: 60px 1.5em;
		justify-content: center;
	}
	.ft-wrap{
		display: flex;
		flex-direction: column;
	}
	.ft-logo{
		order: 1;
	}
	.ft-nav{
		order: 2;
	}
	.ft-btn{
		order: 3;
		margin-bottom: 40px;
	}
	.ft-btn > a{
		margin-inline:auto;
	}
}

/* --------------------全ページ共通部分------------------- */
/* CSS関数設定 */

@media screen and (min-width: 768px){
	:root{
		--section_pdd:80px;
		--public_mgb:80px;
	}
}
@media screen and (max-width: 767px){
	:root{
		--section_pdd:60px;
		--public_mgb:30px;
	}
}
/**** セクション汎用クラス ****/
.g-sec{
	padding-top: var(--pdt,var(--section_pdd));
	padding-bottom: var(--pdb,var(--section_pdd));
}

/**** ラッパー汎用クラス ****/
.g-wrapper{
	max-width: var(--wrapper_max_width,1200px);
	width: var(--wrapper_width,90%);
	margin-inline:auto;
}
/**** ボタン汎用クラス ****/
.g-btn > a{
	aspect-ratio: 410 / 78;
	background-color: var(--btn_bg_color, var(--MAIN_YELLOW));
	border: 3px solid var(--btn_border_color, var(--MAIN_YELLOW));
	color: var(--btn_color,--MAIN_BLACK);
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: center;
	box-shadow: 0 0 8px 2px rgba(0,0,0,0.1);
	width: var(--btn_width, clamp(300px,41vw,410px));
}
.g-btn > a > span.icon-mail{
	background: var(--btn_bg_color,var(--MAIN_YELLOW)) url(../images/common/icon_letter.svg) no-repeat center left /contain;
	width: var(--mail_width, 24px);
	height: var(--mail_heigh, 24px);
	margin-top: .1em;
	margin-right: 10px;
}
.g-btn.purple{
	--btn_color: var(--MAIN_PURPLE);
	--btn_bg_color: var(--MAIN_WHITE);
	--btn_border_color: var(--MAIN_PURPLE);
}
.g-btns{
	justify-content: center;
	gap: 30px 40px;
}
@media screen and (min-width: 768px){
	.g-btn > a{
		border-radius: 40px;
	}
}
@media screen and (max-width: 767px){
	.g-btns{
		flex-flow: column;
	}
	.g-btns a{
		margin-inline:auto;
	}
	.g-btn > a{
		border-radius: 20px;
	}
}
/**** タイトルクラス ****/
.g-ttl {
	font-weight: bold;
	color: var(--ttl_color, var(--MAIN_BLACK));
	font-size: var(--ttl_fnts, clamp(28px, 3.6vw,36px));
	margin-bottom: var(--ttl_mgb,var(--public_mgb));
}


.g-ttl.white{
	--ttl_color: var(--MAIN_WHITE);
}
.g-ttl.purple{
	--ttl_color: var(--MAIN_PURPLE);
}
.g-ttl > span{
	display: inline-block;
}
.g-ttl.not-mgb{
	--ttl_mgb: 0;
}
.g-ttl > b{
	letter-spacing: .1em;
}
@media screen and (min-width: 768px){
	.g-ttl {
		text-align: center;
		letter-spacing: .1em;

	}
	.g-ttl > span{
		font-size: var(--span_font_size, .667em);
		transform: var(--span_pos_y, translateY(calc( .667em - .8em)));
	}
}
@media screen and (max-width: 767px){
	.g-ttl {
		width: var(--ttl_width,fit-content);
		margin-inline:auto;
		line-height: var(--ttl_line_height, 1.4);
		letter-spacing: .05em;
	}

	.g-ttl.sp-center{
		text-align: center;
	}
	.g-ttl > span{
		font-size: var(--span_font_size, .75em);
		transform: var(--span_pos_y, translateY(calc( .75em - .8em)));
	}
}
/**** アコーディオン汎用クラス ****/
.g-accordion dt{
	cursor: pointer;
}
.g-accordion dd{
	display: none;
}
/**** その他汎用クラス ****/

.g-btm__arrow{
	width: var(--arrow_width, 95px);
	margin-inline:auto;
}	
