@charset "utf-8";
@import url("reset.css");
@import url('https://fonts.googleapis.com/css2?family=Lusitana:wght@400;700&family=Zen+Kaku+Gothic+New&display=swap');
:root {
	--colorBlue1: #3d98da;
	--colorBlue2: #294C7A;
	--colorBlue3: #e4ecf5;
	--colorBlack1: #1A1A1A;
	--colorRed1: #C81C1C;
	--maxWidthPC: 1200px;
	--transition-duration: 0.3s;
	--transition-easing: ease-in-out;
	--link_btn_arrow_r: calc(40px + 1rem);
}


/* Common
---------------------------------------------------------- */
html{
	font-size: calc(1.05rem + ((1.2vw - 10px) * 0.0853));
}
@media screen and (max-width: 768px) and (orientation:portrait) {
	html{
		font-size: 30px;
	}
}

body {
	margin: 0;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0;
	color: var(--mainColor);
	overflow-x: hidden;
	background-color: #f8f7f6;
}

main{
	width: 100%;
	max-width: 1100px;
	margin: auto;
	padding: 0 min(15vw, 10px);
}

section{
	width: 100%;
	height: 100%;
	margin: min(15vw, 30px) 0;
	padding: 0;
	background-color: #FFF;
	border-radius: 20px;
	box-shadow: 0 0 20px 1px rgba(0, 0, 0, 0.05);
}

section.pu{ text-align: center;}
section.pu p{
	font-size: 1.2rem;
	font-weight: 700;
}
section.pu.theme p{
	color: #164b88;
	font-size: 1.4rem;
}

.sec_inner{
	padding: max(4vw, 20px);
	padding-top: max(2vw, 10px);
}

.link_btn{
	padding: 5px 2rem;
	background-color: var(--colorBlue1);
	border-radius: 3rem;
	color: #fff;
}


/* Usually
---------------------------------------------------------- */

/* Flex */
.flexbox {
	display: -webkit-box;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: justify;
	justify-content: space-between;
	flex-wrap: wrap;
}

/* a img input */
a,a img,input[type="button"],button,
input[type="submit"],
input[type="reset"],
input[type="image"]{
	transition: 0.2s ease-out;
}

input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="image"]:hover{
	filter:alpha(opacity=50);
	opacity: 0.5;
}

a{
	color: var(--mainColor);
	text-decoration: underline;
}
a:hover{
	color: var(--subColor);
	text-decoration: none;
}

/* Img */
img{
	max-width: 100%;
	height: auto;
}
svg, object { fill: currentColor;}

/* Text */
h3{
	margin: 0;
	padding: 25px 20px;
	background-color: var(--colorBlue3);
	border-radius: 20px 20px 0 0;
	color: var(--colorBlue2);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}
section h3:first-child{ margin-top: 0;}

h4{
	position: relative;
	margin: 40px 0 20px;
	padding: 0 0 0 1.8rem;
	font-size: 1.3rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--colorBlue2);
}
h4::before{
	content: '■';
	position: absolute;
	top: 0;
	left: 0;
	color: var(--colorBlue2);
	font-size: 1.3rem;
}

h5{
	margin: 30px 0 20px;
	font-size: 1.2rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--colorBlue2);
}

p,ul,ol,table,dl{
	font-size: 1rem;
	line-height: 2.0;
}

p,ul,ol,dl{
	margin: 30px 0;
	padding-inline-start: 0;
}

ol {
	list-style: none;
	counter-reset: number;
}

ul li > ol,ul li > ul,
ol li > ul{ margin: 20px 0;}

ul > li{
	margin: 10px 0 10px 30px;
	list-style: disc;
}

ol > li {
	position: relative;
	padding-left: 40px;
	margin: 10px 0;
}
ol > li::before {
	counter-increment: number;
	content: '（' counter(number) '）';
	position: absolute;
	left: 0;
}

/* Dl */
dt{
	font-size: 1.1rem;
	font-weight: 700;
}
dd{ margin: 10px 0 10px 1.2rem;}

figcaption{ font-size: 0.9rem;}

.btn{
	margin: 40px auto;
	text-align: center;
}
.btn a{
	display: inline-block;
	margin: 0 2px;
	padding: 10px 3rem;
	border-radius: 3rem;
	font-size: 1rem;
	background-color: var(--colorBlue1);
	color: #fff;
	text-decoration: none;
}
.btn a.xlsx{ background-color: #185a18;}
.btn a.pdf{ background-color: #aa1d13;}

.back a{ background-color: #444f5e;}

.btn a:hover{ background-color: var(--colorBlue2);}

.pc{ display: block;}
.sp{ display: none;}

@media screen and (max-width: 768px) and (orientation:portrait) {
	html {
		font-size: 16px;
	}
	.inner{
		width: 100%;
		padding: 0 15px;
	}
	h3{
		margin: 30px 0 20px;
		font-size: 1.4rem;
	}
	h4{
		margin: 20px 0 15px;
		font-size: 1.4rem;
	}
	p,ul,ol,tl{ margin: 15px 0;}
	table th,table td{ padding: 15px 10px;}
	table th{ white-space: nowrap;}
	.btn{ margin: 20px auto;}
	.btn a{ margin: 5px 0;}
	.pc{ display: none;}
	.sp{ display: block;}
}


/* header
---------------------------------------------------------- */
header{
	background-color: #fff;
	text-align: center;
	line-height: 1;
}

header .logo{ padding: 20px;}
header .logo img{
	width: 140px;
}


/* footer
---------------------------------------------------------- */
footer{ text-align: center;}
footer p{ font-size: 0.8rem;}

footer > .btn{ margin: 20px auto;}


/* index
---------------------------------------------------------- */
.mv{ line-height: 0;}
.mv img{ width: 100%;}

.mv h1{ margin: 0;}

.intro{
	margin-top: 0;
	border-radius: 0 0 20px 20px;
}

.com_box{
	margin: 40px 0 0 0;
	-webkit-box-align: stretch;
	align-items: stretch;
}

.com_img{
	width: 320px;
	text-align: center;
}
.com_img img{ width: 100%;}

.com_txt{
	width: calc(100% - 360px);
	margin: 0;
}
.com_txt dt{ color: var(--colorBlue2);}
.com_txt dd{ margin: 10px 0 0 0;}

.add{
	padding: 20px;
	background-color: #edf2f8;
	border-radius: 20px;
	text-align: center;
}
.add h5{ margin-top: 20px;}

@media screen and (max-width: 768px) and (orientation:portrait) {
	.com_box{ margin: 20px 0 0 0;}
	.com_img,
	.com_txt{
		width: 100%;
		margin: 15px 0;
	}
}


/* kiyaku
---------------------------------------------------------- */
header.kiyaku h1{
	margin: 0;
	padding: 30px 20px;
	font-size: 1.6rem;
	background-color: var(--colorBlue1);
	color: #fff;
	line-height: 1.4;
	letter-spacing: 5px;
}
header.kiyaku h1 span{
	display: block;
	margin-bottom: 5px;
	font-size: 1.1rem;
	font-weight: 500;
	letter-spacing: 0;
}