
body {
    font-size: 18px;
	font-family: "hiragino-kaku-gothic-pron", sans-serif;
    font-weight: 300;
	position: relative;
    left: 0;
    overflow-x: hidden;
	-webkit-text-size-adjust: 100%; /* iphone横向き 文字拡大防止 */
}
img {
	display: block;
	width: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}
a {
	text-decoration: none;
	color: #000;
	transition: all .3s;
}
a:hover {
	filter: brightness(1.1);
}
p {
	line-height: 1.8;
}
/*==================================================================================
ヘッダー
==================================================================================*/
header {
	width: 100%;
    box-sizing: border-box;
    padding: 30px 40px!important;
    position: fixed;
    top: 0;
    left: 0;
	transition: all .3s;
	z-index: 9999;
}
header.on {
	background: rgba(255,255,255,0.8);
}
header .logo {
    display: block;
    width: 200px;
}
/* メニュー */
nav.gnav ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
nav.gnav ul li {
    margin-left: 30px;
}
nav.gnav ul li:last-child {
    margin-left: 10px;
}
nav.gnav ul li a {
    display: block;
    font-size: 14px;
}
nav.gnav ul li:nth-last-child(2) a,
nav.gnav ul li:last-child a {
    padding: 5px 10px;
    background: #000;
    color: #fff;
}

/*==================================================================================
共通
==================================================================================*/
/* レイアウト */
section {
    padding: 60px 0!important;
	position: relative;
}
.container {
	width: 100%;
	max-width: 1200px;
    box-sizing: border-box;
	padding: 0 60px;
	margin: auto;
}
.max840 {
    max-width: 840px;
    margin: auto;
}
.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.align_center {
	align-items: center;
}
.row.align_end {
	align-items: flex-end;
}
.row.just_center {
	justify-content: center;
}
.row.just_start {
	justify-content: flex-start;
}
.col2 {
    width: calc(50% - 20px);
}

.mb_10 {
	margin-bottom: 10px;
}
.mb_20 {
	margin-bottom: 20px;
}
.mb_40 {
	margin-bottom: 40px;
}
.mb_60 {
	margin-bottom: 60px;
}
.mb_120 {
	margin-bottom: 120px;
}
.mr_10 {
	margin-right: 10px;
}

.anker {
    padding-top: 100px;
    margin-top: -100px;
}

/* フォント */
h2 {
    color: transparent;
    font-size: 60px;
    font-family: "futura-pt", sans-serif;
    font-weight: 700;
    text-align: center;
	line-height: 1;
    letter-spacing: 0.05em;
    background: url("../img/bg_grad.png") center center / cover no-repeat;
    background-clip: text;
    -webkit-background-clip: text;
}
.font_12 {
	font-size: 12px;
}
.font_14 {
	font-size: 14px;
}
.font_24 {
	font-size: 24px;
}
.font_30 {
	font-size: 30px;
}
.txt_center {
	text-align: center;
}
.txt_right {
	text-align: right;
}
.bold {
	font-weight: 600;
}
.eng {
    font-family: "futura-pt", sans-serif;
    font-weight: 700;
}
.line1 {
    line-height: 1;
}
.line1_2 {
    line-height: 1.2;
}
.line1_4 {
    line-height: 1.4;
}
.indent {
	padding-left: 1em;
	text-indent: -1em;
}
.indent2 {
	padding-left: 2em;
	text-indent: -2em;
}

.wrap {
	display: inline-block;
}

/* アニメーション -----------*/
.animated.fadeinup {
	animation: fadeinup .6s;
}
@keyframes fadeinup {
	0% {opacity: 0; transform: translateY(30px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinup.second {
	animation: fadeinup_2nd 1.2s;
}
@keyframes fadeinup_2nd {
	0% {opacity: 0; transform: translateY(30px);}
	50% {opacity: 0; transform: translateY(30px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinright {
	animation: fadeinright .6s;
}
.animated.fadeinright.second {
	animation: fadeinright_2nd 1.2s;
}
@keyframes fadeinright_2nd {
	0% {opacity: 0; transform: translateX(30px);}
	50% {opacity: 0; transform: translateX(30px);}
	100% {opacity: 1; transform: translateX(0);}
}
.yay {
    opacity: 0;
    transform: translateY(5px);
    transition: all 1s;
}
.yay.fadeinup {
    transform: translateY(30px);
}
.yay.on {
    transform: translateY(0);
    opacity: 1;
}
.yay.fadeinleft.on {
	animation: fadeinleft .8s;
}
@keyframes fadeinleft {
	0% {opacity: 0; transform: translateX(-30px);}
	25% {opacity: 0; transform: translateX(-30px);}
	100% {opacity: 1; transform: translateX(0);}
}
.yay.fadeinright.on {
	animation: fadeinright .8s;
}
@keyframes fadeinright {
	0% {opacity: 0; transform: translateX(30px);}
	25% {opacity: 0; transform: translateX(30px);}
	100% {opacity: 1; transform: translateX(0);}
}

/*==================================================================================
メイン
==================================================================================*/
section#main {
    height: 100vh;
    box-sizing: border-box;
    padding: 92px 0 160px!important;
    position: relative;
}
section#main::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-position: left top, right top, right bottom;
    background-image: url("../img/main_leaf01.png"), url("../img/main_leaf02.png"), url("../img/main_leaf03.png");
    background-size: 620px, 100px, 160px;
    background-repeat: no-repeat;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}
section#main .main {
    width: 75%;
    height: 100%;
    margin: 0 0 0 auto;
    overflow: hidden;
    position: relative;
}
section#main .main img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    right: 0;
}
h1 {
    font-size: 18px;
    line-height: 1.8;
    font-weight: 300;
    position: absolute;
    top: 15%;
    left: 20%;
    z-index: 3;
}
h1 span.en {
    font-size: 70px;
    font-family: "itc-bradley-hand-std", sans-serif;
    font-weight: 700;
}
h1 span.en span.and {
    font-size: 50px;
}
section#main .bana_line {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: url("../img/bg_grad.png");
    color: #fff;
    position: absolute;
    left: 15%;
    bottom: 100px;
}
section#main .bana_line.yay {
	transform: none;
}
section#main .bana_line.yay.on {
	animation: bana_line 1s;
}
@keyframes bana_line {
	0% {transform: scale(0);}
	50% {transform: scale(0);}
	100% {transform: scale(1);}
}
section#main .bana_line p {
    width: 100%;
    text-align: center;
}
section#main .bana_line img {
    width: 50px;
}
/* ABOUT -------------------------------------------------------------------------*/
section#about::before,
section#about::after {
	content: "";
	display: block;
	width: 20%;
	max-width: 300px;
	height: 100%;
	background: url("../img/about_leaf01.png") left top / contain no-repeat;
	position: absolute;
	top: 10%;
	left: 0;
}
section#about::after {
	height: 120%;
	background: url("../img/about_leaf02.png") right bottom / contain no-repeat;
	top: 0;
	left: auto;
	right: 0;
}
section#about h3 {
    display: flex;
    align-items: center;
    height: 50px;
    box-sizing: border-box;
    padding: 10px 0 0 60px;
    background: url("../img/service_icon01.png") left center / contain no-repeat;
}
section#about h3.coffee {
    background-image: url("../img/service_icon02.png");
}
section#about ul li {
    margin-right: 15px;
    padding: 20px;
    background: url("../img/bg_grad02.png") center center / cover no-repeat;
}
/* SERVICE -------------------------------------------------------------------------*/
section#service::before,
section#service::after {
	content: "";
	display: block;
	width: 30%;
	max-width: 400px;
	height: 103%;
	background: url("../img/service_leaf01.png") left top 4.2% / 44% no-repeat, url("../img/service_leaf05.png") left top 88% / 70% no-repeat;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
section#service::after {
	background: url("../img/service_leaf02.png") right top 5% / 35% no-repeat, url("../img/service_leaf06.png") right bottom / 70% no-repeat;
	left: auto;
	right: 0;
}
section#service .container {
	position: relative;
	z-index: 4;
}
section#service ul.service_list li {
    width: 30%;
    margin: 0 10px 20px;
}
section#service ul.service_list li a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    height: 70px;
    padding: 0 0 0 20px;
    box-sizing: border-box;
    border-left: 1px #000 solid;
    border-bottom: 1px #000 solid;
	white-space: nowrap;
}
section#service ul.service_list li span {
    display: inline-block;
    margin-right: 10px;
    color: #fff;
    font-size: 60px;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    line-height: 1;
    transition: all .3s;
}
section#service ul.service_list li a:hover {
    color: #0f9745;
}
section#service ul.service_list li a:hover span {
    -webkit-text-stroke-color: #0f9745;
}
section#service .bg {
    padding: 0 0 20px;
    background: #edf2c5;
	position: relative;
	z-index: 2;
}
section#service .bg::before,
section#service .bg::after {
	content: "";
	display: block;
	width: 30%;
	max-width: 400px;
	height: 100%;
	background: url("../img/service_leaf03.png") left bottom 10% / contain no-repeat;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
}
section#service .bg::after {
    background: url("../img/service_leaf02_2.png") right top 20% / 35% no-repeat, url("../img/service_leaf04.png") right top 77% / contain no-repeat;
	left: auto;
	right: 0;
}
section#service h3 {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    height: 100px;
    box-sizing: border-box;
    padding: 0 20px;
    background: url("../img/service_icon01.png") right 30px center / 60px no-repeat, url("../img/bg_grad02.png") center center / cover no-repeat;
}
section#service h3.coffee {
    background-image: url("../img/service_icon02.png"), url("../img/bg_grad02.png");
}
section#service h3 span.eng {
    display: inline-block;
    margin-right: 10px;
    color: #fff;
    font-size: 90px;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    line-height: 1;
}
section#service h4 {
    color: transparent;
    font-size: 30px;
    font-family: "futura-pt", sans-serif;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.10em;
    background: url("../img/bg_grad.png") center center / cover no-repeat;
    background-clip: text;
    -webkit-background-clip: text;
}
/* POINT */
section#service ul.point li {
    width: 220px;
    height: 220px;
    box-sizing: border-box;
    border-radius: 50%;
    padding-top: 25px;
    border: 3px #0f9745 solid;
    background: #fff;
    margin: 0 10px 20px;
	opacity: 0;
}
section#service ul.point.yay.on li {
	opacity: 1;
	animation: point_li .6s;
}
@keyframes point_li {
	0% {transform: translateY(30px); opacity: 0;}
	100% {transform: translateY(0); opacity: 1;}
}
section#service ul.point.yay.on li:nth-child(2) {
	animation: point_li02 .8s;
}
@keyframes point_li02 {
	0% {transform: translateY(30px); opacity: 0;}
	25% {transform: translateY(30px); opacity: 0;}
	100% {transform: translateY(0); opacity: 1;}
}
section#service ul.point.yay.on li:nth-child(3) {
	animation: point_li03 1s;
}
@keyframes point_li03 {
	0% {transform: translateY(30px); opacity: 0;}
	40% {transform: translateY(30px); opacity: 0;}
	100% {transform: translateY(0); opacity: 1;}
}
section#service ul.point.yay.on li:nth-child(4) {
	animation: point_li01 1.2s;
}
@keyframes point_li01 {
	0% {transform: translateY(30px); opacity: 0;}
	50% {transform: translateY(30px); opacity: 0;}
	100% {transform: translateY(0); opacity: 1;}
}
section#service ul.point li p {
    width: 100%;
}
section#service ul.point li p.eng {
    color: transparent;
    letter-spacing: 0.10em;
    background: url("../img/bg_grad.png") center center / cover no-repeat;
    background-clip: text;
    -webkit-background-clip: text;
}
/* スライダー */
.slider {
	width: 100%;
	overflow: hidden;
}
.slider ul {
	display: flex;
	min-width: 100%;
	width: min-content;
	animation: 80s linear infinite slider;
	position: relative;
}
.slider ul li {
	width: 300px;
    margin: 0 6px;
	position: relative;
}
@keyframes slider {
	0% {transform: translateX(0);}
	100% {transform: translateX(-50%);}
}
/* バナー */
section#service .bana_online {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 220px;
    box-sizing: border-box;
    padding-right: 20px;
    background: url("../img/logo02_wh.png") left 20px top 20px / 160px no-repeat, url("../img/bana_online.png") left center / contain no-repeat #231815;
    color: #fff;
}
section#service .bana_online p {
    text-align: right;
}
section#service .bana_online span.eng {
    font-size: 45px;
}
section#service .bana_online span.arrow {
    display: inline-block;
    padding-right: 40px;
    background: url("../img/icon_arrow.png") right center / 30px no-repeat;
}

/* CONTACT -----------------------------------------------------------------------*/
section#contact::before,
section#contact::after {
	content: "";
	display: block;
	width: 20%;
	max-width: 300px;
	height: 116%;
	background: url("../img/contact_leaf02.png") left top 10% / 70% no-repeat;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
}
section#contact::after {
	background: url("../img/contact_leaf03.png") right bottom / 80% no-repeat;
	left: auto;
	right: 0;
}
section#contact .container {
	position: relative;
	z-index:4;
}
section#contact .container::before {
	content: "";
	display: block;
	width: 55%;
	height: 260px;
	background: url("../img/contact_leaf01.png") center top / contain no-repeat;
	position: absolute;
	top: -12%;
	left: 50%;
	transform: translateX(-50%);
}
section#contact .policy {
	display: block;
	height: 200px;
	box-sizing: border-box;
	padding: 20px 60px;
	border: 1px #000 solid;
	background: #fff;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}
section#contact .policy::-webkit-scrollbar {
  width: 8px;
}
section#contact .policy::-webkit-scrollbar-track {
  margin: 2px 0;
  background: #efefef;
  border-radius: 5px;
}
section#contact .policy::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background: #ccc;
}
/* お問い合わせ完了 */
section#contact.comp {
	min-height: calc(100vh - 10vh - 190px);
	padding: 10vh 0 0!important;
}
section#contact.comp::before {
	max-width: 200px;
	height: 100%;
	background-position: left top 80%;
}
section#contact.comp::after {
	max-width: 200px;
	background-position: right bottom 50%;
}
section#contact.comp .container::before {
	top: -30%;
}
.btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 300px;
	height: 50px;
	background: url("../img/bg_grad.png") center center / cover no-repeat;
	color: #fff;
	font-size: 18px;
	font-weight: 600;
	transition: all .3s;
}

/* COMPANY -----------------------------------------------------------------------*/
section#company::before,
section#company::after {
	content: "";
	display: block;
	width: 12%;
	max-width: 160px;
	height: 100%;
	background: url("../img/company_leaf01.png") left bottom 30% / contain no-repeat;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
section#company::after {
	max-width: 200px;
	background: url("../img/company_leaf02.png") right bottom 20% / contain no-repeat;
	left: auto;
	right: 0;
}
section#company .container {
	position: relative;
	z-index: 3;
}
section#company .container::before {
	content: "";
	display: block;
	width: 12%;
	height: 140px;
	background: url("../img/company_leaf03.png") center top / contain no-repeat;
	position: absolute;
	top: -4%;
	left: 78%;
}
section#company table {
	width: 100%;
	border-top: 1px #000 solid;
}
section#company table tr {
	border-bottom: 1px #000 solid;
}
section#company table th {
	width: 100px;
	padding: 15px 20px;
	font-weight: 300;
	text-align: center;
	text-align-last: justify;
}
section#company table td {
	padding: 15px 20px;
	letter-spacing: 0.05em;
}

/*==================================================================================
フッター
==================================================================================*/
footer .bg {
	padding: 40px 0;
	background: url("../img/bg_grad02.png") left top / 500px repeat;
}
footer .logo {
	width: 140px;
}
footer a {
	display: block;
	padding-bottom: 5px;
	border-bottom: 1px #000 solid;
	letter-spacing: 0.05em;
}
footer .copy {
	padding: 10px;
}


/* ページトップへ戻るボタン */
.btn_pagetop {
	display: block;
	width: calc(50px - 2px);
	height: calc(50px - 2px);
	border: 1px #000 solid;
	border-radius: 50%;
	background: #F4E827;
	position: fixed;
	right: 40px;
	bottom: 40px;
	z-index: 100;
}
.btn_pagetop span {
	display: block;
	width: 10px;
	height: 10px;
	border-top: 1px #000 solid;
	border-right: 1px #000 solid;
	transform: translateX(-50%) rotate(-45deg);
	position: absolute;
	top: 45%;
	left: 50%;
}



.tb {display: none;}
.pc {display: inline;}
.sp {display: none;}

@media screen and (max-width : 960px) {
	body {
		font-size: 14px;
	}
	.pc {display: none;}
	.tb {display: inline;}
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header {
	    padding: 20px!important;
	}
	header.active {
		background: rgba(255,255,255,0.8);
	}
	header .logo {
	    width: 160px;
	}	
	/* スマホ版 メニュー -----------------------*/
	nav.gnav {
	    z-index: 2;
	    width: 100%;
		height: 100%;
		opacity: 0;
		visibility: hidden;
		transition: all 0.3s;
	    position: fixed;
	    top: 0;
	    left: 0;
		overflow: hidden;
	}
	nav.gnav.active {
	    opacity: 1;
		visibility: visible;
	}
	nav.gnav ul {
		display: block;
	    width: 300px;
		height: 100%;
		box-sizing: border-box;
		margin: 0 0 0 auto;
		padding: 60px 20px 0;
	    background: #fff;
	    box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
		transform: translateX(100%);
		transition: all .3s;
	}
	nav.gnav.active ul {
		transform: translateX(0);
	}
	nav.gnav ul li {
	    width: 100%;
		margin: 0;
	    border-bottom: 1px dotted #ccc;
	}
	nav.gnav ul li:nth-child(2) {
	    margin-bottom: 20px;
	}
	nav.gnav ul li:nth-child(3) {
	    margin-bottom: 5px;
		border-bottom: none;
	}
	nav.gnav ul li:last-child {
		margin: 0;
		border-bottom: none;
	}
	nav.gnav ul li a {
	    display: block;
		padding: 15px 10px;
	}
	nav.gnav ul li:nth-last-child(2) a,
	nav.gnav ul li:last-child a {
	    padding: 10px;
	    text-align: center;
	}
	.gnavToggle {
	    z-index: 9999;
	    display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	    width: 40px;
	    height: 40px;
	    background: #000;
	    text-align: center;
	    cursor: pointer;
	    position: fixed;
	    right: 20px;
	    top: 13px;
	}
	.gnavToggle.active {
	    background: none;
	}
	.gnavToggle span {
	    display: block;
	    width: 26px;
		margin-bottom: 5px;
	    border-bottom: 2px #FFF solid;
	    transition: .35s ease-in-out;
	}
	.gnavToggle span:last-child {
		margin-bottom: 0;
	}
	.gnavToggle.active span {
	    border-color: #000;
	}
	.gnavToggle.active span:nth-child(1) {
	    transform: translateY(7px) rotate(-45deg);
	}
	.gnavToggle.active span:nth-child(2) {
		opacity: 0;
	}
	.gnavToggle.active span:nth-child(3) {
	    transform: translateY(-7px) rotate(45deg);
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	section {
		padding: 40px 0!important;
	}
	.container {
		max-width: 680px;
		padding: 0 20px;
	}
	.col2 {
		width: calc(50% - 10px);
	}
	.tb100 {
		width: 100%;
		margin-bottom: 20px;
	}
	.order2 {
		order: 2;
	}
	.mb_10 {
		margin-bottom: 8px;
	}
	.mb_20 {
		margin-bottom: 15px;
	}
	.mb_40 {
		margin-bottom: 30px;
	}
	.mb_60 {
		margin-bottom: 40px;
	}
	.mb_120 {
		margin-bottom: 80px;
	}
	/* フォント */
	h2 {
	    font-size: 40px;
	}
	.font_12 {
		font-size: 10px;
	}
	.font_14 {
		font-size: 12px;
	}
	.font_24 {
		font-size: 20px;
	}
	.font_30 {
		font-size: 24px;
	}
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main {
	    height: 800px;
	    padding: 66px 0 80px!important;
	}
	section#main::after {
	    background-size: 140px, 100px, 120px;
    	background-image: url("../img/main_leaf01_sp.png"), url("../img/main_leaf02.png"), url("../img/main_leaf03.png");
    	background-position: left bottom 40%, right top, right bottom;
	}
	section#main .main {
	    width: 90%;
	}
	h1 {
		padding: 0 40px!important;
	    font-size: 14px;
	    top: 15%;
	    left: 0;
	}
	h1 span.en {
	    font-size: min(7.8vw ,50px);
	}
	h1 span.en span.and {
	    font-size: min(6.4vw ,40px);
	}
	section#main .bana_line {
	    width: 160px;
	    height: 160px;
	    left: 20px;
	    bottom: 40px;
	}
	section#main .bana_line img {
	    width: 35px;
	}
	/* ABOUT -------------------------------------------------------------------------*/
	section#about::before,
	section#about::after {
		width: 20%;
		max-width: 140px;
		top: 0;
	}
	section#about::after {
		max-width: 200px;
		height: 100%;
	}
	section#about .row.align_end {
	    margin-top: 20px;
	}
	section#about ul li {
	    margin-right: 10px;
	    padding: 10px 20px;
	}
	/* SERVICE -------------------------------------------------------------------------*/
	section#service::before,
	section#service::after {
		width: 25%;
		max-width: 240px;
		height: 100%;
		background-position: left top, left top 56%;
		background-size: 50%, 80%;
	}
	section#service::after {
		background-position: right top 4%, right bottom;
		background-size: 35%, 90%;
	}
	section#service ul.service_list {
	    justify-content: space-between;
	}
	section#service ul.service_list li {
	    width: calc(50% - 5px);
		margin: 0 0 10px;
	}
	section#service ul.service_list li a {
	    height: 50px;
	    padding: 0 0 0 15px;
	}
	section#service ul.service_list li span {
	    font-size: 45px;
	}
	section#service .bg::before,
	section#service .bg::after {
		max-width: 240px;
		background-position: left bottom 20%;
	}
	section#service .bg::after {
	    background-position: right top 20%, right top 75%;
	}
	section#service h3 {
	    height: 60px;
	    background: url("../img/service_icon01.png") right 20px center / 40px no-repeat, url("../img/bg_grad02.png") center center / cover no-repeat;
	}
	section#service h3 span.eng {
	    font-size: 50px;
	}
	section#service h4 {
	    font-size: 24px;
	}
	/* POINT */
	section#service ul.point.s01 {
	    max-width: 400px;
		margin: 0 auto 40px;
	}
	section#service ul.point li {
	    width: 180px;
	    height: 180px;
	    padding-top: 25px;
		border-width: 2px;
		margin: 0 5px 10px;
	}
	/* スライダー */
	.slider ul li {
		width: 240px;
	    margin: 0 3px;
	}
	/* バナー */
	section#service .bana_online {
	    height: 180px;
		background-size: 120px, contain;
	}
	section#service .bana_online span.eng {
	    font-size: 34px;
	}
	section#service .bana_online span.arrow {
	    padding-right: 30px;
	    background-size: 25px;
	}
	/* CONTACT -----------------------------------------------------------------------*/
	section#contact::before,
	section#contact::after {
		height: 98%;
		background-position: left top 5%;
	}
	section#contact::after {
		background-position: right bottom;
	}
	section#contact .container::before {
		top: -7%;
	}
	section#contact .policy {
		height: 160px;
		padding: 20px;
	}
	/* お問い合わせ完了 */
	section#contact.comp {
		min-height: calc(100vh - 10vh - 117px);
	}
	section#contact.comp::before,
	section#contact.comp::after {
		display: none;
	}
	section#contact.comp .container::before {
		top: -20%;
	}
	.btn {
		width: 180px;
		height: 40px;
		font-size: 16px;
	}
	/* COMPANY -----------------------------------------------------------------------*/
	section#company::before {
		display: none;
	}
	section#company::after {
		background-position: right bottom 5%;
	}
	section#company table th {
		width: 70px;
		padding: 10px 15px;
	}
	section#company table td {
		padding: 10px 15px;
		letter-spacing: 0;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer .bg {
		padding: 20px 0;
	}
	footer .logo {
		width: 100px;
	}
	footer a {
		padding-bottom: 3px;
	}
	footer .copy {
		padding: 5px;
	}
}


@media screen and (max-width : 460px) {
	body {font-size: 12px;}
	.tb {display: none;}
	.sp {display: inline;}
	p {line-height: 1.6;}
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header .logo {
	    width: 140px;
	}
	/* スマホ版 メニュー -----------------------*/
	nav.gnav ul {
	    width: 240px;
	}
	.gnavToggle {
		top: 12px;
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* フォント */
	h2 {
	    font-size: 30px;
	}
	.font_24 {
		font-size: 18px;
	}
	.font_30 {
		font-size: 22px;
	}
	/*==================================================================================
	メイン
	==================================================================================*/
	section#main {
	    height: 100vh;
		max-height: 800px;
		min-height: 640px;
	    padding: 62px 0 80px!important;
	}
	section#main::after {
	    background-size: 26%, 20%, 28%;
    	background-position: left top 320px, right top, right bottom;
	}
	section#main .main {
	    width: calc(100% - 60px);
	}
	h1 {
		font-size: 12px;
	    top: 90px;
	    left: 0;
	}
	/* SERVICE -------------------------------------------------------------------------*/
	section#service::before,
	section#service::after {
		background-position: left top, left top 54%;
	}
	section#service::after {
		background-position: right top 4%, right top 64%, right bottom;
		background-image: url("../img/service_leaf02.png"), url("../img/service_leaf06.png"), url("../img/service_leaf06.png");
		background-size: 35%, 90%, 90%;
	}
	section#service ul.service_list {
	    justify-content: space-between;
	}
	section#service ul.service_list li {
	    width: calc(50% - 5px);
		margin: 0 0 10px;
	}
	section#service ul.service_list li a {
	    height: 50px;
	    padding: 0 0 0 15px;
	}
	section#service ul.service_list li span {
	    font-size: 45px;
	}
	section#service .bg::before,
	section#service .bg::after {
		background-position: left bottom 36%;
	}
	section#service ul.service_list li a {
	    height: 50px;
	    padding: 0 0 0 10px;
	}
	section#service ul.service_list li span {
		margin-right: 6px;
	    font-size: 34px;
	}
	section#service h3 {
	    height: auto;
		padding: 12px 55px 12px 42px;
	    background: url("../img/service_icon01.png") right 15px center / 30px no-repeat, url("../img/bg_grad02.png") center center / cover no-repeat;
		line-height: 1.2;
		position: relative;
	}
	section#service h3 span.eng {
	    font-size: 34px;
		position: absolute;
		top: 10%;
		left: 15px;
	}
	section#service h4 {
	    font-size: 22px;
	}
	/* POINT */
	section#service ul.point {
	    justify-content: space-between;
		max-width: 320px;
		margin: 0 auto 40px;
	}
	section#service ul.point.s01 {
		max-width: 320px;
	}
	section#service ul.point li {
	    width: 155px;
	    height: 155px;
	    padding-top: 20px;
		margin: 0 2px 5px;
	}
	/* バナー */
	section#service .bana_online {
		align-items: flex-end;
	    height: 240px;
		padding: 0 20px 20px 0;
		background-image: url("../img/logo02_wh.png"), url("../img/bana_online_sp.jpg");
		background-size: 80px, cover;
	}
	section#service .bana_online span.eng {
	    font-size: 34px;
	}
	section#service .bana_online span.arrow {
	    padding-right: 30px;
	    background-size: 25px;
	}
	/* CONTACT -----------------------------------------------------------------------*/
	section#contact .policy {
		height: 120px;
		padding: 20px 10px;
	}
	/* COMPANY -----------------------------------------------------------------------*/
	section#company table th {
		padding: 10px;
	}
	section#company table td {
		padding: 10px 0 10px 15px;
		letter-spacing: 0;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer .logo {
		width: 80px;
	}
}


    /* 小窓のスタイル */
    #custom-popup {
      position: fixed;
      bottom: 20px;
      right: 20px;
      background: rgba(0, 0, 0, 0.85);
      color: #fff;
      padding: 12px 16px;
      border-radius: 8px;
      font-size: 14px;
	  margin: 2px;
      z-index: 9999;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }

    #custom-popup.show {
      opacity: 1;
      pointer-events: auto;
    }