@charset "utf-8";
/*--------------------------------------- css初期化 */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, capion, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, av, section, summary, time, mark, audio, video {
	color: #666666;
	font-size: 16px;
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
	background: transparent;
    font-family: 'Noto Sans JP', sans-serif;
	/* font-family: Arial, Helvetica, "メイリオ", sans-serif; */
}
h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
}

ol, ul {
	list-style: none;
}

html {
	box-sizing: border-box;
}

*, *:before, *:after {
	box-sizing: inherit;
}

img {
	-ms-interpolation-mode: bicubic;
}

img, embed, iframe, object, audio, video, svg {
	height: auto;
	max-width: 100%;
}

iframe {
	border: 0;
}

em {
	font-style: normal;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

td, th {
	padding: 0;
	text-align: left;
}

/* iPhoneのボタンcssの初期化*/

input[type="button"],
input[type="submit"],
input[type="reset"]{
	-webkit-appearance: none;
	background-color : transparent;
	border-radius: 0;
	cursor: pointer;
	font-size: 16px;
}
input:required {
    box-shadow:none;
}
input:-webkit-autofill {
    box-shadow: 0 0 0px 1000px #f5f5f5 inset;
}
textarea {
	-webkit-appearance: none;
	border-radius: 0;
	cursor: pointer;
	font-size: 16px;
}
select{
	font-size: 16px;
	border: 1px solid #BCBCBC;
}
article,section{
	display: block;
}
strong, span, p, em, b, a, small, br {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
	font-family: inherit;
	line-height: inherit;
}

a {
	text-decoration: none;
}

br,wbr {
	line-height: 0;
}

/* iPhoneのボタンcssの初期化 (input[type="button"],input[type="submit"],input[type="reset"]) */

.button_style_none {
	-webkit-appearance: none;
	border-radius: 0;
}


/*　▼テキスト　*/
.hidden_text {
	display: inline-block;
	font-size: 0;
	width: 0;
	height: 0;
	overflow: hidden;
}
.text_center {
	text-align: center;
}
.text_left {
	text-align: left;
}
.text_right {
	text-align: right;
}
.vertical_align_middle {
	vertical-align: middle;
}
.vertical_align_top {
	vertical-align: top;
}
.vertical_align_bottom {
	vertical-align: bottom;
}
/* wbrを使用するときはその親要素に br_specificationを指定すること*/

.br_specification {
	word-break: keep-all;
}
.br_specification wbr:before {
	content: "\200B";
}
/*　▲テキスト　*/

/*　▼イメージ　*/
.loading_image {
	display : block;
	margin : 10px auto;
}
/* 画像を2：3で成形 */

.image_2_3_former {
	display: block;
	position: relative;
	width: 100%;
	padding-bottom: calc(2 / 3 * 100% + 1px);
	overflow: hidden;
}

.image_2_3_former img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	max-width: 100%;
}

@supports (object-fit: cover) {
	.image_2_3_former img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
}

/* 画像を3：4で成形 */

.image_3_4_former {
	display: block;
	position: relative;
	width: 100%;
	padding-bottom: calc(3 / 4 * 100% + 1px);
	overflow: hidden;
}

.image_3_4_former img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	max-width: 100%;
}

@supports (object-fit: cover) {
	.image_3_4_former img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
}


/* 画像を1：1で成形 */

.image_1_1_former {
	display: block;
	position: relative;
	width: 100%;
	padding-bottom: 100%;
	overflow: hidden;
}

.image_1_1_former img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	max-width: 100%;
}

@supports (object-fit: cover) {
	.image_1_1_former img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
}

/* 画像を2：5で成形 */

.image_2_5_former {
	display: block;
	position: relative;
	width: 100%;
	padding-bottom: 40%;
	overflow: hidden;
}

.image_2_5_former img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	max-width: 100%;
}

@supports (object-fit: cover) {
	.image_2_5_former img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
}
/*　▲イメージ　*/

/* ▼スムーズスクロール */
html {
	scroll-behavior: smooth;/* ページ内リンクスクロール */
	overflow-x: hidden;
}
/* ▲スムーズスクロール */

/* ▼display:flex 系 */

.display_flex {
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.flex_nowrap{
	-webkit-flex-wrap: nowrap;
	-ms-flex-wrap: nowrap;
	flex-wrap: nowrap;
}
.flex_row_reverse{
	-ms-flex-direction:row-reverse; /*IE10*/
	flex-direction:row-reverse;
}

.flex_justify_content_spacebetween {
	-webkit-justify-content: space-between;
	-ms-justify-content: space-between;
	/* IE10 */
	justify-content: space-between;
	text-align: left;
}

.flex_justify_content_spacearound {
	-webkit-justify-content: space-around;
	-ms-justify-content: space-around;
	/* IE10 */
	justify-content: space-around;
	text-align: left;
}
.flex_justify_content_flex_end {
	-webkit-justify-content: flex-end;
	-ms-justify-content: flex-end;
	/* IE10 */
	justify-content: flex-end;
}
.flex_justify_content_center {
	-webkit-justify-content: center;
	-ms-justify-content: center;
	/* IE10 */
	justify-content: center;
}

.flex_align_items_center {
	-webkit-align-items: center;
	/* IE10 */
	-ms-align-items: center;
	/* IE10 */
	align-items: center;
}

.flex_align_items_start {
	-webkit-align-items: flex-start;
	/* IE10 */
	-ms-align-items: flex-start;
	/* IE10 */
	align-items: flex-start;
}
.flex_align_items_end {
	-webkit-align-items: flex-end;
	/* IE10 */
	-ms-align-items: flex-end;
	/* IE10 */
	align-items: flex-end;
}
/* ▲display:flex 系 */

.display_block {
	display : block;
}
.display_inline {
	display : block;
}
.display_inline_block {
	display : block;
}
.display_none {
	display : none;
}
.pc_hidden{
	display: none;
}
.position_relative {
	position : relative;
}
.position_absolute {
	position : absolute;
}
/* display:grid 系 */
.display_center{
	display: grid;
	place-items: center;
}

/* リンク系 */
.wrapper_link{
	position : absolute;
	width : 100%;
	height: 100%;
	display: block;
	z-index: 10;
	top : 0;
	left: 0;
}
.text_underline {
	text-decoration : underline;
}
.text_underline:hover {
	text-decoration : none;
}

/* フォント系 */
.font_size_0 {
	font-size: 0px;
}
.font_size_10 {
	font-size: 0.625rem;
}
.font_size_12 {
	font-size: 0.75rem;
}
.font_size_14 {
	font-size: 0.875rem;
}
.font_size_18 {
	font-size: 1.1rem;
}
.font_size_21 {
	font-size: 1.3rem;
}
.font_size_24 {
	font-size: 1.3rem;
}
.font_size_28 {
	font-size: 1.4rem;
}
.font_size_32 {
	font-size: 1.5rem;
}
.font_size_36 {
	font-size: 1.6rem;
}
.font_size_40 {
	font-size: 1.8rem;
}
.font_size_48 {
	font-size: 2rem;
}
.font_size_60{
	font-size : 2.5rem;
}
.font_size_72{
	font-size : 4.5rem;
}
.number_letter_spacing{
	letter-spacing: 0.01em;
}
.letter_spacing_0{
	letter-spacing: 0.01em;
}
.line_height_1rem{
	line-height: 1rem;
}
.line_height_1em{
	line-height: 1em;
}
.line_height_1point3em{
	line-height: 1.3em;
}
.line_height_2em{
	line-height: 2em;
}
.font_weight_bold{
    font-weight: bold;
}
.font_weight_normal{
    font-weight: normal;
}
.max_width_1200 {
	max-width: 1200px;
	margin-right: auto;
	margin-left: auto;
}

/* ▼コンテンツのサイズ */
main {
	display: block;
	width: 100%;
	margin: auto;
	min-height : 70vh;
	padding-top : 0.1px;
	padding-bottom : 0.1px;
}
.max_width_950 {
	max-width: 950px;
	margin-right: auto;
	margin-left: auto;
}

.max_width_750 {
	max-width: 750px;
	margin-right: auto;
	margin-left: auto;
}
.max_width_600 {
	max-width: 600px;
	margin-right: auto;
	margin-left: auto;
}
.max_height_600 {
	max-height: 600px;
	margin-right: auto;
	margin-left: auto;
}
.width_minus_40{
	width: calc(100% - 40px);
	margin-right: auto;
	margin-left: auto;
}
.width_100vw {
    position: relative;
    margin-left: calc(((100vw - 100%) / 2) * -1);
    margin-right: calc(((100vw - 100%) / 2) * -1);
    padding-left: calc((100vw - 100%) / 2);
    padding-right: calc((100vw - 100%) / 2);
    max-width: initial;
    max-width: none;
    overflow: hidden;
}
/* ▼余白系(t=top b=bottom r=right l=left) */
/* margin */
.margin_200_tb {
	margin-top: 21vw;
	margin-bottom: 21vw;
}
.margin_200_t {
	margin-top: 21vw;
}
.margin_200_b {
	margin-bottom: 21vw;
}
.margin_150_tb {
	margin-top: 18vw;
	margin-bottom: 18vw;
}
.margin_150_t {
	margin-top: 18vw;
}
.margin_150_b {
	margin-bottom: 18vw;
}
.margin_100_tb {
	margin-top: 16vw;
	margin-bottom: 16vw;
}
.margin_100_t {
	margin-top: 16vw;
}
.margin_100_b {
	margin-bottom: 16vw;
}
.margin_75_tb {
	margin-top: 12vw;
	margin-bottom: 12vw;
}
.margin_75_t {
	margin-top: 12vw;
}
.margin_75_b {
	margin-bottom: 12vw;
}
.margin_50_tb {
	margin-top: 8vw;
	margin-bottom: 8vw;
}
.margin_50_t {
	margin-top: 8vw;
}
.margin_50_b {
	margin-bottom: 8vw;
}
.margin_40_tb {
	margin-top: 40px;
	margin-bottom: 40px;
}
.margin_40_t {
	margin-top: 40px;
}
.margin_40_b {
	margin-bottom: 40px;
}
.margin_30_tb {
	margin-top: 30px;
	margin-bottom: 30px;
}
.margin_30_t {
	margin-top: 30px;
}
.margin_30_b {
	margin-bottom: 30px;
}
.margin_20_tb {
	margin-top: 20px;
	margin-bottom: 20px;
}
.margin_20_t {
	margin-top: 20px;
}
.margin_20_b {
	margin-bottom: 20px;
}
.margin_20_r {
	margin-right: 20px;
}
.margin_20_l {
	margin-left: 20px;
}
.margin_15_tb {
	margin-top: 15px;
	margin-bottom: 15px;
}
.margin_15_t {
	margin-top: 15px;
}
.margin_15_b {
	margin-bottom: 15px;
}
.margin_10_tb {
	margin-top: 10px;
	margin-bottom: 10px;
}
.margin_10_t {
	margin-top: 10px;
}
.margin_10_b {
	margin-bottom: 10px;
}
.margin_10_r {
	margin-right: 10px;
}
.margin_10_l {
	margin-left: 10px;
}
.margin_5_t {
	margin-top: 5px;
}
.margin_5_b {
	margin-bottom: 5px;
}
.margin_5_tb {
	margin-bottom: 5px;
	margin-top: 5px;
}
.margin_5_r {
	margin-right: 5px;
}
.margin_5_l {
	margin-left: 5px;
}
.padding_100_t
{
	padding-top: 100px;
}
.padding_30_b
{
	padding-bottom: 30px;
}
/* ▲余白系 */

/* ----------------------------------------------------------------------------- */
/* 768px以上 */
/* ----------------------------------------------------------------------------- */
@media screen and (min-width : 768px){
	/* 余白 */
	.margin_250_tb {
		margin-bottom: 250px;
		margin-top: 250px;
	}
	.margin_250_t {
		margin-top: 250px;
	}
	.margin_250_b {
		margin-bottom: 250px;
	}
	.margin_200_tb {
		margin-bottom: 200px;
		margin-top: 200px;
	}
	.margin_200_t {
		margin-top: 200px;
	}
	.margin_200_b {
		margin-bottom: 200px;
	}
	.margin_150_tb {
		margin-bottom: 150px;
		margin-top: 150px;
	}
	.margin_150_t {
		margin-top: 150px;
	}
	.margin_150_b {
		margin-bottom: 150px;
	}
	.margin_100_tb {
		margin-bottom: 100px;
		margin-top: 100px;
	}
	.margin_100_t {
		margin-top: 100px;
	}
	.margin_100_b {
		margin-bottom: 100px;
	}
	.margin_75_tb {
		margin-top: 75px;
		margin-bottom: 75px;
	}
	.margin_75_t {
		margin-top: 75px;
	}
	.margin_75_b {
		margin-bottom: 75px;
	}
	.margin_50_tb {
		margin-top: 50px;
		margin-bottom: 50px;
	}
	.margin_50_t {
		margin-top: 50px;
	}
	.margin_50_b {
		margin-bottom: 50px;
	}
	
	/* フォント */
	.font_size_24 {
		font-size: 1.5rem;
	}
	.font_size_28 {
		font-size: 1.75rem;
	}
	.font_size_32 {
		font-size: 2rem;
	}
	.font_size_36 {
		font-size: 2.25rem;
	}
	.font_size_40 {
		font-size: 2.5rem;
	}
	.font_size_48 {
		font-size: 3rem;
	}
	.font_size_60{
		font-size : 3.8rem;
	}
}