@charset "UTF-8";
/* CSS Document */

/*-----------------------------------------------------
Reset
----------------------------------------------------- */
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin:0; padding:0; border:0; font-size:100%; font:inherit; vertical-align:baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display:block;
}

ol, ul { list-style:none; line-height:1; }

* { margin:0; padding:0; }
img { max-width:100%; width:100%; height:auto; vertical-align:top; image-rendering:-webkit-optimize-contrast; }

* { min-height:0; min-width:0; }

button { margin:0; padding:0; outline:0; border:0; border-radius:0; color:inherit; vertical-align:middle; text-align:inherit; font: inherit; -webkit-appearance:none; appearance:none; }

/*-----------------------------------------------------
Reset end
----------------------------------------------------- */
html{
	font-size: min(16px, calc(1vw * 16 / 6));
}

body{
	color:#333;
	font-family:"Noto Sans JP", sans-serif;
	font-optical-sizing:auto;
	background-color:#0c2b4e;
	/*
	background-image: url("../images/common/bg.jpg");
	background-attachment: fixed;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	*/
}

/*-----------------------------------------------------
header
----------------------------------------------------- */
header{ position:fixed; width:100%; background:#fff;color:#333; overflow-x:hidden; z-index:1000; left:0; top:0; height:80px; font-weight:700; }
header .header_inner { display: flex; height: 100%; justify-content: space-between; align-items: center; margin: 0 40px; }
header h1 { width:252px; margin-top:2px; position:relative; z-index:1000; }
header .nav_btn { display:none; z-index:1000; }

header .sp_headermenu{
display: none;
position: fixed; left: 0; top:0; z-index:999;
width:0; height:0;
}
header .sp_headermenu .white{
	background:#fff; padding-top:100px;	width:100%;
	height:100vh;
	/* height:calc(100vh - 180px); */
	min-height: 500px;
	display: none;
}
header .sp_headermenu .nav_ttl{ margin-bottom:50px; }
header .sp_headermenu .nav_ttl span{ display:block; border:2px solid #003461; background:#fff; text-align:center; font-size:18px; width:210px; padding:5px 10px; box-sizing:border-box; color:#003461; margin:0 auto; letter-spacing:.05em; }
header .sp_headermenu .nav_ttl p{ font-size:17px; font-weight:500; line-height:30px; text-align:center; color:#003461; }
header .sp_headermenu .nav_ttl p.ttl{ font-size:28px; font-weight:900; letter-spacing:.05em; margin:20px 0 15px; }
header .sp_headermenu nav ul{
	width:min(480px,calc(1vw * 480 / 6));
	margin:0 auto;
	gap:0.625rem;
	display:flex;
	flex-wrap:wrap;
	justify-content: space-between;
}
header .sp_headermenu nav ul.btn1 li{margin: auto;}
header .sp_headermenu nav li{
	width:min(230px,calc(1vw * 230 / 6));
	display: flex;
	align-items: center;
}
header .sp_headermenu nav li a{
	position:relative;
	padding:0.75em 2em 0.75em 1.25em;
	background:#003461; color:#fff;
	font-size:1.25rem;
	line-height: 1.25em;
	text-decoration:none;
	border-radius: 4em;
	width:100%;
	height:100%;
	box-sizing:border-box;
	display: flex;
	align-items: center;
}
header .sp_headermenu nav li a::after{
content:''; display: inline-block; background: url(../images/common/arrow.svg) no-repeat;
width: 8px; height: 12px; position: absolute; right: 15px; top: 0; bottom:0; margin: auto; }
header .sp_headermenu nav li a span{margin-left: -0.5em;}

@media only screen and (max-width: 1250px) {
    header .nav_btn{ display: block; top: 20px; right: 20px; width: 48px; height: 48px; cursor: pointer; background: #003461; }
    header .btn-line {  display: block; position: relative; width: 60%; height: 2px; right: 0; left:0; margin: 0 auto; background: #fff; transition: .2s;}
    header .btn-line::before ,header .btn-line::after{  content: ""; position: absolute; width: 75%; height: 100%; background: #fff; transition: .3s; border-radius: 5px; }
    header .btn-line::before { transform:translateY(-9px); right:0; width:100%; }
    header .btn-line::after { transform:translateY(9px); right:0; width:100%; }
    header button.open span{ background:transparent; }
    header button.open span::before{ content:""; transform:rotate(45deg); }
    header button.open span::after{ content:""; transform:rotate(-45deg); }
		header .sp_headermenu{
			width:100%;
			height:100vh;
			background:rgba(0,52,101,0.6);
		}
		header .sp_headermenu .white{display: block;}
}
@media only screen and (orientation: landscape) and (max-width: 768px) {
    header{ height:48px; }
    header .header_inner{ margin:0 10px 0 20px; }
		header img[src*="logo."]{
			background-color: #FFF;
			box-shadow: 0 0 0 5px #FFF;
		}
		header .sp_headermenu{overflow: auto;}
		header .sp_headermenu .white{padding-top: 60px;}
}
@media only screen and (max-width: 768px) {
    header { width:100%; }
}


/*-----------------------------------------------------
main
----------------------------------------------------- */
.ai_lp .container { max-width:1200px; margin:0 auto; width:100%; display:flex; justify-content: space-between; position:relative; }
.ai_lp .main_wrapper { color:#333; padding-top:80px; height:100%; width:100%; overflow-x:hidden;}
.ai_lp .main_wrapper::before { content: ""; position:fixed; z-index:-1; top:0; left:50%; background-repeat:no-repeat; background-position:center top; transform:translateX(-50%); background-size:cover; width:100%; height:100vh;}

#pagetop { width:50px; height:50px; background: #fff; border-radius:50px; display: flex; bottom:15px; right:15px; justify-content: center; align-items: center; position:fixed; text-decoration: none; transition: all .3s; cursor: pointer; opacity:0; visibility:hidden; z-index: 1001;}
#pagetop.fadebtn{ opacity:1; visibility:visible; }
#pagetop:hover{ background:#003461; }

#pagetop::after { content:url("../images/common/arrow_top.svg"); width: 20px; margin-top: -2px; transition: all .3s; }
#pagetop:hover::after{ content:url("../images/common/arrow_top_white.svg"); }

.ai_lp .nav_wrap{ display:none; }
.ai_lp .nav_box{ display: none; font-weight: 700; }
.ai_lp .main_column { width: 100%; max-width: 600px; overflow: hidden; background: #fff; }
.ai_lp .main_column .container { padding: 0 30rem !important; display: block; }
.ai_lp .main_column > div{ padding-top: 80px; margin-top: -80px; text-align: center; }
.ai_lp .main_column > div .sp_kv{ display:none; }
/*カレンダーサイズ調整*/
.ai_lp .main_column .kc-calendar{ width:90%; margin:0 auto; }
.ai_lp .main_column .kc-calendar iframe{ width:100%; }
/*右カラムボタン用*/
.ai_lp .main_column > div .btn{ width:90%; margin:0 auto; display:block; }

.reserve-ttl_wrap { text-align: center; margin-bottom: 20px; }
.reserve-ttl_wrap span{
	display: inline-block;
	border:none;
	/* border: 2px solid #0e113a; */
	background: #fff;
	font-size: 18px;
	padding: 5px 10px;
	box-sizing: border-box;
	color: #0e113a;/* 青 */
	/* color: #971F21; 赤 */
	margin-bottom: 5px;
	letter-spacing: .05em;
}
.reserve-ttl_wrap p.ttl {
	font-size: 28px;
	font-weight: 900;
	/* color:#003461; 青 */
	color:#FFF;/*  白 */
	/* color:#221A17; 黒 */
	letter-spacing: .05em;
}

ul.reserve_links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 5px; }
ul.reserve_links::after { content: ""; display: block;height: 0; }
ul.reserve_links.btn1::after{display: none;}
ul.reserve_links li{
	background-color: #FFF;/* 白 */
	/* background: #003461; 青 */
	/* background: #971F21; 赤 */
	border-radius: 4em;
	position: relative;	
	transition: .5s;
	display: flex;
	align-items: center;
}
ul.reserve_links li,
ul.reserve_links::after{width: 176px;}
ul.reserve_links.btn1 li{margin: auto;}
/* ul.reserve_links li:nth-child(n+4){margin-top: 3px;} */
ul.reserve_links li:hover { opacity: .5; }
ul.reserve_links li:after {
	content: '';
	display: inline-block;
	background: url("../images/common/arrow-blue.svg") no-repeat;
	width: 8px; height: 12px; position: absolute; right: 15px; top: 0; bottom:0; margin: auto;
}
ul.reserve_links li a{
	padding: 14px 15px;
	/* color: #fff; 白 */
	color: #0c2b4e;/* 濃青 */
	font-size: 16px;
	line-height: 16px;
	text-decoration: none;
	box-sizing: border-box;
	width:100%;
	height:100%;
	display: flex;
	align-items: center;
}
ul.reserve_links li a span{margin-left: -0.5em;}

@media screen and (min-width: 1441px) {
    .ai_lp .nav_box{ left:calc((100% - 1330px) / 2); }
}

@media only screen and (min-width: 1251px) {
    .ai_lp .nav_wrap { display:block; width:calc(100% - 600px); }
    .ai_lp .nav_box{ display:block; position:fixed; left:calc((100% - 600px - 600px) / 2); height:calc(100vh - 140px); width:550px; top:0; padding-top:140px; }
    .ai_lp h2{ margin:0 auto 30px; }
}

/*
@media screen and (min-width: 1251px) and (max-width: 1440px) {
    .ai_lp .container{ max-width:1440px; }
}
*/

@media only screen and (max-width: 1250px) {
    .ai_lp .container{ max-width:inherit; margin: 0; }
    .ai_lp .header_inner{ margin:0 5%; }
    .ai_lp .main_wrapper::before { top:0; height:100vh; }
    .ai_lp .main_column { width:600px; margin:0 auto; }
    .ai_lp .main_column div .sp_kv{ display:block; }
		.ai_lp .main_column div .pc_kv{ display:none; }
}

/*縦長かつ768px以下*/
@media only screen and (orientation: landscape) and (max-width: 768px) {
    .ai_lp h1 { width:90px; margin-top: 1px; }
}

@media only screen and (orientation: landscape) and (max-width: 768px) {
    .ai_lp .main_wrapper { padding-top:44px; }
}

@media only screen and (max-width: 768px) {
    .ai_lp .container { padding:0 !important; }
    .ai_lp .main_wrapper { background-image:none; }
    .ai_lp .main_wrapper::before { display:none; }
    .ai_lp .main_column { width:100%; }
}


/* 高さ868px以下 */
@media screen and (max-height:868px){
	.ai_lp h2{ margin:0 auto 15px; }
	.ai_lp .nav_box{ padding-top:120px; }
	ul.reserve_links li a{padding: min(14px,calc(1vh * 28 / 8.68 - 14px)) 15px;
}

/*macbook用↓↓*/
/* @media screen and (width:1440px){ */
@media screen and (min-width:1440px) and (max-height:868px){
		/*
		.ai_lp h2{ margin:0 auto 15px; }
    .ai_lp .nav_box{ padding-top:120px; }
		*/
		/*
    .reserve-ttl_wrap{ font-size: 13px; display: flex; gap: 8px; justify-content: center; align-items: center;}
    .reserve-ttl_wrap p.ttl{ font-size:24px; }
    .reserve-ttl_wrap span{ margin-bottom:0; }
    ul.reserve_links{ gap:6px; justify-content:flex-start; }
    ul.reserve_links li{ width:105px; background:transparent; border-radius:0; }
    ul.reserve_links li a{ font-size:11.5px; line-height:15px; padding:5px 13px 5px 3px; border-bottom:2px solid #fce561; }
    ul.reserve_links li:after{ width: 5px; height:7px; right: 7%; }		
		ul.reserve_links li a span{display: none;}
		ul.reserve_links li:nth-child(n+4){margin-top: 0;}
		*/
}
/*macbook用↑↑*/

/*一部ノートPC用↓↓*/
/* @media screen and (width:1366px) and (height:768px) { */
@media screen and (max-width:1439px) and (max-height:868px) {
    .ai_lp .nav_box{ padding-top:95px; }
    .ai_lp h2{ margin:0 auto 12px; }
		
		/*
    .reserve-ttl_wrap{ font-size:13px; display:flex; gap:8px; justify-content:center; align-items:center; }
    .reserve-ttl_wrap span{ font-size:16px; padding: 8px 10px; margin-bottom:0; }
    .reserve-ttl_wrap p.ttl{ line-height:1; font-size:22px; }
    ul.reserve_links{ gap:8px; }
    ul.reserve_links li a{ font-size:13px; line-height:14px; padding:7px 30px 9px 20px; }		
		ul.reserve_links li, ul.reserve_links::after {max-width: 32%;}
		ul.reserve_links li a span{display: none;}
		ul.reserve_links li:nth-child(n+4){margin-top: 0;}
		*/
}
/*一部ノートPC用↑↑*/