@charset "utf-8";
/*--------------------------------------- css初期化 */
br, wbr {
	line-height: 0;
}

/* iPhoneのボタンcssの初期化 (input[type="button"],input[type="submit"],input[type="reset"]) */

.button_style_none {
	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";
}

/* 設定した高さより長くなった場合に文末以降が省略される */
.overflow_text_ellipsis {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-height: 1.5;
	max-height: 3em;
	overflow: hidden;
	position: relative;
	text-align: left;
	text-overflow: ellipsis;
}

.overflow_text_ellipsis::before, .overflow_text_ellipsis::after {
	/*IE用。疑似要素に除外設定*/
	content: '…';
	line-height: 1;
	position: absolute;
	right: 0;
	top: 2.25em;
	-ms-wrap-flow: start;
}

.overflow_text_ellipsis::after {
	background: currentColor;
	color: white;
	top: auto;
}

@supports (-webkit-line-clamp: 3) {

	/*モダンブラウザ用*/
	.overflow_text_ellipsis {
		-webkit-box-orient: vertical;
		display: -webkit-box;
		-webkit-line-clamp: 2;
	}

	.overflow_text_ellipsis::before, .overflow_text_ellipsis::after {
		content: normal;
	}
}

/*　▲テキスト　*/

/*　▼イメージ　*/
.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: contain;
		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: contain;
		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: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.flex_nowrap {
	-webkit-flex-wrap: nowrap;
	-ms-flex-wrap: nowrap;
	flex-wrap: nowrap;
}

.flex_row_reverse {
	flex-direction: row-reverse;
}

.flex_justify_content_spacebetween {
	justify-content: space-between;
	text-align: left;
}

.flex_justify_content_spacearound {
	justify-content: space-around;
	text-align: left;
}

.flex_justify_content_flex_end {
	justify-content: flex-end;
}

.flex_justify_content_center {
	justify-content: center;
}

.flex_align_items_center {
	align-items: center;
}

.flex_align_items_start {
	align-items: flex-start;
}

.flex_align_items_end {
	align-items: flex-end;
}

/* ▲display:flex 系 */

.display_block {
	display: block;
}

.display_inline {
	display: inline !important;
}

.display_inline_block {
	display: inline-block;
}

.display_none {
	display: none;
}

.pc_hidden {
	display: none;
}

.position_relative {
	position: relative;
}

.position_absolute {
	position: absolute;
}

.display_grid
{   
	display: grid;
	align-items: center;
	justify-content: center;
    gap: 20px;
}

/* リンク系 */
.wrapper_link {
	position: absolute;
	width: 100%;
	height: 100%;
	display: block;
	z-index: 1;
	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_11 {
	font-size: 0.6875rem;
}

.font_size_12 {
	font-size: 0.75rem;
}

.font_size_14 {
	font-size: 0.875rem;
}

.font_size_18 {
	font-size: min(1.125rem);
}

.font_size_21 {
	font-size: min(1.3rem,4vw);
}

.font_size_24 {
	font-size: min(1.5rem, 5.1vw);
}

.font_size_26 {
	font-size: min(1.6rem, 4.5vw);
}

.font_size_28 {
	font-size: min(1.75rem, 5.3vw);
}

.font_size_32 {
	font-size: min(2rem, 5.5vw);
}

.font_size_36 {
	font-size: min(2.25rem, 5.6vw);
}

.font_size_40 {
	font-size: min(2.5rem, 5.75vw);
}

.font_size_48 {
	font-size: min(3rem, 6vw);
}

.font_size_60 {
	font-size: min(3.8rem, 6.5vw);
}

.font_size_72 {
	font-size: min(4.5rem, 7vw);
}
.font_size_100 {
	font-size: min(6.25rem, 8vw);
}

.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;
}

.line_height_2point5em {
	line-height: 2.5em;
}

.font_weight_bold {
	font-weight: bold;
}

.font_weight_normal {
	font-weight: normal;
}

/* ▼コンテンツのサイズ */
main {
	display: block;
	width: 100%;
	margin: auto;
	min-height: 30vh;
	padding-top: 0.1px;
	padding-bottom: 0.1px;
}

.max_width_1200 {
	max-width: 1200px;
	margin: auto;
}

.max_width_950 {
	max-width: 950px;
	margin: auto;
}

.max_width_750 {
	max-width: 750px;
	margin: auto;
}

.max_width_600 {
	max-width: 600px;
	margin: auto;
}

.max_height_600 {
	max-height: 600px;
	margin: auto;
}

.width_minus_40 {
	width: calc(100% - 40px);
	margin: auto;
}

.width_minus_70 {
	width: calc(100% - 70px);
	margin: 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;
}

.width_fit_content {
	width: fit-content;
	margin: auto;
}

/* ▼余白系(t=top b=bottom r=right l=left) */
/* margin */
.margin_250_tb {
	margin-bottom: min(250px, 23vw);
	margin-top: min(250px, 23vw);
}

.margin_250_t {
	margin-top: min(250px, 23vw);
}

.margin_250_b {
	margin-bottom: min(250px, 23vw);
}

.margin_200_tb {
	margin-bottom: min(200px, 21vw);
	margin-top: min(200px, 21vw);
}

.margin_200_t {
	margin-top: min(200px, 21vw);
}

.margin_200_b {
	margin-bottom: min(200px, 21vw);
}

.margin_150_tb {
	margin-bottom: min(150px, 18vw);
	margin-top: min(150px, 18vw);
}

.margin_150_t {
	margin-top: min(150px, 18vw);
}

.margin_150_b {
	margin-bottom: min(150px, 18vw);
}

.margin_100_tb {
	margin-bottom: min(100px, 16vw);
	margin-top: min(100px, 16vw);
}

.margin_100_t {
	margin-top: min(100px, 16vw);
}

.margin_100_b {
	margin-bottom: min(100px, 16vw);
}

.margin_75_tb {
	margin-top: min(75px, 12vw);
	margin-bottom: min(75px, 12vw);
}

.margin_75_t {
	margin-top: min(75px, 12vw);
}

.margin_75_b {
	margin-bottom: min(75px, 12vw);
}

.margin_50_tb {
	margin-top: min(50px, 8vw);
	margin-bottom: min(50px, 8vw);
}

.margin_50_t {
	margin-top: min(50px, 8vw);
}

.margin_50_b {
	margin-bottom: min(50px, 8vw);
}

.margin_40_tb {
	margin-top: min(40px, 7.5vw);
	margin-bottom: min(40px, 7.5vw);
}

.margin_40_t {
	margin-top: min(40px, 7.5vw);
}

.margin_40_b {
	margin-bottom: min(40px, 7.5vw);
}

.margin_30_tb {
	margin-top: min(30px, 5vw);
	margin-bottom: min(30px, 5vw);
}

.margin_30_t {
	margin-top: min(30px, 5vw);
}

.margin_30_b {
	margin-bottom: min(30px, 5vw);
}

.margin_20_tb {
	margin-top: min(20px, 4vw);
	margin-bottom: min(20px, 4vw);
}

.margin_20_t {
	margin-top: min(20px, 4vw);
}

.margin_20_b {
	margin-bottom: min(20px, 4vw);
}

.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;
}

/* ▲余白系 */