@charset "utf-8";
/* ====================================================================

	Default
	
==================================================================== */

:root {
    --m2: calc( var(--m) * 2 );
    --m3: calc( var(--m) * 3 );
    --m4: calc( var(--m) * 4 );
    --m5: calc( var(--m) * 5 );
    --m6: calc( var(--m) * 6 );
    --m7: calc( var(--m) * 7 );
    --m8: calc( var(--m) * 8 );
    --m9: calc( var(--m) * 9 );
    --m10: calc( var(--m) * 10 );

    --ms: calc( var(--m) / 3 * 2 );
}



/** 疑似要素   
-------------------------------------------------------------------- */
* {
	box-sizing: border-box;
}
*::before,
*::after {
	content: "";
	display: none;
	box-sizing: border-box;
}




/* ====================================================================

	Object
	
==================================================================== */


/** 改行   
-------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
	br:is([sp], .sp, .sp-only) {
		display: none;
	}
	br:is([pc], .pc, .pc-only) {
		display: revert;
	}
}
@media screen and (max-width: 767px) {
	br:is([pc], .pc, .pc-only) {
		display: none;
	}
	br:is([sp], .sp, .sp-only) {
		display: revert;
	}
}


header.sticky {
	position: sticky;
	top: 0;
	z-index: 100;
}
html:has(header.sticky) {
	scroll-padding-top: var(--header-height, 0px);
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
	body:has(header.sticky) {
		scroll-padding-top: 100px;
	}
}



/** ラッパー   
-------------------------------------------------------------------- */
.wrap {
	width: auto;
	max-width: var(--wrap-width, var(--main-width));
	box-sizing: content-box;
	padding-inline: var(--wrap-padding-inline);
	margin-inline: auto;

	position: relative;
	z-index: 0;
}

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



/** セクション   
-------------------------------------------------------------------- */
main.content > section {
	position: relative;
	z-index: 0;
}
section.general {
	padding-block: var(--m8);
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
	section.general {
		padding-block: var(--m4);
	}	
}



/** リンク   
-------------------------------------------------------------------- */
a:not([class]) {
	text-decoration: underline;
}
@media (hover: hover) {
	a:not([class]):hover {
		text-decoration: none;
	}
}



/** テキスト   
-------------------------------------------------------------------- */
:is(h1, h2, h3, h4, h5, h6) {
    font-weight: 700;
}
p + p:not([class]),
ul:not(.row) li + li {
    margin-top: 0.5lh;
}

ul, ol {
	margin-block: 0.75lh;
}
ul.bulletless {
	list-style: none;
}
ul.bullet {
	list-style: disc;
	padding-inline-start: 1.5ic;
}
ol {
	list-style: decimal;
	padding-inline-start: 1.5ic;
}
@media screen and (max-width: 767px) {
	p {
		text-align: left;
	}
}

:is(.title, .label, .headline) {
	line-height: 1.5;
}
.title {
	margin-bottom: 0.75lh;

	font-size: var(--huge-size);
	font-weight: 900;
	letter-spacing: 0.1ic;
	text-align: center;
}
.label {
	font-size: var(--large-size);
}
.headline {
	font-size: var(--medium-size);
}
/* 見出し付きリード文 */
.title:has( + p ) {
	margin-bottom: 0.5lh;
}
.title + p {
	margin-bottom: var(--m3);
	text-align: center;
	color: black;
}

.marker {
	background: linear-gradient(to top, var(--marker) , var(--marker) 40%, transparent 40%, transparent);
}
.small {
	font-size: 75%;
}

/* 本文外にある注釈へ誘導する参照マーク */
.ref {
	font-size: 10px;
	vertical-align: text-top;
}
.note {
	display: inline-block;
	text-indent: -1ic;
	padding-left: 1ic;
}
p.note {
	display: block;
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
	:is(.title, .label, .headline) {
		text-align: center;
	}
}




/** ボタン   
-------------------------------------------------------------------- */
.button {
    display: block;
    width: fit-content;
	padding-block: 0.3lh;
    padding-inline: 1ic;
	border-radius: 1lh;
    background: var(--button-bg, var(--action, inherit));

	font-size: inherit;
    color: var(--button-color, inherit);
	line-height: 1.5;
	font-weight: 700;
    text-align: center;
}
.button:has(svg, i, .icon) {
	display: flex;
	align-items: center;
}
@media (hover: hover) {
	.button {
		transition: var(--transition);
	}
	.button:hover {
		background: var(--button-hover-bg, rgb( from var(--button-bg, var(--action)) r g b / 7));
		color: var(--button-hover-color, rgb( from var(--button-color, inherit) r g b / 0.7))
	}
}
:where(a, button, .button) svg {
	display: inline-block;
	height: 1lh;
	fill: currentColor;
}
:where(a, button, .button) svg:first-child {
	margin-right: 0.3ic;
}
@media screen and (max-width: 767px) {
	.button {
		padding-block: 0.5lh;
	}
	.button:has(svg) {
		justify-content: center;
	}
}




/** イメージ   
-------------------------------------------------------------------- */
img,
iframe {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	font-style: italic;
	background-repeat: no-repeat;
	background-size: cover;
	vertical-align: top;
}
img {
	outline: 0;
	-o-object-fit: contain;
	object-fit: contain;
}
picture {
	line-height: 0;
	overflow: hidden;
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {}


/** ガイドラインリスト   
-------------------------------------------------------------------- */
dl {
	display: flex;
	flex-flow: row wrap;
	align-items: flex-start;
	line-height: 1.5;
}

dl.scalable {}
dl.scalable dt {
	flex: 0 0 auto;
	width: var(--dt-size, 8ic);
	white-space: nowrap;
	overflow-x: clip;
}
dl.scalable dt::after {
	content: "・・・・・・・・・・";
	display: inline;
	font-feature-settings: normal;
}
dl.scalable dd {
	flex: 1 1 50%;
	text-align: left;
}

dl.ribon {
	gap: var(--m4);
	font-size: var(--medium-size);
}
dl.ribon + dl.ribon {
	margin-top: var(--m3);
}
dl.ribon > dt {
	flex: 0 0 auto;
	width: 4ic;
	box-sizing: content-box;
	padding-block: 0.5lh;
	padding-inline: 1.5ic 2ic;
	background: var(--navy);
	clip-path: polygon(0 0, 100% 0, 90% 50%, 100% 100%, 0 100%);

	font-size: var(--medium-size);
	color: white;

	position: relative;
}
dl.ribon > dt::before {
	display: block;
	flex: 1 0 auto;
	width: calc(9 * var(--px));
	height: calc(1lh / 1.5);
	background: var(--lemon);
	position: absolute;
	left: 0;
	top: 50%;
	translate: 0 -50%;
}
dl.ribon > dd {
	padding-top: 0.5lh;
}
dl.ribon > dd ul {
	margin-block: 0;
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
	dl.ribon {
		gap: 0;
	}
	dl.ribon > dt {
		flex: 0 0 auto;
		width: 100%;
		box-sizing: border-box;
		clip-path: polygon(0 0, 100% 0, 95% 50%, 100% 100%, 0 100%);
	}
}



/** アコーディオン   
-------------------------------------------------------------------- */
details {}
summary {
	list-style: none;
	padding-block: 1lh;
	padding-inline: 1lh 2lh;
	border-radius: 5lh;

	text-align: center;
	line-height: 1.5;

	cursor: pointer;
	position: relative;
}
summary button {
	width: var(--m2);
	height: var(--m2);

	position: absolute;
	right: 1lh;
	top: 50%;
	translate: -50% -50%;

	pointer-events: none;
}
summary button::before,
summary button::after {
	display: block;
	width: 100%;
	height: 20%;
	background: var(--button-color, var(--lemon));
	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;
	transition: var(--transition);
}
details:not(.is_active) summary button::before {
	rotate: 90deg;
}
details:is(.is_active) summary button::before,
details:is(.is_active) summary button::after {
	rotate: 180deg;
}
details summary::before {
	display: block;
	width: 100%;
	height: 50%;
	background: var(--cloud);

	position: absolute;
	left: 0;
	top: 50%;
	z-index: -1;

	transition: var(--transition);
}
details:not(.is_active) summary::before {
	opacity: 0;
}
details:is(.is_active) summary::before {
	opacity: 1;
}
details .body {
	border-radius: 0 0 var(--m) var(--m);
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
	summary {
		padding-inline: 1.5lh 2lh;
	}
	summary,
	summary :is(.title, .label, .headline) {
		text-align: left;
	}
	summary button {
		width: 1lh;
		height: 1lh;
	}
}

/** テーブル  
-------------------------------------------------------------------- */
table {
	width: 100%;
	border-collapse: collapse;
	font-size: inherit;
	background: var(--table-bg, transparent);
}
tr {
	border-bottom-width: var(--table-border-weight, 1px);
	border-bottom-style: var(--table-border-style, solid);;
	border-bottom-color: var(--table-border-color, currentColor);
}
tr:first-of-type {
	border-top-width: var(--table-border-weight, 1px);
	border-top-style: var(--table-border-style, solid);;
	border-top-color: var(--table-border-color, currentColor);
}
tr:nth-of-type(even) {
	background: var(--table-row-even-bg, rgb(from black r g b / 0.2));
}
:is(th, td) {
	padding-block: 0.5lh;
	padding-inline: 1.5ic;
	border-right-width: var(--table-border-weight, 1px);
	border-right-style: var(--table-border-style, solid);;
	border-right-color: var(--table-border-color, currentColor);
	text-align: left;
	vertical-align: middle;
}
:is(th, td):first-child {
	border-left-width: var(--table-border-weight, 0);
	border-left-style: var(--table-border-style, solid);;
	border-left-color: var(--table-border-color, currentColor);
}

tr:nth-of-type(even) {
	background: transparent;
}
tr:first-child {
	border-top: 0;
}
tr:last-child {
	border-bottom: 0;
}

th:last-child,
td + td {
	border-right: 0;
	padding-right: 0;
}
tr > :first-child {
	padding-left: 0;
}
@media screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
	.wrap .container:has(> table) {
		
	}
	.container:has(> table) {
		overflow-x: scroll;
	}
	.container > table {
		width: max-content;
	}
	:is(th, td) {
		vertical-align: top;
	}
}


/** フレックスボックス  
-------------------------------------------------------------------- */
/* flex direction */
:where(.row, [class*="row"], .column, [class*="column"]) {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
}
:where([class*="row"]) {
	flex-flow: row wrap;
}
:where([class*="row-reverse"]) {
	flex-flow: row-reverse wrap;
}
:where([class*="row"]) > * {
	flex: 0 1 auto;
}
:where([class*="column"]) {
	flex-flow: column wrap;
}
:where([class*="column-reverse"]) {
	flex-flow: column-reverse wrap;
}
@media screen and (min-width: 768px) {
	:where([class*="row-"][class*="pc-"]) {
		flex-flow: row wrap;
	}
	:where([class*="row-reverse"][class*="pc-"]) {
		flex-flow: row-reverse wrap;
	}
}
@media screen and (max-width: 767px) {
	:where([class*="row-"][class*="sp-"]) {
		flex-flow: row wrap;
	}
	:where([class*="row-reverse"][class*="sp-"]) {
		flex-flow: row-reverse wrap;
	}
}

/* flex wrap */
:where([class*="row-nowrap-"], [class*="column-nowrap-"]) {
	flex-wrap: nowrap;
}

/* flex horizontal align */
:where([class*="row-"][class*="start"]) {
	justify-content: flex-start;
}
:where([class*="row-"][class*="end"]) {
	justify-content: flex-end;
}
:where([class*="row-"][class*="center"]) {
	justify-content: center;
}
:where([class*="row-"][class*="between"]) {
	justify-content: space-between;
}

:where([class*="column-"][class*="start"]) {
	align-items: flex-start;
}
:where([class*="column-"][class*="end"]) {
	align-items: flex-end;
}
:where([class*="column-"][class*="center"]) {
	align-items: center;
}

/* flex vertical align */
:where([class*="row-"][class*="top"]) {
	align-items: flex-start;
}
:where([class*="row-"][class*="bottom"]) {
	align-items: flex-end;
}
:where([class*="row-"][class*="middle"]) {
	align-items: center;
}
:where([class*="column-"][class*="top"]) {
	justify-content: flex-start;
}
:where([class*="column-"][class*="bottom"]) {
	justify-content: flex-end;
}
:where([class*="column-"][class*="middle"]) {
	justify-content: center;
}
