@charset "utf-8";

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	font-family: "Noto Sans JP", sans-serif;
	scroll-padding-top: 200px;
}

.factory {
	line-height: 1.5;
	margin: 0;
}

.br {
	display: inline-block;
}

p {
	text-align: justify;
	margin: 0.9em auto;
	line-height: 1.8rem;
	max-width: 40em;
	letter-spacing: 1px;
}

ul {
	padding: 0;
}

li {
	list-style: none;
}

img {
	width: 100%;
	display: block;
}

a {
	text-decoration: none;
}

mark {
	background: linear-gradient(transparent 60%, #ebf175 60%);
}

strong {
	font-weight: bold;
}

:root {
	--main: black;
    --est: red;
    --hp: green;
    --back: #ffffff;
	--background:#ddd;
}

/*====================
 * ヘッダー
 */
header {
	display: flex;
	flex-direction: column;
	padding: 16px;
	background-color: var(--back);
	position: sticky;
    top: 0;
	z-index: 4;
}

header .head-wr {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	gap: 36px;
	width: 100%;
}

header .head-top {
	width: 75%;
	max-width: 320px;
	display: flex;
	align-items: flex-end;
	gap: 10px;
}

header a {
	max-width: 480px;
}

header a .logo {
	max-height: 72px;
    object-fit: contain;
}

header .title_text {
	margin: 0;
    font-weight: bold;
    line-height: 1.8;
}

nav {
	background: var(--back);
    position: fixed;
    left: 100%;
    width: 100vw;
	height: fit-content;
    top: 80px;
    bottom: 0;
    overscroll-behavior: none;
    opacity: 0;
    transition: opacity 0.3s, left 0.3s;
}

.active nav {
	left: 0;
    opacity: 1;
}

nav ul {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 16px;
	width: 100%;
	padding: 0;	
}

.active nav ul {
	flex-direction: column;
    align-items: flex-start;
    padding: 16px;
}

nav ul li{
  position: relative;
  text-align: center;
}

/* 
	footer
*/
footer {
	padding: 10px;
	background-color: white;
}

footer .foot-wr {
	margin: 0 auto;
	max-width: 1180px;
}

footer a {
	width: fit-content;
}


footer .foot-top,footer .foot-bottom {
	width: 75%;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

footer .foot-top img {
	max-width: 320px;
}

footer p {
	text-align: center;
	margin: 0;
}

@media (min-width:700px) {
	footer {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	footer .foot-wr {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		gap: 16px;
	}
	
	footer .foot-top,footer .foot-bottom {
		width: unset;
	}
}
