@charset "UTF-8";

/* ====================================
	グローバル：リセットスタイル
 ==================================== */
:root {
	scroll-behavior: auto;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
figure {
	margin: 0;
	line-height: inherit;
}

img,
video {
	inline-size: 100%;
	block-size: auto;
	vertical-align: middle;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

em {
	font-style: normal;
	font-weight: bold;
}

hr {
	margin: 0;
	opacity: 1;
	border: none;
	border-top: solid 1px #bfbfbf;
}

button {
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	color: #000;
}

:focus {
	outline: none;
}

/* ====================================
	グローバル：ベーススタイル
 ==================================== */
:root {
	--global-footer-color: #3e3b33;
	--global-footer-border-color: #535148;
	--sharp-red: #e6000d;
	--cyan: #116aff;
	--charcoal-gray: #535353;
	--steel-gray: #767676;
	--silver-gray: #a0a0a0;
	--light-gray: #d9d9d9;
	--white-gray: #f5f5f5;
	--border-radius-small: 10px;
	--border-radius-medium: 20px;
	--border-radius-large: 30px;
}

html {
	font-size: 62.5%;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.6rem;
	line-height: 1.6;
	font-weight: 400;
	color: #000;
}

a {
	color: #000;
	text-decoration: none;
}

/* フォーカスインジケータ― */
*:focus-visible {
	outline: 2px solid var(--cyan);
	outline-offset: 1px;
}

/* ====================================
	共通スタイル
===================================== */
/* 注釈マーク */
.ast li::before,
.kome li::before,
.star li span {
	color: var(--cyan);
}

/* 注釈 */
.caption {
	font-size: 1.2rem;
}

.caption>li>span {
	color: var(--cyan);
	margin-right: .5em;
}

/* 注釈・その他共通 */
:is(.caption.disc, .caption.ast, .caption.dia, .caption.kome, .caption.hoshi, .caption.normal)>li::before {
	margin-right: 0.5em;
}

/* 注釈・「・」 */
.caption.normal>li::before {
	content: "\30fb";
}

/* 注釈・「●」 */
.caption.disc>li::before {
	content: "\25cf";
}

/* 注釈・「◆」*/
.caption.dia>li::before {
	content: "\25c6";
}

/* 注釈・「＊」*/
.caption.ast>li::before {
	content: "\ff0a";
}

/* 注釈・「★」*/
.caption.hoshi>li::before {
	content: "\2605";
}

/* 注釈・「※」 */
.caption.kome>li::before {
	content: "\203b";
}

/* スクロール禁止指定 */
.scroll-prevent {
	position: fixed;
	inline-size: 100%;
	block-size: 100%;
	overflow-y: scroll;
}

/* ブロックスキップリンク */
#blockSkip {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	left: -100%;
	top: -100%;
	z-index: -1;
}

#blockSkip:focus-within {
	position: absolute;
	inline-size: fit-content;
	block-size: fit-content;
	left: 20px;
	top: 20px;
	z-index: 10;
}

#blockSkip a:focus-visible {
	padding: .4em;
	background-color: #fff;
}

/* グローバルヘッダー */
.global-header-navi {
	background: #fff;
}

.global-header-navi-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	min-block-size: 56px;
}

/* グローバルヘッダー：サイトロゴ */
.global-header-logo {
	inline-size: 96px;
	display: grid;
	place-items: center;
}

/* ローカルヘッダーナビ */
.local-header-navi {
	background-color: #fff;
	border-top: 1px solid var(--light-gray);
	border-bottom: 1px solid var(--light-gray);
}

/* ローカルヘッダーナビ：ページタイトル */
.local-header-navi-title {
	padding-block: 0.5em;
	font-size: 2rem;
	font-weight: 500;
}

/* グローバルフッター */
.global-footer-navi {
	font-size: 1.2rem;
	font-weight: 500;
	background: var(--global-footer-color);
	color: #fff;
	border-bottom: solid 1px var(--global-footer-border-color);
}

.global-footer-navi-link {
	color: inherit;
}

.global-footer-navi-list {
	font-size: 1.2rem;
	padding-block: 1.5em;
}

.global-footer-navi-list>li:not(:first-child) {
	margin-top: 1em;
}

/* グローバルフッター：コピーライト */
.copyright {
	padding-block: 1.5em;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1;
	background: var(--global-footer-color);
	color: #fff;
	text-align: center;
}

.copyright-link {
	color: inherit;
}

/* ページトップに戻るボタン */
#pageTop {
	padding-block: 2rem;
	text-align: right;
	position: sticky;
	bottom: 0;
	z-index: 10;
	font-size: 0;
	pointer-events: none;
}

.link-page-top {
	display: inline-block;
	inline-size: 4rem;
	block-size: 3rem;
	border-radius: 5px;
	border: 1px solid var(--charcoal-gray);
	background: var(--charcoal-gray) url('/assets/common/images/chevron-up-solid-w.svg') no-repeat center center/1.8rem auto;
	pointer-events: auto;
}

/* ==========================================
	ホバー、マウスポインタがサポートされている環境
=========================================== */
@media (hover:hover) and (pointer: fine) {

	a:hover {
		color: #000;
		text-decoration: underline;
		text-underline-offset: 2px;
	}

	.hover-fade a,
	a.hover-fade,
	a.hover-parent.hovering .hover-trigger.fade {
		transition: opacity .3s ease 0s;
	}

	.hover-fade a.hovering,
	a.hover-fade.hovering,
	a.hover-parent.hovering .hover-trigger.fade {
		opacity: .7;
	}

	a.hover-parent {
		display: block;
		pointer-events: none;
		text-decoration: none;
	}

	a.hover-parent .hover-trigger {
		pointer-events: auto;
	}

	a.hover-parent span.hover-trigger {
		display: inline-block;
	}

	a.hover-parent.hovering .hover-trigger {
		text-decoration: underline;
		text-underline-offset: 3px;
	}

	/* ブロックスキップリンク	 */
	#blockSkip a:hover {
		text-decoration: none;
	}

	/* グローバルフッター */
	.global-footer-navi-link:hover {
		color: inherit;
	}

	/* グローバルフッター：コピーライト */
	.copyright-link:hover {
		color: inherit;
	}

	/* ページトップに戻る */
	.link-page-top:hover {
		background-image: url('/assets/common/images/chevron-up-solid.svg');
		background-color: #fff;
		transition: background-color .3s ease;
	}
}

/* ====================================
	スマートフォン専用スタイル（～768px）
===================================== */
@media screen and (width <768px) {

	.desktop-only,
	.pc-only {
		display: none;
	}

	.base-width-sp,
	.base-width {
		padding-inline: 5%;
	}

	.star>li>span,
	.single>li>span {
		margin-right: .5em;
	}

	/* 注釈（※） */
	.kome>li::before {
		content: "\203b";
		margin-right: 0.5em;
	}
}

/* ====================================
	TAB、PC、印刷専用スタイル（768px～）
===================================== */
@media print,
screen and (width >=768px) {
	.sp-only {
		display: none;
	}

	body {
		line-height: 1.5;
	}

	.outer-base-width {
		padding-inline: 1.5%;
	}

	/* 注釈 */
	.caption {
		padding-left: 2em;
	}

	.caption>li {
		text-indent: -2em;
	}

	/* 注釈・その他 */
	.caption.disc,
	.caption.ast,
	.caption.dia,
	.caption.hoshi,
	.caption.kome,
	.caption.normal {
		padding-left: 1.5em;
	}

	:is(.caption.disc, .caption.ast, .caption.dia, .caption.kome, .caption.hoshi, .caption.normal)>li {
		text-indent: -1.5em;
	}

	/* グローバルヘッダー */
	.global-header-navi-inner {
		justify-content: space-between;
		column-gap: 10px;
		min-block-size: 7.2rem;
	}

	.global-header-logo {
		inline-size: 125px;
	}

	/* グローバルフッター */
	.global-footer-navi-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 1em;
	}

	.global-footer-navi-list>li {
		padding-inline: 0.75em;
		border-left: solid 1px #fff;
	}

	.global-footer-navi-list>li:not(:first-child) {
		margin-top: 0;
	}

	.global-footer-navi-list>li:first-child {
		border-left: none;
	}

	/* ページトップに戻る */
	#pageTop {
		block-size: 8rem;
	}

	.link-page-top {
		inline-size: 6rem;
		block-size: 4rem;
	}
}

/* ====================================
	タブレット専用スタイル（768px～1079px）
===================================== */
@media screen and (768px <=width < 1080px) {
	.desktop-only {
		display: none;
	}
}

/* ====================================
	PC専用スタイル（1080px～）
===================================== */
@media print,
screen and (1080px <=width) {

	.outer-base-width.base90 {
		padding-inline: 5%;
	}
}

/* ====================================
	大画面PC専用スタイル（1200px～）
===================================== */
@media screen and (1200px <=width) {

	.base-width-pc,
	.base-width {
		max-inline-size: 1200px;
		margin-inline: auto;
	}

	.outer-base-width.base90 .base-width {
		max-inline-size: 1080px;
	}
}

/* ====================================
	印刷専用スタイル
===================================== */
@media print {
	body {
		inline-size: 960px;
		margin-inline: auto;
	}
}