@charset "utf-8";
/* CSS関数設定 */
:root {
	/* カラーパレット --color-  */
	--c-white: #FFFFFF;
	--c-white-op85: rgba(255, 255, 255, 0.85);
	--c-white-op50: rgba(255, 255, 255, 0.5);
	--c-black: #000000;
	--c-black-op50: rgba(0, 0, 0, 0.5);
	--c-lightblue: #ECF5F6;

	--c-gray-100: #F2F2F2;
	--c-gray-200: #D1D1D1;
	--c-gray-300: #A7A7A7;

	--c-dark-700: #565A64;

	--c-red-500: #dc3b3b;

	--c-pink-300: #ee8899;

	--c-yellow-400: #FBC200;

	/* テキストカラー --text-color- */
	--txt-c-base: var(--c-dark-700);
	--txt-c-white: var(--c-white);

	/* 背景カラー --background-color- */
	--bg-c-gray: var(--c-gray-100);

	/* 共通ボックス影 --box-shadow- */
	--bxsd-default: 0px 0px 15px -5px var(--bg-c-gray);
	--bxsd-bottom: 0px 5px 15px -5px var(--bg-c-gray);

	/* ベース文字間隔 --letter-spacing */
	--ls-default: 0.1em;

	/* フォント --font-family- */
	--ff-base: "Zen Kaku Gothic New", "Yu Gothic", "游ゴシック", "YuGothic", "Hiragino Kaku Gothic ProN", sans-serif;
	--ff-noto: "Noto Sans JP", serif;
	--ff-dec: "Slackside One", cursive;

	/* 英数字フォント --font-family- */
	--ff-en: var(--ff-base);
	--ff-num: var(--ff-base);

	/* フォントウェイト --font-weight- */
	--fw-base: 400;

	/* アニメーション */
	--anime-fade-in: fadeIn .5s ease-in-out 0s forwards;
	--anime-fade-out: fadeOut .5s ease-in-out 0s forwards;

	/* フォントサイズ --font-size */
	--fz-9: clamp(8px, 0.8vw, 9px);
	--fz-10: clamp(8px, 0.8vw, 10px);
	--fz-11: clamp(10px, 1.1vw, 11px);
	--fz-12: clamp(10px, 1.1vw, 12px);
	--fz-13: clamp(11px, 1vw, 13px);
	--fz-14: clamp(12px, 1.2vw, 14px);
	--fz-15: clamp(13px, 1.4vw, 15px);
	--fz-16: clamp(14px, 1.5vw, 16px);
	--fz-18: clamp(15px, 1.6vw, 18px);
	--fz-20: clamp(16px, 1.8vw, 20px);
	--fz-22: clamp(18px, 2vw, 22px);
	--fz-25: clamp(20px, 2vw, 25px);
	--fz-28: clamp(22px, 2.5vw, 28px);
	--fz-30: clamp(25px, 3vw, 30px);
	--fz-35: clamp(25px, 3vw, 35px);
	--fz-38: clamp(30px, 3.5vw, 38px);
	--fz-40: clamp(30px, 3.5vw, 40px);
	--fz-43: clamp(30px, 4vw, 43px);
	--fz-50: clamp(30px, 4vw, 50px);
	--fz-60: clamp(40px, 5vw, 60px);
	--fz-70: clamp(50px, 6vw, 70px);
	--fz-14-const: 14px;
	--fz-15-const: 15px;

	--fz-xs: var(--fz-10); /* extra small */
	--fz-ss: var(--fz-12); /* super small */
	--fz-sm: var(--fz-14); /* small */
	--fz-md: var(--fz-16); /* medium */
	--fz-lg: var(--fz-25); /* large */
	--fz-xl: var(--fz-38); /* extra large */
	--fz-xxl: var(--fz-50); /* double extra large */

	/* ブロック間 --space */
	--spc-10: clamp( 5px, 1.1vw, 10px);
	--spc-15: clamp( 10px, 1.2vw, 15px);
	--spc-20: clamp( 15px, 1.7vw, 20px);
	--spc-25: clamp( 15px, 1.7vw, 25px);
	--spc-35: clamp( 20px, 2.5vw, 35px);
	--spc-30: clamp( 20px, 2.5vw, 30px);
	--spc-40: clamp( 30px, 3.5vw, 40px);
	--spc-50: clamp( 30px, 3.5vw, 50px);
	--spc-60: clamp( 40px, 4.5vw, 60px);
	--spc-65: clamp( 50px, 5.5vw, 65px);
	--spc-75: clamp( 60px, 6.5vw, 75px);
	--spc-80: clamp( 50px, 5.5vw, 80px);
	--spc-90: clamp( 60px, 6.5vw, 90px);
	--spc-100: clamp( 70px, 7.5vw, 100px);
	--spc-120: clamp( 90px, 9.5vw, 120px);

	--spc-xs: var(--spc-10); /* extra small */
	--spc-ss: var(--spc-15); /* super small */
	--spc-sm: var(--spc-20); /* small */
	--spc-md: var(--spc-30); /* medium */
	--spc-lg: var(--spc-50); /* large */
	--spc-xl: var(--spc-80); /* extra large */
	--spc-xxl: var(--spc-100); /* double extra large */

	/* 親要素を超えて幅100% */
	--full-width: calc(50% - 50vw);

	/* セクション間隔半分 --section-space */
	--sec-spc-half: calc(var(--sec-spc) / 2);

	/* sp横スクロール用padding */
	--sp-scroll-padding-left: calc((100% - var(--inner-w)) / 2);
}

@media screen and (min-width: 768px){
	:root{
		/* --inner-width */
		--inner-w: 95%;
		/* --section-space */
		--sec-spc: clamp(70px, 8vw, 100px);
	}
}
@media screen and (max-width: 767px){
	:root{
		--inner-w: 92%;
		--sec-spc: 50px;
	}
}
/* フェードインアニメーション */
@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}
/* リセットCSS */
*{margin:0;padding:0;min-height: 0;min-width: 0;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
html {height:100%;scroll-behavior: smooth;}
ul li ,ol li{list-style:none;}
h1,h2,h3,h4,h5,h6{font-weight: var(--fw-base);font-size: 100%;margin: 0;}
p{margin: 0;}
strong{font-weight: inherit;}
a:focus, *:focus{ outline:none; }
article, header, footer, aside, figure, figcaption, nav, section,main{ 
  display:block;
}
body{
	font-family: var(--ff-base);
	font-weight: var(--fw-base);
	font-feature-settings: "palt" 1;
	letter-spacing: var(--ls-default);
	width:100%;
	color: var(--txt-c-base);
	position:relative;
	z-index: 0;
	overflow-x: clip;
}
a{
	text-decoration: none;
	outline: none;
	word-wrap: break-word;
	color: var(--txt-c-base);
}
a img,a{
	-webkit-transition: all 0.5s ease;
	-moz-transition: all 0.5s ease;
	-o-transition: all 0.5s ease;
	transition: all  0.5s;
}
img{
	height: auto;
	max-width: 100%;
	box-sizing: unset;
	vertical-align: bottom;
}
/* フォントCSS */
.ff-mincho{
	font-family: 'Yu Mincho Light','YuMincho','Yu Mincho','游明朝体','ヒラギノ明朝 ProN','Hiragino Mincho ProN','ヒラギノ明朝 ProN','Hiragino Mincho ProN',sans-serif;
}
/* imgリセット */
.imgauto{
	height: auto;
	width: 100%;
	box-sizing: unset;
	line-height: 1rem;
	display: block;
}
/* セクション間隔*/
.g-mgt{
	margin-top: var(--sec-spc);
}
.g-mgb{
	margin-bottom: var(--sec-spc);
}
.g-pd{
	padding-block: var(--sec-spc);
}
.g-pdt{
	padding-top: var(--sec-spc);
}
.g-pdb{
	padding-bottom: var(--sec-spc);
}
.g-mgt--half{
	margin-top: var(--sec-spc-half);
}
.g-mgb--half{
	margin-bottom: var(--sec-spc-half);
}
.g-pd--half{
	padding-block: var(--sec-spc-half);
}
.g-pdt--half{
	padding-top: var(--sec-spc-half);
}
.g-pdb--half{
	padding-bottom: var(--sec-spc-half);
}
/* スライダー読み込みまで非表示 */
.slick{
	opacity: 0;
	transition: opacity .3s linear;
}
.slick.slick-initialized{
	opacity: 1;
}
.swiper{
	overflow: hidden;
  opacity: 0;
	transition: opacity .3s linear;
}
.swiper.swiper-initialized{
	opacity: 1;
}
/* 縦書き */
.tategaki{
	writing-mode: vertical-rl;
}
/* 文字間 */
::placeholder,
input[type="text"],
[class*="ttl"],
[class*="lead"],
[class*="heading"],
a{
	letter-spacing: var(--ls-default);
}
/* テキスト行間文字間 */
[class*="txt"]{
	letter-spacing: var(--ls-default);
}
/* スクロールバー消す */
.noscrollbar,
.noscrollbar{
	-ms-overflow-style: none;/* IE, Edge 対応 */
	scrollbar-width: none;/* Firefox 対応 */
}
.noscrollbar::-webkit-scrollbar,
.noscrollbar::-webkit-scrollbar{/* Chrome, Safari 対応 */
	display: none;
}
/* youtube */
.youtubeContainer iframe {
  display: block;
  width: 100%;
	height: auto;
	aspect-ratio: 16/9;
}
/* 親要素超えて幅100% */
.full-width{
	width: 100vw;
	--oya: calc(50% - 50vw);;
	margin-left: var(--oya);
	margin-right: var(--oya);
}
@media (hover: hover){
	a:hover{
		opacity: .7;
		text-decoration: none;
	}
	a:hover img{
		opacity:0.75 !important;
	}
}
html.no-smooth-scroll {
	scroll-behavior: auto;
}
.g-inner,
.g-inner--l,
.g-inner--s{
	margin-inline: auto;
}
@media screen and (min-width: 768px){
	html{
		scroll-padding-top: 120px;
	}
	body{
		font-size: var(--fz-16);
		line-height: 1.5;
		-ms-text-size-adjust: 100%;
		-webkit-text-size-adjust: 100%;
	}
	a[href^="tel:"] {
		pointer-events: none;
	}
	.g-inner--pc{
		width: var(--inner-w);
		margin-inline: auto;
	}
	.sp{
		display: none !important;
	}
	.tategaki--pc{
		writing-mode: vertical-rl;
	}
}
@media screen and (max-width: 767px){
	html{
		scroll-padding-top: 50px;
	}
	body{
		font-size: var(--fz-14-const);
		line-height: 1.5;
	}
	.g-inner--sp{
		width: var(--inner-w);
		margin-inline: auto;
	}
	.g-pd--halfPcOnly{
		padding-block: var(--sec-spc);
	}
	.pc{
		display: none !important;
	}
	.sp-scroll--y{
		overflow-y: scroll;
		overflow-x: auto;
	}
	.sp-scroll--x{
		overflow-x: scroll;
		overflow-y: auto;
		padding-inline: calc((100% - var(--inner-w)) / 2);
	}
	.tategaki--sp{
		writing-mode: vertical-rl;
	}
}
/* ■■■■■■■■■■■■■■■■■■■■■■header■■■■■■■■■■■■■■■■■■■■■■ */
/* ハンバーガー */
.hamburger{
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  position: fixed;
  z-index: 998;
  box-sizing: border-box;
  touch-action: manipulation;
  --hamburger-line-color: #070707;
  --hamburger-line-ps: 9px;
}
.hamburger--menu{
  top: 10px;
}
.hamburger--search{
  top: 80px;
}
.hamburger:after{
  content: var(--this-label);
  position: absolute;
  top: 100%;
  white-space: nowrap;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px;
  min-width: 65px;
  text-align: center;
}
.hamburger.active:after{
  content: var(--this-label-active);
}
.hamburger__icon {
  position: relative;
}
.hamburger__icon, .hamburger__icon:before, .hamburger__icon:after {
  display: block;
  width: 36px;
  height: 1px;
  background-color: var(--hamburger-line-color);
  transition-property: background-color, transform;
  transition-duration: 0.4s;
}
.hamburger .hamburger__icon:before{
	width: 100% !important;
}
.hamburger .hamburger__icon:after {
	width: 100% !important;
}
.hamburger__icon:before, .hamburger__icon:after {
  position: absolute;
  content: "";
}
.hamburger__icon:before {
  top: calc(0px - var(--hamburger-line-ps));
}
.hamburger__icon:after {
  top: var(--hamburger-line-ps);
}
.hamburger.active .hamburger__icon {
  background-color: transparent;
}
.hamburger.active .hamburger__icon:before, .hamburger.active .hamburger__icon:after {
  background-color: var(--hamburger-line-color);
}
.hamburger.active .hamburger__icon:before {
  transform: translateY(var(--hamburger-line-ps)) rotate(45deg);
  background-color: var(--hamburger-line-color);
}
.hamburger.active .hamburger__icon:after {
  transform: translateY(calc(0px - var(--hamburger-line-ps))) rotate(-45deg);
  background-color: var(--hamburger-line-color);
}
.fat-nav {
  top: 0;
  left: 0;
  z-index: 996;
  position: fixed;
  display: none;  
  width: 100%;
  height: 100%;
  background: #fff;   
  transform: scale(1);
  transition-property: transform;
  transition-duration: 0.4s;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.fat-nav__wrapper {
  width: 80%;
  margin:0 auto;
  height: 100%;
  padding: 60px 0% 50px;
  max-width:1300px;
  box-sizing: border-box;
}
.fat-nav.active {
  transform: scale(1);
}
@media screen and (min-width: 768px){
	.hamburger{
		right: 1.5%;
		width: 60px;
		height: 60px;
		padding: 10px 10px;
	}
}
@media screen and (max-width: 767px){
	.hamburger{
		right: 2%;
		width: 50px;
		height: 40px;
		padding: 10px 10px;
	}
}

/* ■■■■■■■■■■■■■■■■■■■■■■footer■■■■■■■■■■■■■■■■■■■■■■ */
/* .ft-spMenuContainer */
@media screen and (max-width: 767px){
		:root{
		--sp-menu-height: 65px;
	}
	.ft-spMenuContainer{
		position: fixed;
		width: 100%;
		background-color: var(--bg-c-gray);
		bottom: 0;
		left: 0;
		height: var(--sp-menu-height);
		z-index: 999;
		box-shadow: var(--bxsd-default);
	}
	.ft-spMenu{
		display: flex;
		height: 100%;
	}
	.ft-spMenu li{
		flex: 1;
		position: relative;
	}
	.ft-spMenu li > span{
		height: 100%;
	}
	.ft-spMenu li::after{
		content: "";
		display: inline-block;
		background: var(--bg-c-gray-op40);
		width: 1px;
		height: calc(100% - 20px);
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
	}
}

/* ■■■■■■■■■■■■■■■■■■■■■■全ページ共通部分■■■■■■■■■■■■■■■■■■■■■■ */
/* 見出し */
.g-bg__gray{
	background-color: var(--c-gray-100);
}
.g-bg__white{
	background-color: var(--c-white);
}
/* 背景色 */
.g-bgC__blue{
  background-color: var(--c-lightblue);
}
.g-bgC__white{
  background-color: var(--c-white);
}
.g-bgC__dark{
  background-color: var(--c-dark-700);
}
/* 画面幅 */
.g-inner{
    width: 95%;
}
@media screen and (min-width: 768px){
  .g-inner--l{
    max-width: 1200px;
  }
  .g-inner--s{
    max-width: 1100px;
  }
}
@media screen and (max-width: 767px){
  .g-inner--l{
    max-width: 92%;
  }
  .g-inner--s{
    max-width: 84%;
  }
}
/* セクション角丸 */
@media screen and (min-width: 768px){
	.g-section__bdr{
    border-radius: 40px 40px 0 0;
  }
}
@media screen and (max-width: 767px){
	.g-section__bdr{
    border-radius: 30px 30px 0 0;
  }
}
/* TOPへボタン */
@media screen and (min-width: 768px){
  .pagetop__anker{
    position: fixed;
    z-index: 99;
    bottom: 20px;
    right: 3%;
    width: 80px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease;
  }
  .pagetop__anker.is-show{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}
/* タイトル装飾 */
.g-sectionTtl{
  text-align: center;
}
.g-sectionTtl__en{
  display: inline-block;
  font-size: 16px;
  font-family: var(--ff-dec);
  letter-spacing: .05em;
  border-radius: 20px 20px 20px 0;
  padding: 0 15px 5px 10px;
}
.g-sectionTtl__jp{
  font-weight: 500;
}
.g-sectionTtl__line{
  margin: 0 auto;
}
@media screen and (min-width: 768px){
  .g-sectionTtl{
    margin: 60px auto 50px;
  }
  .g-sectionTtl__en{
    margin-bottom: 5px;
  }
  .g-sectionTtl__jp{
    font-size: clamp(20px, 2vw, 30px);
    margin-bottom: 10px;
  }
  .g-sectionTtl__sub{
    font-size: var(--fz-20);
    margin-top: 20px;
  }
}
@media screen and (max-width: 767px){
  .g-sectionTtl{
    margin: 60px auto 50px;
  }
  .g-sectionTtl__en{
    margin-bottom: 2px;
  }
  .g-sectionTtl__jp{
    font-size: 22px;
    /* margin-bottom: 13px; */
    margin-bottom: 5px;
  }
  .g-sectionTtl__sub{
    font-size: 14px;
    margin-top: 10px;
  }
}
/*---------- ボタン装飾 ----------*/
.g-moreBtn{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 12px;
  cursor: pointer;
  position: relative;
}
.g-moreBtn__txt{
  font-weight: 500;
  margin-right: var(--spc-30);
}
/* 矢印の前の線 */
.g-moreBtn__icon::before{
  content: "";
  position: absolute;
  height: 1px;
  width: 20px;
  background-color: var(--c-dark-700);
  left: -20px;
  top: 51%;
  transform: translateY(-50%);
  z-index: 1;
}
/* 黒丸エリア */
.g-moreBtn__icon{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  z-index: 2;
}
/* 黒丸 */
.g-moreBtn__circle{
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: var(--c-dark-700);
  border-radius: 50%;
  transition: transform 0.3s ease;
}
/* 矢印 */
.g-moreBtn__arrow{
  position: absolute;
  inset: 0;
  z-index: 3;
  right: 0;
  display: block;
}
.g-moreBtn__svg{
  width: 100%;
  height: 100%;
  display: block;
}
.g-moreBtn__svgLine,
.g-moreBtn__svgChev{
  stroke: var(--c-white);
  stroke-linecap: round;
  stroke-linejoin: round;
}
.g-moreBtn__svgLine{
  stroke-width: 3px;
  stroke-dasharray: 50;/* 線の全長 */
  stroke-dashoffset: 0;
  transition: stroke-dashoffset .3s ease;
}
.g-moreBtn__svgChev{
  stroke-width: 6px;
}

/* ホバー効果 */
.g-moreBtn:hover{
  opacity: 1!important;
}
.g-moreBtn:hover .g-moreBtn__circle,.g-moreBtn:hover .g-moreBtn__icon::before{
  background-color: var(--c-yellow-400);
}
.g-moreBtn:hover .g-moreBtn__icon::before{
  width: 24px;
}
.g-moreBtn__circle,
.g-moreBtn__arrow{
  transition: transform .3s ease;
}
.g-moreBtn:hover .g-moreBtn__circle,
.g-moreBtn:hover .g-moreBtn__arrow{
  transform: translateX(4px);
}
.g-moreBtn:hover .g-moreBtn__svgLine{
  stroke-dashoffset: 10;     /* ← ここを増やすほど短くなる */
}
@media screen and (min-width: 768px){
  /* 黒丸エリア */
  .g-moreBtn__icon{
    width: 40px;
    height: 40px;
  }
  /* 矢印 */
  .g-moreBtn__arrow{
    width: 30px;
  }
}
@media screen and (max-width: 767px){
  /* 黒丸エリア */
  .g-moreBtn__icon{
    width: 33px;
    height: 33px;
  }
  /* 矢印 */
  .g-moreBtn__arrow{
    width: 25px;
  }
}
/*---------- ヘッダー ----------*/
.g-header{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  z-index: 1000;
}
.g-header__inner{
  height: 100%;
  display: flex;
  align-items: center;
}
.g-header__buttons{
  display: flex;
  gap: 16px;
}
.g-header__btn{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 8px 0;
  font-size: 14px;
  font-weight: 500;
  border-radius: 0 10px 0 10px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 0.3s;
  width: 160px;
}
.g-header__btn span{
  font-size: 16px;
}
.g-header__btn-icon{
  height: auto;
  margin-right: 5px;
  vertical-align: middle;
}
.g-header__btn--contact{
  background-image: url(../../asset2025/images/top/button_contact.jpg);
}
.g-header__btn--contact img{
  width: 18px;
}
.g-header__btn--request{
  background-image: url(../../asset2025/images/top/button_request.jpg);
}
/* 初期非表示 */
.g-header__btn--request{
  display: none;
}
.g-header__btn--request img{
  width: 15px;
}
.g-header__hamburger{
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}
.g-header__hamburger span{
  display: block;
  width: 28px;
  height: 3px;
  background: #565A64;
  border-radius: 2px;
}
@media screen and (min-width: 1300px){
  .hamburger,.fat-nav--menu{
    display: none;
  }
  .g-header__nav{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    /* 初期非表示 */
    /* margin-left: var(--spc-40); */
    margin-left: var(--spc-100);
  }
  .g-header__nav-list{
    display: flex;
    list-style: none;
    gap: 32px;
    font-size: 16px;
    font-weight: 500;
  }
  .g-header__nav-item a{
    transition: opacity 0.3s;
  }
  .g-header__nav-item a:hover{
    opacity: 0.7;
  }
}
@media screen and (max-width: 1299px){
  .g-header__nav{
    display: none;
  }
}
@media screen and (min-width: 769px) and (max-width: 1299px){
  .g-header__buttons{
    margin-right: 65px;
  }
}
@media screen and (min-width: 768px){
  .g-header{
    height: 80px;
  }
  .g-header__inner{
    justify-content: space-between;
    max-width: 1440px;
  }
  .g-header__logoNav{
    display: flex;
  }
  .g-header__logoNav img{
    width: 200px;
  }
}
@media screen and (max-width: 767px){
  .g-header{
    height: 60px;
  }
  .g-header__inner{
    justify-content: center;
  }
  .g-header__buttons{
    display: none;
  }
  .g-header__logoNav img{
    width: 50%;
    margin: 0 auto;
  }
  .g-header__hamburger{
    display: flex;
  }
}
/* Contact */
.g-contact,.g-contact__ttl{
  position: relative;
}
.g-contact::before{
  position: absolute;
  content: "";
  display: inline-block;
  background: url(../../asset2025/images/top/illust_contact.png) no-repeat center center / 100%;
  aspect-ratio: 470 / 515;
}
.g-contact__ttl .g-sectionTtl__jp{
  white-space: nowrap;
}
.g-footer__btn{
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  border-radius: 40px 80px 80px 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 0.3s;
  letter-spacing: .5em;
}
.g-contactBtn{
  background-image: url(../../asset2025/images/top/button_contact.jpg);
}
.g-requestBtn{
  background-image: url(../../asset2025/images/top/button_request.jpg);
}
.g-footer__btn__txt{
  letter-spacing: .2em;
}
.g-contact__footerBtn{
  display: flex;
}
/* 初期非表示 */
.g-contact__footerBtn li:last-of-type{
  display: none;
}
.t-shape06{
  position: absolute;
  aspect-ratio: 324 / 252;
}
.g-contact__cnt{
    position: relative;
    z-index: 1;
  }
.g-contactDec{
  position: absolute;
  z-index: 0;
  left: 50%;
}
/* ホバー効果 */
.g-moreBtn:hover .g-footerBtn__icon::before{
  background-color: var(--c-white);
}
.g-moreBtn:hover .g-footerBtn__icon .g-moreBtn__circle{
  background-color: var(--c-white);
}
.g-moreBtn:hover .g-footerBtn__icon .g-moreBtn__svgLine,.g-moreBtn:hover .g-footerBtn__icon .g-moreBtn__svgChev{
  stroke: var(--c-gray-300);
}

@media screen and (min-width: 768px){
  .g-contact{
    padding: 20px 0 150px;
  }
  .g-contact::before{
    width: 15%;
    max-width: 220px;
    top: -80px;
    left: 10%;
    z-index: 99;
  }
  .g-footer__btn__txt::after{
    margin-bottom: 4px;
  }
  .g-contact__footerBtn{
    justify-content: center;
    gap: var(--spc-100);
  }
  .g-footer__btn{
    justify-content: center;
    padding: 25px 0;
    font-size: var(--fz-16);
    width:clamp(150px, 40vw, 380px);
  }
  .t-shape06{
    width: 13%;
    top: -150px;
    right: 10%;
  }
  .g-contactDec{
    width: 75%;
    transform: translate(-50%,-85%);
    margin-top: var(--spc-10);
  }
  .g-contactDec img{
    border-radius: 15px;
    max-width: 1200px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 767px){
  .g-contact{
    padding: 1px 0 60px;
  }
  .g-contact::before{
    width: 30%;
    max-width: 150px;
    top: -80px;
    left: 5%;
    z-index: 99;
  }
  .t-shape06{
    width: 23%;
    top: -105px;
    right: 0;
  }
  .g-contact__footerBtn{
    flex-direction: column;
    gap: 15px;
    text-align: center;
    margin-top: -25px;
  }
  .g-footer__btn{
    justify-content: end;
    padding: 20px 40px 20px 0;
    width:90%;
  }
  .g-footer__btn__txt::after{
    margin-bottom: 5px;
  }
  .g-contact__cnt{
    max-width: 350px;
  }
  .g-contactDec{
    width: 92%;
    max-width: 350px;
    transform: translate(-50%,-50%);
    top: 265px;
  }
  .g-contactDec img{
    border-radius: 20px;
  }
}
/*---------- フッター ----------*/
.g-ft__cnt,.t-tel-link{
  color: var(--c-white);
}
.g-ft__sns{
  display: flex;
}
.g-ft-copy{
  color: var(--c-white);
  text-align: center;
}
@media screen and (min-width: 1300px){
  /* 初期非表示 */
  .g-ft__cnt{
    padding-top: var(--spc-100);
    display: flex;
    /* justify-content: space-between; */
    justify-content: center;
  }
  .g-ft__recruit .g-sectionTtl__en{
    color: var(--c-dark-700);
  }
  .g-ft__logo{
    width: 200px;
  }
  .g-ft__info p{
    font-size: var(--fz-14);
    line-height: 1.8;
    margin-top: 20px;
  }
  .g-ft__sns{
    gap: 12px;
    margin-top: 20px;
  }
  .g-ft__sns img{
    width: 35px;
  }
  /* 初期非表示 */
  /* .g-ft__left{
    display: flex;
  } */
  .g-ft__left{
    display: none;
  }
  .g-ft__page{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    font-size: var(--fz-13);
    font-weight: 500;
    gap: var(--spc-20);
  }
  .g-ft__pageTtl{
    font-size: var(--fz-16);
    position: relative;
    padding-bottom: 7px;
    margin-bottom: 15px;
  }
  .g-ft__pageTtl::after{
    position: absolute;
    content: "";
    display: inline-block;
    background: url(../../asset2025/images/top/line_footer.png) no-repeat center center / 100%;
    width: 130px;
    aspect-ratio: 256 / 6;
    bottom: 0;
    left: 0;
  }
  .g-ft__page a{
    color: var(--c-white)!important;
  }
  .g-ft__page li ul{
    display: grid;
    gap: 10px;
  }
  .g-ft__recruit{
    position: relative;
    margin-left: var(--spc-25);
    display: inline-block;
    background: url(../../asset2025/images/top/recruit_box.png) no-repeat center center / 100%;
    width: 220px;
    aspect-ratio: 1 / 1;
    text-align: center;
    padding-top: 25px;
  }
  .g-ft__recruitTtl{
    font-size: var(--fz-20);
    font-weight: 500;
    display: inline-block;
    margin-right: 2px;
  }
  .g-ftImg{
    width: 170px;
    margin: 0 auto;
  }
  .g-ftDec{
    position: absolute;
    width: 80px;
    top: -55px;
    left: 15px;
  }
  .g-ft__moreBtn{
    color: var(--c-white)!important;
    font-size: var(--fz-13);
    display: inline-flex;
    align-items: center;
    font-weight: 500;
    margin-top: 10px;
  }
  .g-ft__moreBtn__txt{
    margin-right: var(--spc-30);
  }
  .g-ft__moreBtn .g-moreBtn__circle{
    background-color: var(--c-yellow-400);
    width: 90%;
    height: 90%;
  }
  .g-ftBtn__icon::before{
    content: "";
    position: absolute;
    height: 1px;
    width: 20px;
    background-color: var(--c-yellow-400);
    left: -20px;
    top: 51%;
    transform: translateY(-50%);
    z-index: 1;
  }
  .g-ft__moreBtn .g-moreBtn__svgLine,.g-ft__moreBtn .g-moreBtn__svgChev{
    stroke: var(--c-dark-700);
  }
  .g-ft-copy{
    padding: var(--spc-20) 0 var(--spc-30);
    font-size: 12px;
  }
  /* ホバー効果 */
  .g-moreBtn:hover .g-ftBtn__icon::before{
    background-color: var(--c-white);
  }
  .g-moreBtn:hover .g-ftBtn__icon .g-moreBtn__circle{
    background-color: var(--c-white);
  }
  .t-tel-link{
    pointer-events: none;
    cursor: default;
  }
}
@media screen and (max-width: 1299px){
  .g-ft__cnt{
    padding-top: 40px;
  }
  .g-ft__logo{
    width: 200px;
    margin: 0 auto;
  }
  .g-ft__info{
    text-align: center;
  }
  .g-ft__info p{
    font-size: 12px;
    line-height: 2;
    margin-top: 20px;
    white-space: nowrap;
    display: inline-block;
    text-align: left;
  }
  .g-ft__sns{
    gap: 8px;
    margin-top: 20px;
    justify-content: center;
  }
  .g-ft__sns img{
    width: 30px;
  }
  .g-ft__left{
    display: none;
  }
  .g-ft-copy{
    padding: 20px 0;
    font-size: 12px;
  }
  /* 初期非表示 */
  .t-footer{
    position: relative;
    z-index: 2;
  }
}

/*---------- モーション タイトル下線 ----------*/
/* lineコンテナ */
.is-draw{
  width: min(100%, var(--line-w, 700px));
  margin: 0 auto;
}
/* SVG */
.is-draw .handline{
  width: 100%;
  height: 100%;
  display: block;
}
/* 手描き線本体（初期：描かない） */
.is-draw .handline__path{
  fill: none;
  stroke: var(--c-dark-700);
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .85;
  stroke-dasharray: 1200;
  stroke-dashoffset: 1200;
  /* IntersectionObserverで is-animate が付くまで動かさない */
  animation: none;
}
/* 発火後：描く */
.is-draw.is-animate .handline__path{
  animation: handline-draw 1.5s ease-out forwards;
}
/* 描画アニメ */
@keyframes handline-draw{
  0%   { stroke-dashoffset: 1200; }
  15%  { stroke-dashoffset: 1200; } /* 書き始めの“間” */
  100% { stroke-dashoffset: 0; }
}
/* 動きを減らす設定 */
/* @media (prefers-reduced-motion: reduce){
  .is-draw .handline__path{
    animation: none !important;
    stroke-dashoffset: 0;
  }
} */
/* 「心のこもった」だけ、線を少し短くする */
.t-communication__line .handline,.t-communication__line2 .handline{
  transform-origin: left center;
}
@media screen and (min-width: 768px){
  .g-sectionTtl__line.is-draw,
  .t-communication__line.is-draw,
  .t-communication__line2.is-draw{
    height: 22px;
  }
  .is-draw .handline__path{
    stroke-width: 4;
  }
  .t-communication__line .handline__path,.t-communication__line2 .handline__path{
    stroke-width: 5;
  }
  /* 「心のこもった」だけ、線を少し短くする */
  .t-communication__line .handline{
    transform: scaleX(.4);
  }
  .t-communication__line2 .handline{
    transform: scaleX(.8);
  }
}
@media screen and (max-width: 767px){
  .g-sectionTtl__line.is-draw,
  .t-communication__line.is-draw,
  .t-communication__line2.is-draw{
    height: 15px;
  }
  .is-draw .handline__path{
    stroke-width: 5;
  }
  /* 「心のこもった」だけ、線を少し短くする */
  .t-communication__line .handline{
    transform: scaleX(.5);
  }
  .t-communication__line .handline__path,.t-communication__line2 .handline__path{
    stroke-width: 6;
  }
}
/*---------- フッターモーション イラスト ----------*/
.g-contact::before{
  display: block;
  transform-origin: 50% 85%;
  will-change: transform;
  animation: mangaTick 1.6s steps(1, end) infinite;
}
@keyframes mangaTick{
  0%   { transform: translate(0,0) rotate(0deg) scale(1); }
  15%  { transform: translate(0,0) rotate(0deg) scale(1); }
  20%  { transform: translate(-4px,-3px) rotate(-3deg) scale(1.03); }
  30%  { transform: translate(-4px,-3px) rotate(-3deg) scale(1.03); }
  35%  { transform: translate(3px,-2px) rotate(3deg) scale(1.03); }
  45%  { transform: translate(3px,-2px) rotate(3deg) scale(1.03); }
  55%  { transform: translate(0,0) rotate(0deg) scale(1); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
/* @media (prefers-reduced-motion: reduce){
  .g-contact::before{ animation: none; }
} */