@charset "utf-8";

/* ==========================================================================
レイヤーの優先順を宣言 
========================================================================== */
@layer reset, normalize, base;

/* ==========================================================================
base をレイヤー化
========================================================================== */
@layer base {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}
}


/* ==========================================================================
reset をレイヤー化
========================================================================== */
@layer reset {

	/*==========================================================================
	# reset - ブラウザの差異や不要なスタイルを無くすためのスタイル
	========================================================================== */
	/* http://meyerweb.com/eric/tools/css/reset/ 
	v2.0 | 20110126
	License: none (public domain)
	*/

	html, body, div, span, applet, object, iframe,
	h1, h2, h3, h4, h5, h6, p, blockquote, pre,
	a, abbr, acronym, address, big, cite, code,
	del, dfn, em, img, ins, kbd, q, s, samp,
	small, strike, strong, sub, sup, tt, var,
	b, u, i, center,
	dl, dt, dd, ol, ul, li,
	fieldset, form, label, legend,
	table, caption, tbody, tfoot, thead, tr, th, td,
	article, aside, canvas, details, embed, 
	figure, figcaption, footer, header, hgroup, 
	menu, nav, output, ruby, section, summary,
	time, mark, audio, video {
		margin: 0;
		padding: 0;
		border: 0;
		font-size: 100%;
		font: inherit;
		vertical-align: baseline;
	}
	/* HTML5 display-role reset for older browsers */
	article, aside, details, figcaption, figure, 
	footer, header, hgroup, menu, nav, section {
		display: block;
	}
	body {
		line-height: 1;
	}
	ol, ul {
		list-style: none;
	}
	blockquote, q {
		quotes: none;
	}
	blockquote:before, blockquote:after,
	q:before, q:after {
		content: '';
		content: none;
	}
	table {
		border-collapse: collapse;
		border-spacing: 0;
	}

	*,
	::before,
	::after {
		box-sizing: border-box;
	}

	a {
		text-decoration: none;
		color: inherit;
	}

	img {
		width: 100%;
	}

	button {
		background: transparent;
		border: none;
		padding: 0;
	}



	/* ==== この中では reset レイヤーを無効化 ==== */
	@supports (all: revert-layer) {
		.no-reset, .no-reset * {
		all: revert-layer; /* resetレイヤー“だけ”を打ち消す */
		}
	}
}



/* ==========================================================================
・normalize をレイヤー化（normalize を .no-reset 配下にのみ適用）
========================================================================== */
@layer normalize {

	:where(.no-reset) { line-height: 1.7; } /* html の代替（局所） */
	:where(.no-reset a) { background-color: transparent; }

	:where(.no-reset h1) { font-size: 2em; margin: 0.67em 0; }

	:where(.no-reset hr) { box-sizing: content-box; height: 0; overflow: visible; }

	:where(.no-reset pre) { font-family: monospace, monospace; font-size: 1em; }

	:where(.no-reset abbr[title]) {
		border-bottom: none;
		text-decoration: underline dotted;
	}

	:where(.no-reset b), :where(.no-reset strong) { font-weight: bolder; }

	:where(.no-reset code),
	:where(.no-reset kbd),
	:where(.no-reset samp) {
		font-family: monospace, monospace;
		font-size: 1em;
	}

	:where(.no-reset small) { font-size: 80%; }

	:where(.no-reset sub),
	:where(.no-reset sup) {
		font-size: 75%;
		line-height: 0;
		position: relative;
		vertical-align: baseline;
	}
	:where(.no-reset sub) { bottom: -0.25em; }
	:where(.no-reset sup) { top: -0.5em; }

	:where(.no-reset img) {
		border-style: none;
		max-width: 100%;
		height: auto;
	}

	:where(.no-reset button),
	:where(.no-reset input),
	:where(.no-reset optgroup),
	:where(.no-reset select),
	:where(.no-reset textarea) {
		font: inherit;
		line-height: 1.15;
		margin: 0;
	}

	:where(.no-reset button), :where(.no-reset input) { overflow: visible; }
	:where(.no-reset button), :where(.no-reset select) { text-transform: none; }

	:where(.no-reset button),
	:where(.no-reset [type="button"]),
	:where(.no-reset [type="reset"]),
	:where(.no-reset [type="submit"]) { -webkit-appearance: button; }

	:where(.no-reset button::-moz-focus-inner),
	:where(.no-reset [type="button"]::-moz-focus-inner),
	:where(.no-reset [type="reset"]::-moz-focus-inner),
	:where(.no-reset [type="submit"]::-moz-focus-inner) {
		border-style: none;
		padding: 0;
	}

	:where(.no-reset button:-moz-focusring),
	:where(.no-reset [type="button"]:-moz-focusring),
	:where(.no-reset [type="reset"]:-moz-focusring),
	:where(.no-reset [type="submit"]:-moz-focusring) {
		outline: 1px dotted ButtonText;
	}

	:where(.no-reset fieldset) { padding: 0.35em 0.75em 0.625em; }

	:where(.no-reset legend) {
		box-sizing: border-box;
		color: inherit;
		display: table;
		max-width: 100%;
		padding: 0;
		white-space: normal;
	}

	:where(.no-reset progress) { vertical-align: baseline; }
	:where(.no-reset textarea) { overflow: auto; }

	:where(.no-reset [type="checkbox"]),
	:where(.no-reset [type="radio"]) {
		box-sizing: border-box;
		padding: 0;
	}

	:where(.no-reset [type="number"]::-webkit-inner-spin-button),
	:where(.no-reset [type="number"]::-webkit-outer-spin-button) { height: auto; }

	:where(.no-reset [type="search"]) {
		-webkit-appearance: textfield;
		outline-offset: -2px;
	}
	:where(.no-reset [type="search"]::-webkit-search-decoration) { -webkit-appearance: none; }

	:where(.no-reset ::-webkit-file-upload-button) {
		-webkit-appearance: button;
		font: inherit;
	}

	:where(.no-reset details) { display: block; }
	:where(.no-reset summary) { display: list-item; }

	:where(.no-reset template) { display: none; }
	:where(.no-reset [hidden]) { display: none; }
}
