:root {
	--bp-sp: 767px;
}

:root {
	--bp-portrait: 1024px;
}

:root {
	--bp-pc: 1260px;
}

/******************************************************************
foundation - base
******************************************************************/
:where(html) {
	-webkit-text-size-adjust: 100%;
}

:where(body) {
	margin: 0;
}

:where(button, input, optgroup, select, textarea) {
	font-size: 1rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px) {
	:where(button, input, optgroup, select, textarea) {
		font-size: 0.9rem;
	}
}

:where(html) {
	scroll-behavior: smooth;
}

:where(body) {
	min-width: 375px;
	font-family: "Noto Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	overflow-wrap: break-word;
	overflow-y: scroll;
	color: #2f2f2f;
	font-size: 1rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px) {
	:where(body) {
		font-size: 0.9rem;
	}
}
@media print {
	:where(body) {
		width: 1200px;
		zoom: 0.8;
	}
}

:where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dd, figure) {
	margin: 0;
	padding: 0;
}

:where(li) {
	list-style: none;
}

:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
}

:where(iframe) {
	border: 0;
}

:where(button) {
	background-color: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
	appearance: none;
	color: inherit;
	text-decoration: none;
	outline-color: #999999;
}
@media (any-hover: hover) {
	:where(button):hover {
		text-decoration: none;
	}
}
:where(button):not(.js-dialog):focus {
	text-decoration: none;
}

:where(input, select) {
	outline-color: #999999;
}

:where(em) {
	font-style: normal;
	font-weight: bold;
}

:where(fieldset) {
	border: 0;
	padding: 0;
	margin: 0;
}

:where(address) {
	font-style: normal;
}

:where(a) {
	color: #3865e0;
	text-decoration: underline;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.1em;
	outline-color: #999999;
}
@media (any-hover: hover) {
	:where(a):hover {
		text-decoration: none;
	}
}
:where(a):not(.js-dialog):focus {
	text-decoration: none;
}

:where(img) {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

:where(svg) {
	vertical-align: middle;
}

:where(hr) {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
}

/******************************************************************
layout - wrapper
******************************************************************/
.l-wrapper {
	width: 100%;
	overflow: clip;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}
.l-wrapper main {
	flex-grow: 1;
}

/******************************************************************
layout - visual
******************************************************************/
.l-visual {
	position: relative;
	background: url(../img/bg.png);
}
@media screen and (max-width: 767px) {
	.l-visual {
		background-size: 300px;
	}
}
.l-visual__inner {
	position: relative;
	max-width: 980px;
	margin-inline: auto;
	padding-inline: 30px;
	padding-block: 20px 30px;
}
@media screen and (max-width: 767px) {
	.l-visual__inner {
		padding-inline: 20px;
	}
}
.l-main-2column .l-visual__inner, .l-main-3column .l-visual__inner {
	padding-inline: 0 !important;
}

.l-visual__logo {
	position: absolute;
	top: 23px;
	right: 0;
}
@media screen and (max-width: 1260px) {
	.l-visual__logo {
		right: 10px;
	}
}
.l-visual__logo img {
	max-width: 20vw;
}

/******************************************************************
layout - main
******************************************************************/
main {
	padding-block: 40px;
}
@media screen and (max-width: 767px) {
	main {
		padding-block: 20px;
	}
}

/******************************************************************
component - section
******************************************************************/
.c-section {
	position: relative;
}
.c-section--offset-cut {
	padding-top: 0.1px;
	padding-bottom: 0.1px;
}
.c-section--italic {
	clip-path: polygon(0 10vw, 100% 0, 100% calc(100% - 10vw), 0 100%);
	padding-block: 10vw;
}
.c-section__fit {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__fit {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__fit, .l-main-3column .c-section__fit {
	padding-inline: 0 !important;
}

.c-section__fit--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__fit--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__fit--slim, .l-main-3column .c-section__fit--slim {
	padding-inline: 0 !important;
}

.c-section__fit--full {
	max-width: none;
	padding-inline: 0;
}
.c-section__top {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 30px;
	margin-top: 90px;
}
@media screen and (max-width: 767px) {
	.c-section__top {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__top, .l-main-3column .c-section__top {
	padding-inline: 0 !important;
}

@media screen and (max-width: 767px) {
	.c-section__top {
		margin-top: 40px;
	}
}
.c-section__top--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__top--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__top--slim, .l-main-3column .c-section__top--slim {
	padding-inline: 0 !important;
}

.c-section__top--full {
	max-width: none;
	padding-inline: 0;
}
.c-section__bottom {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 30px;
	margin-bottom: 90px;
}
@media screen and (max-width: 767px) {
	.c-section__bottom {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__bottom, .l-main-3column .c-section__bottom {
	padding-inline: 0 !important;
}

@media screen and (max-width: 767px) {
	.c-section__bottom {
		margin-bottom: 40px;
	}
}
.c-section__bottom--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__bottom--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__bottom--slim, .l-main-3column .c-section__bottom--slim {
	padding-inline: 0 !important;
}

.c-section__bottom--full {
	max-width: none;
	padding-inline: 0;
}
.c-section__vertical {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 30px;
	margin-block: 90px;
}
@media screen and (max-width: 767px) {
	.c-section__vertical {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__vertical, .l-main-3column .c-section__vertical {
	padding-inline: 0 !important;
}

@media screen and (max-width: 767px) {
	.c-section__vertical {
		margin-block: 40px;
	}
}
.c-section__vertical--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__vertical--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__vertical--slim, .l-main-3column .c-section__vertical--slim {
	padding-inline: 0 !important;
}

.c-section__vertical--full {
	max-width: none;
	padding-inline: 0;
}
.c-section--campaign {
	background: url(../img/bg.png);
	padding-block: 40px;
}
@media screen and (max-width: 767px) {
	.c-section--campaign {
		background-size: 300px;
	}
}

/******************************************************************
component - c-flexbox
******************************************************************/
.c-flexbox {
	display: flex;
	flex-wrap: wrap;
	--flexbox-gap-y: 1rem;
	--flexbox-gap-x: 1rem;
	margin-right: calc(var(--flexbox-gap-x) * -1);
	gap: var(--flexbox-gap-y) var(--flexbox-gap-x);
}
.c-flexbox > [class*=c-flexbox__item], .c-flexbox > .c-flexbox__item5col {
	position: relative;
	box-sizing: border-box;
}
.c-flexbox > [class*=c-flexbox__item]:has(> .c-button:first-child):has(> .c-button:last-child), .c-flexbox > .c-flexbox__item5col:has(> .c-button:first-child):has(> .c-button:last-child) {
	display: flex;
}
.c-flexbox > [class*=c-flexbox__item]:has(> .c-button-visual:first-child):has(> .c-button-visual:last-child), .c-flexbox > .c-flexbox__item5col:has(> .c-button-visual:first-child):has(> .c-button-visual:last-child) {
	display: flex;
}
.c-flexbox--center {
	justify-content: center;
}
.c-flexbox--right {
	justify-content: flex-end;
}
.c-flexbox--bottom {
	align-items: flex-end;
}
.c-flexbox--vertical > [class*=c-flexbox__item], .c-flexbox--vertical > .c-flexbox__item5col {
	display: flex;
	align-items: center;
}
.c-flexbox--center {
	margin-right: calc(var(--flexbox-gap-x) * -0.5);
	margin-left: calc(var(--flexbox-gap-x) * -0.5);
}
.c-flexbox--right {
	margin-right: initial;
	margin-left: calc(var(--flexbox-gap-x) * -1);
}
.c-flexbox > .c-flexbox__item1 {
	width: calc(8.3333333333% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item2 {
	width: calc(16.6666666667% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item3 {
	width: calc(25% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item4 {
	width: calc(33.3333333333% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item5 {
	width: calc(41.6666666667% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item6 {
	width: calc(50% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item7 {
	width: calc(58.3333333333% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item8 {
	width: calc(66.6666666667% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item9 {
	width: calc(75% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item10 {
	width: calc(83.3333333333% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item11 {
	width: calc(91.6666666667% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item12 {
	width: calc(100% - var(--flexbox-gap-x));
}
.c-flexbox > .c-flexbox__item5col {
	width: calc(20% - var(--flexbox-gap-x));
}
@media screen and (max-width: 1260px) {
	.c-flexbox.pc-vw {
		--flexbox-gap-y: 1.2698412698vw;
		--flexbox-gap-x: 1.2698412698vw;
	}
}
.c-flexbox--s {
	--flexbox-gap-y: 0.75rem;
	--flexbox-gap-x: 0.75rem;
}

.c-flexbox--2l {
	--flexbox-gap-y: 1.5rem;
	--flexbox-gap-x: 1.5rem;
}

@media screen and (max-width: 1260px) {
	.c-flexbox--2l.pc-vw {
		--flexbox-gap-y: 1.9047619048vw;
		--flexbox-gap-x: 1.9047619048vw;
	}
}
.c-flexbox--2x {
	--flexbox-gap-y: 2rem;
	--flexbox-gap-x: 2rem;
}

@media screen and (max-width: 1260px) {
	.c-flexbox--2x.pc-vw {
		--flexbox-gap-y: 2.5396825397vw;
		--flexbox-gap-x: 2.5396825397vw;
	}
}
.c-flexbox--10vw {
	--flexbox-gap-y: 5vw;
	--flexbox-gap-x: 10vw;
}

.c-flexbox--10px {
	--flexbox-gap-y: 30px;
	--flexbox-gap-x: 10px;
}

@media screen and (max-width: 767px) {
	.c-flexbox {
		--flexbox-gap-y: 0.75rem;
		--flexbox-gap-x: 0.75rem;
	}
	.c-flexbox.sp-destroy {
		display: initial;
		flex-wrap: initial;
		margin-right: initial;
		margin-left: initial;
		gap: initial;
	}
	.c-flexbox.sp-destroy > * {
		position: initial;
		box-sizing: initial;
		width: initial;
	}
	.c-flexbox > .sp-item1 {
		width: calc(8.3333333333% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item2 {
		width: calc(16.6666666667% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item3 {
		width: calc(25% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item4 {
		width: calc(33.3333333333% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item5 {
		width: calc(41.6666666667% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item6 {
		width: calc(50% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item7 {
		width: calc(58.3333333333% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item8 {
		width: calc(66.6666666667% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item9 {
		width: calc(75% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item10 {
		width: calc(83.3333333333% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item11 {
		width: calc(91.6666666667% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item12 {
		width: calc(100% - var(--flexbox-gap-x));
	}
	.c-flexbox > .sp-item5col {
		width: calc(20% - var(--flexbox-gap-x));
	}
	.c-flexbox--s {
		--flexbox-gap-y: 0.5625rem;
		--flexbox-gap-x: 0.5625rem;
	}
	.c-flexbox.sp-s {
		--flexbox-gap-y: 0.5625rem;
		--flexbox-gap-x: 0.5625rem;
	}
	.c-flexbox--2l {
		--flexbox-gap-y: 1.125rem;
		--flexbox-gap-x: 1.125rem;
	}
	.c-flexbox.sp-2l {
		--flexbox-gap-y: 1.125rem;
		--flexbox-gap-x: 1.125rem;
	}
	.c-flexbox--2x {
		--flexbox-gap-y: 1.5rem;
		--flexbox-gap-x: 1.5rem;
	}
	.c-flexbox.sp-2x {
		--flexbox-gap-y: 1.5rem;
		--flexbox-gap-x: 1.5rem;
	}
	.c-flexbox--10vw {
		--flexbox-gap-y: 5vw;
		--flexbox-gap-x: 10vw;
	}
	.c-flexbox.sp-10vw {
		--flexbox-gap-y: 5vw;
		--flexbox-gap-x: 10vw;
	}
	.c-flexbox--10px {
		--flexbox-gap-y: 30px;
		--flexbox-gap-x: 10px;
	}
	.c-flexbox.sp-10px {
		--flexbox-gap-y: 30px;
		--flexbox-gap-x: 10px;
	}
}

/******************************************************************
component - image-column
******************************************************************/
.c-image-column {
	display: grid;
	grid-template-areas: "img body";
	grid-template-columns: fit-content(50%) 1fr;
	--image-column-gap: 1rem;
	gap: var(--image-column-gap);
}
@media screen and (max-width: 767px) {
	.c-image-column {
		grid-template-columns: fit-content(40%) 1fr;
	}
}
.c-image-column--right {
	grid-template-areas: "body img";
	grid-template-columns: 1fr fit-content(50%);
}
@media screen and (max-width: 767px) {
	.c-image-column--right {
		grid-template-columns: 1fr fit-content(40%);
	}
}
.c-image-column__body {
	grid-area: body;
}
.c-image-column__img {
	grid-area: img;
}
.c-image-column__img > *:not(:last-child) {
	margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
	.c-image-column__img > *:not(:last-child) {
		margin-bottom: 0.75rem;
	}
}
.c-image-column--vertical {
	align-items: center;
}
@media screen and (max-width: 1260px) {
	.c-image-column.pc-vw {
		--image-column-gap: 1.2698412698vw;
	}
}
.c-image-column--2x {
	--image-column-gap: 2rem;
}

@media screen and (max-width: 1260px) {
	.c-image-column--2x.pc-vw {
		--image-column-gap: 2.5396825397vw;
	}
}
.c-image-column--10vw {
	--image-column-gap: 10vw;
}

@media screen and (max-width: 767px) {
	.c-image-column {
		--image-column-gap: 0.75rem;
	}
	.c-image-column.sp-top {
		align-items: stretch;
	}
	.c-image-column.sp-vertical {
		align-items: center;
	}
	.c-image-column.sp-row {
		grid-template-areas: "img" "body";
		grid-template-columns: 100%;
	}
	.c-image-column.sp-row .c-image-column__img {
		width: fit-content;
		margin-inline: auto;
		max-width: 100% !important;
	}
	.c-image-column.sp-row-reverse {
		grid-template-areas: "body" "img";
	}
	.c-image-column--2x {
		--image-column-gap: 1.5rem;
	}
	.c-image-column.sp-2x {
		--image-column-gap: 1.5rem;
	}
	.c-image-column--10vw {
		--image-column-gap: 10vw;
	}
	.c-image-column.sp-10vw {
		--image-column-gap: 10vw;
	}
}

/******************************************************************
component - heading
******************************************************************/
.c-heading2 {
	color: #003894;
	font-weight: bold;
	font-size: 34px;
}
.c-heading2:not(:first-child) {
	margin-top: 2rem;
}
@media screen and (max-width: 767px) {
	.c-heading2:not(:first-child) {
		margin-top: 1.5rem;
	}
}
@media screen and (max-width: 1260px) {
	.c-heading2 {
		font-size: 2.6984126984vw;
	}
}
@media screen and (max-width: 767px) {
	.c-heading2 {
		font-size: 20px;
	}
}

/******************************************************************
component - lead
******************************************************************/
.c-lead {
	color: #003894;
	text-align: center;
	background: url(../img/bg.png);
	font-weight: 800;
	border-radius: 8px;
	padding: 16px;
	font-size: 30px;
}
@media screen and (max-width: 1260px) {
	.c-lead {
		font-size: 2.380952381vw;
	}
}
@media screen and (max-width: 767px) {
	.c-lead {
		font-size: 17px;
		background-size: 300px;
	}
}

/******************************************************************
project - campaign
******************************************************************/
.p-campaign > *:not(:last-child) {
	margin-bottom: 1rem;
}
.p-campaign__heading {
	background-color: #003894;
	border-radius: 8px;
	padding: 8px;
	color: #fff;
	text-align: center;
	font-weight: 500;
	font-size: 32px;
	margin-bottom: 2rem !important;
}
@media screen and (max-width: 1260px) {
	.p-campaign__heading {
		font-size: 2.5396825397vw;
	}
}
@media screen and (max-width: 767px) {
	.p-campaign__heading {
		font-size: 20px;
		margin-bottom: 1.5rem !important;
	}
}
.p-campaign__period {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px 8px;
}
@media screen and (max-width: 1024px) {
	.p-campaign__period {
		flex-direction: column;
		align-items: center;
	}
}
@media screen and (max-width: 767px) {
	.p-campaign__img img {
		max-height: 45px;
	}
	.p-campaign__img:last-child img {
		max-height: 25px;
	}
}
.p-campaign__note {
	text-align: center;
	color: #003894;
	font-size: 15px;
}
@media screen and (max-width: 767px) {
	.p-campaign__note {
		font-size: 13px;
	}
}
/******************************************************************
utility - mediaquery
******************************************************************/
.u-portrait-media {
	display: none;
}

@media screen and (max-width: 1024px) {
	.u-landscape-media {
		display: none;
	}
	.u-portrait-media {
		display: block;
	}
	img.u-portrait-media {
		display: inline-block;
	}
	br.u-portrait-media {
		display: inline-block;
	}
	table.u-portrait-media {
		display: table;
	}
}
.u-sp-media {
	display: none;
}

@media screen and (max-width: 767px) {
	.u-pc-media {
		display: none;
	}
	.u-sp-media {
		display: block;
	}
	img.u-sp-media {
		display: inline-block;
	}
	br.u-sp-media {
		display: inline-block;
	}
	table.u-sp-media {
		display: table;
	}
}
/******************************************************************
utility - u-gutter
******************************************************************/
.u-gutter > *:not(:last-child) {
	margin-bottom: 1rem;
}

.u-gutter-s > *:not(:last-child) {
	margin-bottom: 0.75rem;
}

.u-gutter-2x > *:not(:last-child) {
	margin-bottom: 2rem;
}

.u-gutter-10px > *:not(:last-child) {
	margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
	.u-gutter > *:not(:last-child) {
		margin-bottom: 0.75rem;
	}
	.u-gutter-s > *:not(:last-child) {
		margin-bottom: 0.5625rem;
	}
	.u-gutter-2x > *:not(:last-child) {
		margin-bottom: 1.5rem;
	}
	.u-sp-gutter > *:not(:last-child) {
		margin-bottom: 0.75rem;
	}
	.u-sp-gutter-s > *:not(:last-child) {
		margin-bottom: 0.5625rem;
	}
	.u-sp-gutter-2x > *:not(:last-child) {
		margin-bottom: 1.5rem;
	}
	.u-sp-gutter-10px > *:not(:last-child) {
		margin-bottom: 10px;
	}
}
/******************************************************************
utility - display
******************************************************************/
.u-block {
	display: block;
}

.u-none {
	display: none;
}

.u-inline {
	display: inline;
}

.u-inline-block {
	display: inline-block;
}

@media screen and (max-width: 767px) {
	.u-sp-block {
		display: block;
	}
	.u-sp-none {
		display: none;
	}
	.u-sp-inline {
		display: inline;
	}
	.u-sp-inline-block {
		display: inline-block;
	}
}
/******************************************************************
utility - text-align
******************************************************************/
.u-center {
	text-align: center !important;
}

.u-right {
	text-align: right !important;
}

.u-left {
	text-align: left !important;
}

/******************************************************************
utility - hover-expand
******************************************************************/
.u-hover-expand-2x, .u-hover-expand-2l, .u-hover-expand-l, .u-hover-expand, .u-hover-expand-s, .u-hover-expand-2s {
	display: inline-block;
	transition-property: transform;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.3, 1.8, 0.6, 1);
}

@media (any-hover: hover) {
	.u-hover-expand-2s:hover {
		transform: scale(1.01);
	}
}
.u-hover-expand-2s:not(.js-dialog):focus {
	transform: scale(1.01);
}

@media (any-hover: hover) {
	.u-hover-expand-s:hover {
		transform: scale(1.02);
	}
}
.u-hover-expand-s:not(.js-dialog):focus {
	transform: scale(1.02);
}

@media (any-hover: hover) {
	.u-hover-expand:hover {
		transform: scale(1.03);
	}
}
.u-hover-expand:not(.js-dialog):focus {
	transform: scale(1.03);
}

@media (any-hover: hover) {
	.u-hover-expand-l:hover {
		transform: scale(1.04);
	}
}
.u-hover-expand-l:not(.js-dialog):focus {
	transform: scale(1.04);
}

@media (any-hover: hover) {
	.u-hover-expand-2l:hover {
		transform: scale(1.05);
	}
}
.u-hover-expand-2l:not(.js-dialog):focus {
	transform: scale(1.05);
}

@media (any-hover: hover) {
	.u-hover-expand-2x:hover {
		transform: scale(1.06);
	}
}
.u-hover-expand-2x:not(.js-dialog):focus {
	transform: scale(1.06);
}