@charset "utf-8";

/*------------------*/
/*---- CSSの構成 ----*/
/*------------------*/
/*************************
1. CSS用変数読込(variables)
2. CSSリセット(normalize)
3. 全体(common)
4. 各ページ用(pages/*)
**************************/


/*-------------------------*/
/*---- common.cssの構成 ----*/
/*-------------------------*/
/*************************
1. 優先的な読込(フォントなど)
2. 一般的なタグ（p, hタグなど）
3. 汎用ユーティリティクラス（色、フォントサイズなど）
4. 各セクション（header, main, footer）
5. 各モジュール
**************************/


/*---------------------------*/
/*---- 大まかな構成(HTML) ----*/
/*---------------------------*/
/*****************************
#base
├── header
│   └── #nav
├── main
│   ├── #pankuzu
│   ├── #toc
│   └── #content
│       └── (メインコンテンツ)
└── footer
******************************/


/*------- フォント読込 -------*/

/* @font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../fonts/NotoSansJP-DemiLight.woff2") format("woff2");
} */

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2");
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2");
}

/*--------------------*/
/*------- 全体 -------*/
/*--------------------*/

* {
	padding:0;
	margin: 0;
}

*,  *::before,  *::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	background-color: var(--bg-color);
	color:var(--text-color);
	font-family: "Noto Sans JP", "Meiryo", "Yu Gothic", sans-serif;
	font-weight: 500;
	letter-spacing: 0.03em;	/*フォント間の間隔*/
}

/*---------------------------*/
/*------- 一般的なタグ -------*/
/*---------------------------*/

h1, h2, h3, h4, h5, h6 {
  font-weight: bold;
  line-height: 1.3;
  margin: 2em 0 1em;
}

h1 { font-size: 2rem; }
h2 { font-size: 1.75rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.1rem; }
h6 { font-size: 1rem; }

p { 
	margin: 1em 0; 
}

a {
	color: #0095B5;
	text-decoration: none;

	&:hover {
		color: #00D6FB;
	}
}

img {
	max-width: 100%;
	height: auto;
	/* display: block; */
	vertical-align: top;
	border-style: none;
}

/* リスト */
ol{
	margin: 15px 10px 15px 35px;
}

ol > li{
	padding-top: 8px;
	padding-left: 4px;
	list-style: decimal;
}

li {
	list-style-type: none;
}

/* テーブル */
table {
	border-collapse: collapse;
	width: 95%;
	max-width: 800px;
	margin: 5px auto;
}
table td {
	border-collapse: collapse;
	background-color: #fff; 
	padding: 5px;
	border: 1px solid #EAE8DF;
	font-size: 14px;
}
table th {
	background-color: #deeeff;
	padding: 7px;
	font-size: 14px;
	text-align: center;
}

summary {
	cursor: pointer;
}

/*------------------------------*/
/*------- プロパティクラス -------*/
/*------------------------------*/

.fs10 {	font-size: 10px; }
.fs12 {	font-size: 12px; }
.fs13 {	font-size: 13px; }
.fs14 {	font-size: 14px; }
.fs16 {	font-size: 16px; }
.fs18 {	font-size: 18px; }
.fs20 {	font-size: 20px; }

.text-red {
	color: #ff0000;
}

.text-pale-red {
	color: #E84F28;
}

.text-bold {
	font-weight: bold;
}

.center {
	text-align: center;
}

.right {
	float: right;
}

.marker {
	background: linear-gradient(transparent 75%, #ffdd00 90%); 
}

.stripe{ 
	position: relative;
	padding: 0.2em;

	&::after {
		content: '';
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 5px;
		background: repeating-linear-gradient(-45deg, rgb(252, 172, 53), rgb(252, 172, 53) 2px, white 2px, white 4px);
	}
}

/* 画像を文章中に入れる(アイコンなど) */
img.in_text {
	width: auto;
	height: 1.8em;
	vertical-align: middle;
	margin: 0 0.2em;
}


/*--------------------*/
/*------- base -------*/
/*--------------------*/

#base {
	width: 100%;  
	max-width: 1000px;
	margin-right: auto;
	margin-left: auto;
	background-color: #e6e1cf; 
	background-repeat: repeat-x;
	background-position: top;
	background-attachment: fixed;
	padding-top: 5px;
	padding-bottom: 5px;
}

@media screen and (min-width: 480px) {
	#base {
		min-width: 750px;
	}
}
@media screen and (max-width: 480px) {
	#base {
		min-width: 350px;
	}
}


/*----------------------*/
/*------- header -------*/
/*----------------------*/

header {
	height: 155px;
	width: 100%;  
	min-width: 900px;
	position: relative;
	background-repeat: no-repeat;
	background-color: #FFFFFF;
}
header h1 {
	font-size: 10px;
	position: absolute;
	top: 2px;
	right: 15px;
	line-height: 16px;
	color: #66797B;
}
header img#logo_nias {
	height: auto;
	width: 100px;
	position: absolute;
	left: 40px;
	top: 20px;

}
header img#logo_isc {
	height: auto;
	width: 330px;
	position: absolute;
	left: 170px;
	top: 22px;
}
@media screen and (max-width: 480px) {
	header img#logo_nias {
		width: 100px;
		top: 15px;
	}
	header img#logo_isc {
		width: 260px;
		top: 30px;
	}
}

/*------- 検索窓 -------*/

#cse-search-box {
	position: absolute;
	right: 30px;
	top: 40px;
}

.search_box {
	box-sizing: border-box;
	position: relative;
	border: 2px solid #ddf;
	padding: 3px 10px;
	border-radius: 20px;
	height: 2.3em;
	width: 260px;
	overflow: hidden;
}
.search_box input {
	vertical-align: middle;
	font-size: 0.85rem;
}
.search_box input[type="text"] {
	border: none;
	height: 2.0em;
	padding-left: 10px;
}
.search_box input[type="text"]:focus {
	outline: 0;
}
.search_box input[type="submit"] {
	cursor: pointer;
	font-family: FontAwesome;
	font-size: 1.3em;
	border: none;
	background: none;
	color: #5050ff;
	position: absolute;
	width: 2.5em;
	height: 2.5em;
	right: 0;
	top: -8px;
	outline : none;
}
@media screen and (max-width: 480px) {
	#cse-search-box {
		display: none;
	}
}


/*-------------------------------------------*/
/*------- header > nav(ナビゲーション) -------*/
/*-------------------------------------------*/

nav {
	background-color: var(--theme-color);
	display: inline-block;
	width: 100%;
	padding-left: 40px;
	padding-right: 40px;
	position: absolute;
	bottom: 0px;
}
nav > ul {
	display: block;
	position: relative;
	width: 100%;
}
nav > ul li {
	position: relative;
	display: block;
	float: left;
	width : calc(100%/7); 	/* メニューを均等サイズに7等分*/
	min-width: 100px;
	margin: 0;
	padding: 0;
	text-align: center;		
	letter-spacing: 0.15em;
	white-space: nowrap;	/* 改行禁止*/
}
nav > ul li ul {
	width: 150px;
	display: none;
	position: absolute;
	top: 40px;
	left: 0;
	margin: 0;
}
nav > ul li ul li {
	float: none;
	width: auto;	
	text-align: left;		
}
nav > ul a {
	display: block;
	color: #FFFFFF;
	font-size: 14px;
	line-height: 40px;
	transition: all 0.3s ease;

	&:hover {
		background-color: #ffffff;
		color: #ff9c2c;
	}

	&.active {
		background-color: var(--theme-color-dark);

		&:hover {
			color: #cccccc;
		}
	}
}
nav > ul ul a {
	background-color: #F2F2EE;
	padding: 0px 8px;
	height: 30px;
	line-height: 30px;
	color: var(--text-color);
	border: 1px solid;
	border-top-color: #FFFFFF;
	border-right-color: #CED5D5;
	border-bottom-color: #A7B3B3;
	border-left-color: #CED5D5;

	&:hover {
		background-color: #30A8C3;
		color: #FFFFFF;
	}
}


/*--------------------*/
/*------- main -------*/
/*--------------------*/

main {
	float: left;
	width: 100%;
	max-width: 1000px;
	background-color: #FFFFFF;
	padding: 35px;
	border-top-width: 3px;
	border-top-style: solid;
	border-top-color: #F0F0F0;
	font-size: 16px;
	line-height: 1.35;
}
@media screen and (max-width: 480px) {
	main {
		padding-left: 0px;
		padding-right: 0px;
	}
}


/*------------------------------*/
/*------- main > pankuzu -------*/
/*------------------------------*/

#pankuzu {
	margin-bottom: 3px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #AEB8B8;
	font-size: 12px; 
	color: #6B878B;
	line-height: 16px;
	padding-top: 2px;
	padding-right: 10px;
	padding-bottom: 3px;
	padding-left: 10px;
}
#pankuzu strong {
	color: #6B878B;
	font-size: 13px;
	letter-spacing: 1px;
}


/*------------------------------*/
/*------- main > content -------*/
/*------------------------------*/

#content {
	float: left; 
	width: 97%; /*650px*/
	padding-bottom: 5px;
	margin : 0 auto;
	margin-left: 5px;
}

#content .box_out {
	margin:10px 25px 50px;
}
#content .box_in {
	background-color: #fafafa;
	padding: 25px 45px 35px 40px;
	border-radius: 15px;
	border: 2px solid #f3f3f3
}
@media screen and (max-width: 480px) {
	#content .box_out {
		margin-left: 0px;
		margin-right: 0px;
	}
	#content .box_in {
		padding: 5px 15px;
	}
}

#content h2 {
	padding: 0.5em 1em;
	margin: 50px 5px 10px;
	border: 2px solid var(--theme-color);
    box-shadow: 3px 3px var(--theme-color);
	font-size: 30px;
    color: #3070B5;
}

#content h3 {
    position: relative;
	color: #555555;
	font-size: 24px;
	margin: 15px 5px 20px 5px;
    padding: 0.3em 2.5em 0.2em 1.5em;
	width: fit-content;
	min-width: 50%;
    border-bottom: 3px solid #2bd0b5;
}
#content h3::before {
    position: absolute;
    top: 0;
    left: 0.3em;
    transform: rotate(55deg);
    height: 11px;
    width: 12px;
    background: #2bd0b5;
    content: '';
}
#content h3::after {
    position: absolute;
    transform: rotate(15deg);
    top: 0.6em;
    left: 0;
    height: 8px;
    width: 8px;
    background: #2bd0b5;
    content: '';
}

#content h4 {
	color: #666;	/*#598190*/
	border-left-width: 5px;	/* 3px */
	border-left-style: solid;
	border-left-color: var(--theme-color); /* #6FA8B7; , #74c3da; */
	font-size: 18px;	
	margin: 15px 5px 10px 25px;
	line-height: 30px;
	padding: 3px 5px 3px 8px;
}
#content h4 span {
	font-size: 0.75rem;
	color: #777777 ;	/*#638F9D*/
	padding-left: 10px;
	line-height: 0.75rem;
	font-weight: 500;
}
#content h5 {
	color: #598190;
	margin: 60px 5px 0px;
	padding: 3px 5px 3px 8px;
	font-size: 20px;	
	line-height: 30px;
	border-bottom: 3px dotted #aaa;
}
#content p {
	font-size: 16px;
	padding: 5px 30px 5px 5px;
	line-height: 26px;
	text-indent: 0em;
	margin: 8px;
}
@media screen and (max-width: 480px) {
	#content p {
		padding-right: 10px;
	}
}

#content .indent {
	padding-left: 1em;
	text-indent: -1em;
	margin-top: 40px; 
}


/*------------------------------------------*/
/*------- main > content > toc(目次) -------*/
/*------------------------------------------*/

#toc {
	margin: 60px 40px 70px;
	padding-bottom: 30px;
	border: 1px solid #b3ccf1;
	border-radius: 7px;
}
#toc ul {
	padding-top: 10px;
}
#toc ul ul {
	padding: 0px;
}
#toc ul ul > li{
	margin-left: 25px;
}

#toc li {
	font-size: 14px;
	line-height: 30px;
	margin-left: 45px;
	margin-right: 45px;
}
#toc li a {
	background-image: url(../img/li.gif);
	background-repeat: no-repeat;
	background-position: 5px center;
	margin-bottom: 2px;
	padding-bottom: 2px;
	padding-left: 15px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #D8D8D3;
	display: block;
}
#toc h2 {
	color: #fff;
	background-color: var(--theme-color);
	font-size: 22px;
	margin: 0px 0px 10px;
	padding: 10px 0px;
	text-align: center;
	border: none;
	border-radius: 7px 7px 0px 0px ;
	box-shadow: none;
}
#toc h3 {
	color: #596d6e;
	font-size: 18px;
	min-width: 30%;
	padding-left: 10px;
	margin-top: 15px;
	margin-left: 20px;
	border-bottom-width: 2px;
	border-bottom-style: solid;
	border-bottom-color: #E1E6E6;
}
#toc h3::before {
    background: none;
}
#toc h3::after {
    background: none;
}
#toc h3:after {
	border: none;
}


/*----------------------*/
/*------- footer -------*/
/*----------------------*/

footer {
	display: grid;
	grid-template-columns: 1fr auto auto 1fr;
	grid-template-rows: auto 3px auto auto auto;
	column-gap: 20px;
	row-gap: 0px;
	padding: 7px;
	background-color: var(--theme-color);
	font-size: 0.7em;
}

footer div {
	color: white;
	text-align: center;
}

footer a {
	&:link { color: gray; }
	&:hover { color: white; }
}

footer .name {
	grid-column: 1 / 5;
	grid-row: 1 / 2;
	font-size: 1.2em;
}
footer .tel {
	grid-column: 2 / 3;
	grid-row: 3 / 4;
}
footer .email {
	grid-column: 3 / 4;
	grid-row: 3 / 4;
}
footer .pr1 {
	grid-column: 4 / 5;
	grid-row: 4 / 5;
	text-align: right;
	font-size: 0.55rem;
	color: gray;
}
footer .pr2 {
	grid-column: 4 / 5;
	grid-row: 5 / 6;
	text-align: right;
	font-size: 0.55rem;
	color: gray;
}
footer .copyright {
	grid-column: 1 / 5;
	grid-row: 5 / 6;
}


/*---------------------------------------*/
/*---------------------------------------*/
/*---------------------------------------*/
/*---------------------------------------*/
/*---------------------------------------*/

/* ----------------------------
箇条書き
----------------------------- */

.items {
	margin: 10px 0px 20px;
}

.items li{
	margin-left: 40px;
	padding-top: 7px;
	padding-left: 1em;
  	text-indent: -1em; 
}
.items li::before{
    display:  inline-block;
	position:  relative; 
    background-color: #bbbbbb;
    margin-right: 10px;
    width:  6px;
    height:  6px;
    border-radius:  50%;
	content:  "";
	top: -3px;
}


/* ----------------------------
タグ
----------------------------- */
.tag {
	background-color: #ff6969;
	position: relative;
	margin: 0px 10px;
	padding: 2px 12px;
	border-radius: 10px;
	font-size: 13px;
	color: #FFF;
}

.tag:hover .tag_msg {
	display: inline;
}

.tag_msg {
	display: none;
	position : absolute;
	padding: 10px;
	width: 170px;
	top : 30px;
	left : -70px;
	background-color: rgba(100,100,100,0.9);
	border-radius: 10px;
	line-height: 1.2;
    font-weight: normal;
}


/* ----------------------------
アコーディオン関係
----------------------------- */

.detail_box {
	margin-bottom: 100px;
}
.detail_box h4 {
	margin-top: 40px;
	margin-bottom: 20px;
}
.detail_out {
	margin: 5px 25px 15px;
	box-shadow: 0 3px #EAF2F2;
	transition: 0.1s;
}
.detail_out:hover {
	box-shadow: none;
	transform: translate(0, 3px);
}

.detail_in {
	background-color: #FFFFFF;
	border: 1px solid #DCDCD8;
	padding: 10px 25px;
}

.detail_in summary {
	outline: none;
	transition: 0.3s;
}
details[open] .details-content {
	animation: fadeIn 0.8s ease;
	transition: 10s;
}

@keyframes fadeIn {
	0% {
	  opacity: 0; /* 透明 */
	  transform: translateY(-10px); /* 上から表示 */
	}
	100% {
	  opacity: 1;
	  transform: none;
	}
}

/* ----------------------------
画像の装飾(主にアコーディオン内で利用 2025.6)
----------------------------- */

.frame {
	margin-bottom: 35px;
	border: 2px #CCCCCC solid;
	width: 70%;
	height: auto;
	border-radius: 10px;
	box-shadow: 10px 10px 15px -10px gray;

	&.f-w30 { width: 30%; }
	&.f-w40 { width: 40%; }
	&.f-w50 { width: 50%; }
	&.f-w60 { width: 60%; }
	&.f-w70 { width: 70%; }
	&.f-w80 { width: 80%; }
	&.f-w90 { width: 90%; }
}

/* 画像を横に並べる 2つを想定 */
.img_side {
	display: flex;
	justify-content: center;
}
.img_side img {
	margin: 20px 40px 35px;
	width: 30%;
	height: auto;
	border: 2px #CCCCCC solid;
	border-radius: 10px;
	box-shadow: 10px 10px 15px -10px gray;;
}


/* ----------------------------
タイルボックス
----------------------------- */
.tiles {
	height: auto;
	display: flex;
	flex-wrap: wrap;
	align-content: space-around;
}

.tiles .tile {
	position: relative;
	width: 180px;
	height: 150px;
	margin: 15px;
    background: #fff;
	text-align: center;
    text-decoration: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22);
	transition: 0.2s;
}
.tiles .tile img {
	margin: 0px;
	width: 180px;
	height: 120px;
}
.tiles .tile .label {
	position: absolute;
	width: 100%;
	margin: 0px;
	padding: 10px 0px;
	background-color: #444444d0;
	top: 60%;
	left: 50%;
  	transform: translate(-50%,-50%);
	color: #fff;
	font-size: 20px;
}

.tiles .tile .title-blue {
    font-size: 1.1em;
    font-weight: bold;
    color: #FFF;
    background: #5fc2f5;
    padding: 4px;
    text-align: center;
    letter-spacing: 0.05em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tiles .tile .title-orange {
    font-size: 1.1em;
    font-weight: bold;
    color: #FFF;
    background: #f5d25f;
    padding: 4px;
    text-align: center;
    letter-spacing: 0.05em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tiles .tile:hover {
	box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.5);
	transform: translateY(-5px);
	cursor: pointer;
}

/* ----------------------------
フローチャート
----------------------------- */

.flow {
	display: flex;
	flex-wrap: wrap;
	width: 95%;
	padding: 20px 0px 40px;
}
.flow li {
	padding: 20px 30px;
	margin-top: 50px;
	flex-basis: 29%;
	border: 2px solid rgb(107,144,219);
	position: relative;
}
.flow li:nth-child(n) {
	margin-left: 30px;
}
.flow li:not(:last-child)::before,
.flow li:not(:last-child)::after {
	content: "";
	border: solid transparent;
	position: absolute;
	top: 50%;
	left: 100%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}
.flow li:not(:last-child)::before {
	border-width: 16px;
	border-left-color: rgb(107,144,219);
}
.flow li:not(:last-child)::after {
	border-width: 14px;
	border-left-color: #fff;
}
.flow li .icon {
	font-size: 14px;
	color: #fff;
	background: rgb(107,144,219);
	background: linear-gradient(to right, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6b90db', endColorstr='#66d5e9',GradientType=1 );
	padding: 4px 15px;
	display: block;
	border-radius: 20px;
	position: absolute;
	top: -10px;
	left: -10px;
	z-index: 100;
}
.flow li dl dt {
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	color: rgb(75, 121, 212);
	/* margin-bottom: 8px; */
}
.flow li dl dd {
	font-size: 15px;
}


/* ----------------------------
Q&A関連
----------------------------- */

.qa dl {
	margin: 50px 35px;
}
.qa dt {
    position: relative;
	width: fit-content;
	min-width: 30%;
	margin: 30px 0px 20px;
    padding: 0.3em 1em 0.4em 2.2em;
	font-size: 18px;
	font-weight: bold;
	border-bottom: 2px dashed #a5dbff;
}
.qa dt::before {
    color: #75bbff;
    content: "Q";
}

.qa dd {
    position: relative;
	margin: 0px 40px 40px 30px;
    padding: 0.3em 1em 0.5em 1.5em;
}
.qa dd::before {
    color: #ff8d8d;
    content: "A";
}

.qa dt::before,
.qa dd::before {
	position: absolute;
	font-size: 20px;
	font-weight: bold;
    left: 0em;
	top: 0.1em;
}

.qa p {
	padding: 0px;
	margin: 8px 0px 0px;
	line-height: 24px;
}

/* ----------------------------
ダウンロードリンク
----------------------------- */

dl.dl_link {
	padding: 20px;
	padding-top: 25px;
	padding-right: 70px;
	padding-bottom: 15px;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #DEDFDA;
	margin-right: 10px;
	margin-left: 5px;
}
.dl_link dt {
	font-size: 17px;	/* 16px */
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #BBDBDF;
	line-height: 30px;
	margin-bottom: 7px;
	background-image: url(../img/li.gif);
	background-repeat: no-repeat;
	background-position: left center;
	padding-left: 10px;
	font-weight: bold;
}
.dl_link dd {
	font-size: 15px;	/* 15px */
	line-height: 26px;
	padding-right: 15px;
	padding-left: 15px;
	color: #505050;
}


/* ----------------------------
トップに戻るボタン
----------------------------- */
.pagetop{
    display: none;
    position: fixed;
    right: 15px;
	bottom: 60px;
}
.pagetop a{
    display: block;
    font-size: 0;
    width: 50px;
    height: 50px;
    text-align: center;
    background: #7db4e6;
    border-radius: 50%;
	line-height: 50px;
	box-shadow: 10px 10px 15px -10px gray;
}
.pagetop a i{
    font-size: 35px;
    color:#fff;
    line-height: 50px;
}

