@charset "utf-8";

:root {
  --color-main: #333333;
  --color-green: #4DC765;
  --color-light_green: #49DECD;
  --color-orange: #D07E53;
  --color-beige: #FFF5E8;
  --color-gray: #F4F4F4;
  --font-sans: "Noto Sans JP", sans-serif;
  --font-serif: "Noto Serif JP", serif;
}

* {
  box-sizing: border-box;
  font-feature-settings: "palt";
  line-height: 1;
}

html {
  scroll-behavior: smooth;
  /* scroll-padding-top: min(4rem, 40px); */
  font-size: calc(100vw / 114);
}

body, h1, h2, h3, h4, h5, p {
  margin: 0;
}

body {
  font-family: var(--font-sans);
  color: var(--color-main);
  letter-spacing: .1em;
}

body.active {
  height: 100%;
  overflow: hidden;
}

p {
  text-align: justify;
}

img {
  width: 100%;
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  vertical-align: bottom;
}

ul, li {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  text-decoration: none;
  transition: opacity .4s;
  color: inherit;
}

@media (hover: hover) {
  a:hover {
    opacity: 0.6;
  }
}

a:visited {
}

span {
  display: inline-block;
}

dl, dt, dd {
  all: unset;
  display: block;
}

button {
  all: unset;
  display: block;
}

table {
  border-collapse: collapse;
}

.sp_obj {
  display: none !important;
}

@media (max-width: 794px) {

  html {
    /* scroll-padding-top: 8rem; */
    font-size: calc(100vw / 37.5);
  }

  .sp_obj {
    display: block !important;
  }
  
  .pc_obj {
    display: none !important;
  }
}

/* ----- common ----- */

.container {
  max-width: 1140px;
  margin: 0 auto;
  padding: min(10rem, 100px) 20px;
}

h2.common_h2 {
  font-size: min(4rem, 40px);
  font-weight: 700;
  text-align: center;
  position: relative;
  padding-bottom: min(3rem, 30px);
  font-family: serif;
}

h2.common_h2 span {
  color: var(--color-orange);
  text-decoration: underline;
}

h2.common_h2::after {
  content: '';
  display: block;
  position: absolute;
  background-image: url(../img/icon_h2.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(9rem, 90px);
  height: min(.6rem, 6px);
  right: 0;
  left: 0;
  margin: auto;
  bottom: 0;
}

p.common_txt_center {
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 1.8;
  text-align: center;
}

p.common_txt_left {
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 1.8;
}

a.cta_link {
  position: relative;
  width: min(80rem, 800px);
  height: min(10rem, 100px);
  margin: min(2.0rem, 20px) auto 0;
  background: linear-gradient(to right, #49DECD, #4DC765);
  border-radius: 99px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: min(4.0rem, 40px);
  font-weight: 700;
  gap: min(2.0rem, 20px);
  font-family: var(--font-serif);
}

a.cta_link::before {
  content: '';
  background-image: url(../img/icon_line.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(6.0rem, 60px);
  height: min(5.4rem, 54px);
}

a.cta_link small {
  font-size: min(2.5rem, 25px);
}

a.cta_link span {
  font-size: min(2.4rem, 24px);
  font-weight: 700;
  color: var(--color-main);
  background-color: #fff;
  width: min(36.4rem, 364px);
  height: min(5.6rem, 56px);
  border-radius: 99px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translateY(-60%);
}

.target {
  transform: translateY(80px);
  opacity: 0;
  transition: all .8s;
}

.target.appear {
  transform: none;
  opacity: 1;
}

@media (max-width: 799px) {
  
  .container {
    padding: 6rem 2rem;
  }

  h2.common_h2 {
    font-size: 2.4rem;
    line-height: 1.4;
    padding-bottom: 1.5rem;
  }
  
  h2.common_h2::after {
    width: 5rem;
    height: 0.3rem;
  }

  p.common_txt_center {
    font-size: 1.4rem;
    text-align: justify;
  }

  p.common_txt_left {
    font-size: 1.4rem;
    text-align: justify;
  }

  a.cta_link {
    position: relative;
    width: 32rem;
    height: 9rem;
    margin: 2.4rem auto 0;
    font-size: 2.5rem;
    gap: 1.6rem;
  }
  
  a.cta_link::before {
    width: 6rem;
    height: 6rem;
  }
  
  a.cta_link small {
    font-size: 1.6rem;
    display: block;
    margin-bottom: 0.4rem;
  }
  
  a.cta_link span {
    font-size: 1.6rem;
    width: 20rem;
    height: 3.6rem;
    transform: translateY(-60%);
  }
}

/* ----- toTop ---- */

#toTop-target {
  position: absolute;
  top: 70%;
}

#toTop {
  position: fixed;
  width: min(4.8rem, 48px);
  height: min(4.8rem, 48px);
  right: 2%;
  bottom: 3%;
  opacity: 0;
  border-radius: 50%;
  background-color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  transform: translateY(-80px);
  pointer-events: none;
  transition: all .8s;
}

#toTop img {
  width: 50%;
}

#toTop.appear {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition-delay: .2s;
}

@media (max-width: 799px) {
  #toTop-target {
    top: 50%;
  }

  #toTop {
    width: 4.0rem;
    height: 4.0rem;
    cursor: pointer;
    right: 1%;
    bottom: 2%;
  }
}

/* ----- main ----- */

main {
  background-image: url(../img/bg_mv_pc.png);
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: top center;
}

a.floating_bnr {
  position: fixed;
  right: 0;
  top: 0;
  width: min(25rem, 250px);
  height: min(9rem, 90px);
  background: linear-gradient(to right, #49DECD, #4DC765);
  border-radius: 0 0 0 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(1.6rem, 16px);
  font-size: min(2.5rem, 25px);
  font-weight: 700;
  color: #fff;
  font-family: var(--font-serif);
  z-index: 9999;
}

a.floating_bnr::before {
  content: '';
  background-image: url(../img/icon_line.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(5rem, 50px);
  height: min(4.5rem, 45px);
}

@media (max-width: 799px) {
  main {
    background-image: url(../img/bg_mv_sp.png);
  }
  
  a.floating_bnr {
    width: 13rem;
    height: 4.4rem;
    border-radius: 0 0 0 1rem;
    gap: 0.8rem;
    font-size: 1.2rem;
  }
  
  a.floating_bnr::before {
    width: 2.5rem;
    height: 2.2rem;
  }
}


/* ----- mv ----- */

main.index section.mv {
  width: 100%;
  padding-top: min(5rem, 50px);
}

main.index section.mv div.mv_wrap {
  max-width: 1640px;
  height: min(94rem, 940px);
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
}

main.index section.mv div.mv_wrap ul.slide_wrap {
  width: 100%;
  height: 100%;
}

main.index section.mv div.mv_wrap ul.slide_wrap div.slick-list {
  width: 100%;
  height: 100%;
}

main.index section.mv div.mv_wrap ul.slide_wrap div.slick-track {
  width: 100%;
  height: 100%;
}

main.index section.mv div.mv_wrap ul.slide_wrap li.slide_item {
  width: 100%;
  height: 100%;
}

main.index section.mv div.mv_wrap ul.slide_wrap li.slide_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: min(3rem, 30px);
}

main.index section.mv div.mv_wrap div.mv_sub {
  position: absolute;
  width: min(18rem, 180px);
  top: 0;
  left: 0;
  transform: translate(30%, 100%);
}

main.index section.mv div.mv_wrap div.mv_conts {
  position: absolute;
  max-width: 1140px;
  padding: 0 20px;
  top: min(8.0rem, 80px);
  right: 0;
  left: 0;
  margin: auto;
}

main.index section.mv div.mv_wrap div.mv_conts div.mv_main {
  width: min(76rem, 760px);
}

main.index section.mv div.mv_wrap .mv_line_area {
	position: relative;
	box-shadow: 0px 3px 6px #00000029;
	border-radius: min(2.7rem, 27px);
	font-family: var(--font-serif);
	background-color: #fff;
	padding: min(6rem, 60px) 0 min(3rem, 30px) 0;
	z-index: 1;	
}
main.index section.mv div.mv_wrap .mv_line_area .cta_link {
	position: absolute;
	left:0;
	right:0;
	top:min(-5rem, -50px);
	margin: auto;
	}
main.index section.mv div.mv_wrap .mv_line_area .line_txt_01 {
	font-size: min(2rem, 20px);
	font-weight: 700;
	text-align: center;
	margin-bottom: min(2.5rem, 25px);
}
main.index section.mv div.mv_wrap .mv_line_area p.line_txt_02 {
	color: #D07E53;
	font-size: min(4rem, 40px);
	font-weight: 700;
	text-align: center;
	margin-bottom: min(3.5rem, 35px);
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list {
	display: flex;
	margin: 0 min(6.5rem, 65px);
	justify-content: space-between;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li {
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: min(2.5rem, 25px) 0 min(1.3rem, 13px) 0;
	width: 33.33333%;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li + li {
border-left:1px solid #333333;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li span.line_list_num {
	color: #D07E53;
	font-size: min(3.5rem, 35px);
	position: relative;
	font-weight: 700;
	text-align: center;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li span.line_list_num::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: min(-2.3rem, -23px);
	margin: auto;
	display: block;
	background-image: url("../img/line.png");
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
	width: min(8.6rem, 86px);
	height: min(2.3rem, 23px);
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li p.line_list_ttl {
	color: #D07E53;
	font-size: min(2.4rem, 24px);
	font-weight: 700;
	padding: min(2rem, 20px) 0;
	text-align: center;
	line-height: 1.3;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li p.line_list_txt {
font-family: var(--font-sans);
	text-align: center;
	line-height: 1.5;
		font-size: min(1.6rem, 16px);

}
@media (min-width: 1099px) and (max-width: 1740px) {
  main.index section.mv {
    width: 100%;
    padding-top: min(5rem, 50px);
  }
  
  main.index section.mv div.mv_wrap {
    max-width: 1640px;
    /* height: min(94rem, 940px); */
    height: calc(100vh - min(20rem, 200px));
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
  }
  
  main.index section.mv div.mv_wrap ul.slide_wrap li.slide_item img {
    object-position: center top;
    border-radius: min(3rem, 30px);
  }
  
  main.index section.mv div.mv_wrap div.mv_sub {
    position: absolute;
    width: min(18rem, 180px);
    top: 0;
    left: 0;
    transform: translate(30%, 30%);
  }
  
  main.index section.mv div.mv_wrap div.mv_conts {
    position: absolute;
    max-width: 940px;
    padding: 0 20px;
    top: min(5.0rem, 50px);
    right: 0;
    left: 0;
    margin: auto;
  }
  
  main.index section.mv div.mv_wrap div.mv_conts div.mv_main {
    width: min(56rem, 560px);
  }
  
  main.index section.mv div.mv_wrap div.mv_conts a.cta_link {
    margin-top: 0;
  }
}


@media (max-width: 799px) {
  main.index section.mv {
    padding-top: 2rem;
  }
  
  main.index section.mv div.mv_wrap {
    width: 100%;
    height: auto;
    padding: 0 1rem;
  }
  
  main.index section.mv div.mv_wrap ul.slide_wrap li.slide_item img {
    width: 100%;
    height: auto;
    object-position: unset;
    border-radius: 1.5rem;
  }
  
  main.index section.mv div.mv_wrap div.mv_sub {
    width: 12.4rem;
    transform: translate(30%, 100%);
  }
  
  main.index section.mv div.mv_wrap div.mv_conts {
    position: absolute;
    width: 100%;
    top: 30rem;
  }
  
  main.index section.mv div.mv_wrap div.mv_conts div.mv_main {
    width: 90%;
    margin: 0 auto;
  }
		main.index section.mv div.mv_wrap .mv_line_area {
	border-radius: 2.7rem;
	padding: 6rem 2rem 2rem 2rem;
		position: relative;
		margin:10rem 1rem 0;

}
main.index section.mv div.mv_wrap .mv_line_area .cta_link {
			margin:0 1rem;
			width: auto;
	}
main.index section.mv div.mv_wrap .mv_line_area .line_txt_01 {
	font-size: 1.6rem;
	margin-bottom: 2rem;
}
main.index section.mv div.mv_wrap .mv_line_area p.line_txt_02 {
	font-size: 2rem;
	margin-bottom: 0;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list {
	display: block;
	margin: 0 2rem;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li {
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 4rem 0 2rem 0;
	width: auto;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li + li {
border-left:none;
border-top:1px solid #333333;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li span.line_list_num {
	font-size: 3.5rem;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li span.line_list_num::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -2.3rem;
	margin: auto;
	display: block;
	background-image: url("../img/line.png");
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
	width: 8.6rem;
	height: 2.3rem;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li p.line_list_ttl {
	color: #D07E53;
	font-size: 2rem;
	font-weight: 700;
	padding: 1rem 0;
	text-align: center;
	line-height: 1.3;
}
main.index section.mv div.mv_wrap .mv_line_area ul.line_list li p.line_list_txt {
font-family: var(--font-sans);
	text-align: center;
	line-height: 1.5;
		font-size: 1.4rem;

}
}

/* ----- worries ----- */

main.index section.worries {
  margin-top: min(35rem, 350px);
}

main.index section.worries div.worries_image {
  margin-top: min(6rem, 60px);
  width: 100%;
}
@media (max-width: 1740px) {
main.index section.worries {
  margin-top: min(20rem, 200px);
}
}

@media (max-width: 1099px) {
main.index section.worries {
  margin-top: min(35rem, 350px);
}
}

@media (max-width: 799px) {
main.index section.worries {
  margin-top: 0;
}

  main.index section.worries div.worries_image {
    margin-top: 4rem;
  }
}

/* ----- solution ----- */

main.index section.solution {
  width: 100%;
  height: min(55rem, 550px);
  background-color: #FFE3E3;
  position: relative;
}

main.index section.solution div.solution_wrap {
  max-width: 1140px;
  padding: 0 20px;
  position: absolute;
  right: 0;
  left: 0;
  margin: auto;
  top: 0;
  transform: translateY(-10%);
  display: flex;
  align-items: start;
  gap: min(6rem, 60px);
}

main.index section.solution div.solution_wrap div.txt_area {
  flex: 1;
}

main.index section.solution div.solution_wrap div.txt_area div.txt_image {
  width: min(50rem, 500px);
  /*margin: 0 auto;*/
}

main.index section.solution div.solution_wrap div.txt_area p.common_txt_left {
  margin-top: min(4rem, 40px);
}

main.index section.solution div.solution_wrap div.img_area {
  width: min(47rem, 470px);
}

@media (max-width: 799px) {
  main.index section.solution {
    width: 100%;
    height: 85rem;
  }
  
  main.index section.solution div.solution_wrap {
    position: absolute;
    width: 90%;
    padding: 0;
    transform: translateY(-5%);
    flex-direction: column;
    align-items: center;
    gap: 2.4rem;
  }
  
  main.index section.solution div.solution_wrap div.txt_area {
    width: 100%;
  }
  
  main.index section.solution div.solution_wrap div.txt_area div.txt_image {
    width: 90%;
    margin-right: auto;
    margin-left: 0;
  }
  
  main.index section.solution div.solution_wrap div.txt_area p.common_txt_left {
    margin-top: 2.4rem;
  }
  
  main.index section.solution div.solution_wrap div.img_area {
    width: 100%;
  }
}

/* ----- features ----- */

main.index section.features {
  width: 100%;
  background-image: url(../img/bg_features.png);
  background-size: 100%;
  background-position: center top;
  background-repeat: no-repeat;
}

main.index section.features div.container {
  padding-bottom: min(26rem, 260px);
}

main.index section.features p.features_txt {
  margin-top: min(6rem, 60px);
}

main.index section.features div.features_wrap {
  margin-top: min(6rem, 60px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(22rem, 220px) min(4rem, 40px);
}

main.index section.features div.features_wrap div.features_item {
  background-color: #fff;
  border: min(.2rem, 2px) solid var(--color-orange);
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
  padding: min(4rem, 40px) min(4rem, 40px) min(16rem, 160px);
  position: relative;
}

main.index section.features div.features_wrap div.features_item div.feature_num {
  width: min(14rem, 140px);
  height: min(10rem, 100px);
}

main.index section.features div.features_wrap div.features_item p.common_txt_left span {
  display: block;
  margin-bottom: min(2rem, 20px);
  font-size: min(3rem, 30px);
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-serif);
		line-height: 1.5;
}

main.index section.features div.features_wrap div.features_item div.img_area {
  position: absolute;
  width: min(45rem, 450px);
  bottom: 0;
  transform: translateY(60%);
  left: 0;
  right: 0;
  margin: auto;
}

@media (max-width: 799px) {
  main.index section.features {
    background-image: url(../img/bg_features_sp.png);
    background-size: 100%;
    background-position: center top;
  }
  
  main.index section.features div.container {
    padding-bottom: 14rem;
  }
  
  main.index section.features p.features_txt {
    margin-top: 4rem;
  }
  
  main.index section.features div.features_wrap {
    margin-top: 2.4rem;
    grid-template-columns: repeat(1, 1fr);
    gap: 12rem;
  }
  
  main.index section.features div.features_wrap div.features_item {
    border: .2rem solid var(--color-orange);
    padding: 4rem 2rem 8rem;
  }
  
  main.index section.features div.features_wrap div.features_item div.feature_num {
    width: 7rem;
    height: 5rem;
  }
  
  main.index section.features div.features_wrap div.features_item p.common_txt_left span {
    margin-bottom: 0.8rem;
    font-size: 2.2rem;
  }
  
  main.index section.features div.features_wrap div.features_item div.img_area {
    width: 90%;
    bottom: 0;
    transform: translateY(60%);
  }
}

/* ----- roadmap ----- */

main.index section.roadmap {
  width: 100%;
  background-color: var(--color-beige);
}

main.index section.roadmap p.roadmap_txt {
  margin-top: min(6rem, 60px);
}

main.index section.roadmap div.roadmap_wrap {
  margin-top: min(12rem, 120px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: min(2.5rem, 25px);
}

main.index section.roadmap div.roadmap_wrap div.roadmap_item {
  background-color: #fff;
  border: min(.2rem, 2px) solid var(--color-orange);
  border-radius: min(1rem, 10px);
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
  padding: min(6rem, 60px) min(2rem, 20px) min(2rem, 20px);
  position: relative;
}

main.index section.roadmap div.roadmap_wrap div.roadmap_item:not(:last-of-type)::after {
  position: absolute;
  content: '';
  display: block;
  background-image: url(../img/icon_roadmap_arrow.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(2rem, 20px);
  height: min(4rem, 40px);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
  transform: translateX(100%);
}

main.index section.roadmap div.roadmap_wrap div.roadmap_item p.roadmap_num {
  position: absolute;
  width: min(6.4rem, 64px);
  height: min(6.4rem, 64px);
  background-color: var(--color-orange);
  border-radius: 50%;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translateY(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: min(3rem, 30px);
  font-weight: 700;
  font-family: var(--font-serif);
}

main.index section.roadmap div.roadmap_wrap div.roadmap_item p.common_txt_left small {
  display: block;
  line-height: 1.4;
}

main.index section.roadmap div.roadmap_wrap div.roadmap_item p.common_txt_left span {
  display: block;
  font-size: min(2.0rem, 20px);
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-serif);
  text-align: center;
  margin-bottom: min(.8rem, 8px);
  line-height: 1.4;
}

@media (max-width: 799px) {
  
  main.index section.roadmap p.roadmap_txt {
    margin-top: 4rem;
  }
  
  main.index section.roadmap div.roadmap_wrap {
    margin-top: 6rem;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 5rem;
  }
  
  main.index section.roadmap div.roadmap_wrap div.roadmap_item {
    border: .2rem solid var(--color-orange);
    border-radius: .8rem;
    display: block;
    padding: 4rem 2rem 2rem;
  }
  
  main.index section.roadmap div.roadmap_wrap div.roadmap_item:not(:last-of-type)::after {
    background-image: url(../img/icon_roadmap_arrow_sp.png);
    width: 4rem;
    height: 2rem;
    top: auto;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    transform: translateY(100%);
  }
  
  main.index section.roadmap div.roadmap_wrap div.roadmap_item p.roadmap_num {
    position: absolute;
    width: 4.6rem;
    height: 4.6rem;
    font-size: 2rem;
  }
  
  main.index section.roadmap div.roadmap_wrap div.roadmap_item p.common_txt_left {
    text-align: center;
  }

  main.index section.roadmap div.roadmap_wrap div.roadmap_item p.common_txt_left span {
    font-size: 2rem;
    margin-bottom: .8rem;
    line-height: 1.2;
  }
}

/* ----- realization ----- */
.img_realization {
margin-top: min(6rem, 60px);
}

/* ----- message ----- */

main.index section.message {
  width: 100%;
  background-image: url(../img/bg_message.png);
  background-size: 100%;
  background-position: center top;
  background-repeat: no-repeat;
}

main.index section.message div.message_wrap {
  color: #fff;
  position: relative;
}

main.index section.message div.message_wrap .message_block {
display: flex;
justify-content: space-between;
gap:min(5rem, 50px);
}
main.index section.message div.message_wrap .message_block .message_box {
background-color: var(--color-orange);
padding: min(4rem, 40px);
width: 48%;
}
main.index section.message div.message_wrap div.message_img {
  width: min(20rem, 200px);
  height: min(20rem, 200px);
		margin:0 auto min(2rem, 20px);
}
main.index section.message div.message_wrap .message_block .message_name {
	font-size: min(1.6rem, 16px);
	text-align: center;
		font-weight: 700;
		margin-bottom:min(1rem, 10px);
}
main.index section.message div.message_wrap .message_block .message_prof_01 {
font-size: min(1.2rem, 12px);
	text-align: center;
	line-height: 1.7;
	margin-bottom:min(1.5rem, 15px);
}
main.index section.message div.message_wrap .message_block .message_prof_02 {
	font-size: min(1.2rem, 12px);
	text-align: center;
	font-weight: 700;
	line-height: 1.7;
}
main.index section.message div.message_wrap .message_block .message_txt {
	font-weight: 400;
	line-height: 1.7;
	margin-top: min(4rem, 40px);
}

main.index section.message div.message_wrap p.message_link {
  width: min(30rem, 300px);
  height: min(5rem, 50px);
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(2.0rem, 20px);
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-serif);
  margin: min(4rem, 40px) auto 0;
		cursor: pointer;
}

.txt-hide{
display: none;
}

p.more::after {
content: "メッセージを読む";
transition: .2s;
-erbkit-transition: .2s;
}

p.more.open::after{
content: "閉じる";
}

@media (max-width: 799px) {
  main.index section.message {
    background-image: url(../img/bg_message_sp.png);
    background-size: 100%;
    background-position: center top;
  }
  
main.index section.message div.message_wrap .message_block {
display: block;
}

main.index section.message div.message_wrap .message_block .message_box {
padding:2rem;
width: auto;
}

main.index section.message div.message_wrap div.message_img {
  width: 10rem;
  height: 10rem;
		margin:0 auto 1rem;
}

main.index section.message div.message_wrap .message_block .message_name {
	font-size: 1.6rem;
		margin-bottom:1rem;
}
ma
in.index section.message div.message_wrap .message_block .message_prof_01 {
font-size: 1.2rem;
	margin-bottom:1.5rem;
}

main.index section.message div.message_wrap .message_block .message_prof_02 {
	font-size: 1.1rem;
}

main.index section.message div.message_wrap .message_block .message_txt {
	margin-top: 4rem;
		font-size: 1.4rem;
}

main.index section.message div.message_wrap p.message_link {
  width: auto;
  height: 5rem;
  background-color: #fff;
  display: flex;
  justify-content: center;
  font-size:1.6rem;
  margin: 2rem auto 0;
		cursor: pointer;
}

.txt-hide{
display: none;
}

p.more::after {
content: "メッセージを読む";
transition: .2s;
-erbkit-transition: .2s;
}

p.more.open::after{
content: "閉じる";
}
}

/* ----- cta ----- */

main.index section.cta {
  width: 100%;
  background-image: url(../img/bg_cta.jpg);
  background-size: cover;
  background-position: left top;
  background-repeat: no-repeat;
}

main.index section.cta div.cta_wrap {
  width: 100%;
  padding: min(4rem, 40px) 0;
  background-color: rgba(255 255 255 / .77);
}

main.index section.cta div.cta_wrap h2.cta_h2 {
  font-size: min(4rem, 40px);
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-serif);
  text-align: center;
}

main.index section.cta div.cta_wrap h2.cta_h2 span {
  display: block;
  font-size: min(1.6rem, 16px);
  text-align: center;
  margin-top: min(4rem, 40px);
  color: var(--color-main);
  font-family: var(--font-sans);
  line-height: 1.6;
  font-weight: 400;
}

main.index section.cta div.cta_wrap a.cta_link {
  margin-top: min(8rem, 80px);
}

@media (max-width: 799px) {
  main.index section.cta {
    background-image: url(../img/bg_cta_sp.jpg);
    background-size: 100%;
    background-position: center top;
  }

  main.index section.cta div.container {
    padding: 2rem;
  }
  
  main.index section.cta div.cta_wrap {
    width: 100%;
    padding: 4rem 0;
  }
  
  main.index section.cta div.cta_wrap h2.cta_h2 {
    font-size: 2.5rem;
    line-height: 1.4;
  }
  
  main.index section.cta div.cta_wrap h2.cta_h2 span {
    text-align: justify;
    font-size: 1.6rem;
    margin: 1.6rem auto 0;
    width: 90%;
    line-height: 1.4;
  }
  
  main.index section.cta div.cta_wrap a.cta_link {
    margin-top: 4rem;
  }
}

/* ----- contents ----- */

main.index section.contents div.contents_wrap {
  margin-top: min(6rem, 60px);
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2rem, 20px);
}

main.index section.contents div.contents_wrap div.contents_item {
  border: 1px solid var(--color-orange);
  padding: 0 0 min(4.0rem, 40px);
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 9;
  gap: 0;
}

main.index section.contents div.contents_wrap div.contents_item p.contents_name {
  font-size: min(2.5rem, 25px);
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-serif);
  text-align: center;
  padding: min(2rem, 20px) 0;
}

main.index section.contents div.contents_wrap div.contents_item p.contents_name span {
  display: block;
  width: min(8rem, 80px);
  margin: 0 auto min(.4rem, 4px);
}

main.index section.contents div.contents_wrap div.contents_item p.common_txt_left {
  margin: min(2.4rem, 24px) auto 0;
  width: 90%;
}

main.index section.contents div.contents_wrap div.contents_item p.common_txt_left:not(:nth-of-type(2)) {
  margin-top: min(.4rem, 4px);
}

main.index section.contents div.contents_wrap div.contents_item p.common_txt_left.orange {
  margin-top: min(2.4rem, 24px);
  font-weight: 700;
  color: var(--color-orange);
}

main.index section.contents div.contents_wrap div.contents_item p.common_txt_left strong {
  color: var(--color-orange);
}

main.index section.contents div.contents_wrap div.contents_item p.price {
  width: 90%;
  margin: min(2rem, 20px) auto 0;
  padding: min(2rem, 20px) 0;
  border-top: 1px solid var(--color-orange);
  border-bottom: 1px solid var(--color-orange);
  font-family: var(--font-serif);
  font-size: min(4rem, 40px);
  font-weight: 700;
  color: var(--color-orange);
  text-align: center;
}

main.index section.contents div.contents_wrap div.contents_item p.price small {
  font-size: min(2.5rem, 25px);
  font-weight: 700;
  color: var(--color-orange);
  font-family: var(--font-serif);
}

main.index section.contents div.contents_wrap div.contents_item ul.contents_ul {
  width: 90%;
  margin: min(.4rem, 4px) auto 0;
  display: flex;
  flex-direction: column;
  gap: min(.4rem, 4px);
}

main.index section.contents div.contents_wrap div.contents_item ul.contents_ul li.contents_li {
  width: 100%;
  padding: min(.8rem, 8px) 0;
  background-color: var(--color-gray);
  border-radius: 99px;
  font-size: min(1.6rem, 16px);
  text-align: center;
}

main.index section.contents p.contents_note {
    width: 90%;
  margin: min(2rem, 20px) auto 0;
  font-size: min(1.2rem, 12px);
}

main.index section.contents .yellow {
  background-color: #FEFFE3;
}

main.index section.contents .pink {
  background-color: #FFE3E3 !important;
}

main.index section.contents .purple {
  background-color: #FCE3FF !important;
}

@media (max-width: 799px) {
  main.index section.contents div.contents_wrap {
    margin-top: 4rem;
    grid-template-columns: repeat(1, 1fr);
    gap: 4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item {
    border: .1rem solid var(--color-orange);
    padding: 0 0 4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.contents_name {
    font-size: 2.5rem;
    padding: 2rem 0;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.contents_name span {
    width: 8rem;
    margin: 0 auto .4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.common_txt_left {
    margin: 2.4rem auto 0;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.common_txt_left:not(:nth-of-type(2)) {
    margin-top: 0.4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.common_txt_left.orange {
    margin-top: 2.4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.price {
    width: 90%;
    margin: 2rem auto 0;
    padding: 2rem 0;
    border-top: .1rem solid var(--color-orange);
    border-bottom: .1rem solid var(--color-orange);
    font-size: 4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item p.price small {
    font-size: 2.5rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item ul.contents_ul {
    width: 90%;
    margin: .4rem auto 0;
    gap: 0.4rem;
  }
  
  main.index section.contents div.contents_wrap div.contents_item ul.contents_ul li.contents_li {
    padding: 0.8rem 0;
    font-size: 1.6rem;
  }
		
		main.index section.contents p.contents_note {
    width: 90%;
  margin: 2rem auto 0;
}
}

/* ----- voices ----- */

main.index section.voices {
  width: 100%;
  background-color: var(--color-beige);
}

main.index section.voices ul.voices_ul {
  width: 100%;
  margin-top: min(6rem, 60px);
  position: relative;
  z-index: auto;
}

main.index section.voices ul.voices_ul div.slick_arrow {
  position: absolute;
  width: min(7rem, 70px);
  height: min(7rem, 70px);
  top: 0;
  bottom: 0;
  margin: auto;
  left: 0;
  transform: translate(20%, -75%);
  z-index: 1;
  cursor: pointer;
}

main.index section.voices ul.voices_ul div.slick_arrow.right {
  left: auto;
  right: 0;
  transform: translate(-20%, -75%);
}

main.index section.voices ul.voices_ul li.voices_li {
  width: min(35rem, 350px);
  margin: 0 min(.8rem, 8px);
}

main.index section.voices ul.voices_ul li.voices_li p.common_txt_left {
  width: 100%;
  height: min(30rem, 300px);
  padding: min(4rem, 40px) min(4rem, 40px);
  background-color: #fff;
  position: relative;
  line-height: 1.6;
}

main.index section.voices ul.voices_ul li.voices_li p.common_txt_left::after {
  position: absolute;
  content: '';
  display: block;
  background-image: url(../img/icon_voices_tri.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(3rem, 30px);
  height: min(4rem, 40px);
  left: 0;
  bottom: 0;
  transform: translate(100%, 80%);
}

main.index section.voices ul.voices_ul li.voices_li p.profile {
  margin-top: min(4rem, 40px);
  display: flex;
  gap: min(1.6rem, 16px); 
  align-items: center;
}

main.index section.voices ul.voices_ul li.voices_li p.profile span:first-of-type {
  width: min(7.6rem, 76px);
}

main.index section.voices ul.voices_ul li.voices_li p.profile span:last-of-type {
  flex: 1;
  font-size: min(2.0rem, 20px);
  font-weight: 700;
}

main.index section.voices ul.voices_ul li.voices_li p.profile span:last-of-type small {
  font-weight: 400;
}

main.index section.voices ul.voices_ul li.voices_li p.profile span:last-of-type strong {
  display: block;
  width: fit-content;
  padding: min(0.4rem, 4px) min(1.2rem, 12px);
  border-radius: 99px;
  background-color: #fff;
  font-size: min(1.4rem, 14px);
  font-weight: 400;
  margin-top: min(0.8rem, 8px);
}

main.index section.voices .yellow {
  color: #A2A800;
}

main.index section.voices .pink {
  color: #DB8888 !important;
}

main.index section.voices .purple {
  color: #B875D6 !important;
}

@media (max-width: 799px) {
  
  main.index section.voices ul.voices_ul {
    width: 100%;
    margin-top: 4rem;
  }
  
  main.index section.voices ul.voices_ul li.voices_li {
    width: 100%;
    margin: 0 .8rem;
    position: relative;
  }

  main.index section.voices ul.voices_ul div.slick_arrow {
    width: 3.5rem;
    height: 3.5rem;
    left: 0;
    transform: translate(10%, -75%);
  }
  
  main.index section.voices ul.voices_ul div.slick_arrow.right {
    left: auto;
    right: 0;
    transform: translate(-10%, -75%);
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.common_txt_left {
    width: 100%;
    height: 30rem;
    padding: 4rem;
    line-height: 2;
    font-size: 1.4rem;
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.common_txt_left::after {
    width: 3rem;
    height: 4rem;
    left: 0;
    bottom: 0;
    transform: translate(100%, 80%);
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.profile {
    margin-top: 4rem;
    display: flex;
    gap: 0.8rem;
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.profile span:first-of-type {
    width: 5rem;
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.profile span:last-of-type {
    flex: 1;
    font-size: 1.6rem;
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.profile span:last-of-type small {
    font-weight: 400;
    font-size: 1.2rem;
  }
  
  main.index section.voices ul.voices_ul li.voices_li p.profile span:last-of-type strong {
    padding: 0.4rem 1.2rem;
    background-color: #fff;
    font-size: 1.4rem;
    margin-top: 0.8rem;
  }
}

/* ----- compare ----- */

main.index section.compare table.compare_table {
  width: 100%;
  margin-top: min(6rem, 60px);
}

main.index section.compare table.compare_table tr.compare_tr th:first-of-type {
  width: min(17rem, 170px);
}

main.index section.compare table.compare_table tr.compare_tr th:not(:first-of-type) {
  padding: min(3rem, 30px) 0;
  font-size: min(1.6rem, 16px);
  font-weight: 700;
  line-height: 1.6;
  background-color: var(--color-gray);
}

main.index section.compare table.compare_table tr.compare_tr02 th {
  background-color: var(--color-gray);
  width: min(17rem, 170px);
  padding: min(3rem, 30px) 0;
  font-size: min(1.6rem, 16px);
  font-weight: 700;
  color: var(--color-orange);
  line-height: 1.6;
  border-bottom: 1px solid var(--color-gray);
}

main.index section.compare table.compare_table tr.compare_tr02 td {
  font-size: min(1.6rem, 16px);
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  border-bottom: 1px solid #dedede;
}

main.index section.compare table.compare_table th.recommend {
  background-color: var(--color-orange) !important;
  border-left: min(1rem, 10px) solid var(--color-orange);
  border-right: min(1rem, 10px) solid var(--color-orange);
  color: #fff;
  font-weight: 700;
}

main.index section.compare table.compare_table td.recommend {
  background-color: var(--color-beige);
  color: var(--color-orange);
  border-bottom: 1px solid var(--color-orange);
  border-left: min(1rem, 10px) solid var(--color-orange);
  border-right: min(1rem, 10px) solid var(--color-orange);
  font-weight: 700 !important;
}

main.index section.compare table.compare_table tr:nth-of-type(2) td.recommend {
  border-top: min(1rem, 10px) solid var(--color-orange);
} 

main.index section.compare table.compare_table tr:last-of-type td.recommend {
  border-bottom: min(1rem, 10px) solid var(--color-orange);
}

@media (max-width: 799px) {
  
  main.index section.compare div.container {
    padding-right: 0.4rem;
    padding-left: 0.4rem;
  }

  main.index section.compare table.compare_table {
    width: 100%;
    margin-top: 4rem;
  }
  
  main.index section.compare table.compare_table tr.compare_tr th:first-of-type {
    width: 19%;
  }
  
  main.index section.compare table.compare_table tr.compare_tr th:not(:first-of-type) {
    padding: 1.6rem 0;
    font-size: 1rem;
    line-height: 1.2;
  }
  
  main.index section.compare table.compare_table tr.compare_tr02 th {
    width: 19%;
    padding: 1.6rem .4rem;
    font-size: 1rem;
    line-height: 1.2;
    border-bottom: .1rem solid var(--color-gray);
  }
  
  main.index section.compare table.compare_table tr.compare_tr02 td {
    width: 27%;
    font-size: 1rem;
    line-height: 1.2;
    border-bottom: .1rem solid #dedede;
    padding: .8rem 0.4rem;
  }
  
  main.index section.compare table.compare_table th.recommend {
    background-color: var(--color-orange) !important;
    border-left: .5rem solid var(--color-orange);
    border-right: .5rem solid var(--color-orange);
  }
  
  main.index section.compare table.compare_table td.recommend {
    border-bottom: .1rem solid var(--color-orange);
    border-left: .5rem solid var(--color-orange);
    border-right: .5rem solid var(--color-orange);
  }
  
  main.index section.compare table.compare_table tr:nth-of-type(2) td.recommend {
    border-top: .5rem solid var(--color-orange);
  } 
  
  main.index section.compare table.compare_table tr:last-of-type td.recommend {
    border-bottom: .5rem solid var(--color-orange);
  }
}

/* ----- faq ----- */

main.index section.faq {
  width: 100%;
  background-color: var(--color-beige);
}

main.index section.faq dl.faq_dl {
  width: 100%;
  margin-top: min(6rem, 60px);
}

main.index section.faq dl.faq_dl div.faq_wrap {
  padding: min(3.2rem, 32px) 0;
  border-bottom: min(0.2rem, 2px) solid #fff;
}

main.index section.faq dl.faq_dl div.faq_wrap dt.faq_dt {
  font-size: min(2.0rem, 20px);
  font-weight: 700;
  color: var(--color-orange);
  display: flex;
  align-items: center;
  gap: min(1rem, 10px);
  line-height: 1.4;
}

main.index section.faq dl.faq_dl div.faq_wrap dt.faq_dt::before {
  content: 'Q';
  width: min(5rem, 50px);
  height: min(5rem, 50px);
  background-color: var(--color-orange);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: min(2.8rem, 28px);
  font-weight: 700;
}

main.index section.faq dl.faq_dl div.faq_wrap dd.faq_dd {
  margin-top: min(0.8rem, 8px);
  font-size: min(1.6rem, 16px);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: min(1rem, 10px);
  line-height: 1.4;
}

main.index section.faq dl.faq_dl div.faq_wrap dd.faq_dd::before {
  content: 'A';
  width: min(5rem, 50px);
  height: min(5rem, 50px);
  background-color: transparent;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--color-orange);
  font-size: min(2.8rem, 28px);
  font-weight: 700;
}

@media (max-width: 799px) {
  
  main.index section.faq dl.faq_dl {
    margin-top: 4rem;
  }
  
  main.index section.faq dl.faq_dl div.faq_wrap {
    padding: 3.2rem 0;
    border-bottom: .2rem solid #fff;
  }
  
  main.index section.faq dl.faq_dl div.faq_wrap dt.faq_dt {
    font-size: 1.4rem;
    gap: 0.8rem;
    line-height: 1.3;
  }
  
  main.index section.faq dl.faq_dl div.faq_wrap dt.faq_dt::before {
    width: 3.6rem;
    height: 3.6rem;
    font-size: 2rem;
    flex-shrink: 0;
  }
  
  main.index section.faq dl.faq_dl div.faq_wrap dd.faq_dd {
    margin-top: 1.6rem;
    font-size: 1.3rem;
    gap: 0.8rem;
    line-height: 1.3;
  }
  
  main.index section.faq dl.faq_dl div.faq_wrap dd.faq_dd::before {
    width: 3.6rem;
    height: 3.6rem;
    font-size: 2rem;
    flex-shrink: 0;
  }
}

/* ----- staff ----- */

main.index section.staff {
  width: 100%;
  background-image: url(../img/bg_message.png);
  background-size: 100%;
  background-position: center top;
  background-repeat: no-repeat;
}

main.index section.staff h2.staff_h2 {
  width: min(47rem, 470px);
  margin: 0 auto;
}

main.index section.staff p.staff_txt {
  font-size: min(2.0rem, 20px);
  font-weight: 700;
  color: var(--color-orange);
  text-align: center;
  margin-top: min(4rem, 40px);
}

@media (max-width: 799px) {
  main.index section.staff {
    background-image: url(../img/bg_message_sp.png);
  }
  
  main.index section.staff h2.staff_h2 {
    width: 100%;
  }
  
  main.index section.staff p.staff_txt {
    font-size: 1.6rem;
    margin-top: 4rem;
    line-height: 1.6;
  } 
}

/* ----- footer ----- */

footer {
  width: 100%;
  background-color: #367793;
}

footer div.container {
  padding: min(6rem, 60px) 20px;
}

footer div.footer_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
}

footer div.footer_wrap a.footer_link {
  display: block;
  font-size: min(1.6rem, 16px);
  color: #fff;
  width: fit-content;
  padding: 0 min(1.6rem, 16px);
}

footer div.footer_wrap a.footer_link:not(:last-of-type) {
  border-right: min(0.1rem, 1px) solid #fff;
}

footer p.copyright {
  font-size: min(1.2rem, 12px);
  color: #fff;
  text-align: center;
  margin-top: min(4rem, 40px);
}

@media (max-width: 799px) {
  
  footer div.container {
    padding: 4rem 2rem;
  }
  
  footer div.footer_wrap {
    flex-direction: column;
    gap: 1rem;
  }
  
  footer div.footer_wrap a.footer_link {
    font-size: 1.4rem;
    padding: 0;
  }
  
  footer div.footer_wrap a.footer_link:not(:last-of-type) {
    border-right: none;
  }
  
  footer p.copyright {
    font-size: 1.0rem;
    margin-top: 1.6rem;
  }
}

/*特定商取引法に基づく表記*/
main.law {
	padding: min(5rem, 50px) 0;
}
main.law header h1.hd_logo_inner {
	width: min(18rem, 180px);
	margin-bottom: min(4rem, 40px);
}
main.law .wrap_law {
	border-radius: min(3rem, 30px);
	background-color: #fff;
	max-width: 1140px;
	padding: min(3.5rem, 35px) min(2.5rem, 25px);
	margin: 0 auto;
}
main.law table.table_law {
	margin: min(10rem, 100px) min(5rem, 50px) 0;
	width: calc(100% - 100px);
}
main.law table.table_law tr {
border-bottom: 1px solid #ccc;
	}
main.law table.table_law th {
	text-align: left;
	padding: min(3rem, 30px) 0;
	vertical-align: top;
	line-height: 1.7;
	}
main.law table.table_law td {
	padding: min(3rem, 30px) min(2.5rem, 25px);
	line-height: 1.7;
}

@media (max-width: 799px) {
main.law {
	padding: 2.5rem;
}
main.law header h1.hd_logo_inner {
	width: 10rem;
	margin-bottom: 2rem;
}
main.law .wrap_law {
	border-radius: 1.5rem;
	padding: 2rem 1rem;
}
main.law table.table_law {
	margin: 5rem 2.5rem 0;
	width: calc(100% - 5rem);
}
main.law table.table_law th {
display: block;
	padding: 1rem 0 0;
	}
main.law table.table_law td {
display: block;
	padding: 1rem 0;
}
}