@charset "UTF-8";

/* ====================================
	2026年リニューアル新テンプレートの共通スタイル
 ==================================== */

/* ====================================
	Webフォント：Source Sans 3
 ==================================== */
@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-300.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-300italic.woff2') format('woff2');
	font-weight: 300;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-400italic.woff2') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-500.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-500italic.woff2') format('woff2');
	font-weight: 500;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-600.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-600italic.woff2') format('woff2');
	font-weight: 600;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-700.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Source Sans 3';
	src: url('/assets/common/fonts/source-sans-3-latin-700italic.woff2') format('woff2');
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

/* ====================================
	グローバル：リセットスタイル
 ==================================== */
:root {
	/* グローバルヘッダーの高さ */
	--global-header-height: 56px;
	scroll-behavior: smooth;
}

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: 1px solid #bfbfbf;
}

button {
	appearance: none;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	color: var(--black);
	cursor: pointer;
}

:focus {
	outline: none;
}

caption {
	caption-side: initial;
	text-align: initial;
	font-weight: initial;
	font-style: initial;
	font-size: initial;
	color: initial;
	margin: 0;
	padding: 0;
}

address {
	margin: 0;
}

/* ====================================
	グローバル：ベーススタイル
 ==================================== */
:root {
	/* ブランドカラー */
	--sharp-red: #e6000d;

	/* 基本色 */
	--black: #000;
	--white: #fff;

	/* テキストリンク */
	--link-blue: #0c46a4;

	/* グレー */
	--gray-100: #f5f5f5;
	--gray-200: #e6e6e6;
	--gray-300: #d9d9d9;
	--gray-500: #959595;
	--gray-600: #767676;
	--gray-700: #535353;

	/* グローバルフッターの配色 */
	--footer-bg: #3e3b33;
	--footer-sitemap-bg: #59574c;
	--footer-border: #535148;

	/* フォーカスインジケーター */
	--focus-ring: #116aff;

	--border-radius-large: 30px;

	/* 矢印アイコン */
	--icon-arrow-right: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.216 13'%3e%3cpath d='M0 6H11.4333L6.5333 0.75L7.1493 0L13.216 6.5L7.1493 13L6.5333 12.25L11.4333 7H0V6Z'/%3e%3c/svg%3e");
	--icon-arrow-down: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3e%3cpath d='M4.62 0V10.38L0.58 5.93L0 6.49L5 12L10 6.49L9.42 5.93L5.38 10.38V0H4.62Z'/%3e%3c/svg%3e");
	--icon-chevron-right: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5.825 9.641'%3e%3cpath d='M5.445 5.57069L1.645 9.50172C1.465 9.68793 1.165 9.68793 0.985 9.50172L0.135 8.62241C-0.045 8.43621 -0.045 8.12586 0.135 7.93965L3.145 4.81552L0.135 1.69138C-0.045 1.50517 -0.045 1.19483 0.135 1.00862L0.975 0.139655C1.155 -0.0465517 1.455 -0.0465517 1.635 0.139655L5.435 4.07069C5.965 4.61897 5.945 5.06379 5.435 5.59138L5.445 5.57069Z'/%3e%3c/svg%3e");
}

html {
	font-size: 62.5%;
	scrollbar-gutter: stable;
}

/* 背面スクロール禁止 */
html:has(dialog:modal) {
	overflow: hidden;
}

dialog {
	overscroll-behavior: contain;
}

body {
	font-family: 'Source Sans 3', sans-serif;
	font-size: 1.6rem;
	line-height: 1.6;
	font-weight: 400;
	color: var(--black);
}

@media print,
screen and (width >=768px) {
	body {
		line-height: 1.5;
	}
}

a {
	color: var(--black);
	text-decoration: none;
}

@media (hover:hover) and (pointer: fine) {
	a:hover {
		text-decoration: underline;
		text-underline-offset: 2px;
	}
}

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

/* ====================================
	共通パーツ：リンクの外観
 ==================================== */
a.link-underline,
.link-underline a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.8em;
	font-size: 1.4rem;
	line-height: 1.7;
	color: var(--link-blue);
}

.text-link__arrow {
	flex: none;
	inline-size: .6rem;
	block-size: 1rem;
	background: currentColor;
	mask: var(--icon-chevron-right) no-repeat center / contain;
}

.link-arrow::after {
	content: '';
	flex: none;
	inline-size: 2.4rem;
	block-size: 2.4rem;
	background: url('/assets/common/images/icon-arrow-circle-right.svg') no-repeat center / contain;
}

@media (hover:hover) and (pointer: fine) {

	a.link-underline:hover,
	.link-underline a:hover {
		text-decoration: none;
	}

	.link-arrow:hover::after,
	a:hover .link-arrow::after {
		background-image: url('/assets/common/images/icon-arrow-circle-right-hover.svg');
	}
}

/* ====================================
	共通パーツ：枠線付きのボタンリンク
 ==================================== */
.button-link {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 1em;
	padding: .8em 1em;
	border: 1px solid var(--gray-500);
	font-size: 1.6rem;
	line-height: 1.2;
}

.button-link__arrow {
	flex: none;
	inline-size: 1.4rem;
	block-size: 1.3rem;
	background: currentColor;
	mask: var(--icon-arrow-right) no-repeat center / contain;
}

@media (hover:hover) and (pointer: fine) {
	.button-link:hover {
		border-color: var(--sharp-red);
		color: var(--sharp-red);
		text-decoration: none;
	}
}

@media print,
screen and (width >=768px) {

	.button-link {
		gap: 3rem;
		padding: 2rem 2rem 2rem 3rem;
		font-size: 1.8rem;
	}
}

/* ====================================
	レイアウト：.layout-outer > .layout-inner
	ブレイクポイント：1080px＝ヘッダー切替 / 768px＝レイアウト / 1200px＝コンテンツ最大幅
 ==================================== */
.layout-outer {
	padding-inline: 5%;
}

@media print,
screen and (width >=768px) {
	.layout-outer {
		padding-inline: 1.5%;
	}
}

@media screen and (1200px <=width) {
	.layout-inner {
		max-inline-size: 1200px;
		margin-inline: auto;
	}
}

/* ====================================
	ブロックスキップリンク
 ==================================== */
.skip-link {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	white-space: nowrap;
	clip-path: inset(50%);
}

.skip-link:focus-visible {
	inline-size: auto;
	block-size: auto;
	overflow: visible;
	clip-path: none;
	inset: 20px auto auto 20px;
	z-index: 100;
	padding: .6rem 1.3rem;
	background: var(--white);
	color: var(--black);
	text-decoration: underline;
}

/* ====================================
	グローバルヘッダー
 ==================================== */
.global-header {
	--global-header-gap: 20px;
}

@media screen and (width < 1080px) {
	.global-header {
		background: var(--white);
		position: sticky;
		top: 0;
		z-index: 15;
		border-bottom: 1px solid var(--gray-200);
		box-shadow: 0 0 5px #eee;
	}
}

/* グローバルヘッダー・ラップ要素 */
.global-header__container {
	display: flex;
	justify-content: center;
	align-items: center;
	min-block-size: var(--global-header-height);
}

@media screen and (width < 1080px) {
	.global-header__container {
		block-size: var(--global-header-height);
		position: relative;
	}
}

@media print,
screen and (1080px <=width) {
	:root {
		--global-header-height: 72px;
	}

	.global-header__container {
		justify-content: flex-start;
		column-gap: var(--global-header-gap);
	}
}

/* グローバルナビメニュー開閉ボタン */
@media screen and (width < 1080px) {
	.global-header__toggle {
		display: grid;
		place-items: center;
		inline-size: 24px;
		position: absolute;
		top: 16px;
		left: 0;
		transition: opacity .4s ease;
	}

	/* ダイアログを開いている間はハンバーガーを隠す */
	.global-header__toggle:has(~ .global-header__nav-dialog[open]) {
		opacity: 0;
	}
}

@media print,
screen and (1080px <=width) {
	.global-header__toggle {
		display: none;
	}
}

/* グローバルヘッダー・サイトロゴ */
.global-header__logo {
	inline-size: 96px;
}

.global-header__logo a {
	display: grid;
	place-items: center;
}

@media print,
screen and (1080px <=width) {
	.global-header__logo {
		inline-size: 125px;
	}
}

/* グローバルナビゲーション：モバイルのダイアログ */
@media screen and (width < 1080px) {
	.global-header__nav-dialog {
		position: fixed;
		inset: 0;
		inline-size: 100%;
		max-inline-size: none;
		block-size: 100%;
		max-block-size: none;
		margin: 0;
		padding: 0;
		border: none;
		background: none;
		opacity: 0;
		transition: opacity .4s ease, display .4s allow-discrete, overlay .4s allow-discrete;
	}

	.global-header__nav-dialog[open] {
		opacity: 1;
	}

	/* 開くときの遷移元 */
	@starting-style {
		.global-header__nav-dialog[open] {
			opacity: 0;
		}
	}

	.global-header__nav-dialog::backdrop {
		background: transparent;
	}

	/* 実ヘッダーに重ねる透過バー */
	.global-header__nav-dialog-bar {
		block-size: var(--global-header-height);
	}

	/* ×ボタン */
	.global-header__nav-close {
		display: grid;
		place-items: center;
		inline-size: 24px;
		position: absolute;
		top: 16px;
		left: 0;
	}
}

/* PCではダイアログの器を消す */
@media print,
screen and (1080px <=width) {
	.global-header__nav-dialog {
		display: contents;
	}

	.global-header__nav-dialog-bar {
		display: none;
	}
}

/* グローバルナビゲーション */
@media screen and (width < 1080px) {
	.global-header__nav {
		display: block;
		block-size: calc(100dvh - var(--global-header-height));
		background-color: rgba(0, 0, 0, 0.6);
		overflow: auto;
	}
}

@media print,
screen and (1080px <=width) {
	.global-header__nav {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0 var(--global-header-gap);
		font-size: 1.5rem;
		margin-inline-start: auto;
	}
}

/* グローバルヘッダー：サイト内検索 */
.global-site-search__open {
	inline-size: 30px;
}

.global-site-search__form {
	display: flex;
	justify-content: space-between;
	--global-site-search-height: 4rem;
	block-size: var(--global-site-search-height);
	background: var(--white);
	color: #716f63;
	position: relative;
}

.global-site-search__input {
	inline-size: calc(100% - var(--global-site-search-height));
	block-size: 100%;
	border: none;
	padding: .6rem 0 .6rem 1.6rem;
	font-size: 1.6rem;
}

.global-site-search__input:focus-visible {
	outline-color: var(--black);
}

.global-site-search__submit {
	display: grid;
	place-items: center;
	block-size: 100%;
	aspect-ratio: 1/ 1;
	background-color: var(--black);
}

.global-site-search__submit img {
	inline-size: 24px;
}

@media screen and (width < 1080px) {
	.global-site-search {
		inline-size: 100%;
		padding: 15px 5%;
		background-color: var(--gray-100);
	}

	.global-site-search__form {
		border-radius: 5px;
	}
}

@media print,
screen and (1080px <=width) {
	.global-site-search__dialog {
		position: fixed;
		inset: var(--global-site-search-top, 72px) 0 auto;
		inline-size: 100%;
		max-inline-size: none;
		block-size: calc(100% - var(--global-site-search-top, 72px));
		max-block-size: none;
		margin: 0;
		padding: 0;
		border: none;
		background-color: rgba(0, 0, 0, 0.6);
		z-index: 11;
		opacity: 0;
		transition: opacity .4s ease, display .4s allow-discrete, overlay .4s allow-discrete;
	}

	.global-site-search__dialog[open] {
		opacity: 1;
	}

	@starting-style {
		.global-site-search__dialog[open] {
			opacity: 0;
		}
	}

	.global-site-search__dialog::backdrop {
		background: transparent;
	}

	.global-site-search__container {
		background: var(--gray-100);
		padding-inline: 5%;
	}

	.global-site-search__dialog .layout-inner {
		padding-block: 5rem;
		position: relative;
	}

	.global-site-search__title {
		font-size: 2.4rem;
		font-weight: 500;
		text-align: center;
	}

	.global-site-search__title+.global-site-search__form {
		margin-top: 2.4rem;
	}

	.global-site-search__form {
		--global-site-search-height: 5rem;
		inline-size: 750px;
		margin-inline: auto;
	}

	.global-site-search__submit img {
		inline-size: 28px;
	}

	.global-site-search__close {
		position: absolute;
		inset: 2rem 0 auto auto;
		display: block;
		inline-size: 26px;
		block-size: 26px;
	}
}

/* グローバルヘッダー：ナビ項目 */
.global-header__nav-list a.active {
	font-weight: 500;
}

@media screen and (width < 1080px) {

	.global-header__nav-list,
	.global-header__nav-sublist,
	.global-header__nav-footer {
		inline-size: 100%;
		background: var(--white);
		position: relative;
	}

	.global-header__nav-list>li:not(:first-child),
	.global-header__nav-sublist>li {
		border-top: 1px solid var(--gray-300);
	}

	.global-header__nav-list>li>a,
	.global-header__nav-sublist>li>a {
		display: block;
		padding: 16px 40px 16px 20px;
		font-size: 1.4rem;
		font-weight: 500;
		position: relative;
	}

	.global-header__nav-list>li>a::before,
	.global-header__nav-sublist>li>a::before {
		content: '';
		inline-size: 12px;
		block-size: 14px;
		background: url('/assets/common/images/chevron-right-solid.svg') no-repeat center center/auto 100%;
		position: absolute;
		top: 50%;
		right: 20px;
		margin-top: -.7rem;
	}

	/* 開閉する項目：＋／− アイコン */
	.global-header__nav-list>li>a[aria-expanded]::before {
		background-image: url('/assets/common/images/plus-solid.svg');
	}

	.global-header__nav-list>li>a[aria-expanded="true"]::before {
		background-image: url('/assets/common/images/minus-solid.svg');
	}
}

@media print,
screen and (1080px <=width) {
	.global-header__nav-list {
		display: flex;
		flex-wrap: wrap;
		column-gap: var(--global-header-gap);
		padding-inline-end: var(--global-header-gap);
		border-inline-end: 1px solid var(--black);
	}

	.global-header__nav-list a {
		display: inline-block;
		position: relative;
	}

	.global-header__nav-list a::before {
		content: '';
		position: absolute;
		inset: auto 0 -.2rem;
		display: block;
		block-size: 1px;
		background: var(--sharp-red);
	}

	.global-header__nav-list a::before {
		inline-size: 0;
		margin-inline: auto;
		transition: inline-size 0.3s ease;
	}

	.global-header__nav-list a.active::before {
		transition: none;
	}

	.global-header__nav-list a.active::before,
	.global-header__nav-list a:hover::before {
		inline-size: 100%;
	}

}

@media (hover:hover) and (pointer: fine) and (1080px <=width) {
	.global-header__nav-list a:hover {
		text-decoration: none;
	}
}

/* グローバルヘッダー：サブメニュー（開閉アニメーション） */
.global-header__submenu {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	background: var(--gray-100);
	border-top: 1px solid var(--gray-300);
	transition: grid-template-rows .25s ease, visibility .25s;
}

.global-header__submenu>* {
	overflow: hidden;
}

.global-header__submenu.is-open {
	grid-template-rows: 1fr;
	visibility: visible;
}

@media screen and (width < 1080px) {
	.global-header__submenu a {
		display: block;
		padding-inline: 16px;
		font-size: 1.2rem;
		font-weight: 500;
	}

	.global-header__submenu-list {
		padding-inline: 20px;
	}

	.global-header__submenu-list>li>a {
		padding-block: 1.2rem;
	}

	.global-header__submenu-list>li:not(:last-of-type)>a {
		border-bottom: 1px solid var(--gray-300);
	}
}

/* PCではサブメニューを表示しない */
@media print,
screen and (1080px <=width) {
	.global-header__submenu {
		display: none;
	}
}

/* Sharp Worldwide */
@media print,
screen and (1080px <=width) {
	.global-header__link-worldwide {
		display: inline-block;
		font-size: 1.3rem;
		line-height: 1;
		text-align: center;
	}
}

/* グローバルヘッダー：SNS公式アカウント（1080px未満のみ表示） */
@media screen and (width < 1080px) {
	.global-header__nav-footer {
		padding-block: 2rem;
		border-top: 1px solid var(--gray-300);
		font-size: 1.4rem;
		text-align: center;
	}

	.global-header__nav-footer-link {
		display: inline-block;
		position: relative;
		padding-left: 1.7rem;
	}

	.global-header__nav-footer-link::before {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
		background: url('/assets/common/images/chevron-right-solid.svg') no-repeat center center/auto 100%;
		inline-size: 1em;
		block-size: 1em;
	}
}

@media print,
screen and (1080px <=width) {
	.global-header__nav-footer {
		display: none;
	}
}

/* ブレイクポイントをまたぐ瞬間のトランジション抑止 */
.is-breakpoint-switching .global-header__nav-dialog,
.is-breakpoint-switching .global-header__submenu,
.is-breakpoint-switching .global-header__nav-list a::before {
	transition: none;
}

/* ====================================
	ローカルナビ
 ==================================== */
.local-nav {
	display: none;
}

@media print,
screen and (1080px <=width) {
	.local-nav {
		--local-nav-height: 40px;
		display: block;
		min-block-size: var(--local-nav-height);
		background: var(--gray-100);
		border-bottom: 1px solid var(--gray-300);
	}

	.local-nav__list {
		display: flex;
		align-items: center;
		gap: 30px;
		min-block-size: calc(var(--local-nav-height) - 1px);
		font-size: 1.3rem;
	}

	/* 現在ページ */
	.local-nav__list .active {
		font-weight: 700;
	}
}

/* ====================================
	ローカルナビ（モバイル）
 ==================================== */
.local-nav-mobile {
	margin-block-start: 6rem;
}

.local-nav-mobile__list {
	font-size: 1.4rem;
}

.local-nav-mobile__list>li {
	border-top: 1px solid var(--gray-300);
}

.local-nav-mobile__list>li:last-child {
	border-bottom: 1px solid var(--gray-300);
}

.local-nav-mobile__list>li>a,
.local-nav-mobile__button {
	display: block;
	inline-size: 100%;
	padding: 1.5rem 2.5rem 1.5rem 0;
	font-weight: inherit;
	text-align: left;
	position: relative;
}

.local-nav-mobile__list>li>a::before,
.local-nav-mobile__button::before,
.local-nav-mobile__sublist>li>a::before {
	content: '';
	display: block;
	inline-size: 12px;
	block-size: 14px;
	position: absolute;
	top: 50%;
	right: 5px;
	transform: translateY(-50%);
}

.local-nav-mobile__list>li>a::before,
.local-nav-mobile__sublist>li>a::before {
	background: url('/assets/common/images/chevron-right-solid.svg') no-repeat center center/auto 100%;
}

/* 開閉する項目：＋／− アイコン */
.local-nav-mobile__button::before {
	background: url('/assets/common/images/plus-solid.svg') no-repeat center center/auto 100%;
}

.local-nav-mobile__button[aria-expanded="true"]::before {
	background-image: url('/assets/common/images/minus-solid.svg');
}

/* 開閉アニメーション */
.local-nav-mobile__accordion {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows .25s ease, visibility .25s;
}

.local-nav-mobile__accordion>* {
	overflow: hidden;
}

.local-nav-mobile__accordion.is-open {
	grid-template-rows: 1fr;
	visibility: visible;
}

.local-nav-mobile__sublist {
	font-size: 1.2rem;
	padding-inline-start: 1.2rem;
	border-top: 1px solid var(--gray-300);
}

.local-nav-mobile__sublist>li:not(:first-child) {
	border-top: 1px solid var(--gray-300);
}

.local-nav-mobile__sublist>li>a {
	display: block;
	padding: 1.2rem 2.5rem 1.2rem .6rem;
	position: relative;
}

/* 現在ページ */
.local-nav-mobile__list .active {
	color: var(--sharp-red);
	font-weight: 500;
}

.local-nav-mobile__list .active::before {
	background-image: url('/assets/common/images/chevron-right-solid-r.svg');
}

@media (hover:hover) and (pointer: fine) {

	.local-nav-mobile__list a:hover,
	.local-nav-mobile__button:hover {
		background: var(--gray-100);
		text-decoration: none;
	}
}

/* PCでは表示しない */
@media print,
screen and (1080px <=width) {
	.local-nav-mobile {
		display: none;
	}
}

/* ====================================
	パンくずリスト
 ==================================== */
#breadcrumb {
	background: var(--gray-200);
}

.list-breadcrumb {
	font-size: 1.2rem;
	font-weight: 500;
	padding-block: 8px;
}

.list-breadcrumb>li {
	display: inline;
}

.list-breadcrumb>li:not(:first-child)::before {
	content: '\03e';
	margin-inline: .6rem;
}

@media print,
screen and (1080px <=width) {
	#breadcrumb {
		background: none;
		border-top: 1px solid var(--gray-300);
	}

	.local-nav+#breadcrumb {
		border-top: none;
	}

	.list-breadcrumb>li:not(:first-child)::before {
		margin-inline: 5px;
	}
}

/* ====================================
	メインコンテンツ
 ==================================== */

/* スキップリンクの飛び先 */
@media screen and (width < 1080px) {
	#main {
		scroll-margin-block-start: var(--global-header-height);
	}
}

/* ====================================
	共通パーツ：ページタイトル
 ==================================== */
.page-title {
	--page-title-nav-height: 2rem;
	padding-block: 2rem;
	text-align: center;
}

.page-title__heading {
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.4;
}

/* 中身は page-nav.html から流し込む */
.page-title__nav {
	min-block-size: var(--page-title-nav-height);
	margin-block-start: 2rem;
}

.page-title__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: safe center;
	gap: 1rem 0;
	font-size: 1.4rem;
	line-height: 1.4;
}

.page-title__list>li {
	display: flex;
	flex: none;
	align-items: center;
	min-block-size: var(--page-title-nav-height);
	padding-inline: 1.4rem;
	white-space: nowrap;
}

.page-title__list>li:not(:first-child) {
	border-inline-start: 1px solid var(--gray-500);
}

.page-title__list a {
	display: flex;
	align-items: center;
	gap: .7rem;
}

.page-title__list .active {
	color: var(--sharp-red);
}

.page-title__arrow {
	flex: none;
	inline-size: 1.4rem;
	block-size: 1.3rem;
	background: currentColor;
	mask: var(--icon-arrow-right) no-repeat center / contain;
}

@media (hover:hover) and (pointer: fine) {
	.page-title__list a:hover {
		color: var(--sharp-red);
		text-decoration: none;
	}
}

@media print,
screen and (width >=768px) {

	.page-title {
		padding-block: 3rem;
	}

	.page-title__heading {
		font-size: 4rem;
	}

	.page-title__nav {
		margin-block-start: 3rem;
	}

	.page-title__list>li {
		padding-inline: 2rem;
		border-inline-start: 1px solid var(--gray-500);
	}

	.page-title__list>li:last-child {
		border-inline-end: 1px solid var(--gray-500);
	}
}

/* ====================================
	共通パーツ：コンテンツの見出し
 ==================================== */
.content-title {
	padding-block: 2rem 3rem;
	text-align: center;
}

.content-title__heading {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.4;
}

.content-title__heading::after {
	content: '';
	display: block;
	inline-size: 2.6rem;
	block-size: .5rem;
	margin: 1.4rem auto 0;
	background: var(--sharp-red);
}

@media print,
screen and (width >=768px) {

	.content-title {
		padding-block: 4rem 3rem;
	}

	.content-title__heading {
		font-size: 3rem;
	}
}

/* ====================================
	共通パーツ：コンテンツのサブ見出し
 ==================================== */
.content-subtitle {
	padding-block: 2rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.4;
}

@media print,
screen and (width >=768px) {

	.content-subtitle {
		padding-block: 3rem;
		font-size: 2.6rem;
	}
}

/* ====================================
	共通パーツ：更新日
 ==================================== */
.content-date {
	padding-block-end: 2rem;
	font-size: 1.2rem;
	text-align: end;
}

@media print,
screen and (width >=768px) {

	.content-date {
		padding-block-end: 3rem;
		font-size: 1.6rem;
	}
}

/* ====================================
	共通パーツ：リード文
 ==================================== */
.content-lead {
	padding-block-end: 6rem;
}

.content-lead .layout-inner {
	max-inline-size: 860px;
	margin-inline: auto;
}

.content-lead__text {
	line-height: 1.8;
}

.content-lead__note {
	margin-block-start: 4rem;
	font-size: 1.2rem;
	line-height: 1.8;
}

@media print,
screen and (width >=768px) {

	.content-lead__text {
		font-size: 2rem;
	}
}

/* ====================================
	共通パーツ：セクション
 ==================================== */
.content-section {
	padding-block-end: 5rem;
}

@media print,
screen and (width >=768px) {
	.content-section {
		padding-block-end: 10rem;
	}
}

/* ====================================
	共通パーツ：ページ内リンクの飛び先
 ==================================== */
.anchor-target {
	scroll-margin-block-start: 2rem;
}

@media screen and (width < 1080px) {
	.anchor-target {
		scroll-margin-block-start: calc(2rem + var(--global-header-height));
	}
}

/* ====================================
	共通パーツ：ページ内リンク
 ==================================== */
.anchor-nav {
	padding-block-end: 3rem;
}

.anchor-nav__list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	padding: 2rem;
	background: var(--gray-100);
}

.anchor-nav__list a {
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
}

.anchor-nav__arrow {
	flex: none;
	inline-size: 1rem;
	block-size: 1.2rem;
	background: currentColor;
	mask: var(--icon-arrow-down) no-repeat center / contain;
}

@media (hover:hover) and (pointer: fine) {
	.anchor-nav__list a:hover {
		color: var(--sharp-red);
		text-decoration: none;
	}
}

@media print,
screen and (width >=768px) {

	.anchor-nav__list {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: start;
		gap: 4rem;
		padding: 2rem 5rem;
	}
}

/* ====================================
	共通パーツ：定義リスト
 ==================================== */
.data-list {
	--data-list-term-size: 30rem;
	margin: 0;
	border-block-end: 1px solid var(--gray-300);
}

.data-list__item {
	padding-block: 2rem;
	border-block-start: 1px solid var(--gray-300);
}

.data-list__term {
	font-weight: 700;
}

.data-list__description {
	margin: 1rem 0 0;
	line-height: 1.7;
}

.data-list__text+.data-list__text {
	margin-block-start: 1.4rem;
}

@media print,
screen and (width >=768px) {

	.data-list__item {
		display: flex;
		align-items: center;
		gap: 2.5rem;
		padding: 3.5rem 2.5rem;
	}

	.data-list__term {
		flex: none;
		inline-size: var(--data-list-term-size);
	}

	.data-list__description {
		flex: 1;
		min-inline-size: 0;
		margin: 0;
	}

	.data-list__body {
		flex: 1;
		min-inline-size: 0;
	}
}

/* ====================================
	共通パーツ：表
 ==================================== */
.data-table-wrapper {
	overflow-x: clip;
}

.data-table-wrapper+.data-table-wrapper {
	margin-block-start: 6rem;
}

.data-table {
	--data-table-gap: .8rem;
	inline-size: calc(100% + var(--data-table-gap) * 2);
	margin-inline: calc(var(--data-table-gap) * -1);
	table-layout: fixed;
	border-collapse: separate;
	border-spacing: var(--data-table-gap) 0;
}

.data-table caption {
	margin-inline-start: var(--data-table-gap);
	padding-block-end: 1rem;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
}

.data-table :is(th, td) {
	padding-block: 1.5rem;
	border-block-end: 1px solid var(--gray-300);
	font-size: 1.5rem;
	line-height: 1.5;
	text-align: start;
}

.data-table tr:first-child :is(th, td) {
	border-block-start: 1px solid var(--gray-300);
}

.data-table th {
	inline-size: calc(100% / 3);
	font-weight: 400;
	vertical-align: top;
}

/* 項目の上に添える小さい肩書き */
.data-table__note {
	font-size: .8em;
}

@media print,
screen and (width >=768px) {

	.data-table-wrapper+.data-table-wrapper {
		margin-block-start: 8rem;
	}

	.data-table {
		--data-table-gap: 3.4rem;
	}

	.data-table caption {
		padding-block-end: 3rem;
		font-size: 2.6rem;
	}

	.data-table :is(th, td) {
		padding-block: 2.5rem;
		font-size: 1.8rem;
	}

	.data-table th {
		font-size: 2rem;
	}
}

/* ====================================
	ページトップに戻るボタン
 ==================================== */
.link-page-top {
	display: block;
	inline-size: 4rem;
	block-size: 3rem;
	margin: 2rem 5% 2rem auto;
	position: sticky;
	inset-block-end: 2rem;
	z-index: 10;
	border-radius: 5px;
	border: 1px solid var(--gray-700);
	background: var(--gray-700) url('/assets/common/images/chevron-up-solid-w.svg') no-repeat center center/18px auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s, background-color .3s ease;
}

.link-page-top.is-visible {
	opacity: 1;
	visibility: visible;
}

@media (hover:hover) and (pointer: fine) {
	.link-page-top:hover {
		background-image: url('/assets/common/images/chevron-up-solid.svg');
		background-color: var(--white);
	}
}

@media print,
screen and (width >=768px) {
	.link-page-top {
		inline-size: 6rem;
		block-size: 4rem;
		margin-inline: auto max(1.5%, calc(50% - 600px));
	}
}

/* ====================================
	グローバルフッター
 ==================================== */
.global-footer {
	--focus-ring: var(--white);
	background: var(--footer-bg);
	color: var(--white);
}

.global-footer a {
	color: inherit;
}

/* グローバルフッター：サイトマップ */
.global-footer__sitemap {
	display: none;
}

@media print,
screen and (1080px <=width) {
	.global-footer__sitemap {
		display: block;
		background: var(--footer-sitemap-bg);
		padding-block: 4rem;
	}

	.global-footer__sitemap-inner {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 4rem;
	}

	.global-footer__sitemap-group {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}

	.global-footer__sitemap-heading {
		font-size: 2rem;
		font-weight: 700;
	}

	.global-footer__sitemap-list {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		margin-top: .7rem;
		font-size: 1.4rem;
	}

	.global-footer__sitemap-group--other .global-footer__sitemap-list {
		gap: 1.6rem;
		margin-top: 0;
		font-size: 1.5rem;
		font-weight: 700;
	}

	/* 1行分空ける項目 */
	.global-footer__sitemap-item--separated {
		margin-top: 2.4rem;
	}
}

/* グローバルフッター：ポリシー等のリンク */
.global-footer__navi {
	padding-block: 2rem;
}

.global-footer__navi-list {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 1.5;
}

@media print,
screen and (width >=768px) {
	.global-footer__navi {
		display: grid;
		align-content: center;
		min-block-size: 84px;
		padding-block: 1.5rem 2.1rem;
	}

	.global-footer__navi-list {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 1rem 0;
	}

	.global-footer__navi-list>li {
		padding-inline: 1.6rem;
	}

	.global-footer__navi-list>li:not(:first-child) {
		border-left: 1px solid var(--white);
	}
}

/* グローバルフッター：コピーライト */
.global-footer__copyright {
	display: grid;
	place-content: center;
	min-block-size: 35px;
	border-top: 1px solid var(--footer-border);
	font-size: 1.1rem;
	font-weight: 500;
	text-align: center;
}

@media print,
screen and (width >=768px) {
	.global-footer__copyright {
		min-block-size: 44px;
		font-size: 1.2rem;
	}
}

/* ====================================
	ユーティリティ
===================================== */
.visually-hidden {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	white-space: nowrap;
	clip-path: inset(50%);
	border: 0;
}

@media screen and (width <1080px) {

	.desktop-only {
		display: none;
	}
}

@media print,
screen and (1080px <=width) {

	.mobile-only {
		display: none;
	}
}

@media (hover:hover) and (pointer: fine) {

	.hover-fade img {
		transition: opacity .3s ease;
	}

	.hover-fade:hover img {
		opacity: .7;
	}
}

/* ====================================
	印刷専用スタイル
===================================== */
@media print {
	@page {
		margin: 10mm;
	}

	body {
		background: var(--white);
	}

	/* 不要な要素を非表示 */
	.global-header__nav,
	.global-footer,
	.link-page-top,
	video,
	iframe {
		display: none;
	}

	/* 改ページ制御 */
	table,
	img,
	pre {
		break-inside: avoid;
	}
}

/* =====================================
	モーション軽減設定
===================================== */
@media (prefers-reduced-motion: reduce) {

	:root {
		scroll-behavior: auto;
	}

	.global-header__submenu,
	.local-nav-mobile__accordion,
	.global-header__nav-list a::before,
	.link-page-top {
		transition: none;
	}

	.global-header__nav-dialog,
	.global-site-search__dialog {
		transition-duration: .01s;
	}

	.hover-fade img {
		transition: none;
	}
}