@charset "UTF-8";
/******************** CSS RESET ********************/
*, *:before, *:after {
	box-sizing: border-box;
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}
body{line-height: 1;}
ol, ul{list-style: none;}
img{
	max-width: 100%;
	vertical-align: bottom;
}
hr{
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}
blockquote, q{
	quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after{
	content: '';
	content: none;
}
table{
	border-collapse: collapse;
	border-spacing: 0;
}
td{
	vertical-align:middle;
}
address{
	font-style: normal;
}
input:not([type="radio"]):not([type="checkbox"]), button, textarea{
	margin: 0;
	padding: 2px 3px;
	background: none;
	border: 1px solid #767676;
	border-radius: 2px;
	outline: 0;
	/* -webkit-appearance: none; */
}
input{
	vertical-align: middle;
}
input[type="submit"]{
	cursor: pointer;
}


/******************** 共通設定 ********************/
:root{
	--bk: #333;
	--wh: #fff;
	--red: #C3653D;
	--gr: #628848;
	--yw: #F0BF41;
	--bg: #F5F2EC;
	--hover01: #9c9585;
	--hover02: #736649;
	--zenkaku: "Zen Kaku Gothic New", sans-serif;
	--noto: "Noto Sans JP", sans-serif;
	--inter: "Inter", sans-serif;
}
html{
	height: 100%;
	scroll-behavior: smooth;
}

body {
	font-family: var(--zenkaku), arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic";
	font-weight: 500;
	font-style: normal;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--bk);
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	/*	overflow-x: hidden;*/
	background-color: var(--bg);
}
@media screen and (min-width: 769px){
	body{
		min-width: 1200px;
	}
}
@media screen and (max-width: 500px){
	body{
		font-size: 0.875rem;
	}
}

/* リンク */
a {color: var(--bk);}
a:hover{text-decoration: none;}
a:focus{transition: none;}
a, a::before, a::after{transition: 0.2s;}

a[href^="tel:"] {
    cursor: default;
    color: var(--bk);
    text-decoration: none;
}
@media only screen and (max-width: 768px){
	a[href^="tel:"] {
		cursor: pointer;
		color: var(--bk);
/*		text-decoration: underline;*/
	}
}
a[target=_blank] span{
	padding-right: 1.15em;
	background: url(../img/icon_blank.svg) no-repeat top .4em right / auto 0.9375em;
}
a[target=_blank]:hover span{
	background-image: url(../img/icon_blank_hover.svg);
}

nav ul li a{
	transition: .2s;
}
nav ul li a:hover{
	color: var(--hover01);
}


/* clearfix */
.clear::after{
	content: "";
	display: block;
	clear: both;
}

/* inner */
.inner{
	margin: 0 auto;
	padding: 0 50px;
	width: 100%;
	max-width: 1300px;
}
@media screen and (max-width: 768px){
	.inner{
		padding-inline: 30px;
	}
}
@media screen and (max-width: 500px){
	.inner{
		padding-inline: 20px;
	}
}

/* button */
.btn{
	text-align: center;
	margin-top: 2.5em;
}
.btn a{
	text-decoration: none;
	text-align: center;
	display: inline-block;
	color: var(--wh);
	background-color: var(--bk);
	border: 1px solid var(--bk);
	min-width: 290px;
	border-radius: 5px;
	font-size: 1.25em;
	font-weight: 700;
	padding-block: 0.875em;
}
.btn a:hover{
	background-color: var(--wh);
	color: var(--hover02);
	border-color: var(--hover01);
}
.btn a[target=_blank] span{
	padding-right: 1.15rem;
	background: url(../img/icon_btn_blank.svg) no-repeat center right / auto 0.9375rem;
}
.btn a[target=_blank]:hover span{
	background-image: url(../img/icon_btn_blank_hover.svg);
}

/* animation */
.show-item,
.show-item span{
	display: block;
}
.show-item{
	overflow: hidden;
	opacity: 0;
}
.show-item span{
	opacity: 0;
	transform: matrix(1, 0, 0, 1, 0, 100);
	transition: 1.2s cubic-bezier(0, 0.55, 0.45, 1);
}
.js-show.is-animated .show-item{
	opacity: 1;
}
.js-show.is-animated .show-item span{
	opacity: 1;
	transform: matrix(1, 0, 0, 1, 0, 0);
}

/* 準備中 */
.junbi, .foot-nav nav ul.junbi{
	align-items: end;
}
.junbi li{
	text-align: center;
}
.junbi li .junbi-txt{
	display: block;
	font-size: 0.75em;
	color: #aaa;
}

@media screen and (max-width: 500px) {
	.foot-nav nav ul.junbi{
		align-items: center;
	}
}


/* ▼▼▼ Header ▼▼▼ */
header{
	position: relative;
}
.header-wrap{
	padding-top: 56px;
	padding-inline: 50px;
}
.head{
	min-height: 1040px;
	position: relative;
}
.head .main-vis{
	position: absolute;
	width: 1094px;
	right: 0;
	bottom: 0;
	opacity: 0;
	transition: opacity 2s ease-out;
}
.head .main-vis.js-show.is-animated{
	opacity: 1;
	/* transition: 2s ease-out; */
}
.head .main-vis .animal{
	position: absolute;
	width: 200px;
	bottom: 0;
	right: 0;
}
/* 雄鹿01（草食べてる） */
.head .main-vis .shika01{
	width: 121px;
	height: 90px;
	/* right: 572px; */
	left: 390px;
	bottom: 150px;
}
/* 雌鹿01（草食べてる） */
.head .main-vis .shika03{
	width: 121px;
	height: 90px;
	right: 502px;
	bottom: 63px;
}
/* 雌鹿02（座ってる） */
.head .main-vis .shika02{
	width: 69px;
	height: 87px;
	/* right: 829px; */
	left: 184px;
	bottom: 213px;
}
/* 雄鹿02（普通） */
.head .main-vis .shika04{
	width: 124px;
	height: 143px;
	right: 200px;
	bottom: 83px;
}
/* カエル */
.head .main-vis .kaeru{
	width: 104px;
	height: 61px;
	/* right: 713px; */
	right: 653px;
	/* bottom: 363px; */
	/* top: 277px; */
	top: 220px;
}

/* 草食べてる鹿の動き */
.head .main-vis .animal.shika01.move,
.head .main-vis .animal.shika02.move,
.head .main-vis .animal.shika03.move{
	animation: eating-deer 1.5s cubic-bezier(0.45, 0, 0.55, 1);
}
@keyframes eating-deer{
	0%{
		transform: translateY(0%);
	}
	12%{
		transform: translateY(-4%);
	}
	24%{
		transform: translateY(0%);
	}
	36%{
		transform: translateY(-4%);
	}
	48%{
		transform: translateY(0%);
	}
	60%{
		transform: translateY(-4%);
	}
	72%{
		transform: translateY(0%);
	}
	84%{
		transform: translateY(-4%);
	}
	100%{
		transform: translateY(0%);
	}
}
/* 歩く鹿の動き */
.head .main-vis .animal.shika04.move{
	animation: walking-deer 5s cubic-bezier(0.45, 0, 0.55, 1);
}
@keyframes walking-deer{
	0%{
		transform: translateX(0%);
	}
	10%{
		transform: translateX(-20%);
	}
	20%{
		transform: translateX(-40%);
	}
	30%{
		transform: translateX(-60%);
	}
	40%{
		transform: translateX(-80%);
	}
	50%{
		transform: translateX(-100%) scale(-1, 1);
	}
	60%{
		transform: translateX(-80%) scale(-1, 1);
	}
	70%{
		transform: translateX(-60%) scale(-1, 1);
	}
	80%{
		transform: translateX(-40%) scale(-1, 1);
	}
	90%{
		transform: translateX(-20%) scale(-1, 1);
	}
	100%{
		transform: translateX(0%) scale(1, 1);
	}
}

/* カエルの動き */
.head .main-vis .animal.kaeru{
	animation: kaeru 2s cubic-bezier(0.45, 0, 0.55, 1) forwards;
}
@keyframes kaeru{
	0%{
		transform: translate(0%, 0%);
	}
	100%{
		transform: translate(-54%, 96%);
	}

}
.head .main-vis .animal.kaeru.move{
	transform: scale(-1,1);
	animation: kaeru-back 1.5s cubic-bezier(0.45, 0, 0.55, 1) forwards;
}
@keyframes kaeru-back{
	0%{
		transform: translate(-54%, 96%) scale(-1,1);
	}
	5%{
		transform: translate(-54%, 96%) scale(-1,1);
	}
	100%{
		transform:  translate(0,0) scale(-1,1);
	}

}
@media screen and (min-width: 1799px) {
	.head .main-vis{
		transform: scale(1.15);
	}
}

@media screen and (max-width: 768px) {
	/* 雄鹿01（草食べてる） */
	.head .main-vis .shika01{
		width: 12.706vw;
		/* width: 54px; */
		height: 10.35vw;
		/* height: 44px; */
		left: 37.647vw;
		/* left: 160px; */
		bottom: 10.11vw;
		/* bottom: 43px; */
	}
	/* 雌鹿01（草食べてる） */
	.head .main-vis .shika03{
		width: 11.529vw;
		/* width: 49px; */
		height: 9.88vw;
		/* height: 42px; */
		right: 44.706vw;
		/* right: 190px; */
		bottom: 1.176vw;
		/* bottom: 5px; */
	}
	/* 雌鹿02（座ってる） */
	.head .main-vis .shika02{
        width: 6.7647vw;
        /* width: 33px; */
        height: 8.647vw;
        /* height: 41px; */
        left: 17.647vw;
        /* left: 75px; */
        bottom: 20.7vw;
        /* bottom: 88px; */
	}
	/* 雄鹿02（普通） */
	.head .main-vis .shika04{
        width: 12.41vw;
        /* width: 57px; */
        height: 15.71vw;
        /* height: 71px; */
        right: 16.82vw;
        /* right: 80px; */
        bottom: 4.235vw;
        /* bottom: 18px; */
	}
	/* カエル */
	.head .main-vis .kaeru{
		width: 8vw;
		/* width: 34px; */
		height: 5.412vw;
		/* height: 23px; */
		right: 61.882vw;
		/* right: 263px; */
		top: 20.412vw;
		/* top: 91px; */
	}
}
@media screen and (max-width: 400px) {
	/* カエル */
	/* .head .main-vis .kaeru{
		top: 25.2vw;
	} */
}


.head_menu{
	display: flex;
	justify-content: flex-end;
}
.head_menu nav ul{
	display: flex;
	gap: 45px;
	flex-wrap: wrap;
}
.head_main{
	padding-top: 100px;
	line-height: 1.7;
}
.head_main h1 img{
	height: 47px;
}
.head_main .sub-title{
	margin-top: 1.25em;
	font-size: 1.5em;
	font-weight: 700;
}
.head_main .txt{
	margin-top: 1.25em;
}

@media screen and (max-width: 768px) {
	.header-wrap{
		padding-top: 30px;
		padding-inline: 30px;
		overflow-x: hidden;
	}
	.head{
		min-height: auto;
		height: 100%;
		padding-bottom: 70vw;
	}
	.head_menu{
		display: none;
	}
	.head .main-vis{
		width: 112%;
		right: 50%;
		transform: translateX(50%);
	}
	.head .main-vis .mv-narakouen{
		width: 100%;
	}
}
@media screen and (max-width: 500px) {
	.header-wrap{
		padding-inline: 20px;
	}

	.head_main h1 img{
		height: 32px;
	}
	.head_main .sub-title, .head_main .txt{
		margin-top: 1em;
	}
}

/*drawer*/
.d-open{
	position: fixed;
	top: 30px;
	right: 30px;
	width: 30px;
	height: 30px;
	z-index: 9999;
}
.d-open .menu-ham{
	position: relative;
}
.d-open .menu-ham span{
	position: absolute;
	width: 30px;
	height: 2px;
	background-color: var(--bk);
	transition: all .2s ease-out;
	left: 0;
	top: 0;
}
.d-open .menu-ham span.ham02{
	top: 10px;
}
.d-open .menu-ham span.ham03{
	top: 20px;
}
.d-open.active .menu-ham span.ham01{
	top: 10px;
	transform: rotate(45deg);
}
.d-open.active .menu-ham span.ham02{
	opacity: 0;
}
.d-open.active .menu-ham span.ham03{
	top: 10px;
	transform: rotate(-45deg);
}
.drawer.active{
	opacity: 1;
	visibility: visible;
}
.drawer{
	width: 100%;
	height: 100dvh;
	position: fixed;
	z-index: 999;
	background-color: var(--bg);
	top: 0;
	left: 0;
	bottom: 0;
	overflow: auto;
	overscroll-behavior: none;
	opacity: 0;
	visibility: hidden;
	transition: all .2s ease-out;
}
.drawer-wrap{
	padding-block: 120px;
	padding-inline: 30px;
	width: 100%;
	height: 100%;
	position: relative;
}
.drawer-wrap .logo{
	margin-bottom: 40px;
	text-align: center;
}
.drawer-wrap .logo img{
	height: 28px;
}
.drawer-wrap .drawer-img{
	position: absolute;
	width: 132px;
	right: 0;
	top: 550px;
}
.drawer-menu{
	margin-bottom: 50px;
}
.drawer-menu nav{
	margin: 0 auto;
	max-width: 600px;
}
.drawer-menu nav ul{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 35px;
}
.drawer-menu nav ul li{
	font-size: 1.125em;
}
.drawer-contact{
	text-align: center;
}
.drawer-contact-tel{
	background-color: var(--wh);
	border-radius: 20px;
	padding-block: 35px;
}
.drawer-contact-tel .tel-title{
	font-weight: 700;
	margin-bottom: 0.5em;
}
.drawer-contact-tel .tel-num{
	font-family: var(--inter);
	font-size: 1.75em;
	font-weight: 700;
	margin-bottom: 0.2em;
}

@media print, screen and (min-width: 769px) {
	.d-open{
		display: none !important;
	}
}

/* ▼▼▼ Footer ▼▼▼ */
footer{
	padding-inline: 50px;
	text-align: center;
}
.foot-contact .foot-id{
	font-weight: 700;
	margin-bottom: 0.125em;
}
.foot-contact .foot-id .kis{
	font-size: 1.5em;
}
.foot-contact .foot-id .nara{
	display: inline-block;
	margin-left: 1.125em;
}
.foot-contact .addr p{
	font-size: 0.875em;
}
.foot-nav nav ul{
	display: flex;
	gap: 10px 40px;
	justify-content: center;
	margin-block: 2.25em;
}
footer .cr{
	font-family: var(--inter);
	font-size: 0.75em;
	padding-bottom: 0.625em;
}

@media screen and (max-width: 500px) {
	.foot-nav nav ul{
		flex-direction: column;
	}
}

/* ▼▼▼ Main ▼▼▼ */
.top_main{
	margin-top: 80px;
}
.top_main section{
	margin-bottom: 5em;
}
.top_main h2{
	font-weight: 700;
	font-size: 1.75em;
	margin-bottom: 0.85em;
}
.top_main .txt{
	margin-bottom: 2.5em;
}

@media screen and (max-width: 500px) {
	.top_main h2{
		font-size: 1.75em;
	}
	.top_main .txt{
		margin-bottom: 1.78em;
	}
}

/* works */
.works ul{
	display: flex;
	gap: 40px 2.5%;
}
.works ul li{
	flex: 1;
}
.works ul li a{
	text-decoration: none;
}
.works ul li a:hover{
	color: var(--hover01);
}
.works ul li a .img-area{
	overflow: hidden;
	border-radius: 10px;
	transition: opacity .2s ease-out;
}
.works ul li a:hover .img-area{
	opacity: .6;
}
.works ul li a .title{
	font-weight: 700;
	margin-top: 1em;
}
.works ul li a[target=_blank] .title span{
    padding-right: 1.15em;
    background: url(../img/icon_blank.svg) no-repeat top .4em right / auto 0.9375em;
}
.works ul li a .tag{
	display: inline-block;
	font-size: 0.75em;
	padding-inline: 7px;
	padding-block: 2px 3px;
	border: 1px solid var(--bk);
	border-radius: 4px;
	margin-top: 0.5em;
}
.works ul li a:hover .tag{
	border-color: var(--hover01);
}


@media screen and (max-width: 768px) {
	.works ul{
		flex-wrap: wrap;
	}
	.works ul li{
		flex: inherit;
		width: calc(97.5% / 2);
	}
}
@media screen and (max-width: 500px) {
	.works ul li{
		width: 100%;
	}
}

/* service */
.service ul{
	display: flex;
	gap: 25px 2.5%;
}
.service ul li{
	background-color: var(--wh);
	border-radius: 20px;
	padding: 2.5em 1.875em ;
	min-height: 435px;
	flex: 1;
}
.service ul li .num{
	font-family: var(--inter);
	font-weight: 700;
	font-size: 3em;
	margin-bottom: 1rem;
	line-height: 1;
	letter-spacing: 0;
}
.service ul li .num01{
	color: var(--red);
}
.service ul li .num02{
	color: var(--gr);
}
.service ul li .num03{
	color: var(--yw);
}
.service ul li h3{
	font-size: 2em;
	font-weight: 700;
	margin-bottom: 1rem;
}
@media screen and (max-width: 768px) {
	.service ul{
		flex-wrap: wrap;
		column-gap: 25px;
	}
	.service ul li{
		flex: inherit;
		min-height: auto;
		padding-block: 30px 40px;
	}
	.service ul li .num{
		font-size: 2.3em;
		margin-bottom: .5rem;
	}
}
@media screen and (max-width: 500px) {
.service ul li h3{
	font-size: 1.5em;
}

}


/* note */
.note ul{
	display: flex;
	gap: 2.08%;
}
.note ul li{
	flex: 1;
}
.note ul li a{
	text-decoration: none;
}
.note ul li a:hover{
	color: var(--hover01);
}
.note ul li a .img-area{
	overflow: hidden;
	border-radius: 10px;
	transition: opacity .2s ease-out;
}
.note ul li a:hover .img-area{
	opacity: .6;
}
.note ul li a .title{
	margin-top: 0.625em;
}

@media screen and (max-width: 768px) {
	.note ul{
		flex-wrap: wrap;
		gap: 25px 20px;
	}
	.note ul li{
		flex: auto;
		width: calc(50% - 12.5px);
	}
}

/* contact */
.contact{
	text-align: center;
	padding-top: 20px;
	position: relative;
	z-index: 1;
}
.contact .txt span{
	display: block;
}
.contact-area .contact-img{
	position: absolute;
	width: 202px;
	height: 266px;
	right: 36px;
	bottom: 120px;
	z-index: -1;
}
.contact-area .contact-img.move{
	animation: daibutsu 2s step-end;
}
@keyframes daibutsu{
	0%{
		transform: rotate(0deg);
	}
	16%{
		transform: rotate(4deg);
	}
	32%{
		transform: rotate(0deg);
	}
	48%{
		transform: rotate(4deg);
	}
	64%{
		transform: rotate(0deg);
	}
	80%{
		transform: rotate(4deg);
	}
	100%{
		transform: rotate(0deg);
	}

}
.contact-area ul{
	display: flex;
	justify-content: center;
	gap: 30px 40px;
}
.contact-area ul li{
	background-color: var(--wh);
	flex: 1;
	border-radius: 20px;
	padding: 30px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.contact-area ul li h3{
	font-weight: 700;
	font-size: 1.125em;
	margin-bottom: 0.75em;
}
.contact-area ul li .tel-num{
	font-family: var(--inter);
	font-weight: 700;
	font-size: 2.5em;
}
.contact-area ul li .tel-reception{
	margin-top: 0.75em;
}
.contact-area ul li.contact-form .btn{
	margin-top: 0;
}

@media screen and (max-width: 768px) {
	.contact-area ul{
		flex-wrap: wrap;
	}
	.contact-area .contact-img{
		display: none;
	}
	.contact-area ul li{
		flex: auto;
	}
}
@media screen and (max-width: 500px) {
		.contact .txt span{
			display: inline;
		}
		.contact-area li{
			padding-inline: 15px;
		}
		.contact-area ul li .tel-num{
			font-size: 2.2em;
		}

}

/* ▼▼▼▼ UnderPage ▼▼▼▼ */
.under h1{
	font-size: 1.75em;
	font-weight: 700;
	margin-bottom: 60px;
}
.under main{
	padding-bottom: 100px;
}


/* header */
.under_head-area{
	display: flex;
	justify-content: space-between;
	margin-bottom: 10%;
}
.under_head-area .head-logo{
	width: 251px;
}

@media screen and (max-width: 768px) {
	.under_head-area{
		margin-bottom: 80px;
	}
}
@media screen and (max-width: 500px) {
	.under_head-area .head-logo{
		width: 191px;
	}
}

/* --- 制作実績 --- */
/* タブ */
.under_works .tab_btn{
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 60px;
}
.under_works .tab_btn li a{
	display: inline-block;
	border: 1px solid var(--bk);
	border-radius: 4px;
	padding-inline: 7px;
	padding-block: 2px 3px;
	cursor: pointer;
	transition: .2s;
}
.under_works .tab_btn li:not(.active) a:hover{
	border-color: var(--hover01);
	color: var(--hover01);
}
.under_works .tab_btn li.active a{
	background-color: var(--bk);
	color: var(--wh);
}

/* 一覧 */
.works-list{
	display: flex;
	flex-wrap: wrap;
	gap: 40px 2.5%;
}
.works-list li{
	width: calc(95% / 3);
}
.works-list li a{
	display: block;
	text-decoration: none;
}

.works-list li .img-area{
	overflow: hidden;
	border-radius: 10px;
	transition: opacity .2s ease-out;
}
.works-list .title{
	font-weight: 700;
	font-size: 1.125em;
	margin-top: 1.2em;
}
.works-list .tag{
	display: inline-block;
    font-size: 0.875em;
    padding-inline: 7px;
    padding-block: 2px 3px;
    border: 1px solid var(--bk);
    border-radius: 4px;
    margin-top: 0.5em;
}
.works-list .text{
	margin-block: 1em 0.5em;
}
.works-list .no-items{
	display: none;
	width: 100%;
}

.works-list li a:hover{
	color: var(--hover01);
}
.works-list li a:hover .img-area{
	opacity: .6;
}
.works-list li a:hover .tag{
	border-color: var(--hover01);
}

@media screen and (max-width: 768px) {
	.works-list li{
		width: calc(97.5% / 2);
	}
}
@media screen and (max-width: 500px) {
	.under_works .tab_btn{
		column-gap: 7px;
		font-size: 0.79em;
		/* justify-content: center; */
		margin-bottom: 40px;
	}
	.works-list li{
		width: 100%;
	}
}













