@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------
	common
	header
	menu
	main
	footer
------------------------------------------------------------------------ */


/* ========================================================================
	common
======================================================================== */
@media print, screen and (min-width:768px){
body{
	min-width:1260px;
	width:100%; /* メニューボタン */
}

.sp{
	display:none;
}

.inner{
	position:relative;
	max-width:1700px;
	width:100%;
	margin:0 auto;
	padding:0 5.2083vw;
}

a img, .fade, .fades a{ transition-duration:0.2s; }
a:hover img, .fade:hover, .fades a:hover{ opacity:0.8; }
.fade:hover img, .fades a:hover img{ opacity:1; }
}

@media screen and (max-width:767px){
body{
	min-width:320px;
}

.pc{
	display:none;
}

.inner{
	position:relative;
	padding:0 20px;
}

iframe{
	width:100%;
}
}


/* ========================================================================
	header
======================================================================== */
header{
	padding:32px 3.125vw;
}

header h1,
header .logo{
	display:inline-block;
	vertical-align:bottom;
}

header h1 a,
header .logo a{
	display:flex;
	align-items:flex-end;
	gap:0 18px;
}

@media screen and (max-width:767px){
header{
	padding:25px 20px;
}

header h1 a,
header .logo a{
	position:relative;
	flex-direction:column;
	align-items:flex-start;
	gap:8px 0;
	z-index:1;
}

header h1 img,
header .logo img{
	width:auto;
	height:18px;
}
header h1 img:first-child,
header .logo img:first-child{
	height:14px;
}
}


/* ========================================================================
	menu
======================================================================== */
#menu .btn{
	display:flex;
	justify-content:center;
	align-items:flex-end;
	position:fixed;
	top:25px;
	right:30px;
	width:132px;
	height:92px;
	padding:0 0 18px 0;
	background:url(../../img/common/icon_menu.png) no-repeat center 37px #313131;
	border-radius:30px;
	color:#ffffff;
	line-height:1;
	cursor:pointer;
	z-index:20;
}

@media screen and (max-width:767px){
#menu .btn{
	top:20px;
	right:20px;
	width:70px;
	height:50px;
	padding:0 0 10px 0;
	background-position:center 18px;
	background-size:22px 4px;
	border-radius:15px;
	font-size:1.2rem;
}
}


/* ----------------------------------------
	menu
---------------------------------------- */
#menu .menu{
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:rgba(255,255,255,0.9);
	z-index:15;
}

#menu .menu ul{
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	gap:20px 0;
	height:100%;
}

#menu .menu ul a{
	display:block;
	font-size:2.4rem;
	font-weight:700;
	line-height:4.4rem;
	letter-spacing:0.1em;
	text-decoration:none;
}

@media screen and (max-width:767px){
#menu .menu ul a{
	font-size:2.0rem;
	line-height:4.0rem;
}
}


/* ========================================================================
	main
======================================================================== */
main{
	position:relative;
	padding:170px 0 0 0;
	background:#edf0f1;
	border-top-left-radius:100px;
	border-top-right-radius:100px;
}

main::before{
	content:"";
	position:absolute;
	top:-94px;
	right:0;
	width:488px;
	height:310px;
	background:url(../../img/common/bg_main.png) no-repeat center;
}

main > .inner{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
}

main p{
	font-weight:500;
}

@media screen and (max-width:767px){
main{
	padding:50px 0 0 0;
	border-top-left-radius:50px;
	border-top-right-radius:50px;
}

main::before{
	top:-90px;
	width:183px;
	height:117px;
	background-size:183px auto;
}

main > .inner{
	display:block;
	padding-bottom:20px;
}
}


/* ----------------------------------------
	sub
---------------------------------------- */
main .sub{
	min-width:300px;
}

@media screen and (max-width:767px){
main .sub{
	min-width:auto;
}

main .sub .logo{
	position:absolute;
	top:0;
	right:20px;
	width:160px;
}
}


/* privacy
---------------------------------------- */
main .sub .privacy .btn{
	position:absolute;
	top:-40px;
	right:calc(5.2083vw + 40px);
}

main .sub .privacy .btn button{
	display:block;
	padding:0 18px 0 0;
	background:url(../../img/common/arrow_02.png) no-repeat right center;
	background-size:6px 10px;
	font-size:1.4rem;
	font-weight:500;
	line-height:1;
	letter-spacing:0.05em;
	text-decoration:none;
}
main .sub .privacy .btn button:hover{ text-decoration:underline; }

@media screen and (max-width:767px){
main .sub .privacy .btn{
	position:static;
	margin:0 0 20px 0;
	text-align:right;
}

main .sub .privacy .btn button{
	display:inline-block;
}
}


/* ---------- modal ---------- */
main .sub .privacy .modal{
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	padding:120px 0;
	background:rgba(0,0,0,0.6);
	z-index:20;
}

main .sub .privacy .modal .box{
	overflow-y:scroll;
	width:920px;
	height:100%;
	margin:0 auto;
	padding:50px 60px 20px;
	background:#ffffff;
	border-radius:20px;
}

main .sub .privacy .modal dl dt{
	font-weight:700;
}

main .sub .privacy .modal dl dd{
	margin:0 0 30px 0;
	font-weight:500;
}

main .sub .privacy .modal .widget_btn{
	margin:0 0 30px 0;
	padding:20px 0 0 0;
}

@media screen and (max-width:767px){
main .sub .privacy .modal{
	padding:100px 20px;
}

main .sub .privacy .modal .box{
	width:100%;
	padding:40px 20px 10px;
}

main .sub .privacy .modal .widget_btn{
	padding:0;
}
}


/* widget_title
---------------------------------------- */
main .sub .widget_title{
	margin:0 0 90px 0;
}

@media screen and (max-width:767px){
main .sub .widget_title{
	position:relative;
	margin:0 0 40px 0;
	z-index:1;
}
}


/* ----------------------------------------
	list
---------------------------------------- */
main .list{
	max-width:1020px;
	width:100%;
	margin:0 0 0 60px;
}

@media screen and (max-width:767px){
main .list{
	max-width:none;
	margin:0;
}
}


/* ----------------------------------------
	 entry
---------------------------------------- */
main .entry .aligncenter{ display:block; margin:0 auto 60px; }
main .entry .alignright{ float:right; margin:0 0 0 40px; }
main .entry .alignleft{ float:left; margin:0 40px 0 0; }

main .entry{
	position:relative;
	max-width:1020px;
	width:100%;
	margin:0 0 60px 60px;
	padding:80px 4.1666vw 40px;
	background:#ffffff;
	border-radius:20px;
}

main .entry a[href$=".xls"],
main .entry a[href$=".xlsx"],
main .entry a[href$=".xlsm"],
main .entry a[href$=".doc"],
main .entry a[href$=".docx"],
main .entry a[href$=".pdf"]{
	display:inline-block;
	position:relative;
	padding:0 0 0 30px;
}

main .entry a[href$=".xls"]::before,
main .entry a[href$=".xlsx"]::before,
main .entry a[href$=".xlsm"]::before,
main .entry a[href$=".doc"]::before,
main .entry a[href$=".docx"]::before,
main .entry a[href$=".pdf"]::before{
	content:"";
	position:absolute;
	top:1px;
	left:0;
	width:20px;
	height:24px;
	background:url(../../img/common/icon_excel.png) no-repeat center;
	background-size:20px 24px
}
main .entry a[href$=".doc"]::before,
main .entry a[href$=".docx"]::before{ background-image:url(../../img/common/icon_word.png); }
main .entry a[href$=".pdf"]::before{ background-image:url(../../img/common/icon_pdf.png); }

main .entry h1{
	margin:0 0 10px 0;
	font-size:3.0rem;
	font-weight:700;
}

main .entry h2{
	margin:0 0 20px 0;
	font-size:2.0rem;
	font-weight:700;
}

main .entry p{
	margin:0 0 60px 0;
	line-height:2;
}

main .entry p.entry-time{
	text-align: right;
	margin:0 0 60px 0;
	line-height:2;
}

main .entry p::after{
	content:"";
	display:block;
	clear:both;
}

main .entry ul{
	list-style-type:disc;
	padding-inline-start:20px;
	margin:0 0 60px 0;
	line-height:2;
}

main .entry ol{
	list-style-type:decimal;
	padding-inline-start:26px;
	margin:0 0 60px 0;
	line-height:2;
}

main .entry table{
	margin:0 0 40px 0;
}

main .entry table th{
	width:200px;
	padding:0 0 20px 0;
	text-align:left;
	vertical-align:top;
	font-weight:700;
	white-space:nowrap;
}

main .entry table td{
	padding:0 0 20px 0;
	font-weight:500;
}

@media screen and (max-width:767px){
main .entry .aligncenter,
main .entry .alignright,
main .entry .alignleft{
	display:block;
	float:none;
	margin:0 auto 40px;
}

main .entry{
	max-width:none;
	margin:0 0 40px 0;
	padding:50px 20px 10px;
}

main .entry h1{
	margin:0 0 10px 0;
	font-size:2.4rem;
}
main .entry p.entry-time{
	text-align: right;
	margin:0 0 40px 0;
	line-height:2;
}

main .entry p,
main .entry ul,
main .entry ol{
	margin:0 0 40px 0;
}

main .entry table{
	margin:0 0 20px 0;
}

main .entry table th{
	display:block;
	width:auto;
	padding:0;
}

main .entry table td{
	display:block;
}
}


/* error
---------------------------------------- */
main .entry .error{
	margin:0 0 60px 0;
}

main .entry .error p{
	margin:0;
}

@media screen and (max-width:767px){
main .entry .error{
	margin:0 0 40px 0;
}
}


/* form
---------------------------------------- */
main .entry .form table{
	margin:0 0 50px 0;
	letter-spacing:0.05em;
}

main .entry .form table th{
	position:relative;
	padding:26px 76px 0 0;
}

main .entry .form table th span{
	position:absolute;
	top:26px;
	right:14px;
	width:48px;
	background:#858585;
	border-radius:5px;
	text-align:center;
	font-size:1.4rem;
	color:#ffffff;
	line-height:2.4rem;
}
main .entry .form table th span.must{ background:#ffa1a1; }

main .entry .form table td{
	padding:0;
}

@media screen and (max-width:767px){
main .entry .form table{
	margin:0 0 20px 0;
}

main .entry .form table th{
	padding:0 62px 0 0;
}

main .entry .form table th span{
	top:0;
	right:0;
}

main .entry .form table td{
	padding:0 0 10px 0;
}
}


/* ========================================================================
	footer
======================================================================== */
footer{
	position:relative;
	padding:40px 0 30px 0;
	background:#edf0f1;
}
#home + footer{ background:none; }

footer::before{
	content:'';
	position:absolute;
	bottom:0;
	left:0;
	width:358px;
	height:310px;
	background:url(../../img/common/bg_footer.png) no-repeat center;
}
#home + footer::before{ content:none; }

footer small{
	display:block;
	position:relative;
	text-align:center;
	font-weight:700;
	line-height:1;
	letter-spacing:0.05em;
}

footer .pagetop{
	display:none;
	position:fixed;
	bottom:0;
	right:0;
	cursor:pointer;
	z-index:10;
}

@media screen and (max-width:767px){
footer{
	padding:20px 0;
}

footer::before{
	width:135px;
	height:117px;
	background-size:135px auto;
}

footer small{
	padding:0 70px 0 20px;
	text-align:left;
	font-size:1.4rem;
	line-height:2.4rem;
}

footer .pagetop img{
	width:59px;
}
}