@charset "UTF-8";
/* CSS Document */
@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Oswald:wght@200..700&display=swap');

/*//////////　リセット　//////////*/

*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

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 {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}
body {
    line-height:1;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
    display:block;
}
ul {
    list-style:none;
}
blockquote, q {
    quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}
a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
    text-decoration: none;
}
ins {
    background-color:#fff;
    color:#000;
    text-decoration:none;
}
mark {
    background-color:#fff;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}
del {
    text-decoration: line-through;
}
abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:2px solid #e5e7f2;
    margin:0.5em 0;
    padding:0;
}
input, select {
    vertical-align:middle;
}





/*//////////　共通　//////////*/

html { 
    font-size: 62.5%; 
}

body { 
	font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.6rem; 
	line-height: 1.75;
    color: #000000;
	background-color: #ffffff;
}	

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

a {
	color: #000000;
}

a:hover {
	opacity: 0.5;
	transition: 0.2s;
}

/*//////////　ヘッダー　//////////*/

.header {
	position: fixed;
	top: 0;
    width: 100%;
	z-index: 10;
}

.header__inner {
    display: flex;
    flex-direction: column;
    row-gap: 16px;
    width: 100%;
    /*min-width: 1120px*/
    max-height: 100vh;
    padding: 16px;
    overflow: hidden;
    text-align: center;
    /*background: hsla(0, 0%, 100%, .8);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);*/
	background-color: #ffffff;
    transition: height .3s ease-in-out, background-color .3s;
    box-shadow: 0 0 30px 0 rgba(28, 28, 28, .1);
}

.header--top {
	display: flex;
    align-items: center;
    justify-content: space-between;
}

.header-logo {
	width: auto;
    height: 40px;
	transition: 0.2s;
}

.header-text {
	font-size: 1.8rem;
    font-weight: bold;
}

@media screen and (max-width: 960px) {
	.header__inner {
		flex-direction: row;
		justify-content: space-between;
		padding: 20px;
		min-width: auto;
	}
	
	.header-logo {
		width: min(60vw, 290px);
		height: auto;
	}

	.header-text {
		display: none;	
	}
	
}



/*　ナビ　*/
.nav-button {
  display: none;
}

.nav-wrap .nav li {
	display: flex;
    justify-content: center;
    align-items: center;
}

/*.nav-wrap .nav li + li {
    border-left: 1px solid #dddddd;
}*/

.nav-wrap .nav li a {
    color: #000;
    text-decoration: none;
	display: block;
    position: relative;
}

.nav-wrap .nav li a::after {
	position: absolute;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background: #000000;
	bottom: -1px;
	transform: scale(0, 1);
	transform-origin: center top; 
	transition: transform 0.3s; 
}

.nav-wrap .nav li a:hover {
	opacity: 1;
}

.nav-wrap .nav li a:hover::after {
	transform: scale(1, 1);
}

.nav-wrap .nav-list {
  display: flex;
  height: 35px;
}

.nav-wrap .nav-list__item {
  flex-grow: 1;
}

.nav-wrap.open {
    display: block;
}

.nav-wrap.close {
    display: none;
}

@media screen and (min-width: 961px) {
	
    .nav-wrap {
        display: block!important;
	}
}

@media screen and (max-width: 960px) {
	.nav-wrap .nav-list {
		flex-direction: column;
		padding: 4em 0;
	}	
	
	.nav-wrap .nav li + li {
        border-left: none;
	}
	
    .nav-button {
        display: block;
        cursor: pointer;
    }

	.nav-wrap {
		position: fixed;
		left: 0;
		top: 0;
		display: none;
		z-index: 10;
		background-color: rgba(0, 0, 0, 0.7);
		width: 100%;
		height: 100%;
	}
    .nav-wrap .nav {
		height: 100%;
		position: relative;
		overflow-x: hidden;
		overflow-y: auto;
    }
    .nav-wrap .nav li {
		display: block;
		margin: 1em;
    }
    .nav-wrap .nav li a {
		color: #fff;
		font-size: 1.8rem;
    }

	.nav-wrap .nav li a:hover::after {
		transform: none;
	}


	
	/*　メニューボタン　*/
	.nav-button,
	.nav-button span {
		display: inline-block;
		transition: all 0.4s;
		box-sizing: border-box;
	  }

	  .nav-button {
		z-index: 20;
		position: relative;
		width: 40px;
		height: 36px;
	  }

	  .nav-button span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 4px;
		background-color: #000000;
		border-radius: 4px;
	  }

	  .nav-button span:nth-of-type(1) {
		top: 0;
	  }

	  .nav-button span:nth-of-type(2) {
		top: 16px;
	  }

	  .nav-button span:nth-of-type(3) {
		bottom: 0;
	  }

	  .nav-button.active span {
		background-color: #ffffff;
	  }

	  .nav-button.active span:nth-of-type(1) {
		-webkit-transform: translateY(16px) rotate(-45deg);
		transform: translateY(16px) rotate(-45deg);
	  }

	  .nav-button.active span:nth-of-type(2) {
		opacity: 0;
	  }

	  .nav-button.active span:nth-of-type(3) {
		-webkit-transform: translateY(-16px) rotate(45deg);
		transform: translateY(-16px) rotate(45deg);
	  }
}	





/*//////////　フッター　//////////*/

.footer {
	margin-top: 160px;
	background-color: #dddddd;
}

.footer__inner {
	width: 90%;
	margin: 0 auto;
	padding: 80px 0;
	display: flex;
    justify-content: center;
}

.footer-list {
	display: flex;
    align-items: center;
	flex-wrap: wrap;
	gap: 40px;
}

.footer-list__item {
	width: 300px;
	height: clamp(80px, calc((80 / 375)* 100vw), 120px);
	background-color: #ffffff;
	border-radius: 10px;
	display: flex;
    justify-content: center;
    align-items: center;		
}

.footer-link_img {
	width: auto;
	height: clamp(40px, calc((40 / 375)* 100vw), 70px);
}

.copyright {
	padding: 8px 0;
	background-color: #000000;
}

.copyright p {
	font-size: 1.4rem;
	color: #ffffff;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.footer {
		margin-top: 80px;
	}

	.footer__inner {
		padding: 40px 0;
	}
	
	.footer-list {
		gap: 16px;
	}

	.footer-list__item {
		width: calc((100% - 16px) / 2);
		background-color: #ffffff;
	}

}

















