@charset "UTF-8";
/* ----------------------------
    Reset style
---------------------------- */
html,body,div,span,object,iframe,
h1,h2,h3,h4,h5,h6,p,pre,code,blockquote,
a,em,img,strong,small,sub,sup,b,i,
dl,dt,dd,ol,ul,li,
fieldset,form,label,legend,
table,caption,tbody,tfoot,thead,tr,th,td,
article,aside,canvas,figcaption,figure,
footer,header,main,nav,section {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
}
html {
-webkit-text-size-adjust: 100%;
box-sizing: border-box;
/* scroll-behavior: smooth; スクリプト制御時は無効化推奨 */
}
body {
font-family: "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", "YuGothic", "Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3", "Meiryo", "メイリオ", sans-serif;
font-size: 1rem;
line-height: 1.5;
color: var(--color-font);
background-color: #fff;
}
*, *::before, *::after {
box-sizing: inherit;
}
ul,ol {
list-style: none;
}
a {
text-decoration: none;
color: inherit;
transition: opacity .3s ease;
}
a:hover {
opacity: .8;
}
img, video {
max-width: 100%;
height: auto;
display: block;
}
strong {
font-weight: bold;
}  
em {
font-style: normal;
}
table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
}
input,textarea,select,button {
font: inherit;
color: inherit;
border: none;
border-radius: 0;
background-color: transparent;
box-shadow: none;
}
button,label {
cursor: pointer;
}
/*----------------------------
	base layout
-----------------------------*/
.inner {
    width: min(90%, 1440px);
    margin: 0 auto;
}
/*----------------------------
	header
-----------------------------*/
.header {
	position: sticky;
	top: 0;
	display: flex;
	gap: .625rem;
	align-items: center;
	justify-content: space-between;
	background: #fff;
	padding: .625rem 1.25rem;
	z-index: 1000;
}
.sitetitle {
	font-size: .6875rem;
}
.list--nav {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	font-weight: 500;
}
.menu__outer {
	display: none;
}
.link--contact {
	color: #fff;
	background: var(--color-gradation);
	padding: .375rem 1.25rem .375rem 3.125rem;
	border-radius: 5px;
	display: block;
	position: relative;
}
.link--contact.icon--mail::before {
	width: 1.875rem;
	position: absolute;
	top: 0;
	bottom: 0;
	left: .8125rem;
	margin: auto;
}
.link--contact span {
	display: block;
	font-size: .625rem;
}
/*----------------------------
	totop
-----------------------------*/
.totop {
	background-color: var(--color-accent);
	border-radius: 50%;
	width: 3.75rem;
	height: 3.75rem;
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.totop::before {
	content: "";
	aspect-ratio: 11/7;
	width: 1.5rem;
	height: max-content;
	background: url(../img/icon_arrow_top.svg) center / 100% no-repeat;
	display: block;
	margin-left: 1px;
}
/*----------------------------
	footer
-----------------------------*/
.footer {
	margin-top: 4rem;
}
.footer .inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.25rem;
	border-top: 1px solid var(--color-accent);
	padding: 2rem 0;
}
.footer .sitetitle {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
}
.footer .sitetitle img {
	width: 15.625rem;
}
.footer .sitetitle span {
	font-size: 1rem;
}
.copyright {
	font-size: .75rem;
}
/*----------------------------
	media query
-----------------------------*/
@media screen and (max-width: 1170px){
	.header .sitetitle img {
		width: 16.25rem;
	}
	.sitetitle .pc {
		display: none;
	}
	.nav {
		font-size: .875rem;
	}
}
@media screen and (max-width: 1040px){
	body.is--fixed {
		overflow: hidden;
	}
	/*----------------------------
		header
	-----------------------------*/
	.menu__outer {
		display: block;
		cursor: pointer;
		position: relative;
		width: 2rem;
		height: 27px;
	}
	.menu {
		width: 100%;
		height: 3px;
		background: var(--color-font);
		position: absolute;
		left: 0;
		transition: .3s;
	}
	.menu:nth-child(1) {
		top: 0;
	}
	.menu:nth-child(2) {
		top: 12px;
	}
	.menu:nth-child(3) {
		top: 24px;
	}
	.is--active .menu:nth-child(1) {
		transform: rotate(-45deg);
		top: 12px;
	}
	.is--active .menu:nth-child(2) {
		opacity: 0;
	}
	.is--active .menu:nth-child(3) {
		transform: rotate(45deg);
		top: 12px;
	}
	.nav {
		position: fixed;
		width: 100%;
		top: 4rem;
		left: 0;
		opacity: 0;
		visibility: hidden;
		transition: .3s;
		background: var(--color-base);
		padding: 4rem 1rem;
		height: 100%;
		font-size: 1rem;
	}
	.is--active .nav {
		opacity: 1;
		visibility: visible;
	}
	.list--nav {
		width: 100%;
		flex-direction: column;
	}
}
@media screen and (max-width: 768px){
	body {
		font-size: .875rem;
	}
	/*----------------------------
		header
	-----------------------------*/
	.list--nav {
		font-size: 1rem;
	}
	/*----------------------------
		footer
	-----------------------------*/
	.footer .inner {
		gap: .875rem;
	}
	.footer .sitetitle {
		gap: .875rem;
	}
}