﻿@charset "utf-8";
/* CSS Document */

/*
VARIABLES
================================================ */
:root {
	--blue: #043491;
	--blue2: #375faf;
	--red: #ff4b00;
	--green: #00b803;
	--white: #fff;
	--black: #333;
	--gray7: #777;
	--grayA: #aaa;
	--grayE: #eee;
	--linkclr: #003b83;
	--hirak2: "ヒラギノ角ゴ W2 JIS2004", "Hiragino Kaku Gothic W2 JIS2004",
	Sans-Serif;
	--hirak5: "ヒラギノ角ゴ W5 JIS2004", "Hiragino Kaku Gothic W5 JIS2004",
	Sans-Serif;
	--hiram3: "ヒラギノ明朝 W3 JIS2004", "Hiragino Mincho W3 JIS2004", serif;
	--hiram6: "ヒラギノ明朝 W6 JIS2004", "Hiragino Mincho W6 JIS2004", serif;
	--hirak: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
	--FA6: "Font Awesome 6 Free";
}

/*==============================================
 common layout
==============================================*/
*,
*:before,
*:after {
	box-sizing: border-box;
}
*:focus {
	outline: none;
}

html {
	overflow-y: scroll;

	-webkit-text-size-adjust: 100%;
}
html,
body {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}
body {
	font-family: var(--hirak2);
	font-size: 15px;
	line-height: 1.6;
	color: var(--black);
}

/*====== header ======*/
header {
	border-bottom: 1px solid var(--blue);
	-webkit-box-shadow: rgb(0 0 0 / 11%) 0 1px 3px, rgb(0 0 0 / 24%) 0 1px 3px;
	   -moz-box-shadow: rgb(0 0 0 / 11%) 0 1px 3px, rgb(0 0 0 / 24%) 0 1px 3px;
	        box-shadow: rgb(0 0 0 / 11%) 0 1px 3px, rgb(0 0 0 / 24%) 0 1px 3px;
}
.header-area {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 80px;
}
.img-mypage {
	position: absolute;
	top: 50%;
	left: 0;
	width: 158px;
	height: 60px;
	margin-left: 1em;
	transform: translateY(-50%);
}
h1 {
	font-family: var(--hiram6);
	font-size: 150%;
	text-align: center;
	font-weight: bold;
}
@media screen and (max-width: 520px) {
	.header-area {
		position: static;
		display: block;
		height: auto;
	}
	.img-mypage {
		position: static;
		top: 0;
		transform: translateY(0%);
	}
	.box-page-title-area {
		position: static;
		display: inline-block;
		margin: 0 1em;
		vertical-align: -5px;
	}
	h1 {
		font-size: 150%;
	}
}

main {
	flex: 1;
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
}

.container {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

section {
	width: 92%;
	margin: 25px auto;
}

/*====== footer ======*/
footer {
	width: 100%;
	text-align: center;
	color: var(--white);
	background-color: var(--blue);
}
.footer-content {
	display: flex;
	align-items: center;
	flex-direction: row;
	justify-content: space-between;
	width: 90%;
	max-width: 980px;
	height: 100px;
	margin: 0 auto;
}
.footer-content .logo a {
	display: block;
	overflow: hidden;
	width: 130px;
	height: 32px;
	white-space: nowrap;
	text-indent: 100%;
	background: url("../images/zkai_logo.svg") 0 0 no-repeat;
	background-size: 100%;
}
.footer-content p {
	font-family: sans-serif;
	font-size: 0.8em;
	padding-right: 20px;
	text-align: right;
	color: var(--white);
}
@media screen and (max-width: 520px) {
	.footer-content {
		flex-direction: column;
		justify-content: center;
		width: 100%;
		height: auto;
	}
	.logo {
		margin: 20px 0;
	}
	.copyright {
		margin-bottom: 12px;
	}
	.footer-content p {
		padding-right: 0;
	}
}

/*==============================================
 heading
==============================================*/
h1,
h2,
h3,
h4,
h5,
h6,
h7,
h8 {
	font-family: var(--hirak5);
	font-weight: bold;
	line-height: 1.4;
}
/* h1はheaderで使用 */
h2 {
	font-size: 130%;
	margin-bottom: 30px;
	text-align: center;
	color: var(--blue);
	border-bottom: 2px solid var(--blue);
}
h3 {
	font-size: 108%;
	margin: 0 0 5px;
	padding: 0;
	color: var(--green);
}
h4 {
	font-size: 108%;
	margin: 0 0 5px;
	padding: 0;
	color: var(--blue2);
}
h5 {
	font-size: 105%;
}
h6 {
	font-size: 130%;
	margin-bottom: 10px;
	text-align: left;
	color: var(--gray7);
}
h7 {
	font-size: 108%;
	margin-bottom: 30px;
	text-align: left;
	color: var(--gray7);
}
h8 {
	font-size: 1.1rem;
	margin: 1em 0 0.5em;
	padding: 0 0.5em;
	color: #043491;
	border-left: 4px solid #043491;
}

@media screen and (max-width: 520px) {
	h2 {
		text-align: left;
	}
}

/*==============================================
 font
==============================================*/
.text-note {
	font-size: 88%;
	line-height: 1.3;
	position: relative;
	margin-top: 2px;
	padding-left: 1.1em;
}
.text-note::before {
	font-family: var(--hirak);
	position: absolute;
	top: 0;
	left: 0;
	content: "※";
}

.txt-em,
.txt-em-r,
.txt-em-b,
.txt-em-g {
	font-family: var(--hirak5);
	font-weight: bold;
}
.txt-em-b {
	color: var(--blue);
}
.txt-em-r {
	color: var(--red);
}
.txt-em-g {
	color: var(--green);
}
.txt-gray {
	color: var(--gray7);
}
em {
	font-family: var(--hirak5);
	font-weight: bold;
	color: var(--blue);
}
mark {
	font-family: var(--hirak5);
	font-weight: bold;
	font-style: normal;
	background: linear-gradient(transparent 70%, #d2e7fa 70%);
}
.mk {
	background: linear-gradient(transparent 70%, #d2e7fa 70%);
}

.fwB {
	font-family: var(--hirak5);
	font-weight: bold;
}
.fwN {
	font-family: var(--hirak2);
	font-weight: normal;
}

.fsN {
	font-style: normal;
}
.fsI {
	font-style: italic;
}

.tdul {
	text-decoration: underline;
}
.txtmin {
	font-family: var(--hiram3);
}
.txtminB {
	font-family: var(--hiram6);
	font-weight: bold;
}

sup {
	font-size: 60%;
	vertical-align: super;
}
sub {
	font-size: 60%;
	vertical-align: sub;
}

/*==============================================
 link
==============================================*/
a {
	font-size: 105%;
	transition: all 0.3s ease;
	text-decoration: underline;
	word-break: break-all;
	color: var(--linkclr);
}
a:hover {
	text-decoration: none;
}

.box-btn-link-area {
	margin: 15px 0;
	text-align: center;
}
.box-btn-link-area a {
	text-decoration: none;
}
.box-text-link-area {
	margin: 5px 0;
}

a:hover.btn-link {
	opacity: 0.8;
}

/* button */
.btn-link {
	font-family: var(--hirak5);
	font-weight: bold;
	position: relative;
	display: inline-block;
	padding: 10px 30px 10px 15px;
	text-align: left;
	color: var(--white);
	border-radius: 4px;
	background: var(--blue);
}
.btn-link::after {
	font-family: var(--FA6);
	font-weight: bold;
	position: absolute;
	top: 50%;
	right: 2px;
	content: "\f054";
	-webkit-transform: translate(-50%, -50%);
	    -ms-transform: translate(-50%, -50%);
	        transform: translate(-50%, -50%);
}

/* text */
.text-link {
	font-family: var(--hirak5);
	position: relative;
	display: block;
	margin: 0;
	padding-left: 18px;
	color: var(--blue);
}
.text-link::before {
	font-family: var(--FA6);
	font-weight: bold;
	position: absolute;
	top: 0;
	left: 0;
	content: "\f144";
	color: var(--linkclr);
}
.text-link {
	text-decoration: underline;
}
.text-link:hover {
	text-decoration: none;
}

/*== アイコン ==*/
/* 外部リンク */
.extarnal::after {
	font-family: var(--FA6);
	font-size: 90%;
	font-weight: bold;
	position: absolute;
	margin-left: 5px;
	content: "\f35d";
}
/* PDFファイル */
.pdf::after {
	font-family: var(--FA6);
	font-size: 90%;
	font-weight: bold;
	position: absolute;
	margin-left: 5px;
	content: "\f1c1";
}

button {
	font-family: var(--hirak5);
	font-size: 1em;
	font-weight: bold;
	position: relative;
	display: block;
	width: 100%;
	margin-bottom: 10px;
	padding: 8px 5px 8px 25px;
	cursor: pointer;
	transition-duration: 0.3s;
	text-align: left;
	text-decoration: none;
	color: var(--blue);
	border: 1px solid var(--blue);
	background: var(--white);
}
button:before {
	font-family: var(--FA6);
	font-size: 100%;
	font-weight: bold;
	position: absolute;
	top: 11px;
	left: 5px;
	content: "\f138";
}
button:hover {
	background: rgba(4, 52, 145, 0.2);
}
button:hovef:before {
	border-top: 3px solid var(--blue);
	border-right: 3px solid var(--blue);
}

/*==============================================
 image
==============================================*/
img {
	max-width: 100%;
}

.box-image-area {
	margin: 1em 0 2em;
	text-align: center;
}
.img-base {
	width: 100%;
}
.img-large {
	width: 80%;
	height: auto;
}
.img-middle {
	width: 50%;
	height: auto;
}
.img-small {
	width: 35%;
	height: auto;
}
.img-xsmall {
	width: 18%;
	height: auto;
}
@media screen and (max-width: 520px) {
	.img-large,
	.img-middle,
	.img-small,
	.img-xsmall {
		width: 95%;
	}
}

/*==============================================
 table
==============================================*/
.culture-table {
	border-collapse: collapse; /* これは罫線の間隔をなくすため */
	border: none;
}
.culture-table td,
.culture-table th {
	border: none;
}

.box-table-area {
	margin: 10px 0;
}

table {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	border-spacing: 0;
	border-collapse: collapse;
	border: 1px solid var(--grayA);
}
th,
td {
	line-height: 1.4;
	padding: 6px 10px;
	border: 1px solid var(--grayA);
}
th {
	text-align: center;
	word-break: break-all;
	background-color: var(--grayE);
}
td {
	border-collapse: collapse;
	text-align: left;
	vertical-align: top;
	border: 1px solid var(--grayA);
}
@media screen and (max-width: 520px) {
	table {
		font-size: 90%;
	}
	th {
		white-space: normal;
	}
	th,
	td {
		padding: 5px;
	}
}

.tdC table td {
	text-align: center;
}

/***** tbstA *****/
.tbstA table {
	width: auto;
}
.tbstA table th,
.tbstA table td {
	min-width: 70px;
	padding: 3px 10px;
	border: 1px solid var(--grayA);
	background: var(--white);
}
.tbstA table thead th {
	background: var(--grayE);
}
.tbstA table tbody th {
	text-align: center;
}
.tbstA table tbody td {
	text-align: left;
}

/***** tbstB *****/
.tbstB table {
	font-size: 94%;
}
.tbstB table th,
.tbstB table td {
	padding: 3px 10px;
	border: 1px solid var(--grayA);
	background: var(--white);
}
.tbstB table th {
	background: var(--grayE);
}
.tbstB table tbody th {
	background: var(--white);
}
.tbstB table.taL th,
.tbstB table.taL td {
	text-align: left;
}

.nowrap {
	white-space: nowrap;
}

/*==============================================
 frame
==============================================*/
/* 青罫線囲み */
.box-frame-A {
	margin: 5px 0;
	padding: 10px;
	border: 2px solid var(--blue);
	background-color: var(--white);
	box-shadow: rgb(0 0 0 / 11%) 0 1px 3px, rgb(0 0 0 / 24%) 0 1px 3px;
}

/* グレー背景塗 */
.box-frame-B {
	margin: 0;
	padding: 10px;
	background: var(--grayE);
	box-shadow: rgb(0 0 0 / 50%) 0 0 2px;
}

/* グレー罫線囲み */
.box-frame-C {
	margin: 5px 0;
	padding: 10px;
	border: 1px solid var(--gray7);
	background-color: var(--white);
}

/*==============================================
 list
==============================================*/
ul li {
	list-style: none;
}

/* normal */
ul.normal li {
	margin: 2px 0 2px 23px;
	padding: 0;
	list-style: disc;
}
/* disc */
ul.disc {
	margin: 0;
	padding: 0;
}
ul.disc li {
	position: relative;
	margin-left: 19px;
	list-style-type: none;
}
ul.disc li::before {
	font-size: 0.7em;
	position: absolute;
	top: 3px;
	left: -15px;
	display: block;
	content: "●";
	color: var(--gray7);
}
/* disc 青 */
ul.discB {
	margin: 0;
	padding: 0;
}
ul.discB li {
	font-family: var(--hirak5);
	font-weight: bold;
	position: relative;
	margin-left: 19px;
	list-style-type: none;
	color: var(--blue2);
}
ul.discB li::before {
	font-size: 0.7em;
	position: absolute;
	top: 3px;
	left: -15px;
	display: block;
	content: "●";
	color: var(--blue2);
}

/* list */
ul.list li {
	margin-left: 1em;
	text-indent: -1em;
}

/*== 順序付リスト ==*/
ol {
	margin-left: 25px;
	padding: 0;
}
/*ol li::marker {
  font-family: var(--hirak5);
  font-weight: 700;
}*/

/* 数字) */
ol.parentheses {
	margin: 0;
	list-style: none;
}
ol.parentheses {
	margin: 0;
	list-style: none;
	counter-reset: number;
}
ol.parentheses li {
	position: relative;
	padding-left: 25px;
}
ol.parentheses li::before {
	position: absolute;
	left: 0;
	content: counter(number) "）";
	counter-increment: number;
}

/* (数字) */
ol.parentheses2 {
	margin: 0;
	list-style: none;
}
ol.parentheses2 {
	margin: 0;
	list-style: none;
	counter-reset: number;
}
ol.parentheses2 li {
	position: relative;
	padding-left: 35px;
}
ol.parentheses2 li::before {
	position: absolute;
	left: 0;
	content: "（" counter(number) "）";
	counter-increment: number;
}

/* ◯数字 */
ol.round {
	margin: 0;
	padding: 0;
}
ol.round li {
	padding-left: 1em;
	list-style: none;
	text-indent: -1em;
}

/*== Description list ==*/
dt {
	font-family: var(--hirak5);
	font-weight: 700;
}
dd {
	margin: 0;
}

/* dt 青太字　dd 2字下げ */
dl.count dt {
	font-family: var(--hirak5);
	font-weight: bold;
	padding-left: 2em;
	text-indent: -2em;
	color: var(--blue2);
}
dl.count dd {
	margin-left: 2em;
}

/* dt グレー塗　dd ボーター */
dl.stA dt {
	font-family: var(--hirak5);
	font-weight: bold;
	padding: 5px 10px;
	border-right: 1px solid var(--grayA);
	border-left: 1px solid var(--grayA);
	background: var(--grayE);
}
dl.stA dt:first-of-type {
	border-top: 1px solid var(--grayA);
}
dl.stA dd {
	padding: 10px;
	border: 1px solid var(--grayA);
}

/*== QA-box ==*/
.Q-box {
	margin: 0 auto 20px;
}
.Q-box .QA dt,
.Q-box .QA dd {
	display: flex;
	align-items: baseline;
	margin: 0;
	padding: 10px 5px;
	background: #f5f5f5;
}
.Q-box .QA dt {
	margin-bottom: 10px;
}
.Q-box .QA dt p,
.Q-box .QA dd p,
.Q-box .QA dt ul,
.Q-box .QA dd ul {
	width: 100%;
	margin: 0;
	padding-left: 8px;
}
.Q-box .QA dt::before,
.Q-box .QA dd::before {
	font-family: var(--hirak5);
	font-size: 16px;
	font-weight: bold;
	line-height: 24px;
	display: flex;
	align-items: baseline;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: var(--white);
}
.Q-box .QA dt::before {
	content: "Ｑ";
	background: #6699b7;
}
.Q-box .QA dd::before {
	content: "Ａ";
	background: #d65556;
}

/*== バックナンバー ==*/
.info {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	width: 98%;
	margin: 0 auto 30px;
}
.info dd,
.info dt {
	box-sizing: border-box;
	width: 100%;
	padding: 5px 0;
	border-bottom: 1px dotted var(--gray7);
}
.info dt {
	width: 50px;
}
.info dt:first-of-type {
	border-top: 1px dotted var(--gray7);
}
.info dt.topic::after,
.info dt.faq::after {
	font-size: 76%;
	display: inline-block;
	width: 42px;
	text-align: center;
	vertical-align: 1px;
}
.info dt.topic::after {
	content: "TOPIC";
	background-color: #c9daf8;
}
.info dt.faq::after {
	content: "FAQ";
	background-color: #f4cccc;
}
.info dd {
	width: calc(100% - 50px); /* dtの幅を引く */
}
.info dd:first-of-type {
	padding-top: 5px;
	border-top: 1px dotted var(--gray7);
}
@media screen and (max-width: 520px) {
	.info {
		font-size: 100%;
		width: 100%;
	}
}

/*==============================================
 accordion
==============================================*/
dl.acc dt.acc-ttl {
	font-family: var(--hirak5);
	font-size: 105%;
	font-weight: bold;
	line-height: 1.3;
	position: relative;
	margin: 0 0 10px;
	padding: 8px 26px 8px 5px;
	cursor: pointer;
	transition: 0.3s;
	color: var(--blue);
	border: 2px solid var(--blue);
}
dl.acc dt.acc-ttl > div {
	font-size: 92%;
	margin-top: 5px;
}
dl.acc dt.acc-ttl > span {
	font-size: 84%;
	display: block;
	margin-top: 5px;
}
dl.acc dt.acc-ttl:after {
	font-family: var(--FA6);
	font-size: 1.2em;
	font-weight: 900;
	position: absolute;
	top: 50%;
	right: 3px;
	content: "\f13a";
	transition: 0.2s;
	transform: translateY(-50%);
}
dl.acc dt.acc-ttl.selected:after {
	transform: translateY(-50%) rotateX(180deg);
}
dl.acc dd.acc-txt {
	display: none;
	padding: 10px 0 30px;
}

/*==============================================
 pagetop
==============================================*/
.pagetop {
	position: fixed;
	right: 6px;
	bottom: 6px;
	display: none;
	border: 1px solid var(--white);
}
.pagetop a {
	font-size: 0;
	line-height: 40px;
	display: block;
	width: 40px;
	height: 40px;
	text-align: center;
	background-color: #0a3fa5;
}
.pagetop a i {
	font-size: 25px;
	line-height: 40px;
	color: var(--white);
}

/*==============================================
 Width
==============================================*/
.WAuto {
	width: auto;
}
.W10 {
	width: 10%;
}
.W15 {
	width: 15%;
}
.W20 {
	width: 20%;
}
.W25 {
	width: 25%;
}
.W30 {
	width: 30%;
}
.W35 {
	width: 35%;
}
.W40 {
	width: 40%;
}
.W45 {
	width: 45%;
}
.W50 {
	width: 50%;
}
.W55 {
	width: 55%;
}
.W60 {
	width: 60%;
}
.W65 {
	width: 65%;
}
.W70 {
	width: 70%;
}
.W75 {
	width: 75%;
}
.W80 {
	width: 80%;
}
.W85 {
	width: 85%;
}
.W90 {
	width: 90%;
}
.W95 {
	width: 95%;
}
.W100 {
	width: 100%;
}

/*==============================================
 Margin
==============================================*/
.M0 {
	margin: 0 !important;
}
.Mauto {
	margin: auto !important;
}
.M0a {
	margin: 0 auto !important;
}
.MT0 {
	margin-top: 0 !important;
}
.MT05 {
	margin-top: 5px !important;
}
.MT10 {
	margin-top: 10px !important;
}
.MT15 {
	margin-top: 15px !important;
}
.MT20 {
	margin-top: 20px !important;
}
.MT25 {
	margin-top: 25px !important;
}
.MT30 {
	margin-top: 30px !important;
}
.MT35 {
	margin-top: 35px !important;
}
.MT40 {
	margin-top: 40px !important;
}
.MT45 {
	margin-top: 45px !important;
}
.MT50 {
	margin-top: 50px !important;
}
.MT55 {
	margin-top: 55px !important;
}
.MT60 {
	margin-top: 60px !important;
}
.MR05 {
	margin-right: 5px !important;
}
.MR10 {
	margin-right: 10px !important;
}
.MR15 {
	margin-right: 15px !important;
}
.MR20 {
	margin-right: 20px !important;
}
.MR25 {
	margin-right: 25px !important;
}
.MR30 {
	margin-right: 30px !important;
}
.MB0 {
	margin-bottom: 0 !important;
}
.MB05 {
	margin-bottom: 5px !important;
}
.MB10 {
	margin-bottom: 10px !important;
}
.MB15 {
	margin-bottom: 15px !important;
}
.MB20 {
	margin-bottom: 20px !important;
}
.MB25 {
	margin-bottom: 25px !important;
}
.MB30 {
	margin-bottom: 30px !important;
}
.MB35 {
	margin-bottom: 35px !important;
}
.MB40 {
	margin-bottom: 40px !important;
}
.MB45 {
	margin-bottom: 45px !important;
}
.MB50 {
	margin-bottom: 50px !important;
}
.MB55 {
	margin-bottom: 55px !important;
}
.MB60 {
	margin-bottom: 60px !important;
}
.ML05 {
	margin-left: 5px !important;
}
.ML10 {
	margin-left: 10px !important;
}
.ML15 {
	margin-left: 15px !important;
}
.ML20 {
	margin-left: 20px !important;
}
.ML25 {
	margin-left: 25px !important;
}
.ML30 {
	margin-left: 30px !important;
}
.ML40 {
	margin-left: 40px !important;
}
.ML50 {
	margin-left: 50px !important;
}
.ML1em {
	margin-left: 1em !important;
}

/*==============================================
 text-align
==============================================*/
.taL {
	text-align: left !important;
}
.taR {
	text-align: right !important;
}
.taC {
	text-align: center !important;
}
.vaT {
	vertical-align: top !important;
}
.vaM {
	vertical-align: middle !important;
}
.vaB {
	vertical-align: bottom !important;
}

/*==============================================
 font-size
==============================================*/
.fsxxxs {
	font-size: 0.7em;
}
.fsxxs {
	font-size: 0.8em;
}
.fsxs {
	font-size: 0.9em;
}
.fsxl {
	font-size: 1.1em;
}
.fsxxl {
	font-size: 1.2em;
}
.fsxxxl {
	font-size: 1.4em;
}
.fsxxxxl {
	font-size: 1.6em;
}

/*==============================================
 float
==============================================*/
.flR {
	float: right;
	margin-left: 15px;
}
.flL {
	float: left;
	margin-right: 15px;
}
.flN {
	float: none;
}
.clearfix:after {
	display: block;
	clear: both;
	content: "";
}

/*==============================================
 字下げ
==============================================*/
.TI1 {
	padding-left: 1em;
	text-indent: -1em;
}
.TI2 {
	padding-left: 2em;
	text-indent: -2em;
}

/*==============================================
 メディアクエリ
==============================================*/
@media screen and (max-width: 520px) {
	body {
		font-size: 1em;
	}
	.btn-link {
		width: 100%;
		margin: 0;
	}
}

/*==============================================
 ページトップ
==============================================*/
#pagetop {
	position: fixed;
	z-index: 50;
	right: 1em;
	bottom: 1em;
	display: none;
	width: 40px;
	height: 40px;
	transition: all ease 300ms;
	opacity: 0;
	border-radius: 5px;
	background-color: #043491;
}

#pagetop::after {
	font-size: 24px;
	position: absolute;
	top: 50%;
	left: 50%;
	content: "▲";
	transform: translate(-50%, -50%);
	color: #fff;
}
