/******************************************************************************

**
** reset.cssにおいて ( var.4.1.2 )
** -- box-sizingを*で指定
** -- -webkit-tap-highlight-colorをrgba(0, 0, 0, 0)で指定
** -- text-size-adjustを100%で指定
** -- font-sizeを10pxで指定
** -- line-heightを1.6で指定（単位なし）
** -- hタグはfont-size: 100%で指定
**

******************************************************************************/

/* === CSS Variables === */
:root {
	--primary-color: #1b4f98;
	--font-family-base: 'Noto Sans JP', sans-serif;
	--font-size-base: 1.6rem; /* 16px */
	--line-height-base: 1.6;
}

/* === Base Fonts === */

/* == Noto Sans JP == */
/* Light */
@font-face {
	font-family: 'Noto Sans JP';
	src: url('../fonts/Noto_Sans_JP/NotoSansJP-Light.woff') format('woff'), url('../fonts/Noto_Sans_JP/NotoSansJP-Light.eot') format('eot');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}
/* Regular */
@font-face {
	font-family: 'Noto Sans JP';
	src: url('../fonts/Noto_Sans_JP/NotoSansJP-Regular.woff') format('woff'), url('../fonts/Noto_Sans_JP/NotoSansJP-Regular.eot') format('eot');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
/* Medium */
@font-face {
	font-family: 'Noto Sans JP';
	src: url('../fonts/Noto_Sans_JP/NotoSansJP-Medium.woff') format('woff'), url('../fonts/Noto_Sans_JP/NotoSansJP-Medium.eot') format('eot');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
/* Bold */
@font-face {
	font-family: 'Noto Sans JP';
	src: url('../fonts/Noto_Sans_JP/NotoSansJP-Bold.woff') format('woff'), url('../fonts/Noto_Sans_JP/NotoSansJP-Bold.eot') format('eot');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

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

html {
	color: #3D424B;
	font-size: 62.5%; /* 10px / 16px = 62.5% for rem calculations */
	line-height: var(--line-height-base);
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	word-spacing: normal;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding: 0;
	font-size: var(--font-size-base);
	font-family: var(--font-family-base);
}

body, input, button, textarea, select {
	font-family: var(--font-family-base);
}

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	padding: 0;
	font-size: 100%;
}

a {
	color: var(--primary-color);
	text-decoration: underline;
}

p {
	margin: 0;
	padding: 0;
}

img {
	border: 0;
	font-size: 0;
	line-height: 0;
	vertical-align: bottom;
	image-rendering: -webkit-optimize-contrast;
}

address {
	font-style: normal;
}

/* === Typography === */
abbr[title] {
	border-bottom: 1px dotted;
}

b, strong {
	font-weight: bolder;
}

blockquote {
	margin: 1em 40px;
}

i {
	font-style: italic;
}

main {
	display: block;
}

mark {
	background: #ff0;
	color: #000;
}

pre, code, kbd, samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

pre {
	white-space: pre;
	white-space: pre-wrap;
	word-wrap: break-word;
}

q {
	quotes: none;
}

q::before, q::after {
	content: '';
}

small {
	font-size: 75%;
}

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

/* === Lists === */
ul, ol {
	margin-top: 1em;
    margin-bottom: 1em;
}

ul li {
    margin-left: 1.5em;
    margin-bottom: 0.5em;
}

ol li {
	margin-left: 2em;
    margin-bottom: 0.5em;
}

dl, dt, dd {
	margin: 0;
}

/* === Figures === */
figure {
	margin: 0;
}

/* === Forms === */
form {
	margin: 0;
}

fieldset {
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
}

legend {
	*margin-left: -7px;
}

button, input, select, textarea {
	font-size: 100%;
	margin: 0;
	vertical-align: baseline;
	*vertical-align: middle;
}

button, input {
	line-height: normal;
	overflow: visible;
}

button, input[type="button"], input[type="reset"], input[type="submit"] {
	cursor: pointer;
	-webkit-appearance: button;
}

input[type="checkbox"], input[type="radio"] {
	box-sizing: border-box;
}

input[type="search"] {
	-webkit-appearance: textfield;
	box-sizing: content-box;
}

input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

button::-moz-focus-inner, input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

textarea {
	overflow: auto;
	vertical-align: top;
}

/* === Tables === */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

th, td {
	padding: 0;
	text-align: left;
	vertical-align: middle;
}

/* === HTML5 element display === */
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
	display: block;
}

audio[controls], canvas, video {
	display: inline-block;
}

/* === Accessibility Enhancements === */
a:focus {
	outline: var(--focus-outline);
	outline-offset: var(--focus-outline-offset);
}

button:focus, input:focus, select:focus, textarea:focus {
	outline: var(--focus-outline);
	outline-offset: var(--focus-outline-offset);
}