@charset "UTF-8";
/* ==================
カラー */
:root{
	--color-main:#011a43;
	--color-main-strong:#000a21;
	--color-main-soft: #657086;
	--color-main-pale: #afb7c5;
	--color-main-thin: #d3d8e0;
	--color-main-very-thin: #f5f7f9;

	--color-accent: #c75454;
	--color-base: #011a43;

	--color-gray:#7b7b7b;
	--color-bk: #2f2f2f;
	--color-white:#ffffff;

	/* hover ／ focus */
	--color-link: #0094d7;
	--color-link--hover: #1a46d5;
	--color-focus: #1a46d5;

	/* scroll bar */
	/* --color-scroll-bar: #4b6572;
	--color-scroll-bar-body: #053A5C; */
}


/* ==================
フォントファミリー */
:root{
	/* ベース */
	--baseFonts: "Times New Roman","Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	/* タイトル周り */
	--mincho: "Shippori Mincho", serif;
	/* アルファベット */
	--alphabet: "Times New Roman", "Noto Serif JP", serif;
	/* ナンバー */
	--number: "Times New Roman", "Noto Serif JP", serif;
	/* 記号 / 注釈のマークなど */
	--sine: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}


/* ==================
フォントサイズ */
:root{
	/* ================== */
	/* px to rem // 16px = 1rem = (16rem / 16) */
	/* 559px 34.9375rem */
	/* 959px 59.9375rem */
	/* ================== */
	/* 基準値 min-width320px max-width1100px
	   必ず fall back も作成してください */
	/* 12px to 12px */
	--txt-xxs: calc(12rem/16);
	/* 14px to 14px */
	--txt-xs: calc(14rem/16);
	/* 15px to 15px */
	--txt-sm: calc(15rem/16);
	/* 15px to 16px */
	--txt-reg: clamp(0.938rem, calc(0.912rem + 0.128vw), 1rem);
	/* 15px to 20px */
	--txt-md: clamp(0.938rem, calc(0.809rem + 0.641vw), 1.25rem);
	/* 20px to 25px */
	--txt-lg: clamp(1.25rem, calc(1.122rem + 0.641vw), 1.563rem);
	/* 20px to 30px */
	--txt-xl: clamp(1.25rem, calc(0.994rem + 1.282vw), 1.875rem);
	/* min: 20px, max: 35px */
	--txt-xxl: clamp(1.25rem, calc(0.865rem + 1.923vw), 2.188rem);
	/* 26px to 40px */
	--txt-4xl: clamp(1.625rem, calc(1.266rem + 1.795vw), 2.5rem);
	/* 26px to 50px */
	--txt-5xl: clamp(1.625rem, calc(1.01rem + 3.077vw), 3.125rem);
	/* 26px to 60px */
	--txt-6xl: clamp(1.625rem, calc(0.753rem + 4.359vw), 3.75rem);
	/* 26px to 70px */
	--txt-7xl: clamp(1.625rem, calc(0.497rem + 5.641vw), 4.375rem);
	/* 26px to 80px */
	--txt-8xl: clamp(1.625rem, calc(0.24rem + 6.923vw), 5rem);
	/* 26px to 90px */
	--txt-9xl: clamp(1.625rem, calc(-0.016rem + 8.205vw), 5.625rem);
	/* 26px to 100px */
	--txt-10xl: clamp(1.625rem, calc(-0.272rem + 9.487vw), 6.25rem);
}
/* ==================
フォントサイズ／フォールバック／ clampをサポートしていない場合 */
@supports not ( font-size: clamp(0.938rem, 0.915rem + 0.11vw, 1rem) ){
	:root{
		/* 12px to 12px */
		--txt-xxs: calc(12rem/16);
		/* 14px to 14px */
		--txt-xs: calc(14rem/16);
		/* 15px to 15px */
		--txt-sm: calc(15rem/16);
		/* 15px to 16px */
		--txt-reg: max(0.938rem, min( calc( 0.912rem + 0.128vw)), 1rem);
		/* 15px to 20px */
		--txt-md: max(0.938rem, min( calc( 0.809rem + 0.641vw)), 1.25rem);
		/* 20px to 25px */
		--txt-lg: max(1.25rem, min( calc( 1.122rem + 0.641vw)), 1.563rem);
		/* 20px to 30px */
		--txt-xl: max(1.25rem, min( calc( 0.994rem + 1.282vw)), 1.875rem);
		/* min: 20px, max: 35px */
		--txt-xxl: max(1.25rem, min( calc(0.865rem + 1.923vw) ), 2.188rem);
		/* 26px to 40px */
		--txt-4xl: max(1.625rem, min( calc( 1.266rem + 1.795vw)), 2.5rem);
		/* 26px to 50px */
		--txt-5xl: max(1.625rem, min( calc( 1.01rem + 3.077vw)), 3.125rem);
		/* 26px to 60px */
		--txt-6xl: max(1.625rem, min( calc( 0.753rem + 4.359vw)), 3.75rem);
		/* 26px to 70px */
		--txt-7xl: max(1.625rem, min( calc( 0.497rem + 5.641vw)), 4.375rem);
		/* 26px to 80px */
		--txt-8xl: max(1.625rem, min( calc( 0.24rem + 6.923vw)), 5rem);
		/* 26px to 90px */
		--txt-9xl: max(1.625rem, min( calc( -0.016rem + 8.205vw)), 5.625rem);
		/* 26px to 100px */
		--txt-10xl: max(1.625rem, min( calc( -0.272rem + 9.487vw)), 6.25rem);
	}
}


/* =======================
ガーター */
:root{
	/* ガーター基礎設定 */
	--gutter-xxs: calc(10rem / 16);
	--gutter-xs: calc(20rem / 16);
	--gutter-sm: calc(30rem / 16);
	--gutter-reg: calc(40rem / 16);
	--gutter-md: calc(50rem / 16);
	--gutter-lg: calc(60rem / 16);
	--gutter-xl: calc(80rem / 16);
	--gutter-2xl: calc(100rem / 16);
	--gutter-3xl: calc(120rem / 16);
	--gutter-4xl: calc(140rem / 16);
	--gutter-5xl: calc(160rem / 16);

	/* 可変ガーター */
	/* 基準値 min-width320px max-width1100px
	   必ず fall back も作成してください */
	/* 10px to 20px */
	--gutter-var-xs: clamp(10px, calc(0.369rem + 1.282vw), 1.25rem);
	/* 10px to 30px */
	--gutter-var-sm: clamp(10px, calc(0.112rem + 2.564vw), 1.875rem);
	/* 10px to 40px */
	--gutter-var-reg: clamp(10px, calc(-0.144rem + 3.846vw), 2.5rem);
	/* 15px to 50px */
	--gutter-var-md: clamp(15px, calc(0.04rem + 4.487vw), 3.125rem);
	/* 15px to 60px */
	--gutter-var-lg: clamp(15px, calc(-0.216rem + 5.769vw), 3.75rem);
	/* 20px to 80px */
	--gutter-var-xl: clamp(20px, calc(-0.288rem + 7.692vw), 5rem);
	/* 40px to 100px */
	--gutter-var-2xl: clamp(40px, calc(0.962rem + 7.692vw), 6.25rem);
	/* 40px to 120px */
	--gutter-var-3xl: clamp(40px, calc(0.449rem + 10.256vw), 7.5rem);
	/* 40px to 140px */
	--gutter-var-4xl: clamp(40px, calc(-0.064rem + 12.821vw), 8.75rem);
	/* 40px to 160px */
	--gutter-var-5xl: clamp(40px, calc(-0.577rem + 15.385vw), 10rem);
}
/* ==================
ガーター／フォールバック／ clampをサポートしていない場合 */
@supports not ( margin: clamp(10px, 3.13vw, calc(40rem / 16)) ){
	:root{
		/* 可変ガーター */
		/* 10px to 20px */
		--gutter-var-xs: max(10px,min( calc(0.369rem + 1.282vw)), 1.25rem);
		/* 10px to 30px */
		--gutter-var-sm: max(10px,min( calc(0.112rem + 2.564vw)), 1.875rem);
		/* 10px to 40px */
		--gutter-var-reg: max(10px,min( calc(-0.144rem + 3.846vw)), 2.5rem);
		/* 15px to 50px */
		--gutter-var-md: max(15px,min( calc(0.04rem + 4.487vw)), 3.125rem);
		/* 15px to 60px */
		--gutter-var-lg: max(15px,min( calc(-0.216rem + 5.769vw)), 3.75rem);
		/* 20px to 80px */
		--gutter-var-xl: max(20px,min( calc(-0.288rem + 7.692vw)), 5rem);
		/* 40px to 100px */
		--gutter-var-2xl: max(40px,min( calc(0.962rem + 7.692vw)), 6.25rem);
		/* 40px to 120px */
		--gutter-var-3xl: max(40px,min( calc(0.449rem + 10.256vw)), 7.5rem);
		/* 40px to 140px */
		--gutter-var-4xl: max(40px,min( calc(-0.064rem + 12.821vw)), 8.75rem);
		/* 40px to 160px */
		--gutter-var-5xl: max(40px,min( calc(-0.577rem + 15.385vw)), 10rem);
	}
}
@media ( max-width: 959px ){
	:root{
		/* ガーター基礎設定 */
		--gutter-md: calc(40rem / 16);
		--gutter-lg: calc(60rem / 16);
		--gutter-xl: calc(60rem / 16);
		--gutter-2xl: calc(100rem / 16);
		--gutter-3xl: calc(120rem / 16);
		--gutter-4xl: calc(120rem / 16);
		--gutter-5xl: calc(120rem / 16);
	}
}
@media ( max-width: 559px ){
	:root{
		/* ガーター基礎設定 */
		--gutter-2xl: calc(80rem / 16);
		--gutter-3xl: calc(80rem / 16);
		--gutter-4xl: calc(80rem / 16);
		--gutter-5xl: calc(80rem / 16);
	}
}


/* =======================
width/height */
:root{
	--max-width: calc(1100rem/16);
	--max-width--xl: calc(1800rem/16);
	--max-width--lg: calc(1400rem/16);
	--max-width--md: calc(990rem/16);
	--max-width--sm: calc(880rem/16);
	--max-width--xs: calc(660rem/16);
	--flexible-width: min(
		calc(100% - calc(var(--gutter-var-xl) * 2)),
		var(--max-width)
	);
	--flexible-width--md: min(
		calc(100% - calc(var(--gutter-var-xl) * 2)),
		var(--max-width--md)
	);
	--flexible-width--sm: min(
		calc(100% - calc(var(--gutter-var-xl) * 2)),
		var(--max-width--sm)
	);
	--flexible-width--xs: min(
		calc(100% - calc(var(--gutter-var-xl) * 2)),
		var(--max-width--xs)
	);
	/* ツラ合わせ設定
	window幅 - コンテンツ幅 / 2 = 片側の余白値 */
	--head-match-space: max(
		var(--gutter-var-xl),
		calc(calc(100vw - var(--max-width))/2)
	);
	--head-match-space--md: max(
		var(--gutter-var-xl),
		calc(calc(100vw - var(--max-width--md))/2)
	);
	--head-match-space--sm: max(
		var(--gutter-var-xl),
		calc(calc(100vw - var(--max-width--sm))/2)
	);
	--head-match-space--xs: max(
		var(--gutter-var-xl),
		calc(calc(100vw - var(--max-width--xs))/2)
	);


	/* =======================
	height */
	--height-vh-fit: calc(var(--vh, 1vh) * 100);
}


/* ==================
イージング */
:root{
	/* linear */
	/* 均等 */
	--linear:cubic-bezier(0.0, 0.0, 1.0, 1.0);

	/* easeInSine */
	--easeInSine:cubic-bezier(.47, 0, .745, .715);
	/* easeOutSine */
	--easeOutSine:cubic-bezier(.39, .575, .565, 1);
	/* easeInOutSine */
	--easeInOutSine:cubic-bezier(.445, .05, .55, .95);

	/* easeInQuad */
	--easeInQuad:cubic-bezier(.55, .085, .68, .53);
	/* easeOutQuad */
	--easeOutQuad:cubic-bezier(.25, .46, .45, .94);
	/* easeInOutQuad */
	--easeInOutQuad:cubic-bezier(.455, .03, .515, .955);

	/* easeInCubic */
	--easeInCubic:cubic-bezier(.55, .055, .675, .19);
	/* easeOutCubic */
	--easeOutCubic:cubic-bezier(.215, .61, .355, 1);
	/* easeInOutCubic */
	--easeInOutCubic:cubic-bezier(.645, .045, .355, 1);

	/* easeInQuart */
	--easeInQuart:cubic-bezier(.895, .03, .685, .22);
	/* easeOutQuart */
	--easeOutQuart:cubic-bezier(.165, .84, .44, 1);
	/* easeInOutQuart */
	--easeInOutQuart:cubic-bezier(.77, 0, .175, 1);

	/* easeInQuint */
	--easeInQuint:cubic-bezier(.755, .05, .855, .06);
	/* easeOutQuint */
	--easeOutQuint:cubic-bezier(.23, 1, .32, 1);
	/* easeInOutQuint */
	--easeInOutQuint:cubic-bezier(.86, 0, .07, 1);

	/* easeInExpo */
	--easeInExpo:cubic-bezier(.95, .05, .795, .035);
	/* easeOutExpo */
	--easeOutExpo:cubic-bezier(.19, 1, .22, 1);
	/* easeInOutExpo */
	--easeInOutExpo:cubic-bezier(1, 0, 0, 1);

	/* easeInCirc */
	--easeInCirc:cubic-bezier(.6, .04, .98, .335);
	/* easeOutCirc */
	--easeOutCirc:cubic-bezier(.075, .82, .165, 1);
	/* easeInOutCirc */
	--easeInOutCirc:cubic-bezier(.785, .135, .15, .86);

	/* 戻る動き//慣性スクロールのバウンドみたいな感じ */
	/* easeInBack */
	--easeInBack:cubic-bezier(.6, -0.28, .735, .045);
	/* easeOutBack */
	--easeOutBack:cubic-bezier(.175, .885, .32, 1.275);
	/* easeInOutBack */
	--easeInOutBack:cubic-bezier(.68, -0.55, .265, 1.55);
}