html {
	font-size: 62.5%; /* 10px */
	scroll-behavior: auto !important;
	overscroll-behavior: none;
}
body, body *, body *::before, body *::after {
	outline:none;
	user-select: none;
}
/* =root
-------------------------------------------------------------- */
:root {
	--color-1: #f4f3ed;
	--color-2: #212121;
	--color-3: #008836;
	--color-4: #c1d8b2;
	--color-5: #6b7c60;
	--color-6: #565656;
	--easing: cubic-bezier(.2, 1, .2, 1);
	--transition: .8s var(--easing);
	--circumference: 100;
}
/* =body
-------------------------------------------------------------- */
body {
	background:var(--color-1);
	color:var(--color-2);
	font-family:'General Sans',"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	position: relative;
}
#container *, #container *::after, #container *::before {
	-webkit-box-sizing: border-box;
	   -moz-box-sizing: border-box;
	        box-sizing: border-box;
}
img {
	display: block;
	width:100%;
	height:auto;
}

/* =responsive
-------------------------------------------------------------- */
.pc {
	display:none;
}
.pctablet {
	display:none;
}
.tablet {
	display:none;
}

/* =structure
-------------------------------------------------------------- */
#container {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 3rem;
	overflow: hidden;
	width:100%;
	position: relative;
}
.contents {
	padding: 0 6%;
}

/* =ヘッダー
-------------------------------------------------------------- */
header {
	width:100%;
	padding:2rem 5%;
	display: grid;
	grid-template-columns: 1fr 5rem;
	column-gap: 3rem;
	align-items: center;
}
header .logo {
	width:10rem;
}
header .hamburger {
	width:5rem;
	height:5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	align-content: center;
	position: relative;
	z-index:1001;
}
header .hamburger{ cursor:pointer; }
header .hamburger .line {
	width:3.6rem;
	height:2px;
	background: var(--color-3);
}
header .hamburger .line1 {
	margin:0 0 0.6rem;
}
header .hamburger .line3 {
	margin:0.6rem 0 0;
}
header .navigation {
	display:flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	opacity: 0;
	position:fixed;
    inset:0;
	user-select: none;
	visibility: hidden;
	pointer-events: none;
	width:100%;
	z-index:1000;
	background-color: var(--color-3);
}
body.nav-open header .hamburger .line {
	background:#FFF;
}
body.nav-open header .hamburger .line1 {
	margin:0 0 1rem 0;
}
body.nav-open header .hamburger .line3 {
	margin:0.5rem 0 0 0;
}
body.nav-open header .navigation {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transform:none;
	transition: opacity .25s ease, transform .25s ease, visibility 0s;
}
/* スクロール禁止 */
body.nav-open{ overflow:hidden; }
/* ハンバーガー → X 変形（任意で調整） */
.hamburger.active .line1{
	transform: translateY(10px) rotate(45deg);
	transition: transform .2s ease;
}
.hamburger.active .line2{
	opacity:0; transition: opacity .2s ease;
}
.hamburger.active .line3{
	transform: translateY(-10px) rotate(-45deg);
	transition: transform .2s ease;
}
header .navigation .global {
	width:80%;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}
header .navigation .global .g-menu {
	width: 100%;
}
header .navigation .global .g-menu a {
	display: block;
	font-size:2rem;
	font-weight: 600;
	color:#FFF;
	padding:1rem 0;
	position: relative;
}
header .navigation .global .g-menu a::after {
	content:'';
	position: absolute;
	bottom:0;
	left:0;
	width:100%;
	height:1px;
	background: #FFF;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform .3s ease;
}
header .navigation .global .g-menu a:hover::after {
	transform: scaleX(1);
	transform-origin: left center;
}
header .navigation .global .g-menu.request a {
	display: block;
	font-size:2rem;
	font-weight: 600;
	background:var(--color-2);
	padding:1.5rem 4rem;
	color:#FFF;
	border-radius: 1rem;
	transition: background .3s ease;
	margin:1.5rem 0 0 0;
}
header .navigation .global .g-menu.request a:hover {
	background: var(--color-3);
}
header .navigation .global .g-menu.request a::after {
	content:none;
}

/* =トップ
-------------------------------------------------------------- */
.mv {
	display: flex;
	justify-content: center;
	align-items: start;
	flex-wrap: wrap;
	position: relative;
}
.mv h1 {
	width: 90%;
	font-size:2.5rem;
	font-weight: 900;
	line-height: 1.3em;
	letter-spacing: 0.05em;
}
.mv h1 span {
	display: block;
	width: fit-content;
}
.core {
	overflow: hidden;
}
.in {
	transform: translateY(100%);
}
.active .in {
	animation: move-y 1s ease forwards;
}
@keyframes move-y {
	0% {
		transform: translateY(100%);
	}
	100% {
		transform: translateY(0);
	}
}
.mv .thumb {
	width:96%;
	aspect-ratio: 4 / 3;
	border-radius: 1.2rem 1.2rem 0 0;
	overflow: hidden;
	margin:5rem auto 0;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}
.mv .thumb img {
	width:120%;
	height:120%;
	object-fit: cover;
}
.mv .thumb .lead {
	position: absolute;
	bottom:1.5rem;
	left:5%;
	z-index:10;
}
.mv .thumb h2 {
	font-size: 2rem;
	font-weight: 900;
	color: var(--color-3);
}
.mv .thumb h2 span {
	display: block;
	width: fit-content;
	padding:0.5rem 1rem;
	background-color: #FFF;
	margin:0 0 1rem 0;
}
.mv .mv_label {
	position: absolute;
	top:-2.5rem;
	right:5%;
	background: var(--color-3);
	border-radius: 50%;
	width:10rem;
	height:10rem;
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	flex-wrap: wrap;
}
.mv .mv_label .txt1,
.mv .mv_label .txt2 {
	font-size: 1.6rem;
	font-weight: 900;
	line-height: 1.1em;
	letter-spacing: 0.05em;
	color:#FFF;
}
.mv .mv_label .txt2 {
	padding:1rem 0 0 0;
}
.mv .mv_label .txt2 span {
	font-size: 4rem;
	font-weight: 600;
}
/* section2 */
.sub_mv {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	row-gap: 3rem;
	margin:0 6%;
	padding:5rem 0;
}
.sub_mv .left .txt1 {
	font-size: 2.4rem;
	font-weight: 900;
	line-height: 1.3em;
}
.sub_mv .left .txt1 span {
	display: block;
	width: fit-content;
}
.sub_mv .right {
	text-align: left;
}
.sub_mv .right .txt2 {
	font-size:1.8rem;
	font-weight: 500;
}
.sub_mv .right .txt3 {
	padding:3rem 0 0 0;
	font-size:1rem;
}
/* section3 */
.list_thumb {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 1rem;
	row-gap: 1rem;
	padding:0 5%;
}
.list_thumb .thumb {
	aspect-ratio: 1 / 1;
	width:100%;
	overflow: hidden;
}
.list_thumb .thumb img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.lead2 {
	margin:0 5%;
	padding:0 0 5rem 0;
}
.lead2 .txt1 {
	font-size:2rem;
	font-weight: 900;
	color:var(--color-2);
}
.lead2 .txt1 span {
	display: block;
	width: fit-content;
}
.lead2 .txt2 {
	font-size:1.5rem;
	color:var(--color-2);
	line-height: 1.8em;
	padding:3rem 0 0 0;
}
/* section4 */
.nayami {
	background-color: var(--color-4);
}
.nayami .inner {
	padding:7rem 5%;
}
.nayami .txt1 {
	font-size:1.4rem;
	text-align: center;
}
.nayami .txt2 {
	font-size:2.4rem;
	font-weight: 900;
	text-align: center;
	padding:1rem 0 0 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.nayami .txt2 span {
	display: block;
	width: fit-content;
}
.nayami_list {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 2rem;
	padding:4rem 0 0 0;
}
.nayami_list .box {
	background-color: var(--color-5);
	padding:3rem;
	border-radius: 2rem;
}
.nayami_list .box .txt3 {
	font-size:clamp(1.8rem, 3.2vw, 2.4rem);
	color:var(--color-4);
	padding:0 0 0 1.5rem;
	position: relative;
}
.nayami_list .box .txt3::after {
	content:'';
	position: absolute;
	top:50%;
	left:0;
	width:0.6rem;
	height:0.6rem;
	margin:-0.3rem 0 0 0;
	background-color: var(--color-4);
	border-radius: 50%;
}
.nayami_list .box .txt4 {
	font-size:2.4rem;
	font-weight: 600;
	color:#FFF;
	padding:2rem 0;
}
.nayami_list .box .txt5 {
	font-size:1.5rem;
	font-weight: 300;
	color:#FFF;
	line-height: 2em;
}
/* section5 */
.top_portfolio {
	padding:5rem 0;
	overflow-x: hidden;
}
.scroll_x {
	width:480%;
	display: grid;
	grid-template-columns: repeat(8,1fr);
	column-gap: 1rem;
}
.opposit {
	width:540%;
	display: grid;
	grid-template-columns: repeat(9,1fr);
	column-gap: 1rem;
	margin:0 0 0 -100%;
}
.top_portfolio .inner {
	padding:7rem 0;
}
.top_portfolio .inner p {
	font-size:1.8rem;
	font-weight: 900;
	color:var(--color-2);
	text-align: center;
}
.more {
	width:100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-3);
	border-radius: 1rem;
	color:#FFF;
	font-size:1.8rem;
	font-weight: 700;
	padding:2rem 0;
	margin:3.5rem auto 0;
	transition: background .4s ease;
}
.more:hover {
	background: var(--color-2);
}
.more.btn {
	background: var(--color-2);
	margin:1rem 0 0 0;
}
.top_portfolio .inner .more {
	width:80%;
}
/* section6 */
.top_staff {
	padding:7rem 5%;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	column-gap: 4rem;
	row-gap: 4rem;
	background:#FFF;
}
.top_staff .left {
	order:1;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}
.top_staff .left .inner {
	width: 100%;
}
.top_staff .right {
	order:0;
}
.top_staff .left .ti_en {
	font-size:1.6rem;
	color: var(--color-6);
}
.top_staff .left .ti_jp {
	font-size:2.4rem;
	font-weight: 900;
	padding:3rem 0;
}
.top_staff .left .ti_jp span {
	display: block;
	width: fit-content;
}
.imgshown {
	clip-path: inset(100% 0 0 0);
	transition: clip-path 1s ease;
}
.active .imgshown {
	clip-path: inset(0 0 0 0);
}
.top_staff a {
	margin:3.5rem 0 0 0;
}
/* section7 */
.kanou_bunya {
	width:100%;
}
.kanou_bunya .thumb {
	width:100%;
	aspect-ratio: 16 / 9;
}
.kanou_bunya .thumb img {
	width:100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 16 / 9;
}
.kanou_bunya .inner {
	width:100%;
	background: #FFF;
	padding:3rem 5% 5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}
.kanou_bunya .inner .txt1 {
	font-size:2.4rem;
	font-weight:900;
	color:var(--color-3);
}
.kanou_bunya .inner .txt1 span {
	display: block;
	width: fit-content;
}
.kanou_bunya .inner .txt2 {
	font-size: 1.5rem;
	line-height: 2em;
	padding:3rem 0;
}
.bunya_list {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	column-gap: 1rem;
	row-gap: 1rem;
}
.bunya_list .box {
	background: var(--color-3);
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 0.6rem;
	padding:1.5rem;
	color:#FFF;
	font-size:1.8rem;
}
.bunya_list .box.long {
	grid-column: span 2;
}
.bunya_list .box1 {order: 0;}
.bunya_list .box2 {order: 1;}
.bunya_list .box3 {order: 2;}
.bunya_list .box4 {order: 4;}
.bunya_list .box5 {order: 3;}
.bunya_list .box6 {order: 5;}
.bunya_list .box7 {order: 6;}
.bunya_list .box8 {order: 7;}
.bunya_list .box9 {order: 8;}
.bunya_list .box10 {order: 9;}
.bunya_list .box11 {order: 10;}
.bunya_list .box12 {order: 11;}
.bunya_list .box13 {order: 12;}

/* =page
-------------------------------------------------------------- */
.page_title {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	font-size:2.6rem;
	font-weight: 900;
}
.page_title span {
	display: block;
	width: fit-content;
}
.page_title_sub {
	width:90%;
	text-align: left;
	font-size: 1.2rem;
	padding:3rem 0 0 0;
	margin:0 auto;
}
.portfolio_slide {
	overflow-x: hidden;
}
.portfolio_slide .inner {
	width:360%;
	display: grid;
	grid-template-columns: repeat(6,1fr);
	align-items: center;
	column-gap: 1rem;
}
/* portfolio */
.portfolio_wrap {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 3rem;
	padding:3rem 5%;
}
.portfolio_wrap .box {
	background: #FFF;
	border-radius: 3rem;
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 5rem;
}
.portfolio_wrap .box .left {
	position: relative;
}
.ba-slider {
	--pos: 50%;
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #000;
}
.ba-img {
	display: block;
	width: 100%;
	height: auto;
	user-select: none;
	pointer-events: none;
}
.ba-after {
	/* 後ろの画像（フロー要素） */
}
.ba-before {
  position: absolute;
  inset: 0;             /* フルサイズをキープ */
  z-index: 2;
  overflow: hidden;
  /* 左→右にかけて可視領域を%でクリップ */
  clip-path: inset(0 calc(100% - var(--pos)) 0 0);
  -webkit-clip-path: inset(0 calc(100% - var(--pos)) 0 0); /* iOS/Safari 保険 */
}
.ba-handle {
	position: absolute;
	z-index: 5;
	top: 0;
	bottom: 0;
	left: calc(var(--pos) - 12px); /* つまみ幅の半分を引く */
	width: 24px;
	cursor: col-resize;
	background: transparent;
	border: 0;
	padding: 0;
	touch-action: none; /* ドラッグを優先 */
}
/* 縦ライン */
.ba-handle::before {
	content: "";
	position: absolute;
	left: 11px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 0 0 1px rgba(0,0,0,.1);
}
/* 丸いつまみ */
.ba-handle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -16px 0 0 -16px;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: url(../img/bfaf.svg) no-repeat center center #fff;
	background-size: 20px auto;
	box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
/* ドラッグ中の見た目を少しだけ */
.ba-handle:active::after,
.ba-handle:focus-visible::after {
	outline: 2px solid #4a90e2;
}
.tag_bf {
	position: absolute;
	bottom:1rem;
	left:1rem;
	z-index:10;
	width:fit-content;
	padding:0.5rem 1rem;
	background: rgba(0,0,0,0.7);
	color:#FFF;
	border-radius: 0.6rem;
	font-size: 1.4rem;
	font-weight: 700;
}
.tag_af {
	position: absolute;
	bottom:1rem;
	right:1rem;
	z-index:10;
	width:fit-content;
	padding:0.5rem 1rem;
	background: rgba(0,0,0,0.7);
	color:#FFF;
	border-radius: 0.6rem;
	font-size: 1.4rem;
	font-weight: 700;
}
.portfolio_wrap .box .right {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding:3rem 3rem 5rem;
}
.portfolio_wrap .box .right .txt1 {
	font-size:2rem;
	font-weight: 900;
}
.portfolio_wrap .box .right .txt2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	gap:1rem;
}
.portfolio_wrap .box .right .txt2 span {
	display: block;
	width:fit-content;
	padding:0.5rem 2rem;
	background: var(--color-3);
	color:#FFF;
	font-size: 1.5rem;
	font-weight: 600;
	border-radius: 0.4rem;
	margin:2.5rem 0;
}
.portfolio_wrap .box .right .txt3 {
	font-size: 1.5rem;
	line-height: 1.8em;
}

/* flow */
.flowlist {
	padding:2rem 5% 5rem;
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 5rem;
}
.flowlist .box {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 4rem;
	background: #FFF;
	border-radius: 1rem;
	padding:3rem;
	position: relative;
}
.flowlist .box::after {
	content:'';
	position: absolute;
	left:50%;
	bottom:-2rem;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 2rem solid transparent;
	border-left: 2rem solid transparent;
	border-top: 3rem solid #FFF;
	border-bottom: 0;
	margin:0 0 0 -2rem;
}
.flowlist .box.last::after {
	content:none;
}
.flowlist .box_title {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
.flowlist .box_title span {
	display: block;
	width:fit-content;
}
.flowlist .box .num {
	color: var(--color-3);
	font-size:4rem;
	font-weight: 500;
	line-height: 1em;
	padding:0 2rem 0 0;
}
.flowlist .box .label {
	font-size: 2rem;
	font-weight: bold;
	padding:0 0 0.5rem 0;
}
.flowlist .box_contents {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 5rem;
}
.flowlist .box_contents .text {
	font-size: 1.5rem;
	line-height: 2em;
	padding:3rem 0 0 0;
}

/* aboutus */
.aboutus {
	padding: 2rem 5% 5rem;
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 10rem;
}
.aboutus .text {
	display: grid;
	grid-template-columns: 1fr;
	padding:3rem 0 0 0;
}
.aboutus .text .head {
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.8em;
}
.aboutus .text .cont {
	font-size: 1.5rem;
	line-height: 1.8em;
	padding:0 0 2rem 0;
	margin:0 0 2rem 0;
	border-bottom:1px solid var(--color-6);
}

/* staff */
.stafflist {
	padding: 2rem 5% 5rem;
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 5rem;
}
.stafflist .box {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 1rem;
}
.stafflist .box .yakushoku {
	font-size: 1.5rem;
	padding:1rem 0 0 0;
}
.stafflist .box .name {
	font-size: 2rem;
}

/* area */
.area {
	padding: 2rem 5% 5rem;
}
.area_box {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 7rem;
	align-items: center;
	background: #FFF;
	border-radius: 3rem;
	padding:5rem 3rem;
}
.area_box .thumb {
	width:80%;
	margin:0 auto;
}
.area .text .area_title {
	font-size:2.2rem;
	font-weight: bold;
	padding:4rem 0 0 0;
}
.area .text .area_title span {
	display: block;
	width: fit-content;
}
.area .text .area_text {
	font-size: 1.5rem;
	line-height: 2em;
	padding:3rem 0 0 0;
}

/* contact */
.contact {
	padding: 0rem 5% 5rem;
}
.contact_wrap {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 7rem;
}
.contact_wrap .other_contact .txt {
	font-size: clamp(2rem, 1.4vw, 2.6rem);
	font-weight: 700;
	line-height: 2em;
}
.contact_wrap .form {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 1rem;
}
.contact_wrap .form .formname {
	font-size:1.3rem;
	padding:0 0 0.6rem 0;
}
.contact_wrap .form input[type=text],
.contact_wrap .form input[type=email],
.contact_wrap .form input[type=tel],
.contact_wrap .form textarea {
	display: block;
	width:100%;
	background: #FFF;
	padding:1.5rem;
	font-size:1.7rem;
	border:none;
}
.contact_wrap .form .wpcf7-checkbox .wpcf7-list-item-label {
	font-size:1.7rem;
	padding:1rem 0;
}
.contact_wrap .form .wpcf7-checkbox .wpcf7-list-item {
	margin:1rem 0 1rem 2rem;
}
.wpcf7-not-valid-tip {
	display: block;
	width: fit-content;
	font-size:1.4rem;
	padding: 1.5rem 0 0 0;
}
.contact_wrap .form input[type=submit] {
	width:100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-3);
	border-radius: 1rem;
	color:#FFF;
	font-size:2rem;
	font-weight: 700;
	padding:2rem 0;
	border: none;
	cursor: pointer;
	transition: background .4s ease;
}
.contact_wrap .form input[type=submit]:hover {
	background: var(--color-2);
}
.wpcf7-response-output {
	font-size:1.6rem;
}

/* other */
.other {
	padding: 7rem 10%;
}

/* =archive
-------------------------------------------------------------- */
.bloglist {
	padding: 2rem 5% 5rem;
}
.bloglist .inner {
	display: grid;
	grid-template-columns: 1fr;
	gap:8rem;
}
.bloglist .inner article a {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 2rem;
	align-items: center;
}
.bloglist .inner article a figure {
	aspect-ratio: 4 / 3;
}
.bloglist .inner article a figure img {
	width:100%;
	height:100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.bloglist .inner article a .text {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 2rem;
}
.bloglist .inner article a .text time {
	font-size:1.4rem;
	color:var(--color-2);
}
.bloglist .inner article a .text .title {
	font-size:2.2rem;
	font-weight: bold;
	color:var(--color-2);
	line-height: 1.5em;
}
.bloglist .inner article a .text .excerpt {
	font-size:1.4rem;
	color:var(--color-2);
	line-height: 1.8em;
}

/* =single
-------------------------------------------------------------- */
.singlewrap {
	width:100%;
	margin:0 auto;
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 3rem;
	padding:0 5%;
}
.singlewrap .time {
	font-size:1.4rem;
}
.singlewrap h1.post_title {
	font-size:2.5rem;
	font-weight: 900;
	line-height: 1.5em;
}
.single h2,
.otherposttitle {
	display: block;
	font-size:2.1rem;
	font-weight: 700;
	padding:1rem 1.3rem;
	background: var(--color-3);
	color:#FFF;
	border-radius: 0.5rem;
	margin:0 0 4rem 0;
}
.single h3 {
	display: block;
	font-size:2.1rem;
	font-weight: 700;
	padding:1rem 2rem;
	color:var(--color-3);
	border-bottom:1px solid var(--color-3);
	margin:0 0 4rem 0;
	position: relative;
}
.single h4 {
	display: block;
	font-size:2.1rem;
	font-weight: 700;
	padding:0 2rem;
	color:var(--color-2);
	margin:0 0 4rem 0;
	position: relative;
}
.single h3::after,
.single h4::after {
	content:'';
	position: absolute;
	top:50%;
	left:0;
	width:6px;
	height:6px;
	border-radius: 50%;
	background: var(--color-3);
	margin:-3px 0 0 0;
}
.single p {
	font-size:1.5rem;
	line-height: 2em;
	margin:0 0 4rem 0;
}

/* =footer
-------------------------------------------------------------- */
.top_contact {
	padding:5rem 10%;
	border-bottom:1px solid rgba(0,0,0,0.1);
}
.top_contact .inner {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 5rem;
	row-gap:3rem;
}
.top_contact .left {
	order:1;
}
.top_contact .right {
	order:0;
}
.top_contact .right img {
	width:70%;
	margin: 0 auto;
}
.top_contact .left .txt1 {
	font-size:2.4rem;
	font-weight: 900;
	color: var(--color-2);
}
.top_contact .left .txt1 span {
	display: block;
	width: fit-content;
}
.top_contact .left .more {
	margin:3.5rem 0 0 0;
}
.top_contact .left .more.btn {
	margin:1rem 0 0 0;
}
.top_contact .left .more.btn:hover {
	background: var(--color-6);
}
footer {
	padding:7rem 5%;
	width:100%;
	position: relative;
}
.foot_inner {
	display: grid;
	grid-template-columns: 1fr;
}
.foot_inner .foot_logo {
	padding:0 0 5rem 0;
}
.foot_inner .foot_logo a {
	display: block;
	width:12rem;
}
.foot_inner .foot_ti {
	font-size:2rem;
	font-weight: 700;
	border-bottom:1px solid var(--color-2);
	padding:0 0 2rem 0;
	position: relative;
	outline: none;
}
.foot_inner .foot_ti::after {
	content:'';
	position: absolute;
	top:50%;
	right:2rem;
	width:1.2rem;
	height:1.2rem;
	margin:-0.6rem 0 0 0;
	background: url(../img/sign.svg) no-repeat center center;
	background-size: 100% auto;
}
/* 初期状態は閉じる（モバイル/タブレットのみ） */
.foot_wrap{ overflow:hidden; height:0; transition:height .25s ease; }
.foot_ti{ cursor:pointer; }

.foot_inner .foot_wrap  {
	padding:3rem 0 0 0;
}
.foot_inner .box1 .txt {
	padding:0 0 3rem 0;
}
.foot_inner .foot_wrap .txt,
.foot_inner .foot_wrap .txt2 {
	font-size:1.5rem;
	line-height: 2em;
}
.foot_inner .foot_wrap .txt1 {
	font-size:1.5rem;
	font-weight: 700;
}
.foot_inner .foot_wrap .txt2 {
	padding:1rem 0 3rem;
}
.foot_menu_wrap li {
	width: 100%;
}
.foot_menu_wrap li a {
	display: block;
	width:fit-content;
	font-size:1.6rem;
	color:var(--color-2);
	padding:1rem 0 1rem 2rem;
	position: relative;
}
.foot_menu_wrap li a::before {
	content:'';
	position: absolute;
	top:50%;
	left:0.5rem;
	width:4px;
	height:4px;
	border-radius: 50%;
	background: var(--color-2);
}
.foot_menu_wrap li a::after {
	content:'';
	position: absolute;
	bottom:1rem;
	left:0;
	width:100%;
	height:2px;
	transform-origin: right;
	transform: scaleX(0) scaleY(0.5);
	background: var(--color-2);
	transition: transform .4s ease;
} 
.foot_menu_wrap li a:hover::after {
	transform: scaleX(1) scaleY(0.5);
	transform-origin: left;
}
.copyright {
	width:100%;
	font-size:1.6rem;
	text-align: center;
	color: var(--color-2);
	padding:5rem 0 0 0;
}
.copyright a {
	color:var(--color-2);
	position: relative;
	padding:0 0 1.5rem 0;
}

#pagetop {
	position: fixed;
	z-index:80;
	bottom:4rem;
	right:4rem;
	width:6rem;
	height:6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	color:var(--color-1);
	border-radius:50%;
	background:#FFF;
	border: 1px solid var(--color-1);
	font-size:14px;
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease, border .3s ease;
}
#pagetop:hover {
	border:1px solid #FFF;
	background: var(--color-1);
	color:#FFF;
}
.grecaptcha-badge { visibility: hidden; }
.bnr_foot {
	display:none;
}

/* ===== ScrollSmoother OFF（=スマホ/タブレット）での pin 高さ対策 ===== */
/* 動的 1vh を使って、ピン中のコンポーネントが常に実画面ぴったりになるよう補正 */
html:not(.has-smoother) .pin-fill {
  min-height: calc(var(--vh, 1vh) * 100);
}

/* クリッピングで pin が切れないように（transform pin のときに効く） */
html:not(.has-smoother) #container {
  overflow: visible;
  overflow-x: hidden;
}