@font-face {
	font-family: 'Local Noto Sans JP';
	src: local('Noto Sans JP');
}

.c-content-header {
	padding-block: 24px;
}

.c-content-header:has(.c-content-header-lead) {
	display: grid;
}

.is-archive.c-content-header {
	padding-inline: 24px;
}

.c-content-header .c-content-header-title {
	align-self: start;
	display: grid;
	row-gap: 8px;
}

.c-content-header .c-content-header-title .c-content-header-title-shoulder {
	padding-block: 0;
	font-size: var(--font-size-small);
}

.c-content-header .c-content-header-title .c-content-header-title-heading {
	font-weight: 700;
}

.c-content-header .c-content-header-lead {
	padding-block: 0;
}

/*
** Components
1. screen reader text
2. buttons
2.1 button icon
2.2 button box
2.3 button mix
3. sns buttons
4. emergency post link
5. breadcrumb
6. content header
7. skiplink
*/
.screen-reader-text {
	position: fixed !important;
	inset: 0 !important;
	display: block !important;
	inline-size: 4px !important;
	block-size: 4px !important;
	padding: 0 !important;
	margin: 0 !important;
	contain: strict !important;
	pointer-events: none !important;
	visibility: visible !important;
	border: none !important;
	opacity: 0 !important;
}

body .c-button-icon {
	padding-inline-end: 8px;
	display: grid;
	grid-template-columns: auto 24px;
	-moz-column-gap: 8px;
	column-gap: 8px;
	align-items: center;
	height: 100%;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

body .c-button-icon::after {
	content: '';
	width: 24px;
	height: 24px;
	background-color: #fff;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	transition: left 300ms ease;
	position: relative;
	left: 0;
	z-index: 1;
}

body .c-button-icon:hover::after,
body .c-button-icon:active::after,
body .c-button-icon:focus-visible::after {
	left: 8px;
}

body .c-button-icon.is-external::after {
	-webkit-mask-image: url(../images/icon/external.svg);
	mask-image: url(../images/icon/external.svg);
}

body .c-button-icon.is-internal::after {
	-webkit-mask-image: url(../images/icon/arrow-right.svg);
	mask-image: url(../images/icon/arrow-right.svg);
}

body .c-button-icon.is-pdf::after {
	-webkit-mask-image: url(../images/icon/pdf.svg);
	mask-image: url(../images/icon/pdf.svg);
}

body .c-button-icon.is-bordered {
	border-block-end: 1px solid var(--footer-border-color);
}

body .c-button-icon.is-bordered:hover,
body .c-button-icon.is-bordered:active,
body .c-button-icon.is-bordered:focus-visible {
	border-block-end: 1px solid var(--footer-border-hover-color);
}

body .c-button-box {
	padding-block: 12px;
	padding-inline: 8px;
	border: 1px solid var(--button-box-border-color);
	display: grid;
	place-items: center;
	line-height: 1.5714285714;
	color: var(--button-box-text-color);
	background-color: var(--button-box-background-color);
	font-weight: 700;
	font-size: var(--font-size-small);
	text-decoration: none;
}

body .c-button-box:hover,
body .c-button-box:active,
body .c-button-box:focus-visible {
	border: 1px solid var(--button-box-border-color);
	color: var(--button-box-text-hover-color);
	background-color: var(--button-box-background-hover-color);
}

body .c-button-mix {
	padding-inline-end: 8px;
	display: grid;
	grid-template-columns: auto 24px;
	-moz-column-gap: 8px;
	column-gap: 8px;
	align-items: center;
	height: 100%;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

body .c-button-mix::after {
	content: '';
	width: 24px;
	height: 24px;
	background-color: #fff;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-image: url(../images/icon/arrow-right.svg);
	mask-image: url(../images/icon/arrow-right.svg);
	transition: left 300ms ease;
	position: relative;
	left: 0;
	z-index: 1;
}

body .c-button-mix:hover::after,
body .c-button-mix:active::after,
body .c-button-mix:focus-visible::after {
	left: 8px;
}

.c-general-sns > ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	position: relative;
}

.c-general-sns > ul > li > a {
	display: block;
	width: 36px;
	height: 36px;
	overflow: hidden;
}

.c-general-sns > ul > li > a::before {
	content: '';
	display: block;
	width: 36px;
	height: 36px;
	background-color: #fff;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
}

.c-general-sns > ul > li > a:hover,
.c-general-sns > ul > li > a:active,
.c-general-sns > ul > li > a:focus-visible {
	opacity: 0.8;
}

.c-general-sns > ul > li > a[href*='facebook.com']::before {
	-webkit-mask-image: url(../images/sns/facebook.svg);
	mask-image: url(../images/sns/facebook.svg);
}

.c-general-sns > ul > li > a[href*='x.com']::before {
	-webkit-mask-image: url(../images/sns/x.svg);
	mask-image: url(../images/sns/x.svg);
}

.c-general-sns > ul > li > a[href*='instagram.com']::before {
	-webkit-mask-image: url(../images/sns/instagram.svg);
	mask-image: url(../images/sns/instagram.svg);
}

.c-general-sns > ul > li > a[href*='youtube.com']::before {
	-webkit-mask-image: url(../images/sns/youtube.svg);
	mask-image: url(../images/sns/youtube.svg);
}

.c-general-sns > ul > li > a[href*='line.me']::before {
	-webkit-mask-image: url(../images/sns/line.svg);
	mask-image: url(../images/sns/line.svg);
}

.c-emergency-post {
	padding: 10px 18px;
	border: 6px solid #f00;
	color: #000;
	background-color: #fff;
}

.c-emergency-post .c-emergency-post-inner {
	margin-inline: auto;
	width: 100%;
	max-width: 1440px;
}

.c-emergency-post .c-emergency-post-title {
	flex: 1;
	font-weight: 700;
}

.c-emergency-post .c-emergency-post-date {
	font-size: var(--font-size-small);
}

.c-emergency-post .c-emergency-post-link a {
	border-radius: 4em;
	display: flex;
	align-items: center;
	justify-content: center;
	-moz-column-gap: 2px;
	column-gap: 2px;
	line-height: 1.5714285714;
	color: #fff;
	background-color: #f00;
	font-weight: 700;
	font-size: var(--font-size-small);
	text-decoration: none;
	text-align: center;
}

.c-emergency-post .c-emergency-post-link a::after {
	content: '';
	position: relative;
	left: 0;
	z-index: 1;
	width: 18px;
	height: 18px;
	background-color: #fff;
	-webkit-mask-image: url(../images/icon/arrow-right.svg);
	mask-image: url(../images/icon/arrow-right.svg);
	-webkit-mask-size: 18px 18px;
	mask-size: 18px 18px;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	transition:
		left 300ms ease,
		background-color 300ms ease;
}

.c-emergency-post .c-emergency-post-link a:hover::after,
.c-emergency-post .c-emergency-post-link a:active::after,
.c-emergency-post .c-emergency-post-link a:focus-visible::after {
	left: 8px;
}

.c-breadcrumb {
	margin-inline: auto;
	padding-inline: 24px;
	max-width: 1248px;
}

.c-breadcrumb ol {
	margin-block: 0;
	padding-inline-start: 0;
	display: flex;
	align-items: center;
	overflow-x: auto;
	list-style-type: '';
}

.c-breadcrumb ol li {
	flex-shrink: 0;
	font-size: var(--font-size-small);
}

.c-breadcrumb ol li > span:has(a) {
	display: grid;
	align-items: center;
}

.c-breadcrumb ol li > span:has(a)::after {
	content: '';
	justify-self: center;
	width: 12px;
	height: 12px;
	background-color: #737373;
	-webkit-mask-image: url(../images/icon/arrow.svg);
	mask-image: url(../images/icon/arrow.svg);
	-webkit-mask-size: 12px 12px;
	mask-size: 12px 12px;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.c-breadcrumb ol li > span > a {
	color: var(--element-icon-link-color);
	font-weight: 700;
	text-decoration: none;
}

.c-breadcrumb ol li > span > a:hover,
.c-breadcrumb ol li > span > a:active,
.c-breadcrumb ol li > span > a:focus-visible {
	color: var(--element-icon-link-hover-color);
}

.c-breadcrumb ol li.home > span > a {
	display: grid;
	align-items: center;
}

.c-breadcrumb ol li.home > span > a::before {
	content: '';
	width: 16px;
	height: 16px;
	background-color: var(--element-icon-link-color);
	-webkit-mask-image: url(../images/icon/home.svg);
	mask-image: url(../images/icon/home.svg);
	-webkit-mask-size: 16px 16px;
	mask-size: 16px 16px;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	transition: background-color 300ms ease;
}

.c-breadcrumb ol li.home > span > a:hover::before,
.c-breadcrumb ol li.home > span > a:active::before,
.c-breadcrumb ol li.home > span > a:focus-visible::before {
	background-color: var(--element-icon-link-hover-color);
}

.c-skiplink {
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	background-color: #fff;
	overflow: hidden;
	z-index: -1;
}

.c-skiplink:focus {
	width: auto;
	height: auto;
	overflow: auto;
	z-index: 5;
}

@media screen and (max-width: 1024px) {

	.c-content-header:has(.c-content-header-lead) {
		row-gap: 12px;
	}

	.c-content-header .c-content-header-title .c-content-header-title-heading {
		font-size: var(--font-size-h1-sp);
	}

	.c-content-header .c-content-header-lead {
		font-size: var(--font-size-p-sp);
	}

	body .c-button-icon.is-bordered {
		padding-block: 12px;
		line-height: 1.625;
		font-size: var(--font-size-h5-pc);
	}

	body .c-button-icon:not(.is-bordered) {
		padding-block: 12px;
		line-height: 1.5714285714;
		font-size: var(--font-size-p-sp);
	}

	body .c-button-mix {
		padding-block: 12px;
	}

	.c-emergency-post .c-emergency-post-inner {
		display: grid;
		row-gap: 8px;
	}

	.c-emergency-post .c-emergency-post-title {
		font-size: var(--font-size-p-sp);
	}

	.c-emergency-post .c-emergency-post-link a {
		padding-block: 4px;
		padding-inline: 16px 8px;
	}

	.c-emergency-post .c-emergency-post-link a {
		padding-inline: 16px 8px;
	}

	.c-breadcrumb {
		margin-block: 16px 24px;
	}

	.c-breadcrumb ol li > span:has(a) {
		grid-template-columns: auto 20px;
	}

	.c-breadcrumb ol li.home > span > a {
		grid-template-columns: 20px auto;
	}
}

@media screen and (min-width: 1025px) {

	.c-content-header:has(.c-content-header-lead) {
		grid-template-columns: repeat(2, 1fr);
		-moz-column-gap: 40px;
		column-gap: 40px;
	}

	.c-content-header .c-content-header-title .c-content-header-title-heading {
		font-size: var(--font-size-h1-pc);
	}

	.c-content-header .c-content-header-lead {
		font-size: var(--font-size-p-pc);
	}

	body .c-button-icon.is-bordered {
		padding-block: 24px;
		line-height: 1.6;
		font-size: var(--font-size-h4-pc);
	}

	body .c-button-icon:not(.is-bordered) {
		padding-block: 16px;
		line-height: 1.625;
		font-size: var(--font-size-p-pc);
	}

	body .c-button-mix {
		padding-block: 24px;
		border-block-end: 1px solid var(--footer-border-color);
	}

	body .c-button-mix:hover,
	body .c-button-mix:active,
	body .c-button-mix:focus-visible {
		border-block-end: 1px solid var(--footer-border-hover-color);
	}

	.c-emergency-post .c-emergency-post-inner {
		display: flex;
		align-items: center;
		-moz-column-gap: 16px;
		column-gap: 16px;
	}

	.c-emergency-post .c-emergency-post-title {
		font-size: var(--font-size-p-pc);
	}

	.c-emergency-post .c-emergency-post-date {
		flex-shrink: 0;
	}

	.c-emergency-post .c-emergency-post-link {
		flex-shrink: 0;
	}

	.c-emergency-post .c-emergency-post-link a {
		padding-block: 8px;
		padding-inline: 24px 12px;
	}

	.c-emergency-post .c-emergency-post-link a {
		padding-inline: 24px 12px;
	}

	.c-breadcrumb {
		margin-block: 40px;
	}

	.c-breadcrumb ol li > span:has(a) {
		grid-template-columns: auto 28px;
	}

	.c-breadcrumb ol li.home > span > a {
		grid-template-columns: 24px auto;
	}
}

@media screen and (max-width: 768px) {

	.screen-reader-text-sp {
		position: fixed !important;
		inset: 0 !important;
		display: block !important;
		inline-size: 4px !important;
		block-size: 4px !important;
		padding: 0 !important;
		margin: 0 !important;
		contain: strict !important;
		pointer-events: none !important;
		visibility: visible !important;
		border: none !important;
		opacity: 0 !important;
	}
}
