@charset "UTF-8";

/* # =================================================================
   # フォント設定
   # ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');



/* # =================================================================
   # Global selectors
   # ================================================================= */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS */
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 4;
  min-width: 320px
}

*,
::before,
::after {
  background-repeat: no-repeat; /* Set `background-repeat: no-repeat` to all elements and pseudo elements */
  box-sizing: inherit;
}

::before,
::after {
  text-decoration: inherit; /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
  vertical-align: inherit;
}

* {
  padding: 0; /* Reset `padding` and `margin` of all elements */
  margin: 0;
}



/* # =================================================================
   # 共通カラー / font-size
   # ================================================================= */

:root {
	--color-base: #3e4e57;
	--color-bk: #000000;
	--color-white: #ffffff;
	--color-gray1: #424242;
	--color-gray2: #757575;
	--color-gray3: #DBDBDB;
	--color-gray4: #eeeeee;
	--color-gray5: #f7f7f7;
	--color-gray6: #F8F5F0;
	--color-base1: #ad8f00;
	--color-red: #f19ca6;
	--color-yellow: #fff100;
	--color-blue: #006bb1;
	--color-bg: #ffffff;
	
	--global-space: 20px;/*主に余白の一括管理用*/
}

/* # =================================================================
   # 共通設定
   # ================================================================= */
body {
	font-family: 'Inter', 'Noto Sans JP' ,serif;
	font-optical-sizing: auto;
	font-display: swap;
	font-size: 16px;
	letter-spacing:1px;
	-webkit-font-feature-settings: "palt" 1;
	font-feature-settings: "palt" 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	-webkit-overflow-scrolling: touch;
	color:var(--color-base);
	overflow-x: hidden;
	margin: 0;padding: 0;
}

body * {box-sizing: border-box;}


html,body {height: 100%;}

img, svg {
  vertical-align: middle
}

ol, ul {
  list-style: none
}

body>img {
  display: block;
  height: 0!important;
  font-size: 0
}

main {
	text-align:center;
	width:100%;
	margin-left:auto;
	margin-right:auto;
}

section{margin:0;padding:0;}

/*-----セクション幅----*/
.sec-content{background-color: transparent;width:90%;margin-left:auto;margin-right:auto;vertical-align: middle;}


.page-space-top{padding-top:50px;}
.page-space-btm{padding-bottom:50px;}

.space-block-top30{margin-top:30px;}
.space-block-btm30{margin-bottom:30px;}

.space-block-top50{margin-top:50px;}
.space-block-btm50{margin-bottom:50px;}

.space-block-top80{margin-top:80px;}
.space-block-btm80{margin-bottom:80px;}


/* # =================================================================
   # background
   # ================================================================= */

.body-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: url("../img/pc_bg.webp") no-repeat center center / cover;
	z-index: -1;
}



/* # =================================================================
   # gsap
   # ================================================================= */
.trigger-area-load-head{opacity: 0;}
.trigger-area-load{opacity: 0;}
.trigger-area-change-load{opacity: 0;}
.trigger-area-training-load{opacity: 0;}
.trigger-area-scale{opacity: 0;}


/* # =================================================================
   # div link
   # ================================================================= */

.linkbox {
    position: relative;
	cursor: pointer;
}

.linkbox .divlink{
	display: block;
    position: absolute;
    top: 0;
    left: 0;
    height:100%;
    width: 100%;
	z-index:1;
}


/* # =================================================================
   #共通txt
   # ================================================================= */
   
.txt-l{text-align:left;}
.txt-r{text-align:right;}
.txt-c{text-align:center;}
.txt-cl{text-align:left;}

.br-pc{display: block;}

.heading-title {
    color: #ad8f00;
	font-size:18px;
	line-height:1.5;
	font-weight:700;
	padding-bottom:30px;
}

.heading-title span {
	display:block;
	font-size:50px;
	line-height:1;
}

.section-title{
	display:flex;
	align-items:center;
	gap:30px;
	width:100%;
	margin:0 auto 20px;
}

.section-title::before,
.section-title::after{
	content:"";
	flex:1;
	height:1px;
	background:var(--color-base1);
}

.section-title span{
	flex-shrink:0;
	font-size:25px;
	font-weight:700;
	line-height:1.2;
	color:var(--color-base1);
	text-align:center;
}

@media screen and (min-width:769px) {
	.br-pc{display: none;}
}

@media screen and (min-width:599px) {
	.txt-cl{text-align:center;}
	.br-pc{display: none;}
	.heading-title {font-size:20px;}
	.heading-title span {font-size:60px;}
}


/* # =================================================================
   # PC左
   # ================================================================= */

#pc-left {
	display: none;
}

@media screen and (max-width:1100px) {
	#pc-left .left-img{display: none;}
}

@media screen and (min-width:769px) {

	#pc-left {
		display: flex;
		position: fixed;
		top: 0;
		left: 0;
		width: calc((100vw - 565px) / 2);
		height: 100vh;
		z-index: 1;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0) 95%, rgba(0, 0, 0, 0.2) 100%);
	}
	
	#pc-left .left-img{width:60%;max-width:500px;min-width:400px;text-align:center;}

	#pc-left .main-img{width:95%;margin: 0 auto;}
	#pc-left .main-img img{width:100%;}
	
	#pc-left .title{
	font-size:20px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	margin-bottom:10px;
	}
	
	#pc-left .txt-box{
	font-size:14px;
	line-height:1.5;
	color:var(--color-base);
	margin-bottom:20px;
	}
	
	#pc-left .txt-box span{
	font-weight:700;
	color:var(--color-red);
	}
	
	#pc-left .leftlogo-img{text-align:center;padding-top:25px;}
	#pc-left .leftlogo-img img{width:150px;}
	
}

@media screen and (min-width:1100px) {
	#pc-left {
		display: flex;
		position: fixed;
		top: 0;
		left: 0;
		width: calc(100vw - 565px - 8vw);
		height: 100vh;
		z-index: 1;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0) 98%, rgba(0, 0, 0, 0.2) 100%);
	}
}


/* # =================================================================
   # PC右
   # ================================================================= */

#pc-right {
	display: none;
}


@media screen and (min-width:769px) {

	#pc-right {
			display: flex;
			position: fixed;
			top: 0;
			right: 0;
			width: calc((100vw - 565px) / 2);
			height: 100vh;
			z-index: 1;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			background: linear-gradient(270deg, rgba(255, 255, 255, 0) 95%, rgba(0, 0, 0, 0.2) 100%);
		}
}


@media screen and (min-width:1100px) {
	#pc-right {
			display: flex;
			position: fixed;
			top: 0;
			right: 0;
			width: 8vw;
			height: 100vh;
			z-index: 1;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			background: linear-gradient(270deg, rgba(255, 255, 255, 0) 90%, rgba(0, 0, 0, 0.2) 100%);
		}
}


/* # =================================================================
   # contents
   # ================================================================= */
.contents {
	color: var(--color-base);
	position: relative;
	overflow: hidden;
}

@media screen and (min-width:769px) {
	.contents {
		width: 550px;
		margin: 0 auto;
	}
}

@media screen and (min-width:1100px) {
	.contents {
		width: 550px;
		margin: 0 8vw 0 auto;
	}
}



/* # =================================================================
   # cta button
   # ================================================================= */
.btn-box{font-family: 'Inter', "Kosugi Maru", sans-serif;width:100%;margin-left:auto;margin-right:auto;position: relative;overflow: hidden;}
.btn-box img{width:100%;}

.btn-box-head{margin-bottom:5px;}
.btn-box-head img{width:100%;}

.btn-box .flex-btn-box{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content:space-between;
    flex-wrap:nowrap;
}

.btn-box a{color:var(--color-blue);}


.cta-tel-box{
	 display:flex;
	width:fit-content;
	margin:0 auto;
	margin-top:5px;
	padding:5px 8px;
	font-size:14px;
}


#cta .cta-tel-box{
	 background-color:var(--color-white);
	 display:flex;
	width:fit-content;
	margin:0 auto;
	margin-top:5px;
	padding:5px 8px;
	border-radius:30px;
	border:solid 1px var(--color-base1);
	font-size:14px;
}


.shine-btn::after {
	animation: 3s 0s shine linear infinite;
	background: linear-gradient(to right, rgba(255,255,255,0) 25%, rgba(255,255,255,.6) 50%, rgba(255, 255, 255, 0) 75%);
	content: '';
	height: 100%;
	left: -100%;
	position: absolute;
	top: 0;
	transform: skewX(-15deg);
	width: 100%;
}

@keyframes shine {
	20% {
		left: 100%;
	}
	100% {
		left: 100%;
	}
}

/* # =================================================================
   # 固定CTA
   # ================================================================= */

#cta {
	width: 100%;
	position: fixed;
	bottom: -200px;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
	z-index: 10;
	transition: 0.3s;
	-webkit-transition: 0.3s;
}

#cta.show {
	bottom: 25px;
}

@media screen and (min-width:1100px) {
	#cta {display: none;}
}

/* # =================================================================
   # fv
   # ================================================================= */
#fv .contents {
	background-color:var(--color-bg);
	padding-bottom:40px;
}

#fv{text-align:center;}


.fv-main-img img{width:100%;}

#fv h2{
	font-size:18px;
	font-weight:700;
	line-height:1.5;
	padding:0 0 5px 0;
	letter-spacing:2px;
	margin-bottom:10px;
	margin-top:15px;
}

#fv h2 span{
	display:block;
	color:var(--color-base1);
	font-size:23px;
}

#fv h2::after{
	content:"";
	display:block;
	width:50px;
	height:1px;
	background-color:var(--color-base1);
	margin:15px auto 0;
}

#fv .txt1{
	font-size:16px;
	line-height:1.5;
	margin-top:15px;
	text-align:center;
}

#fv .txt1 span{
	display:block;
	font-size:23px;
	font-weight:700;
	padding:5px 0;
	color:var(--color-base1);
}

#fv ul{list-style-type: none;}
#fv ul li{
	background-color:#f7f3ed;
	padding:8px 15px;
	border-radius:10px;
	text-align:left;
	font-weight:500;
	margin-bottom:8px;
}

#fv ul li span{font-weight:700;color:var(--color-base1);}


@media screen and (min-width:769px) {
	#fv h2{font-size:22px;}
	#fv h2 span{font-size:35px;}
	#fv .txt1 span{font-size:30px;}
}

/* # =================================================================
   # nayami
   # ================================================================= */

#nayami .contents {
	background-color:#e9eaf4;
	background-image: url(../img/sec_bg_top.webp);
	background-repeat: no-repeat;
	background-size: 100%;
	background-position: center top;
	padding:80px 0 40px 0;
}

#nayami .txt-box{
	font-size:18px;
	line-height:1.6;
	font-weight:700;
}

#nayami .txt-box span{color:#7f65a8;}

#nayami .img-box img{width:80%;}

#nayami .check {
	list-style-type: none;
	margin-top:10px;
  
}
#nayami .check li {
  position: relative;
  font-size:14px;
  font-weight:500;
  text-align:left;
  color:var(--color-base);
  background-color:var(--color-white);
  line-height: 1.5;
  padding:8px 5px 8px 40px;
  margin-bottom:10px;
  border-radius:10px;
}

/* 丸 */
#nayami .check li::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #7f65a8;
  border-radius: 50%;
}

/* チェックマーク */
#nayami .check li::after {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 10px;
  height: 6px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-50%) rotate(-45deg);
}

@media screen and (min-width:769px) {
	#nayami .check li {font-size:16px;}
	#nayami .txt-box{font-size:25px;}
}


/* # =================================================================
   # point1
   # ================================================================= */

#point1 .contents {
	background-color:#faf5ee;
	padding:40px 0;
}


#point1 .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#point1 .txt1 span{
	display:block;
	font-size:23px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}

#point1 .img-box img{width:100%;}

@media screen and (min-width:599px) {
	#point1 .txt1 span{font-size:30px;}
}


/* # =================================================================
   # why
   # ================================================================= */

#why .contents {
	background-color:var(--color-white);
	padding:40px 0;
}


#why .img-box img{width:100%;}


#why .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#why .txt1 span{
	display:block;
	font-size:23px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}

@media screen and (min-width:599px) {
	#why .txt1 span{font-size:30px;}
}


/* # =================================================================
   # santotoda
   # ================================================================= */
   
#santotoda .contents{
	background-color:var(--color-bg);
	padding:0 0 40px 0;
}


#santotoda .img-box img{width:100%;}

#santotoda .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#santotoda .txt1 span{
	display:block;
	font-size:23px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}

@media screen and (min-width:599px) {
	#santotoda .txt1 span{font-size:25px;}
}




/* # =================================================================
   # shiten
   # ================================================================= */
   
#shiten .contents{
	background-color:var(--color-white);
	padding-top:40px;
	position:relative;
}


#shiten .shiten-bg{
	background-color:#f7f3ed;
	padding:200px 0 40px 0;
}

#shiten .img-box{
	position:absolute;
	top:-30px;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
	z-index:0;
}

#shiten .img-box2{
	position:absolute;
	top:100px;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
	z-index:1;
}


#shiten .img-box img{width:250px;}

#shiten .img-box2{width:100%;}
#shiten .img-box2 img{width:100%;}


#shiten .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#shiten .txt1 span{
	display:block;
	font-size:23px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}


#shiten .case-box{
	width:100%;
	background-color:var(--color-white);
	border-radius:1em;
	padding:1em;
	text-align:center;
	margin-bottom:10px;
}

#shiten .case-no{
	width:100%;
	background-color:var(--color-base1);
	padding:5px 10px;
	color:var(--color-white);
	font-size:12px;
	font-weight:700;
	text-align:center;
	margin:0 auto;
}

#shiten .case-title{
	padding:10px 0;
	color:var(--color-base1);
	font-size:20px;
	font-weight:700;
	line-height:1.3;
}

#shiten .case-txt{
	font-size:16px;
	line-height:1.5;
	text-align:left;
}

@media screen and (min-width:599px) {
	#shiten .point5-bg{padding:220px 0 40px 0;}
	#shiten .case-title{font-size:25px;}
	#shiten .img-box2{top:80px;}
	#shiten .txt1 span{font-size:30px;}
}


/* # =================================================================
   # approach
   # ================================================================= */

#approach .contents{
	background-color:var(--color-white);
	padding:40px 0;
}


#approach .img-box img{width:100%;}

#approach .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#approach .txt1 span{
	display:block;
	font-size:23px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}

@media screen and (min-width:599px) {
	#approach .txt1 span{font-size:30px;}
}

/* # =================================================================
   # flow
   # ================================================================= */

#flow .contents{
	background-color:#f7f3ed;
	padding:40px 0;
}


#flow .img-box img{width:100%;}


.flow-step-item{
	display:flex;
	width:100%;
	border:3px solid var(--color-base1);
	border-radius:25px;
	overflow:hidden;
	margin-bottom:10px;
	background:#fff;
}

.flow-step-num{
	width:100px;
	flex-shrink:0;
	background:var(--color-base1);
	color:#fff;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	text-align:center;
}

.flow-step-num span{
	display:block;
	font-size:14px;
	line-height:1;
	font-weight:700;
	margin-bottom:8px;
}

.flow-step-num strong{
	display:block;
	font-size:50px;
	line-height:0.9;
	font-weight:700;
}

.flow-step-content{
	flex:1;
	padding:1.2em;
	display:flex;
	flex-direction:column;
	justify-content:center;
}

.flow-step-content h3{
	margin:0 0 10px;
	color:var(--color-base1);
	font-size:20px;
	line-height:1.3;
	font-weight:700;
	text-align:left;
}

.flow-step-content p{
	margin:0;
	font-size:14px;
	line-height:1.8;
	font-weight:500;
	text-align:left;
}

@media screen and (min-width:599px) {
	.flow-step-content h3{font-size:25px;}
}


/* # =================================================================
   # 特徴
   # ================================================================= */
   
#tokucho .contents{
	background-color:var(--color-bg);
	padding:40px 0;
}


#tokucho .approach-list{
	width:100%;
	margin:0 auto;
	border-top:1px dashed var(--color-base1);
}

#tokucho .approach-item{
	display:flex;
	align-items:center;
	padding:10px;
	border-bottom:1px dashed var(--color-base1);
}

#tokucho .approach-num{
	width:70px;
	flex-shrink:0;
	font-size:40px;
	font-weight:700;
	line-height:1;
	color:var(--color-base1);
	text-align:left;
}

#tokucho .approach-content{
	flex:1;
	padding:10px 0 10px 20px;
	border-left:1px solid var(--color-base1);
	text-align:left;
}

#tokucho .approach-content h3{
	font-size:20px;
	font-weight:700;
	line-height:1.5;
	color:var(--color-base1);
	letter-spacing:-1px;
}

#tokucho .approach-content p{
	margin:0;
	font-size:16px;
	line-height:1.5;
	padding-top:5px;
}

#tokucho .approach-content p span{font-weight:700;color:var(--color-base1);}


@media screen and (min-width:599px) {
	#tokucho .txt-box{font-size:30px;}
	#tokucho .approach-num{width:80px;font-size:50px;}
	#tokucho .approach-content h3{font-size:25px;}
}

/* # =================================================================
   # osusume
   # ================================================================= */

#osusume .contents{
	background-color:var(--color-white);
	padding:40px 0;
}


#osusume .img-box img{width:80%;}

#osusume .check {
	list-style-type: none;
	margin-top:10px;
  
}
#osusume .check li {
  position: relative;
  font-size:14px;
  font-weight:500;
  text-align:left;
  color:var(--color-base);
  background-color:#faf5ee;
  line-height: 1.5;
  padding:10px 10px 10px 45px;
  margin-bottom:10px;
  border-radius:10px;
}

#osusume .check li span{
	display:block;
	font-size:18px;
	font-weight:700;
	 text-align:left;
	 color:var(--color-base1);
	 padding-bottom:5px;
}

/* 丸 */
#osusume .check li::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 13px;
  width: 20px;
  height: 20px;
  background: var(--color-base1);
  border-radius: 50%;
}

/* チェックマーク */
#osusume .check li::after {
  content: "";
  position: absolute;
  left: 18px;
  top: 21px;
  width: 10px;
  height: 6px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-50%) rotate(-45deg);
}

@media screen and (min-width:769px) {
	#osusume .check li {font-size:16px;}
}


/* # =================================================================
   # price
   # ================================================================= */
   
#price .contents{
	background-color:var(--color-bg);
	padding:40px 0;
}

#price .img-box img{width:100%;}
#price .img-box2 img{width:80%;}

#price .trial-ul{
	list-style-type: disc;
	text-align:left;
	padding-left:1em;
	font-weight:500;
}


#price .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#price .txt1 span{
	display:block;
	font-size:25px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}

#price .section-title{
	display:flex;
	align-items:center;
	gap:30px;
	width:100%;
	margin:0 auto 20px;
}

#price .section-title::before,
#price .section-title::after{
	content:"";
	flex:1;
	height:1px;
	background:var(--color-base1);
}

#price .section-title span{
	flex-shrink:0;
	font-size:25px;
	font-weight:700;
	line-height:1.2;
	color:var(--color-base1);
	text-align:center;
}


.price-box{
	padding:20px;
	background-color:#f7f3ed;
	width:100%;
	margin-left:auto;
	margin-right:auto;
	border-radius:1em;
}

.ptitle-txt{
	font-size:18px;
	font-weight:700;
	margin-bottom:15px;
	color:var(--color-base1);
}

.ptitle-txt2{
	font-size:18px;
	font-weight:700;
	color:#e65711;
}

.price-txt-title{
	font-size:16px;
	font-weight:700;
	line-height:1.5rem;
	margin:30px 0 15px 0;
	display: flex;
    align-items: center;
	column-gap:10px;
}
.price-txt-title:before,
.price-txt-title:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #666;
}

	
table.price-tbl {
	border-collapse: collapse;
	width: 100%;
	margin-bottom:15px;
}
table.price-tbl th,
table.price-tbl td {
	padding: 10px 5px;
	text-align: center;
	vertical-align:middle;
	border:solid 1px var(--color-gray3);
}
table.price-tbl th {
	width: 40%;
	background:var(--color-base1);
	color:var(--color-white);
}

table.price-tbl td {
	background:var(--color-white);
}

table.price-tbl th span{font-size:12px;}
table.price-tbl td span{font-size:25px;font-weight:700;}

table.price-tbl td a{color:var(--color-base);}

.price-s{font-size:12px;}

@media screen and (min-width:599px) {
	.ptitle-txt{font-size:25px;}
	.ptitle-txt2{font-size:25px;}
}

@media screen and (min-width:599px) {
	#price .txt1 span{font-size:30px;}
}

/* # =================================================================
   # trainer
   # ================================================================= */
   
#trainer .contents{
	background-color:var(--color-bg);
	padding:40px 0;
}

#trainer .txt1{
	font-size:25px;
	line-height:1.4;
	font-weight:700;
	color:var(--color-base1);
}

#trainer .img-box img{width:100%;}

#trainer .section-title{
	display:flex;
	align-items:center;
	gap:30px;
	width:100%;
	margin:0 auto 20px;
}

#trainer .section-title::before,
#trainer .section-title::after{
	content:"";
	flex:1;
	height:1px;
	background:var(--color-base1);
}

#trainer .section-title span{
	flex-shrink:0;
	font-size:25px;
	font-weight:700;
	line-height:1.2;
	color:var(--color-base1);
	text-align:center;
}

.staff-wrap{
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:25px;
	width:100%;
	box-sizing:border-box;
}

.staff-item{
	min-width:0;
}


/* 写真 */

.staff-img{
	width:100%;
	aspect-ratio:1.27 / 1;
	overflow:hidden;
	background:#e8ecee;
	margin-bottom:26px;
}

.staff-img img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}


/* 肩書き */

.staff-role{
	margin-bottom:8px;
	font-size:12px;
	line-height:1.4;
	font-weight:700;
	color:var(--color-base1);
}


/* 名前 */

.staff-name{
	margin:0 0 10px;
	font-size:20px;
	line-height:1.3;
	font-weight:700;
}

.staff-name span{
	display:block;
	margin-top:5px;
	font-size:12px;
	line-height:1.3;
	font-weight:700;
}


/* 説明 */

.staff-txt{
	margin:0;
	font-size:14px;
	line-height:1.7;
	text-align:left;
}

.staff-txt span{
	display:block;
	font-size:16px;
	line-height:1.7;
	text-align:left;
	font-weight:700;
	color:var(--color-base1);
	padding-bottom:10px;
}


/* # =================================================================
   # faq
   # ================================================================= */
   
#faq .contents{
	background-color:var(--color-bg);
	padding:40px 0;
}




/* 質問 */
.faq-block {
	padding-bottom: 5px;
	margin-bottom: 5px;
}

#faq .quest {
	display: flex;
	align-items: center;
	gap: 20px;

	padding: 5px 30px 5px 0;

	font-size: 16px;
	line-height: 1.5;
	text-align: left;
	font-weight: 700;
}


/* Q */
#faq .quest .quest-q {
	flex-shrink: 0;

	font-size: 25px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-base1);
}


/* 質問文 */
#faq .quest .quest-txt {
	flex: 1;
	min-width: 0;
}


/* 回答 */
#faq .answer {
	font-size: 16px;
	text-align: left;
	padding: 25px 10px;
	line-height: 180%;
}


#faq .answer span {
	font-weight: 700;
	color: var(--color-base1);
}


#faq .answer a {
	color: var(--color-base1);
}

#faq .answer-ul{list-style-type:disc;padding:10px 0;}
#faq .answer-ul li{margin-left:20px;line-height:1.5;}

/* =========================================================
   FAQ アコーディオン
========================================================= */


/* checkbox */
.table__list-check {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}


/* 質問エリア */
.table__list-label {
	width: 100%;
	display: block;
	padding: 10px 20px;
	position: relative;
	cursor: pointer;
	border-radius: 1em;
	background-color: #f7f3ed;
}


/* =========================================================
   矢印 → ×
========================================================= */

.table__list-label::before,
.table__list-label::after {
	content: "";
	position: absolute;
	top: 50%;

	width: 10px;
	height: 1px;

	background-color: var(--color-base1);

	transform-origin: center;

	transition:
		transform .35s ease,
		right .35s ease;
}


/* ▼ 左側 */
.table__list-label::before {
	right: 26px;
	transform: translateY(-50%) rotate(45deg);
}


/* ▼ 右側 */
.table__list-label::after {
	right: 19px;
	transform: translateY(-50%) rotate(-45deg);
}


/* =========================================================
   開いた状態
   ▼ → ×
========================================================= */

.table__list-label:has(.table__list-check:checked)::before {
	right: 22px;
	transform: translateY(-50%) rotate(45deg);
}


.table__list-label:has(.table__list-check:checked)::after {
	right: 22px;
	transform: translateY(-50%) rotate(-45deg);
}


/* =========================================================
   回答部分
   0 → 自動高さで滑らかに開閉
========================================================= */

.table__list-content {
	display: grid;
	grid-template-rows: 0fr;

	opacity: 0;

	transition:
		grid-template-rows .45s ease,
		opacity .35s ease;
}


/* 中身 */
.table__list-inner {
	min-height: 0;
	overflow: hidden;
}


/* 開いた状態 */
.table__list-label:has(.table__list-check:checked)
+ .table__list-content {

	grid-template-rows: 1fr;
	opacity: 1;
}


/* # =================================================================
   # last
   # ================================================================= */
   
#last .contents{
	background-color:var(--color-bg);
	padding-top:40px;
}

#last .img-box img{width:100%;}
#last .img-box2 img{width:80%;}

#last .txt1{
	font-size:16px;
	line-height:1.7;
	font-weight:500;
}

#last .txt1 span{
	display:block;
	font-size:23px;
	line-height:1.5;
	font-weight:700;
	color:var(--color-base1);
	padding:10px 0;
}

@media screen and (min-width:599px) {
	#last .txt1 span{font-size:30px;}
}


/* # =================================================================
   # footer
   # ================================================================= */

footer .contents{background-color:var(--color-white);padding-bottom:250px;}
footer small {font-size: 100%;}
footer {
	font-size: 0.8rem;
	text-align: center;
}

footer .logo{margin:30px 0 20px 0;}
footer .logo img{
	width:180px;
}


footer .img-box img{
	width:100%;
}

footer .text-box{
	font-size:14px;
	line-height:1.8;
	text-align:center;
}

footer .text-box a{color:var(--color-base2);}

.shop-ul{
	list-style: none;
	margin:30px 0;
}

.shop-ul li{
	text-align:left;
	padding:10px 0;
	border-top:solid 1px var(--color-gray5);
	position: relative;
}

.shop-ul li:first-child{
	border: none;
	padding-top:0;
}

.shop-content{
	display:block;
	line-height:180%;
	text-align:left;
	margin-left:100px;
}

.shop-name{float:left;font-weight:Bold;}

.shop-content ul{list-style-type: disc;padding-left:1.2rem;}
.shop-content ul li{
	border-top:none;
	padding:5px 0;
}

.shop-sns{
	display:flex;
	justify-content:center;
	align-items:center;
	column-gap:20px;
	margin:30px 0;
}
.shop-sns img{width:50px;}

