@charset "UTF-8";


/* =================== */
/*       pubulic       */
/* =================== */
html {
	font-size:clamp(10px, 1.04vw, 25px);
	overflow-x:hidden;
	scroll-padding-top:250px;
	scroll-behavior:smooth;
}
body {
	position:relative;
	-webkit-text-size-adjust:100%;
	font-family: 'メイリオ', Meiryo, sans-serif;
  font-weight: 400;
  font-style:normal;
	overflow:hidden;
}



main { position:relative; }



img {
  width:100%;
  height:auto;
  max-width:100%;
}

a { transition:0.5s ease all; }


.sp-on { display:none; }

.flex-box {
	display:-webkit-box;
	display:flex;
	-webkit-box-pack:justify;
	justify-content:space-between;
	align-items:center;
}

.fadein {
	opacity:0;
	transform:translate(0, 20%);
	transition:.3s;
}
.fadein.is-show {
	transform:translate(0, 0);
	opacity:1;
}
.fadein-r {
	opacity:0;
	transform:translate(50%, 0);
	transition:1s;
}
.fadein-r.is-show {
	transform:translate(0, 0);
	opacity:1;
}

.fadein-lt {
	opacity:0;
	transform:translate(-5%, -5%);
	transition:1s;
}
.fadein-lt.is-show {
	transform:translate(0, 0);
	opacity:1;
}
.fadein-rt {
	opacity:0;
	transform:translate(5%, -5%);
	transition:1s;
}
.fadein-rt.is-show {
	transform:translate(0, 0);
	opacity:1;
}
.fadein-lb {
	opacity:0;
	transform:translate(-5%, 5%);
	transition:1s;
}
.fadein-lb.is-show {
	transform:translate(0, 0);
	opacity:1;
}
.fadein-rb {
	opacity:0;
	transform:translate(5%, 5%);
	transition:1s;
}
.fadein-rb.is-show {
	transform:translate(0, 0);
	opacity:1;
}


.center-fade {
	transform:scale(1.2);
	opacity:0;
	transition:.8s;
}
.center-fade.is-show {
	opacity:1;
	transform:scale(1);
}
.transscaleX { opacity:0; }
.transscaleX.is-show {
    animation:transscaleX .5s ease 0s forwards;
}
@keyframes transscaleX {
  0% {
    transform:scaleX(0);
    opacity:0;
  }
  100% {
    transform:scaleX(1);
    opacity:1;
  }
}

.blur {
	filter:blur(10px);
	transition:1s;
}
.blur.is-show {
	filter:blur(0);
	opacity:1;
}


.in-w85 {
	width:85rem;
	margin:0 auto;
	position:relative;
}
.in-w80 {
	width:80rem;
	margin:0 auto;
	position:relative;
}
.in-w75 {
	width:75rem;
	margin:0 auto;
	position:relative;
}
.in-w60 {
	width:60rem;
	margin:0 auto;
	position:relative;
}
.max-w-box {
	max-width:2500px;
	margin:0 auto;
	position:relative;
}


h2,h3,h4 { font-weight:300; }









.kv-box {
	width:90rem;
	overflow:hidden;
	margin:6.5rem auto 0;
	height:47.5rem;
}
.kv-box .kv-in {
	width:100%;
	height:100%;
}
.kv-box video {
	width:100%;
	height:100%;
	object-fit:cover;
}
.kv-box img {
	width:100%;
	height:100%;
	object-fit:cover;
}






/* =================== */
/*       main-nav      */
/* =================== */
#header {
	position:relative;
	z-index:1000;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:6.5rem;
	background:#fff;
}
#header .head-in {
	height:100%;
	width:90rem;
	margin:0 auto;
}
#header .site-logo { width:11.4rem; }
#header .site-logo a:hover { opacity:.5; }
#header #main-nav .nav {
	justify-content:flex-end;
	margin-right:2rem;
}
#header #main-nav .nav li {
	padding:0 1rem;
	border-left:1px solid #e5e5e5;
	text-align:center;
}
#header #main-nav .nav li .jp {
	display:block;
	font-size:max(15px, 1rem);
	margin-top:.3rem;
}
#header #main-nav .nav li .en {
	color:#0c933c;
	font-size:max(12px, .8rem);
}
#header #main-nav .nav li:last-child { border-right:1px solid #e5e5e5; }
#header #main-nav .nav li a:hover { opacity:.5; }
#header .yoyaku a {
	background:#0c933c;
	width:8.5rem;
	color:#fff;
	display:block;
	text-align:center;
}
#header .yoyaku a:hover { opacity:.5; }
#header .yoyaku a .jp {
	display:block;
	font-size:max(15px, 1rem);
	margin-top:.3rem;
}
#header .yoyaku a .en {	font-size:max(12px, .8rem); }





/* =================== */
/*         footer      */
/* =================== */
#footer {	padding:6rem 0 0; }
#footer .foot-in { align-items:flex-start; }
#footer .foot-logo { width:11.4rem; }
#footer .foot-nav {
	flex-wrap:wrap;
	align-items:initial;
	width:37rem;
}
#footer .foot-nav li {
	width:calc((100% - 2rem) / 2);
	border-bottom:1px solid #e5e5e5;
}
#footer .foot-nav li.t-line { border-top:1px solid #e5e5e5; }
#footer .foot-nav li a {
	display:block;
	padding:.5rem 2rem .5rem 1rem;
	position:relative;
}
#footer .foot-nav li a::after {
	content:"→";
	color:#0c933c;
	position:absolute;
	right:1rem;
	top:0;
	bottom:0;
	margin:auto 0;
	height:1em;
	transition:0.5s ease all;
}
#footer .foot-nav li a:hover::after { right:.8rem; }
#footer .foot-nav li .jp {
	display:block;
	font-size:max(15px, 1rem);
	margin-top:.3rem;
}
#footer .foot-nav li .en {
	color:#0c933c;
	font-size:max(12px, .8rem);
}
#footer .foot-nav li.menu1 { order:1; }
#footer .foot-nav li.menu2 { order:3; }
#footer .foot-nav li.menu3 { order:5; }
#footer .foot-nav li.menu4 { order:7; }
#footer .foot-nav li.menu5 { order:2; }
#footer .foot-nav li.menu6 { order:4; }
#footer .foot-nav li.menu7 { order:6; }
#footer address {
	line-height:1.5;
	font-size:max(15px, 1rem);
}
#footer .copy {
	font-size:max(13px, .7rem);
	align-items:center;
	justify-content:center;
	margin-top:5rem;
	background:#0c933c;
	padding:1rem 0;
	color:#fff;
}
#footer .copy .btn { margin-left:1rem; width:2.2rem; min-width:30px; }
#footer #pagetop {
  width:3.5rem;
  position:fixed;
  top:auto;
  bottom:1.5rem;
  right:1.5rem;
  z-index:300;
  line-height:0;
}
#footer #pagetop a:hover { opacity:.7; }






/* =================== */
/*      body.index     */
/* =================== */
aside#plan-bnr { margin-top:6rem; }
aside#plan-bnr a:hover { opacity:.5; }

body.index #service-sec {
	background:#b6cb62;
	padding-top:15rem;
	margin-top:-10rem;
	padding-bottom:3.5rem;
}
body.index #service-sec .line-animation {
  display: flex;
  gap: 6px;
  width: 10rem;
  margin:1rem auto 2rem;
}
body.index #service-sec .line-animation span {
  flex: 1;
  height: 7px;
  background: #fff;

  /* 平行四辺形 */
  clip-path: polygon(
    15% 0,
    100% 0,
    85% 100%,
    0 100%
  );

  opacity: 0;
  transform: scaleX(0);
  transform-origin: left center;

  animation: lineLoop 1.8s infinite;
}

/* 1個ずつタイミングをずらす */
body.index #service-sec .line-animation span:nth-child(1) { animation-delay: 0s; }
body.index #service-sec .line-animation span:nth-child(2) { animation-delay: 0.15s; }
body.index #service-sec .line-animation span:nth-child(3) { animation-delay: 0.30s; }
body.index #service-sec .line-animation span:nth-child(4) { animation-delay: 0.45s; }
body.index #service-sec .line-animation span:nth-child(5) { animation-delay: 0.60s; }
body.index #service-sec .line-animation span:nth-child(6) { animation-delay: 0.75s; }
body.index #service-sec .line-animation span:nth-child(7) { animation-delay: 0.90s; }
body.index #service-sec .line-animation span:nth-child(8) { animation-delay: 1.05s; }

@keyframes lineLoop {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }

  8% {
    opacity: 1;
    transform: scaleX(1);
  }

  75% {
    opacity: 1;
    transform: scaleX(1);
  }

  /* 一瞬で消す */
  76%,
  100% {
    opacity: 0;
    transform: scaleX(0);
  }
}

body.index #service-sec h2 { text-align:center; }
body.index #service-sec h2 .en {
	font-size:max(13px, 1.25rem);
	display:block;
}
body.index #service-sec h2 .jp {
	font-size:2.5rem;
	font-weight:bold;
	color:#ec4040;
	margin-top:.75rem;
	display:block;
}
body.index #service-sec ul {
	flex-wrap:wrap;
	justify-content:center;
}
body.index #service-sec ul li {
	width:calc((100% - 4.5rem) / 4);
	margin-right:1.5rem;
}
body.index #service-sec ul li:nth-child(4) { margin-right:0; }
body.index #service-sec ul li:last-child { margin-right:0; }

body.index #about-sec { margin:7rem auto 6rem; }
body.index #about-sec .pic-box {
	width:29rem;
	position:relative;
	order:2;
}
body.index #about-sec .pic-box .copy {
	width:12.25rem;
	position:absolute;
	left:-3.5rem;
	top:-7rem;
}
body.index #about-sec .txt-box {
	order:1;
	margin-left:4.5rem;
}
body.index #about-sec .txt-box h3 {
	padding:.75rem 0 .75rem 1rem;
	border-left:.5rem solid #0c933c;
}
body.index #about-sec .txt-box h3 .en {
	font-size:max(13px, 1.25rem);
	display:block;
}
body.index #about-sec .txt-box h3 .jp {
	font-size:max(20px, 1.75rem);
	display:block;
	margin-top:.5rem;
	font-weight:bold;
}
body.index #about-sec .txt-box .txt {
	font-size:max(15px, 1rem);
	line-height:1.75;
	margin-top:3rem;
	margin-left:2rem;
}
body.index #about-sec .txt-box .txt .ylw {
	font-weight:bold;
	background:url(../img/ylw_line.png) no-repeat left bottom 3px;
	background-size:100% auto;
}
body.index #about-sec .txt-box .txt .att {
	display:block;
	margin-top:.75rem;
}
body.index #about-sec .txt-box .txt .att .red { color:#ec4040; }

body.index #pickup { align-items:flex-start; }
body.index #pickup section { width:calc((100% - 2rem) / 3); }
body.index #pickup .txt-box {
	padding:1.5rem 1.5rem 0;
	position:relative;
}
body.index #pickup .txt-box h2::after {
	content:"";
	width:7.2rem;
	height:.35rem;
	background:url(../img/grn_line.png) no-repeat;
	background-size:cover;
	display:block;
	margin-top:.75rem;
}
body.index #pickup .txt-box h2 .en {
	font-size:max(13px, 1.25rem);
	display:block;
}
body.index #pickup .txt-box h2 .jp {
	color:#0c933c;
	font-size:max(20px, 1.75rem);
	display:block;
	margin-top:.5rem;
	line-height:1.4;
	font-weight:bold;
}
body.index #pickup .pic { overflow:hidden; line-height:0; }
body.index #pickup .pic img { transition:0.5s ease all; }
body.index #pickup .on .pic img { transform:scale(1.05); }
body.index #pickup1 .sub {
	width:12rem;
	position:absolute;
	top:-6.5rem;
	right:1rem;
}

.view-more a {
	width:21rem;
	display:block;
	border:1px solid #0c933c;
	border-radius:100vmax;
	line-height:3.5rem;
	text-align:center;
	font-size:1.5rem;
	position:relative;
	margin:2rem auto 0;
}
.view-more a .arrow {
	font-size:1.25rem;
	font-weight:bold;
	width:2.25rem;
	line-height:2.5rem;
	height:2.25rem;
	background:#0c933c;
	color:#fff;
	border-radius:100vmax;
	display:block;
	position:absolute;
	right:1.5rem;
	top:.625rem;
	transition:0.5s ease all;
}
.view-more a .txt { padding-right:.5rem; }
.view-more a:hover .arrow { right:1.3rem; }


@media screen and (max-width: 1200px) {
	#header #main-nav .nav li { padding:0 .5rem; }
	body.index #about-sec .txt-box { margin-left:0; }
}

@media screen and (max-width: 960px) {
	.sp-on { display:initial; }
	.pc-on { display:none; }

	.in-w80 { width:86.6%; }
	.in-w85 { width:93.3%; }
	.in-w75 { width:86.6%; }
	.in-w60 { width:86.6%; }

	html { scroll-padding-top:80px; }

	.fadein { transform:translate(0, 0); opacity:1; transition:none; }
	.center-fade img { transform:translate(0, 0); opacity:1; transition:none; }


	.kv-box { height:auto; width:93.3%; }
	#header .nav-box { height:auto; }
	#header .head-in { width:100%; }
	#header .site-logo { transition:none; width:101px; margin-left:calc((100% - 93.3%) / 2); }
	#header #main-nav { display:none; }
	#header.open .nav-wrap { display:block; margin-top:0; background:#fff; width:100%; height:100dvh; position:fixed; top:0; left:0; padding-top:180px; transition:none; }
	#header #hamburger {
		display:block;
		width:45px;
		height:45px;
		cursor:pointer;
		z-index:10000;
		position:fixed;
		right:calc((100% - 93.3%) / 2);
		top:10px;
		background:#0c933c;
		border-radius:100vmax;
	}
	#header #hamburger .inner_line {
		display:block;
		margin:0 auto;
		width:30px;
		height:2.5px;
		transition:1s;
		background:#fff;
		position:absolute;
		left:7.5px;
		border-radius:100vmax;
	}
	#header #hamburger .inner_line span { transition:all .4s; }
	#header #hamburger #line1 { top:13px; }
	#header #hamburger #line2 { top:21px; }
	#header #hamburger #line3 { top:29px; }
	#header #hamburger.open #line1 { transform:translateY(8px) rotate(-30deg); }
	#header #hamburger.open #line2 { transform:translateY(0px) rotate(30deg); }
	#header #hamburger.open #line3 { display:none; }
	#header.open #main-nav { display:block; }
	#header #main-nav .nav { display:block; padding-right:0; width:275px; margin:0 auto; border-top:1px solid #e5e5e5; }
	#header #main-nav .nav li { padding:0; text-align:left; display:block; border-bottom:1px solid #e5e5e5; border-left:0; margin:0; }
	#header #main-nav .nav li a { display:block; padding:10px 15px; position:relative; }
	#header #main-nav .nav li a::after {
		content: "→";
    color: #0c933c;
    position: absolute;
    right:15px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    height: 1em;
    font-size:15px;
	}
	#header #main-nav .nav li:last-child { border-right:0; }
	#header.open.fixed #hamburger { animation:none; }
	#header.open.fixed .head-in,
	#header.fixed .head-in { animation:none; }
	#header .nav-wrap { transition: none; }
	#header.open .site-logo { width:151px; z-index:1; top:75px; left:0; right:0; margin:0 auto; position:fixed; }
	#header .yoyaku a { width:93.3%; max-height:50px; background:#0c933c; position:fixed; bottom:15px; left:0; right:0; margin:0 auto; }
	#header .yoyaku a img { max-height:50px; width:auto; }

	body.index #service-sec ul { max-width:700px; }
	body.index #about-sec .txt-box { width:calc(100% - 29rem - 7rem); }
	body.index #about-sec .txt-box h3 .jp { line-height:1.25; }
	body.index #pickup { display:block; width:86.6%; padding:0 20px; max-width:700px; }
	body.index #pickup section { width:100%; margin-bottom:40px; }

	#footer { padding:30px 0 80px; }
	#footer .foot-in { width:86.6%; flex-wrap:wrap; }
	#footer .foot-logo { order:1; margin:0 auto 20px; }
	#footer address { width:100%; order:3; text-align:center; margin-top:40px; }
	#footer .foot-nav { width:100%; order:2; }
	#footer .copy { margin-top:25px; }
	#footer #pagetop { bottom:100px; right:5px; }
}


@media screen and (max-width: 750px) {
	#footer .foot-nav { display:block; }
	#footer .foot-nav li { width:275px; margin:0 auto; }
	#footer .foot-nav li a { padding:10px 15px; }
	#footer .foot-nav li a::after { right:15px; }
	#footer .foot-nav li.t-line { border-top:0; }

	body.index #pickup1 .sub { width:11.25rem; right:7px; top:-60px; }
	body.index #about-sec { margin-top:110px; }
	body.index #about-sec > .flex-box { display:block; padding:0 20px; }
	body.index #about-sec .txt-box { width:100%; margin-top:25px; }
	body.index #about-sec .txt-box .txt { line-height:1.66; }
	body.index #about-sec .pic-box .copy { left:5px; }
	body.index #about-sec .pic-box { width:100%; }
	body.index #service-sec { padding:130px 0 15px; }
	body.index #service-sec ul { padding:0 20px; justify-content:flex-start; }
	body.index #service-sec ul li { width:calc((100% - 15px) / 2); margin-bottom:15px; }
	body.index #service-sec ul li:nth-child(2n) { margin-right:0; }
}



