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
-------------------------------------------------------------- */
.tabletsp {
	display:none !important;
}
.tablet {
	display:none !important;
}
.sp {
	display:none !important;
}

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

/* =ヘッダー
-------------------------------------------------------------- */
header {
	width:100%;
	padding:4rem 5%;
	display: grid;
	grid-template-columns: 19.5rem 1fr;
	column-gap: 3rem;
	align-items: center;
}
header .logo {
	width:100%;
}
header .hamburger {
	display: none;
}
header .navigation {
	width:100%;
}
header .navigation .global {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
header .navigation .global .g-menu {
	margin:0 0 0 5rem;
}
header .navigation .global .g-menu a {
	display: block;
	font-size:2rem;
	font-weight: 600;
	color:var(--color-2);
	padding:0.5rem 0;
	position: relative;
}
header .navigation .global .g-menu a::after {
	content:'';
	position: absolute;
	bottom:0;
	left:0;
	width:100%;
	height:1px;
	background: var(--color-2);
	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:1rem 4rem;
	color:#FFF;
	border-radius: 4rem;
	transition: background .3s ease;
}
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: clamp(60rem, 50vw, 90rem);
	display: flex;
	font-size:clamp(7rem, 5.5vw, 10rem);
	font-weight: 900;
	line-height: 1.3em;
	letter-spacing: 0.05em;
	justify-content: center;
	flex-wrap: wrap;
}
.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:90%;
	aspect-ratio: 2 / 1;
	border-radius: 9rem 9rem 0 0;
	overflow: hidden;
	margin:7rem auto 0;
	position: relative;
}
.mv .thumb img {
	width:100%;
	height:auto;
	object-fit: cover;
}
.mv .thumb .lead {
	position: absolute;
	bottom:6rem;
	left:5%;
}
.mv .thumb h2 {
	font-size: clamp(5rem, 3.6vw, 6.8rem);
	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 1.5rem 0;
}
.mv .mv_label {
	position: absolute;
	top:0;
	right:5%;
	background: var(--color-3);
	border-radius: 50%;
	width:22rem;
	height:22rem;
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	flex-wrap: wrap;
}
.mv .mv_label .txt1,
.mv .mv_label .txt2 {
	font-size: clamp(2.4rem, 1.8vw, 3.4rem);
	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: clamp(6rem, 4.4vw, 8rem);
	font-weight: 600;
}
/* section2 */
.sub_mv {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	align-items: center;
	margin:0 10%;
	padding:7rem 0;
}
.sub_mv .left .txt1 {
	font-size: clamp(4rem, 3.2vw, 6rem);
	font-weight: 900;
	line-height: 1.3em;
}
.sub_mv .left .txt1 span {
	display: block;
	width: fit-content;
}
.sub_mv .right {
	text-align: right;
}
.sub_mv .right .txt2 {
	font-size:clamp(2rem, 1.8vw, 2.8rem);
	font-weight: 500;
}
.sub_mv .right .txt3 {
	padding:3rem 0 0 0;
	font-size:1.4rem;
}
/* section3 */
.list_thumb {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	column-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 10%;
	padding:7rem 0;
}
.lead2 .txt1 {
	font-size:clamp(4rem, 3vw, 5rem);
	font-weight: 900;
	color:var(--color-2);
}
.lead2 .txt1 span {
	display: block;
	width: fit-content;
}
.lead2 .txt2 {
	font-size:clamp(1.8rem, 1vw, 2rem);
	color:var(--color-2);
	line-height: 1.8em;
	padding:4rem 0 0 0;
}
/* section4 */
.nayami {
	background-color: var(--color-4);
}
.nayami .inner {
	padding:14rem 10%;
}
.nayami .txt1 {
	font-size:clamp(2.2rem, 1.5vw, 2.8rem);
	text-align: center;
}
.nayami .txt2 {
	font-size:clamp(4rem, 3vw, 5rem);
	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: repeat(3,1fr);
	column-gap: 4rem;
	padding:7rem 0 0 0;
}
.nayami_list .box {
	background-color: var(--color-5);
	padding:4rem;
	border-radius: 2rem;
}
.nayami_list .box .txt3 {
	font-size:clamp(1.8rem, 1vw, 2rem);
	color:var(--color-4);
	padding:0 0 0 2rem;
	position: relative;
}
.nayami_list .box .txt3::after {
	content:'';
	position: absolute;
	top:50%;
	left:0;
	width:1rem;
	height:1rem;
	margin:-0.5rem 0 0 0;
	background-color: var(--color-4);
	border-radius: 50%;
}
.nayami_list .box .txt4 {
	font-size:clamp(2.2rem, 1.5vw, 2.8rem);
	font-weight: 600;
	color:#FFF;
	padding:3rem 0;
}
.nayami_list .box .txt5 {
	font-size:clamp(1.6rem, 1vw, 1.8rem);
	font-weight: 300;
	color:#FFF;
	line-height: 2em;
}
/* section5 */
.top_portfolio {
	padding:7rem 0;
	overflow-x: hidden;
}
.scroll_x {
	width:240%;
	display: grid;
	grid-template-columns: repeat(8,1fr);
	column-gap: 3rem;
}
.opposit {
	width:270%;
	display: grid;
	grid-template-columns: repeat(9,1fr);
	column-gap: 3rem;
	margin:0 0 0 -100%;
}
.top_portfolio .inner {
	padding:14rem 0;
}
.top_portfolio .inner p {
	font-size:clamp(4rem, 3vw, 5rem);
	font-weight: 900;
	color:var(--color-2);
	text-align: center;
}
.more {
	width:clamp(32rem, 100%, 50rem);
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-3);
	border-radius: 1rem;
	color:#FFF;
	font-size:2.4rem;
	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;
}
/* section6 */
.top_staff {
	padding:14rem 10%;
	display: grid;
	grid-template-columns: repeat(2,1fr);
	align-items: center;
	column-gap: 4rem;
	background:#FFF;
}
.top_staff .left {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}
.top_staff .left .ti_en {
	font-size:clamp(1.6rem, 1vw, 2rem);
	color: var(--color-6);
}
.top_staff .left .ti_jp {
	font-size:clamp(3.8rem, 2.4vw, 4.4rem);
	font-weight: 900;
	padding:4rem 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%;
	height:110svh;
	background:url(../img/bg2.webp) no-repeat center center;
	background-size: cover;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding:0 10%;
}
.kanou_bunya .thumb {
	display: none;
}
.kanou_bunya .inner {
	width:clamp(60rem, 100%, 80rem);
	height:85svh;
	background: rgba(255,255,255,0.7);
	padding:6rem;
	border-radius: 6rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}
.kanou_bunya .inner .txt1 {
	font-size:clamp(3.8rem, 2.4vw, 4.6rem);
	font-weight:900;
	color:var(--color-3);
}
.kanou_bunya .inner .txt1 span {
	display: block;
	width: fit-content;
}
.kanou_bunya .inner .txt2 {
	font-size:clamp(1.8rem, 1vw, 2rem);
	line-height: 2em;
	padding:4rem 0;
}
.bunya_list {
	display: grid;
	grid-template-columns: repeat(3,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;
}

/* =page
-------------------------------------------------------------- */
.page_title {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	font-size:clamp(4.8rem, 3vw, 5.5rem);
	font-weight: 900;
}
.page_title span {
	display: block;
	width: fit-content;
}
.page_title_sub {
	text-align: center;
	font-size:clamp(1.8rem, 1vw, 2rem);
	padding:3rem 0 0 0;
}
.portfolio_slide {
	overflow-x: hidden;
	padding:7rem 0;
}
.portfolio_slide .inner {
	width:180%;
	display: grid;
	grid-template-columns: repeat(6,1fr);
	align-items: center;
	column-gap: 5rem;
}
/* portfolio */
.portfolio_wrap {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 5rem;
	padding:7rem 10%;
}
.portfolio_wrap .box {
	background: #FFF;
	border-radius: 3rem;
	padding:5rem;
	display: grid;
	grid-template-columns: 6fr 4fr;
	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:2rem;
	left:2rem;
	z-index:10;
	width:fit-content;
	padding:1rem 2rem;
	background: rgba(0,0,0,0.7);
	color:#FFF;
	border-radius: 0.6rem;
	font-size:clamp(1.8rem, 1vw, 2rem);
	font-weight: 700;
}
.tag_af {
	position: absolute;
	bottom:2rem;
	right:2rem;
	z-index:10;
	width:fit-content;
	padding:1rem 2rem;
	background: rgba(0,0,0,0.7);
	color:#FFF;
	border-radius: 0.6rem;
	font-size:clamp(1.8rem, 1vw, 2rem);
	font-weight: 700;
}
.portfolio_wrap .box .right {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
.portfolio_wrap .box .right .txt1 {
	font-size:clamp(3rem, 2.2vw, 4rem);
	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:1rem 2.5rem;
	background: var(--color-3);
	color:#FFF;
	font-size:clamp(1.8rem, 1vw, 2rem);
	font-weight: 600;
	border-radius: 0.8rem;
	margin:2.5rem 0;
}
.portfolio_wrap .box .right .txt3 {
	font-size:clamp(1.8rem, 1vw, 2rem);
	line-height: 1.8em;
}

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

/* aboutus */
.aboutus {
	padding: 7rem 10%;
	display: grid;
	grid-template-columns: repeat(2,1fr);
	column-gap: 10rem;
}
.aboutus .text {
	display: grid;
	grid-template-columns: 12rem 1fr;
	column-gap: 2rem;
	row-gap: 2rem;
}
.aboutus .text .head {
	font-size: clamp(1.8rem, 1vw, 2.2rem);
	font-weight: bold;
	line-height: 1.8em;
}
.aboutus .text .cont {
	font-size: clamp(1.8rem, 1vw, 2.2rem);
	line-height: 1.8em;
}

/* staff */
.stafflist {
	padding: 7rem 10%;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	column-gap: 7rem;
	row-gap: 7rem;
}
.stafflist .box {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 2rem;
}
.stafflist .box .yakushoku {
	font-size: clamp(1.8rem, 1vw, 2rem);
}
.stafflist .box .name {
	font-size: clamp(2.5rem, 1.4vw, 3rem);
}

/* area */
.area {
	padding: 7rem 10%;
}
.area_box {
	display: grid;
	grid-template-columns: 4fr 6fr;
	column-gap: 7rem;
	align-items: center;
	background: #FFF;
	border-radius: 3rem;
	padding:5rem;
}
.area .text .area_title {
	font-size:clamp(3.2rem, 2.5vw, 4rem);
	font-weight: bold;
}
.area .text .area_title span {
	display: block;
	width: fit-content;
}
.area .text .area_text {
	font-size: clamp(1.8rem, 1vw, 2rem);
	line-height: 2em;
	padding:4rem 0 0 0;
}

/* contact */
.contact {
	padding: 7rem 10%;
}
.contact_wrap {
	display: grid;
	grid-template-columns: 65fr 35fr;
	column-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: repeat(2,1fr);
	column-gap: 4rem;
	row-gap: 3rem;
}
.contact_wrap .form .box.long {
	grid-column: span 2;
}
.contact_wrap .form .formname {
	font-size:clamp(1.8rem, 1vw, 2rem);
	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:clamp(1.8rem, 1vw, 2rem);
	border:none;
}
.contact_wrap .form .wpcf7-checkbox .wpcf7-list-item-label {
	font-size:clamp(1.8rem, 1vw, 2rem);
	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:2.4rem;
	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: 7rem 10%;
}
.bloglist .inner {
	display: grid;
	grid-template-columns: 1fr;
	gap:5rem;
}
.bloglist .inner article a {
	display: grid;
	grid-template-columns: 3fr 7fr;
	column-gap: 6rem;
	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: 3rem;
}
.bloglist .inner article a .text time {
	font-size:clamp(1.8rem, 1vw, 2rem);
	color:var(--color-2);
}
.bloglist .inner article a .text .title {
	font-size:clamp(2.4rem, 1.5vw, 2.8rem);
	font-weight: bold;
	color:var(--color-2);
	line-height: 1.5em;
}
.bloglist .inner article a .text .excerpt {
	font-size:clamp(1.8rem, 1vw, 2rem);
	color:var(--color-2);
	line-height: 1.8em;
}

/* =single
-------------------------------------------------------------- */
.singlewrap {
	width:clamp(65rem,90%,100rem);
	margin:0 auto;
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 3rem;
}
.singlewrap .time {
	font-size:clamp(2.2rem, 1.4vw, 2.5rem);
}
.singlewrap h1.post_title {
	font-size:clamp(3.8rem,2.5vw, 4.6rem);
	font-weight: 900;
	line-height: 1.5em;
}
.single h2,
.otherposttitle {
	display: block;
	font-size:clamp(3rem,2vw,3.6rem);
	font-weight: 700;
	padding:2rem 3rem;
	background: var(--color-3);
	color:#FFF;
	border-radius: 1rem;
	margin:0 0 7rem 0;
}
.single h3 {
	display: block;
	font-size:clamp(3rem,2vw,3.6rem);
	font-weight: 700;
	padding:2rem 3rem;
	color:var(--color-3);
	border-bottom:1px solid var(--color-3);
	margin:0 0 7rem 0;
	position: relative;
}
.single h4 {
	display: block;
	font-size:clamp(3rem,2vw,3.6rem);
	font-weight: 700;
	padding:0 3rem;
	color:var(--color-2);
	margin:0 0 7rem 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:clamp(1.8rem, 1vw, 2rem);
	line-height: 2em;
	margin:0 0 7rem 0;
}

/* =footer
-------------------------------------------------------------- */
.top_contact {
	padding:7rem 15% 0;
	border-bottom:1px solid rgba(0,0,0,0.1);
}
.top_contact .inner {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	column-gap: 5rem;
}
.top_contact .left .txt1 {
	font-size:clamp(5rem, 3.2vw, 6rem);
	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 10%;
	width:100%;
	position: relative;
}
.foot_inner {
	display: grid;
	grid-template-columns: 2fr 2fr 1fr;
	column-gap: clamp(10rem, 8vw, 15rem);
	row-gap: 5rem;
}
.foot_inner .foot_logo {
	grid-column: span 3;
}
.foot_inner .foot_logo a {
	display: block;
	width:28rem;
}
.foot_inner .foot_ti {
	font-size:clamp(2.4rem, 1.6vw, 3rem);
	font-weight: 700;
}
.foot_inner .foot_wrap {
	padding:3.5rem 0 0 0;
}
.foot_wrap{ height:auto !important; overflow:visible; }
.foot_inner .foot_wrap .txt,
.foot_inner .foot_wrap .txt2 {
	font-size:clamp(1.6rem, 0.85vw, 1.8rem);
	line-height: 2em;
}
.foot_inner .foot_wrap .txt1 {
	font-size:clamp(1.8rem, 1.1vw, 2.2rem);
	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:clamp(1.8rem, 1.1vw, 2.2rem);
	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;
}