@charset "UTF-8";
/* ---------------------------------------------------------
>>> TABLE OF CONTENTS:
------------------------------------------------------------

	1. 	Document Setup
	2. 	Element Base

---------------------------------------------------------- */

/* ------------------------------------------------------- */
/*	1. Document Setup                                      */
/* ------------------------------------------------------- */

/* Preset ------------------------------------- */
:root {
  --contents-width  : 1550px;
  --page-width      : 1020px;
  --contents-padding: 0 50px;
  --page-padding    : 0 10px;

  /* color */
	--color-main      : #0088ff;
	--color-main_light: #55b0ff;
	--color-main_pale : #d5ebff;
	--color-blue_pale : #d5d9ff;


/*  --color-text:       #111;
	--color-link:       #0077BB;
	--color-link_hover: #8BC3DF;
	--color-main:       #0044ff;
	--color-main_light: #99bbff;
	--color-main_dark:  #003388;

  --color-h1_bg:      #e6e9ed;
  --color-footer_bg:  #dae0ea;
*/
  /* font */
	--font-size_xxs:    .667em;  /* 1.2rem */
	--font-size_xs:     .778em;  /* 1.4rem */
	--font-size_s:      .889em;  /* 1.6rem */
	--font-size_m:      1em;     /* 1.8rem */
	--font-size_l:      1.222em; /* 2.2rem */
	--font-size_xl:     1.444em; /* 2.6rem */
	--font-size_xxl:    1.667em; /* 3rem */
	--font-size_xxxl:   1.889em; /* 3.4rem */
	--font-size_xxxxl:  2em;     /* 3.8rem */

  --font-lineheight:  1.75;

}

/* font */
@font-face {
  font-family: 'IBM Plex Sans JP';
  font-style: normal;
  font-weight: normal;
  font-display: block;
  src: url('../font/IBMPlexSansJP-Regular.woff2') format('woff2');
  url('../font/IBMPlexSansJP-Regular.woff') format('woff');*/
}

@font-face {
  font-family: 'IBM Plex Sans JP';
  font-style: normal;
  font-weight: bold;
  font-display: block;
  src: url('../font/IBMPlexSansJP-Bold.woff2') format('woff2');
  url('../font/IBMPlexSansJP-Bold.woff') format('woff');*/
}

html {
	overflow-x: hidden;
	font-size: 62.5%; /* 1rem = 10px */
}

body {
  display: flex;
  flex-direction: column;
  overflow-x: clip;
  height: 100vh;
  box-sizing: border-box;
  background: white;
  color: var( --color-text );
  font-size: 1.6rem;
  /*font-family: 'Avenir','Helvetica Neue','Helvetica','Arial', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro','メイリオ', 'Meiryo', '游ゴシック', 'Yu Gothic', 'ＭＳ Ｐゴシック', sans-serif;*/
  /*font-family: "M PLUS 1p", sans-serif;*/
  /*font-family: "myFont", sans-serif;*/
  font-family: "IBM Plex Sans JP", sans-serif;
  /*letter-spacing: -0.015em;*/
  letter-spacing: 0.05em;
  text-align: left;
}

@media only screen and (min-width: 768px) {
  body {
    font-size: 1.8rem;
  }
}

*,
*::before,
*::after {
  box-sizing: inherit;
  word-break: break-word;
  word-wrap: break-word;
}

/* ---------------------------------------------------------------- */
/*	2. Element Base                                                 */
/* ---------------------------------------------------------------- */
/* Main --------------------------------------- */
main {
  display: block;
  flex-grow: 1;
  padding-top: 8rem;



/*
  min-height: 40em;
  padding-top: 8rem;
  padding-bottom: 4rem;
*/
}



@media only screen and (min-width: 768px) {
  main {
/*    padding-top: 0;
    padding-bottom: 4rem;
*/
    /*background-color: #EEE;
*/
  }
}

/* Heading ------------------------------------ */
.main-header {
  display: block;
  overflow:hidden;
  height: 12rem;
  margin-left: -1rem;
  margin-right: -1rem;
  background-color: var( --color-h1_bg );
}

/* h1 */
h1 {
  margin-top: 2em;
  margin-left: 1rem;
  color: var( --color-main_dark );
  font-size: var( --font-size_xl );
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.005em;
}

/* h2 */
h2 {
  position: relative;
  margin: 2.5em 0 1.75em;
  color: var( --color-main_dark );
  font-size: var( --font-size_xl );
  font-weight: bold;
  letter-spacing: 0.05em;
  text-align: center;
}

h2::before {
	position: absolute;
	bottom: -1em;
	left: 50%;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: .45em .3em 0 .3em;
	border-color: var( --color-main ) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);
	transform: translateX(-50%);
  content: '';
}

/* h3 */
h3 {
  position: relative;
  width: 100%;
  height: auto;
  margin: 1.5em 0 .75em;
  padding-bottom: .25em;
  font-size: var( --font-size_l );
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.025em;
}

h3::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 20%;
  height: 100%;
  border-bottom: var( --color-main ) 2px solid;
  content: '';
}

h3::after {
  position: absolute;
  top: 0;
  left: 20%;
  width: 80%;
  height: 100%;
  border-bottom: var( --color-main_light ) 2px solid;
  content: '';
}

@media only screen and (min-width: 768px) {
  .main-header {
    height: 18rem;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
  }

  h1 {
    width: var( --page-width );
    margin: 2.5em auto 0;
    font-size: var( --font-size_xxxl );
    letter-spacing: 0.075em;
  }

  h2 {
    margin: 3.5em 0 2.25em;
    font-size: var( --font-size_xxl );
    letter-spacing: 0.1em;
  }

  h2::before {
  	bottom: -1.25em;
  	border-width: .6em .35em 0 .35em;
  }

  /* h3 */
  h3 {
    font-size: var( --font-size_xl );
    letter-spacing: 0.075em;
  }
}









/* h4 */
h4 {}

/* h5 */
h5 {}

h6 {}

b,
strong {
	font-weight: bold;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

/* Paragraph --------------------------------- */
p {
	line-height: var( --font-lineheight );
	margin-bottom: 1em;
}

/* Anchor ------------------------------------ */
a {
	color: var(--color-link);
	/*text-decoration: none;*/
	text-decoration: underline;
}

@media only screen and (min-width: 768px) {
  a {
    transition: .15s;
  }

  a:hover {
    opacity: .5;
  }
}



/* Lists -------------------------------------- */
ul,
ol {
	margin: 0 0 3rem .4em;
}

ul {
	list-style: disc;
}

ul ul {
	list-style: circle;
}

ul ul ul {
	list-style: square;
}

ol {
	list-style: decimal;
}

ol ol {
	list-style: lower-alpha;
}

ol ol ol {
	list-style: lower-roman;
}

li {
	line-height: calc(var(--font-lineheight) * .8);
	margin: 0.5rem 0 .75em 1.4em;
}

li::marker {
  color: var( --color-main );
}

li > ul,
li > ol {
	margin: 1rem 0 0 2rem;
}

.reset-list-style,
.reset-list-style ul,
.reset-list-style ol {
	list-style: none;
	margin: 0;
}

.reset-list-style li {
	margin: 0;
}

dt,
dd {
	line-height: var(--font-lineheight);
}

dt {
	font-weight: 700;
}

dt + dd {
	margin-top: 0.5rem;
}

dd + dt {
	margin-top: 1.5rem;
}

/* Tables ------------------------------------- */

table {
	width: 100%;
	max-width: 100%;
	margin: 4rem 0;
	overflow: hidden;
	border: 0.1rem solid #dcd7ca;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: var(--font-size_s);
	empty-cells: show;
}

.alignleft > table {
	margin: 0;
}

.alignright > table {
	margin: 0;
}

th,
td {
	border: 0.1rem solid #dcd7ca;
	line-height: var(--font-lineheight);
	margin: 0;
	overflow: visible;
	padding: .5em;
	font-weight: normal;
	vertical-align: middle;
}

th {
	background-color: var(--color-main_dark);
	color: white;
	text-align: center;
}

caption {
	background: #dcd7ca;
	font-weight: 600;
	padding: 0.5em;
	text-align: center;
}

thead {
	white-space: nowrap;
}


/* ---------------------------------------------------------------- */
/*	17. Media Queries                                               */
/* ---------------------------------------------------------------- */
@media print{
	/* document -------------------------------- */
	body {
		overflow-y: scroll;
		-ms-overflow-style: none;
		scrollbar-width: none;
    color: black;
    font-size: 1.2rem;
	}

	body::-webkit-scrollbar {
		display:none;
		-webkit-appearance: none;
	}

	/* Heading --------------------------------- */
	/* h1 */
  h1 {
    font-size: var( --font-size_xxl );
  }

	/* h2 */
  h2 {
    margin: 1.75em 0 1.5em;
    color: black;
    font-size: var( --font-size_xl );
  }

  h2::before {
    display: none;
  }

	/* h3 */
  h3 {
    border-bottom: #666 2px solid;
  }

  h3::before,
  h3::after {
    display: none;
  }

  /* Lists ------------------------------------ */
  li::marker {
    color: black;
  }
}
