@charset "utf-8";
/* 基本共通設定項目 */
* {
	box-sizing: border-box;
}
body {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: calc(16 / 375 * 100vw);
	color: #4D2A00;
	line-height: 1.7;
}
@media (min-width: 768px) {
	body {
		font-size: calc(16 / 768 * 100vw);
	}
	.sp_only {
		display: none;
	}
}
@media (min-width: 1160px) {
	body {
		font-size: 16px;
	}
}

/* header */

header {
	padding: calc(150 / 375 * 100vw) 0 calc(110 / 375 * 100vw);
	background: url(../images/header_bg_sp.jpg) no-repeat center center;
	background-size: cover;
	text-align: center;
}
.catchcopy h1{
	margin-bottom: calc(24 / 375 * 100vw);
	font-size: calc(20 / 375 * 100vw);
	font-weight: 700;
	line-height: 1.44;
}
.sub_catch {
	margin-bottom: calc(80 / 375 * 100vw);
	letter-spacing: 0.1em;
}
.logo {
	width: calc(200 / 375 * 100vw);
	margin: 0 auto calc(24 / 375 * 100vw);
}
.logo_name {
	font-size: calc(18 / 375 * 100vw);
	font-weight: 700;
	letter-spacing: 0.3em;
	color: #65AB31;
}
/* nav */
.hamburger {
	width: calc(44 / 375 * 100vw);
	height: calc(44 / 375 * 100vw);
	border: calc(1 / 375  * 100vw) solid #E17B34;
	position: fixed;
	top: calc(13 / 375 * 100vw);
	right: calc(14 / 375 * 100vw);
	z-index: 2;
}
.hamburger_line,
.hamburger::before,
.hamburger::after {
	width: calc(24 / 375 * 100vw);
	height: calc(2 / 375 * 100vw);
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	transform: translate(-50% , -50%);
	background-color: #E17B34;
	transition: 0.6s;
}
.hamburger::before,
.hamburger::after {
	content: "";
}
.hamburger::before {
	top: calc(50% - 7 / 375 * 100vw);
}
.hamburger::after {
	top: calc(50% + 7 / 375 * 100vw);
}
.hamburger.active span {
	opacity: 0;
}
.hamburger.active::before,
.hamburger.active::after {
	width: calc(20 / 375 * 100vw);
	transform: translate(-50%, calc(7 / 375 * 100vw)) rotate(-45deg);
}
.hamburger.active::after {
	transform: translate(-50%, calc(-7 / 375 * 100vw)) rotate(45deg);
}
.gnav {
	width: 100vw;
	height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: 0;
	right: 0;
	z-index: 1;
	transform: translate(100vw);
	transition: 0.6s;
	background-color: rgba(255, 255, 255, 0.95);
}
.gnav.open {
	transform: translateZ(0);
}
.gnav_inner {
	width: 100vw;
	font-weight: 700;
	color: #65AB31;
}
.gnav_inner li a {
	padding: calc(16 / 375 * 100vw) 0;
	display: block;
	position: relative;
}
.gnav_inner li a::first-line {
	letter-spacing: 0.1em;
	color: #4D2A00;
}
.gnav_inner li a::after {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	position: absolute;
	bottom: 10px;
	left: 0;
	background-color: #E17B34;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: 0.3s;	
}
.gnav_inner li a:hover::after {
	transform: scale(1, 1);
	transform-origin: right top;
}

@media (min-width: 768px){
	header {
		padding: calc(200 / 768 * 100vw) 0 calc(110 / 768 * 100vw);
		background: url(../images/header_bg_pc.jpg) no-repeat center center;
		background-size: cover;
	}
	.catchcopy h1{
		width: calc(700 / 768 * 100vw);
		margin: 0 auto 40px;
		font-size: 64px;
		letter-spacing: 0.1em;
	}
	.sub_catch {
		margin-bottom: calc(40 / 768 * 100vw);
		font-size: 32px;
		letter-spacing: 0.4em;
	}
	.logo {
		width: 200px;
		margin: 0 auto 16px;
	}
	.logo_name {
		font-size: 24px;
		font-weight: 700;
	}
	/* nav */
	.hamburger {
		display: none;
	}
	.gnav {
		width: calc(700 / 768 * 100vw);
		height: 80px;
		margin: 0 auto;
		display: block;
		position: absolute;
		top: calc(20 / 768 * 100vw);
		left: 0;
		transform: translate(0);
		background: none;
	}
	.gnav_inner {
		width: 100%;
		display: flex;
		justify-content: space-between;
	}
	.gnav_inner li a {
		padding: 16px 28px;
	}
}
@media (min-width: 1160px) {
	header {
		padding: 90px 0 37px;
	}
	.catchcopy h1{
		width: 100vw;
	}
	.sub_catch {
		margin-bottom: 40px;
	}
	.gnav {
		width: 700px;
		top: 0;
	}
}

/* main */
.container {
	width: calc(328 / 375 * 100vw);
	margin: 0 auto;
	padding: calc(80 / 375 * 100vw) 0 calc(56 / 375 * 100vw);
}
.section_ttl {
	margin-bottom: calc(56 / 375 * 100vw);
	padding-bottom: calc(4 / 375 * 100vw);
	position: relative;
	font-size: calc(24 / 375 * 100vw);
	font-weight: 700;
	color: #65AB31;
	letter-spacing: 0.3em;
	text-align: center;
}
.section_ttl::before,
.section_ttl::after {
	content: "";
	display: block;
	width: calc(32 / 375 * 100vw);
	height: calc(5 / 375 * 100vw);
	position: absolute;
	bottom: 0;
}
.section_ttl::before {
	background-color: #65AB31;
	left: 50%;
	transform: translateX(-100%);
}
.section_ttl::after {
	background-color: #4D2A00;
	left: 50%;
}
@media (min-width: 768px){
	.container {
		width: 90%;
		padding: calc(80 / 768 * 100vw) 0 calc(56 / 768 * 100vw);
	}
	.section_ttl {
		margin-bottom: calc(56 / 768 * 100vw);
		padding-bottom: calc(4 / 768 * 100vw);
		font-size: calc(24 / 768 * 100vw);
	}
	.section_ttl::before,
	.section_ttl::after {
		width: calc(32 / 768 * 100vw);
		height: calc(5 / 768 * 100vw);
	}
}
@media (min-width: 1160px){
	.container {
		width: 1160px;
		padding: 80px 0 56px;
	}
	.section_ttl {
		margin-bottom: 56px;
		padding-bottom: 8px;
		font-size: 32px;
	}
	.section_ttl::before,
	.section_ttl::after {
		width: 32px;
		height: 5px;
	}
}

/* concept */
#concept {
	background: url(../images/concept_bg_sp.jpg) center center no-repeat;
	background-size: cover;
	text-align: center;
}
#concept p + p {
	margin-top: calc(32 / 375 * 100vw);
}
.copy::first-line {
	font-weight: 700;
}
@media (min-width: 768px){
	#concept {
		background: url(../images/concept_bg_pc.jpg) center center no-repeat;
		background-size: cover;
	}
	#concept p + p {
		margin-top: calc(32 / 768 * 100vw);
	}
}
@media (min-width: 1160px){
	#concept p + p {
		margin-top: 32px;
	}
}

/*product*/
#product {
	background: url(../images/product_bg.jpg) left center;
}
#product ul {
	display: flex;
	flex-direction: column;
}
#product ul li:not(:last-child) {
	margin-bottom: calc(40 / 375 * 100vw);
}
#product ul li picture {
	display: inline-block;
}
@media (min-width: 768px){
	#product ul {
		max-width: 550px;
		margin: 0 auto;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	#product ul li {
		width: 100%;
	}
	#product ul li:not(:last-child) {
		margin-bottom: calc(40 / 768 * 100vw);
	}
	#product ul li:nth-child(4) ~ li {
		margin-bottom: 0;
	}
}
@media (min-width: 1160px){
	#product ul li:not(:last-child) {
		margin-bottom: 40px;
	}
}

/* about */
#about {
	background-color: rgba(101, 171, 49, 0.1);
}
#about dl {
	margin-bottom: calc(56 / 375 * 100vw);
	padding-bottom: calc(16 / 375 * 100vw);
	letter-spacing: 0.3em;
	line-height: 2;
	border-bottom: calc(1 / 375 * 100vw) solid #E17B34;
}
#about dl div:nth-child(1),
#about dl div:nth-child(2){
	margin-bottom: calc(16 / 375 * 100vw);
	padding-bottom: calc(16 / 375 * 100vw);
	border-bottom: calc(1 / 375 * 100vw) solid #E17B34;
}
.about_flex {
	display: flex;
}
.map {
	height: 0;
	padding-top: calc(216 / 328 * 100%);
	position: relative;
	overflow: hidden;
}
.map iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
@media (min-width: 768px){
	#about dl {
		margin-bottom: calc(56 / 768 * 100vw);
		padding-bottom: calc(16 / 768 * 100vw);
		border-bottom: 1px solid #E17B34;
	}
	#about dl div:nth-child(1),
	#about dl div:nth-child(2){
		margin-bottom: calc(16 / 768 * 100vw);
		padding-bottom: calc(16 / 768 * 100vw);
		border-bottom: 1px solid #E17B34;
	}
}
@media (min-width: 1160px){
	.about_inner {
		width: 960px;
		margin: 0 auto;
		display: flex;
		justify-content: space-between;
	}
	#about dl {
		width: 360px;
		margin-bottom: 0;
		padding-bottom: 16px;
		line-height: 1.7;
	}
	#about dl div:nth-child(1),
	#about dl div:nth-child(2){
		margin-bottom: 16px;
		padding-bottom: 16px;
	}
	.map {
		width: 500px;
		padding-top:312px;
	}
}

/*history*/
#history {
	background: url(../images/history_bg_sp.jpg) no-repeat center center;
	background-size: cover;
}
#history dt {
	padding-bottom: calc(16 / 375 * 100vw);
	border-bottom: calc(1 / 375 * 100vw) solid #E17B34;
	font-size: calc(18 / 375 * 100vw);
	font-weight: 700;
	letter-spacing: 0.3em;
	text-align: center;
}
#history dd {
	width: calc(275 / 375 * 100vw);
	margin: 0 auto;
	padding: calc(16 / 375 * 100vw) 0 calc(24 / 375 * 100vw);
	line-height: 2;
}
@media (min-width: 768px){
	#history {
		background: url(../images/history_bg_pc.jpg) no-repeat right center;
		background-size: cover;
	}
	#history dt {
		padding-bottom: calc(16 / 768 * 100vw);
		border-bottom: 1px solid #E17B34;
		font-size: calc(18 / 768 * 100vw);
	}
	#history dd {
		width: 70%;
		padding: calc(16 / 768 * 100vw) 0 calc(24 / 768 * 100vw);
	}
}
@media (min-width: 1160px){
	#history dl {
		width: 328px;
		margin: 0 auto;
	}
	#history dt {
		padding-bottom: 16px;
		border-bottom: 1px solid #E17B34;
		font-size: 18px;
	}
	#history dd {
		width: 275px;
		margin: 0 auto;
		padding: 16px 0 24px;
	}	
}

/* contact */
#contact {
	background-color: rgba(101, 171, 49, 0.1);
}
.contact_inner {
	text-align: center;
}
.contact_inner div:not(:last-child){
	margin-bottom: calc(56 / 375 * 100vw);
}
.contact_inner dt {
	margin-bottom: calc(40 / 375 * 100vw);
	font-size: calc(24 / 375 * 100vw);
	font-weight: 700;
	letter-spacing: 0.3em;
	line-height: 1.33;
}
.line dt {
	color: #65AB31;
}
.instagram dt {
	color: #BD1F96;
}
.base dt {
	color: #E17B34;
}
.contact_inner dd {
	font-size: calc(18 / 375 * 100vw);
	font-weight: 700;
	letter-spacing: 0.1em;
	word-break: break-all;
}
.instagram dd {
	text-align: left;
}
.contact_inner dd + dd {
	margin-top: calc(64 / 375 * 100vw);
}
.contact_inner a {
	transition: 0.6s;
}
.contact_inner a:hover {
	color: #E17B34;
}
@media (min-width: 768px){
	.contact_inner div:not(:last-child){
		margin-bottom: calc(56 / 768 * 100vw);
	}
	.contact_inner dt {
		margin-bottom: calc(40 / 768 * 100vw);
		font-size: calc(24 / 768 * 100vw);
	}
	.contact_inner dd {
		font-size: calc(18 / 768 * 100vw);
	}
	.instagram dd {
		text-align: center;
	}
	.contact_inner dd + dd {
		width: 80%;
		margin: calc(64 / 768 * 100vw) auto 0;
	}	
}
@media (min-width: 1160px){
	.contact_inner {
		display: flex;
		justify-content: space-between;
	}
	.contact_inner div {
		max-width: 360px;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	.contact_inner div:not(:last-child){
		margin-bottom: 0;
	}
	.contact_inner dt {
		margin-bottom: 40px;
		font-size: 24px;
	}
	.contact_inner dd {
		height: 60px;
		font-size: 18px;
	}
	.instagram dd {
		text-align: left;
	}
	.contact_inner dd + dd {
		width: auto;
		height: auto;
		margin: 64px auto 0;
	}	
}

/* footer */
footer {
	padding: calc(40 / 375 * 100vw) 0;
	background-color: #4D2A00;
	text-align: center;
}
.flogo {
	width: calc(188 / 375 * 100vw);
	margin: 0 auto calc(40 / 375 * 100vw);
}
footer p small {
	font-size: calc(18 / 375 * 100vw);
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #65AB31;
}
@media (min-width: 768px){
	footer {
		padding: 40px 0;
	}
	.flogo {
		width: 188px;
		margin: 0 auto 40px;
	}
	footer p small {
		font-size: 18px;
	}
}