@charset "utf-8";

/* ================================================================================


reset


*  ================================================================================ */

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

html {
	line-height: 1;
}

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

blockquote, q {
	quotes:none;
}

blockquote::before, blockquote::after, q::before, q::after {
	content:'';
	content:none;
}

ol, ul {
	list-style: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

caption, th, td {
	font-weight: normal;
	text-align: left;
	vertical-align: middle;
}

a {
	background: transparent;
	font-size: 100%;
	margin: 0;
	padding: 0;
	text-decoration: none;
	vertical-align: baseline;
}

a:visited {
	text-decoration: none;
}

a:hover {
	text-decoration: none;
}

a:active {
	text-decoration: none;
}

input, button, textarea, select {
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

button {
	appearance: none;
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
}

*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* ================================================================================


html & body


*  ================================================================================ */

html {
	color: #000;
	font-size: 62.5%;
	font-weight: 400;
	font-family: 'Noto Sans JP', sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body img {
	width: 100%;
	height: auto;
	vertical-align: top;
}

/* ================================================================================


wrap


*  ================================================================================ */

.wrap {
	overflow: hidden;
	position: relative;
	width: 100%;
}

/* ================================================================================


header header-inn


*  ================================================================================ */

.header {
	margin: 0 auto;
	overflow: hidden;
	padding-top: 80px;
	position: relative;
	width: 100vw;
	z-index: 1000;
}

@media screen and (max-width: 960px) {
	.header {
		background-color: #fff;
		height: 72px;
		position: fixed;
			top: 0;
			left: 0;
		padding-top: 0;
	}
}

.header #header-inn {
	display: flex;
	align-items: center;
	height: 72px;
	margin: 0 auto;
	width: 96%;
	max-width: 1200px;
}

.header #header-inn.fixed {
  position: fixed;
    top: 0;
    left: 50%;
	transform: translateX(-50%);
}

@media screen and (max-width: 960px) {
	.header #header-inn {
		justify-content: space-between;
		width: 92%;
		max-width: 92%;
	}
}

/* ============================================================

inn-logo

*  ============================================================ */

.header #header-inn .inn-logo {
	width: 240px;
}

@media screen and (max-width: 960px) {
	.header #header-inn .inn-logo {
		width: clamp(64px, 40vw, 160px);
	}
}

/* ============================================================

inn-menu

*  ============================================================ */



/* ------------------------------------------
right-menu
*  ------------------------------------------ */

.header #header-inn .inn-right #right-menu {
	display: flex;
	align-items: center;
	position: relative;
}

/* drawer-unshown -------------- */

.header #header-inn .inn-right #right-menu .drawer-unshown {
	display: none;
}

/* drawer-open -------------- */

.header #header-inn .inn-right #right-menu #drawer-open {
	display: none;
}

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-open {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 44px;
		width: 44px;
	}
	.header #header-inn .inn-right #right-menu #drawer-open .drawer-icon {
		width: 24px;
	}
}

/* drawer-close -------------- */

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-close {
		background-color: #000;
		display: none;
		height: 100%;
		opacity: 0;
		position: fixed;
			top: 0;
			right: 0;
		transition: .3s ease-in-out;
		width: 100%;
	}
}

/* drawer-menu -------------- */

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-menu {
		background-color: #1e4388;
		height: 100%;
		overflow: auto;
		padding: 4%;
		position: fixed;
			top: 0;
			right: 0;
		transition: .3s ease-in-out;
		transform: translateX(110%);
		width: clamp(160px, 64vw, 360px);
	}
}

.header #header-inn .inn-right #right-menu #drawer-menu .close-btn {
	display: none;
}

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-menu .close-btn {
		display: flex;
		justify-content: center;
		align-items: center;
		cursor: pointer;
		height: 48px;
		position: absolute;
			top: 6vw;
			right: 8vw;
		width: 48px;
	}
	.header #header-inn .inn-right #right-menu #drawer-menu .close-btn .close-icon {
		width: 24px;
	}
}

/* -------------------------- */

.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list {
	display: flex;
	align-items: center;
	background-color: rgba( 255, 255, 255, 0.4);
	padding: 20px;
}

.header #header-inn.fixed .inn-right #right-menu #drawer-menu ul.menu-list {
	background-color: rgba( 255, 255, 255, 0);
}

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list {
		flex-wrap: wrap;
		background-color: rgba( 255, 255, 255, 0);
		margin: 120px auto 0;
		padding: 0;
		width: 100%;
	}
}

.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li {
	margin-left: 20px;
	position: relative;
}

.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li a {
	display: flex;
	align-items: center;
	color: #000;
	font-size: 1.4rem;
	position: relative;
	-webkit-transition: -webkit-transform 0.3s;
	transition: all 0.3s;
}

.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li a::before {
	content: '';
	border-top: 1px solid #1058a4;
	margin-right: 5px;
	width: 5px;
}

.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li a:hover {
	opacity: 0.5;
}

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li {
		border-bottom: .5px solid #ccc;
		margin: 0 auto;
		width: 88%;
	}
	.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li:first-of-type {
		border-top: .5px solid #ccc;
	}
	.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li a {
		color: #fff;
		display: block;
		font-size: clamp(16px, 2.4vw, 18px);
		letter-spacing: 0.04rem;
		padding-bottom:  clamp(12px, 4.8vw, 24px);
		padding-left: 24px;
		padding-right: 0;
		padding-top: clamp(12px, 4.8vw, 24px);
		position: relative;
	}
	.header #header-inn .inn-right #right-menu #drawer-menu ul.menu-list li a::before {
		content: '';
		background-image: url(../img/common/menu-arrow.svg);
		background-position: top center;
		background-repeat: no-repeat;
		background-size: cover;
		border-top: none;
		display: block;
		height: 8px;
		margin-right: 0;
		margin-top: -2px;
		position: absolute;
			top: 50%;
			left: 8px;
		width: 8px;
	}
}

/* ------------------------------------------
move the drawer
*  ------------------------------------------ */

@media screen and (max-width: 600px) {
	.header #header-inn .inn-right #right-menu #drawer-input:checked ~ #drawer-close {
		display: block;
		opacity: 0.5;
	}
	.header #header-inn .inn-right #right-menu #drawer-input:checked ~ #drawer-menu {
		box-shadow: 6px 0 24px rgba(0, 0, 0, 0.16);
		transform: translateX(0%);
	}
}

/* ================================================================================


footer


*  ================================================================================ */

.footer {
	width: 100vw;
}

/* ============================================================

footer-conts

*  ============================================================ */

.footer .footer-conts {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 100px auto;
	width: 96%;
	max-width: 1200px;
}

@media screen and (max-width: 960px) {
	.footer .footer-conts {
		margin: 80px auto;
		width: 88%;
		max-width: 560px;
	}
}

@media screen and (max-width: 480px) {
	.footer .footer-conts {
		flex-wrap: wrap;
		margin: 80px auto 30px;
	}
}

/* ------------------------------------------------------------
conts-left
*  ------------------------------------------------------------ */

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-left {
		width: 100%
	}
}

/* ----------------------------------------
h2.left-ttl
*  ---------------------------------------- */

.footer .footer-conts .conts-left h2.left-ttl {
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 2;
}

@media screen and (max-width: 960px) {
	.footer .footer-conts .conts-left h2.left-ttl {
		font-size: 1.8rem;
		line-height: 1.8;
	}
}

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-left h2.left-ttl {
		font-size: 5.6vw;
		text-align: center;
	}
}

/* ----------------------------------------
p.left-txt
*  ---------------------------------------- */

.footer .footer-conts .conts-left p.left-txt {
	font-size: 1.3rem;
	margin-top: 40px;
}

@media screen and (max-width: 960px) {
	.footer .footer-conts .conts-left p.left-txt {
		font-size: 1.1rem;
		margin-top: 20px;
	}
}

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-left p.left-txt {
		font-size: 3.2vw;
		text-align: center;
	}
}

/* ------------------------------------------------------------
conts-right
*  ------------------------------------------------------------ */

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-right {
		margin-top: 30px;
		width: 100%
	}
}

/* ----------------------------------------
ul.right-btn
*  ---------------------------------------- */

.footer .footer-conts .conts-right ul.right-btn {
	display: flex;
	align-items: center;
}

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-right ul.right-btn {
		justify-content: center;
	}
}

.footer .footer-conts .conts-right ul.right-btn li a {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	font-size: 1.5rem;
	height: 136px;
	position: relative;
	-webkit-transition: -webkit-transform 0.3s;
	transition: all 0.3s;
	width: 150px;
}

.footer .footer-conts .conts-right ul.right-btn li a.brn {
	background-color: #f1eadd;
	color: #1a1a1a;
}

.footer .footer-conts .conts-right ul.right-btn li a.brn::after {
	content: '';
	background: url("../img/home/btn-arw-bl.svg") no-repeat;
	background-size: contain;
	height: 5px;
  position: absolute;
    bottom: 20px;
    right: 16px;
	width: 16px;
}

.footer .footer-conts .conts-right ul.right-btn li a.blu {
	background-color: #1e4388;
	color: #fff;
}

.footer .footer-conts .conts-right ul.right-btn li a.blu::after {
	content: '';
	background: url("../img/home/btn-arw-wht.svg") no-repeat;
	background-size: contain;
	height: 5px;
  position: absolute;
    bottom: 20px;
    right: 16px;
	width: 16px;
}

.footer .footer-conts .conts-right ul.right-btn li a:hover {
	opacity: 0.5;
}

@media screen and (max-width: 960px) {
	.footer .footer-conts .conts-right ul.right-btn li a {
		height: 96px;
		font-size: 1.3rem;
		width: 128px;
	}
}

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-right ul.right-btn li a {
		width: 40vw;
	}
}

/* ----------------------------------------
p.right-comp
*  ---------------------------------------- */

.footer .footer-conts .conts-right p.right-comp {
	margin-top: 40px;
	text-align: right;
}

.footer .footer-conts .conts-right p.right-comp a {
	color: #000;
	font-size: 1.3rem;
}

@media screen and (max-width: 960px) {
	.footer .footer-conts .conts-right p.right-comp {
		margin-top: 20px;
	}
	.footer .footer-conts .conts-right p.right-comp a {
		font-size: 1.1rem;
	}
}

@media screen and (max-width: 480px) {
	.footer .footer-conts .conts-right p.right-comp {
		margin-top: 100px;
	}
	.footer .footer-conts .conts-right p.right-comp a {
		font-size: 3vw;
		text-align: center;
	}
}

/* ============================================================

footer-copyright

*  ============================================================ */

.footer .footer-copyright {
	background-color: #1e4388;
	padding-bottom: 20px;
	padding-top: 20px;
	width: 100%;
}

/* ------------------------------------------------------------
p.copyright
*  ------------------------------------------------------------ */

.footer .footer-copyright p.copyright {
	color: #fff;
	font-size: 1.3rem;
	text-align: center;
}

@media screen and (max-width: 480px) {
	.footer .footer-copyright p.copyright {
		font-size: 3.2vw;
	}
}

/* ============================================================

backtotop

*  ============================================================ */

#backtotop {
	position: relative;
	z-index: 100;
}

#backtotop-inn {
	position: fixed;
	bottom: 40px;
	right: 16px;
	width: 40px;
}

#backtotop-inn a:hover {
	transition: all .5s;
}

/* ================================================================================


only


*  ================================================================================ */

.pc-only {
	display: block;
}

br.pc-only, a.pc-only, span.pc-only {
	display: inline;
}

@media screen and (max-width: 960px) {
.pc-only {
		display: none;
	}
	br.pc-only, a.pc-only, span.pc-only {
		display: none;
	}
}

.sp-only {
	display: none;
}

br.sp-only, a.sp-only, span.sp-only {
	display: none;
}

@media screen and (max-width: 960px) {
	.sp-only {
		display: block;
	}
	br.sp-only, a.sp-only, span.sp-only {
		display: inline;
	}
}

.sp-sml-only {
	display: none;
}

br.sp-sml-only, a.sp-sml-only, span.sp-sml-only {
	display: none;
}

@media screen and (max-width: 480px) {
	.sp-sml-only {
		display: block;
	}
	br.sp-sml-only, a.sp-sml-only, span.sp-sml-only {
		display: inline;
	}
}
