@charset "utf-8";

/*--------------------------------------------
		サイト基本設定
--------------------------------------------*/
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

img{
    max-width: 100%;
}
body {
  color: #222;
  font-family: "Noto Sans", "Noto Sans CJK JP", "Noto Sans CJK JP Subset",
    sans-serif;
  overflow-wrap: break-word;
  word-break: normal;
  font-size: 1.6rem;
  line-height: 200%;
  background-size: 100%;
  display: block;
  overflow-x: hidden;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

a {
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -o-transition: 0.5s;
  -ms-transition: 0.5s;
  transition: 0.5s;
}

a img:hover {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -moz-opacity: 0.7;
  -webkit-transition: 0.5s ease-in-out;
  -moz-transition: 0.5s ease-in-out;
  -o-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

.last {
  margin-bottom: 0 !important;
}

.for_mdl {
  display: none;
}

.for_sp {
  display: none;
}

.for_pc {
  display: block;
}

.flexbox {
  display: flex;
}

strong {
  background: linear-gradient(transparent 60%, #a8ffe0 50%);
}

.wrapper {
  padding-top: 90px;
}

#form--wrapper {
  padding: 2rem 1rem 1rem;
  width: 30%;
  position: fixed;
  right: 0;
  top: 75px;
  box-sizing: border-box;
  border-left: 1px solid #e9e9e9;
  font-weight: 400;
  background-color: #fff;
}

h2 {
  font-size: 2.8rem;
  width: fit-content;
  font-weight: bold;
  text-align: center;
  margin: 2.5rem auto;
}



/*--------------------------------------------
		下向きの吹き出し下線
--------------------------------------------*/
.under__bubble {
  margin: 4rem auto;
  border-bottom: 5px solid #ec6400;
  font-weight: bold;
  position: relative;
  width: 100%;
  display: block;
}

.under__bubble:before,
.under__bubble:after {
  position: absolute;
  top: 100%;
  left: 50%;
  content: "";
  height: 0;
  width: 0;
}

.under__bubble:before {
  border: 50px solid;
  border-color: transparent;
  border-top-color: #ec6400;
  margin-left: -50px;
}

.under__bubble:after {
  border: 45px solid;
  border-color: transparent;
  border-top-color: white;
  margin-left: -45px;
  margin-top: -5px;
}

/*--------------------------------------------
		問合わせボタン
--------------------------------------------*/


.contact-area{
    max-width: 700px;
    margin: auto;
    padding: 3rem;
}

.contact-area__head h3{
    font-size: 2.7rem;
    padding: 2rem;
    text-align: center;
    background-color: #2146ac;
    color: #fff;

}
.contact-area__inner__btn__form__text {
    font-size: 1.8rem;
    font-weight: bold;
  }
  .contact-area__inner{
    border: 2px solid #2146ac;
    border-top: none;
    padding: 2rem 3rem;
  }
  
  .contact-area__inner__btn__form {
    display: flex;
    background-color: #2146ac;
    padding: 1rem 3rem;
    border-radius: 6rem;
    width: fit-content;
    font-size: 1.75rem;
    color: #fff;
    box-shadow: 3px 3px 5px #00000029;
    align-items: center;
    flex-direction: column;
    align-items: center;
  }
  
  .contact-area__inner__btn__form:hover {
    transform: translateY(3px);
    box-shadow: none;
  }
  .contact-area__inner__btn__form span {
    padding: 0.5rem 1rem 0rem;
    border-radius: 60px;
    font-weight: bold;
    line-height: 1;
  }
  .contact-area__inner__btn__form__arrow{
  width: 10px;
  height: auto;
  /* padding-left: 1rem; */
  transition: transform 0.3s ease-in-out;
  transform: rotate(90deg);
}
.contact-area__inner__text{
    padding: 1rem;
    flex: 1;

}

.contact-area__inner__text ul li{
    font-weight: bold;
}
.contact-area__inner__btn{
    display: flex;
    align-items: center;
    justify-content: space-around;
}
.contact-area__inner__main{
    display: flex;
    align-items: center;
    gap: 1rem;
}

/*--------------------------------------------
		共通設定
--------------------------------------------*/

@media screen and (max-width: 1024px) {
    #wrapper {
      width: 100%;
    }
  
    #form--wrapper {
      margin-left: auto;
      width: 90%;
      right: -90%;
    }
  }
/*--------------------------------------------
		Header / ヘッダー
--------------------------------------------*/

#header {
  width: 100%;
  top: 0;
  background-color: #fff;
  box-sizing: border-box;
  position: fixed;
  z-index: 99999;
  box-shadow: 0px 6px 3px -3px rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0px 6px 3px -3px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0px 6px 3px -3px rgba(0, 0, 0, 0.2);
}

.header {
  display: flex;
  justify-content: space-between;
  padding: 20px;
  align-items: center;
}

.header__right {
  display: flex;
  align-items: center;
  position: relative;
}

.header__right__main li {
  border-right: 1px solid #ddd;
  padding: 0 10px;
}

.header__right__main li a {
  position: relative;
  text-decoration: none;
}

.header__right__main li a:after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #ec6400;
  /* 下線の色 */
  transition: width 0.3s;
  /* アニメーション効果を追加 */
}

.header__right__main li a:hover:after {
  width: 100%;
}

.header__right__main li:last-child {
  border: none;
}

.header__right__main {
  display: flex;
  margin-right: 20px;
}

.header__right__cta {
  display: flex;
  gap: 10px;
}

.header__right__cta__contact a {
  display: flex;
  background-color: #2146ac;
  padding: 1rem 3rem;
  border-radius: 3rem;
  width: fit-content;
  color: #fff;
  box-shadow: 3px 3px 5px #00000029;
}

.header__right__cta__tel {
  margin: auto;
}

.header .contact__btn {
  font-size: 1.8rem;
}

.header__right__cta__contact a:hover {
  transform: translateY(3px);
  box-shadow: none;
}

.hamburger-menu {
  display: none;
  flex-direction: column;
  cursor: pointer;
  width: 48px;
  height: 100%;
}

/*-------------------------------------
	ファーストビュー
--------------------------------------*/

#fv {
  position: relative;
  /* min-width: 1280px; */
  margin-top: 90px;
  box-sizing: border-box;
  background-image: url(../images/mainimage.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100%;
  background-size: cover;
}

.fv__inner {
  width: 100%;
  position: relative;
  min-height: 560px;
  max-width: 1280px;
  margin: auto;
}

.fv__inner__main {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.fv__inner--bubble {
  position: relative;
  padding: 0.5rem 1rem;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  display: block;
  width: fit-content;
  margin: auto;
  margin-bottom: 0.5rem;
}

.fv__inner--bubble::before,
.fv__inner--bubble::after {
  position: absolute;
  top: 0.8rem;
  height: 2.2rem;
  content: "";
}

.fv__inner--bubble::before {
  border-left: solid 3px;
  left: 0;
  transform: rotate(-30deg);
}

.fv__inner--bubble::after {
  border-right: solid 3px;
  right: 0;
  transform: rotate(30deg);
}

.fv__inner__title {
  color: #fff;
  background-color: #ec6400;
  font-size: 4rem;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.fv__inner__sub {
  color: #ec6400;
  font-size: 4rem;
  padding: 2rem 0;
  width: fit-content;
  margin: 0rem auto 5rem;
}

.fv__inner__title__sub {
  margin-bottom: 2rem;
  border-bottom: 3px solid #ec6400;
  padding-bottom: 10px;
  font-weight: 400;
}

.fv__inner__title--small {
  font-size: 3rem;
  font-weight: 400;
}

.fv__inner__sub-small {
  font-size: 2.5rem;
}

.fv__inner--bgye {
  border-bottom: dotted 4px #ec6400;
  padding-bottom: 0.5rem;
  background: linear-gradient(transparent 50%, #fff699 0%);
  font-weight: 400;
}

.fv__inner p {
  font-size: 1.25rem;
  text-align: center;
  color: #2146ac;
  font-weight: bold;
  text-shadow: 1px 1px 2px #f8f8f8;
}

.contact__btn__big {
  font-size: 2.5rem;
  font-weight: bold;
}

.fv__contact a {
  display: flex;
  background-color: #2146ac;
  padding: 2rem 3rem 1rem;
  border-radius: 6rem;
  width: fit-content;
  font-size: 1.75rem;
  color: #fff;
  box-shadow: 3px 3px 5px #00000029;
  align-items: center;
  flex-direction: column;
  align-items: center;
}

.fv__contact a:hover {
  transform: translateY(3px);
  box-shadow: none;
}

.fv_cta_txt {
  margin-bottom: 0.5rem;
}

.fv_cta_txt span:first-child {
  color: #2146ac;
  background-color: #fff;
  padding: 0.5rem 1rem;
  border-radius: 60px;
  font-weight: bold;
}

.fv__contact--btn .contact__btn__big {
  font-size: 2.5rem;
  font-weight: bold;
}

.fv__contact img.fv__contact--mail {
  width: 30px;
  height: auto;
  padding-right: 1rem;
}

.fv__contact img.fv__contact--arrow {
  width: 10px;
  height: auto;
  /* padding-left: 1rem; */
  transition: transform 0.3s ease-in-out;
  transform: rotate(90deg);
}

.fv__contact img:hover {
  opacity: 1;
}

.fv__cta-present {
  display: flex;
  flex-direction: row;
  gap: 1.5rem;
  margin-top: 1rem;
  align-items: center;
  justify-content: center;
}

.fv__cta-present__book {
  display: block;
  width: 280px;
}

.fv__cta-present__medal {
  position: absolute;
  top: 0;
  right: -2rem;
  transform: translateY(-45px);
  width: 100px;
}

.fv__left {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-style: normal;
  margin-top: 3rem;
  z-index: 999;
  position: absolute;
  top: 0%;
  /* left: 14%; */
}

.fv__left p.fv_txt01 {
  color: #000;
  font-size: 30px;
  line-height: 38px;
  text-decoration: underline;
  text-decoration-thickness: 0.2rem;
  text-underline-offset: 0.4rem;
  font-weight: bold;
  margin: 0 auto;
}

.fv_jisseki{
  width: 60%;
  margin: 0 auto;
  padding-top: 2rem;
}

.fv__left h1 {
  font-size: 50px;
  line-height: 60px;
  text-align: center;
  margin: 0 0 2rem;
}

.fv__left h1 span {
  color: #fff;
  -webkit-text-stroke: 2px #000;
}

.fv__left ul {
  text-align: center;
}

.fv__left ul li {
  color: #fff;
  display: inline-block;
  font-size: 20px;
  padding: 2rem;
  background-color: #000;
}

.fv__left p.fv_txt02 {
  color: #000;
  font-size: 20px;
  font-weight: bold;
}

.fv__right {
  position: absolute;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.fv__right__image img {
  max-width: 500px;
}

/*--------------------------------------------
		メリット
--------------------------------------------*/
main section {
  margin-top: 10rem;
}

#merit h2 {
  padding-bottom: 0.5rem;
  border-bottom: 3px solid #ec6400;
  display: block;
  width: fit-content;
  margin: 0 auto;
}

#merit h3 {
  font-size: 1.8rem;
  text-align: center;
}

.merit__inner {
  /* display: flex;
      flex-direction: row;
      justify-content: space-evenly; */
  margin-top: 2rem;
  padding: 1rem 6rem;
  max-width: 900px;
  margin: auto;
}

.merit__inner figure {
  max-width: 900px;
}

.merit__inner figure img {
  width: 100%;
}

#merit h2 span {
  color: #ec6400;
}

#merit h3 {
  font-size: 1.8rem;
  text-align: center;
}

.merit__inner {
  /* display: flex;
    flex-direction: row;
    justify-content: space-evenly; */
  margin-top: 2rem;
  padding: 1rem 6rem;
  max-width: 900px;
  margin: auto;
}

.merit__inner__card {
  /* width: 27%; */
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem 0rem;
}

.merit__inner__card__circle {
  background-color: #fff699;
  border-radius: 50%;
  aspect-ratio: 1/1;
  padding: 1rem;
  margin: 2rem 0;
  width: 70%;
}

.merit__inner__card img {
  display: block;
  width: 80%;
  width: 100%;
  margin: 0 auto;
}

.merit__other {
  background-color: #fffac5;
  border-radius: 2rem;
  padding: 2rem 3rem;
  max-width: 900px;
  margin: 3rem auto;
}

.merit__other h3 {
  font-size: 1.75rem;
}

.merit__other ul {
  padding: 2rem 7rem;
  background-color: #fff;
  margin-top: 1rem;
}

.merit__other ul li {
  margin-bottom: 1rem;
  background-image: url(../images/merit_finger.png);
  background-repeat: no-repeat;
  padding-left: 4rem;
  background-size: contain;
}

.merit__other ul li:last-child {
  margin-bottom: 0;
}

.merit__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit,
      minmax(250px, 1fr));
  /* カードの最小幅と最大幅を指定 */
  gap: 1rem;
  /* カード間の間隔 */
}

.merit__inner__card {
  padding: 20px;
  border-radius: 10px;
}

.merit__inner__card__circle {
  border-radius: 50%;
  /* 円形画像を作成 */
  overflow: hidden;
  /* 余分な部分を隠す */
}

.merit__inner__card__circle img {
  width: 100%;
  /* 円形画像の幅を100%にする */
  height: auto;
  /* 高さを自動調整 */
  display: block;
  /* 余分な空白を削除 */
  object-fit: cover;
  /* 画像を中央に配置し、余白をカット */
}

/*--------------------------------------------
		about
--------------------------------------------*/
#about {
  background-color: #f28b2c;
}

#about h3 {
  font-size: 2rem;
  margin-bottom: 0.2rem;
  border-bottom: 3px solid #ec6400;
  font-weight: bold;
  position: relative;
  width: fit-content;
  margin: 0 auto;
}

#about h3:before,
#about h3:after {
  position: absolute;
  top: 100%;
  left: 50%;
  content: "";
  height: 0;
  width: 0;
}

#about h3:before {
  border: 19px solid;
  border-color: transparent;
  border-top-color: #ec6400;
  margin-left: -19px;
}

#about h3:after {
  border: 16px solid;
  border-color: transparent;
  border-top-color: white;
  margin-left: -16px;
  margin-top: -1px;
}

.about__contents {
  padding: 5rem 3rem;
}

.about__inner {
  background-color: #fff;
  max-width: 900px;
  margin: 0 auto;
  border-radius: 2rem;
  padding: 4rem;
}

.about__inner--flex {
  display: flex;
  padding: 3rem 0;
}

.about__inner__text {
  padding: 0 2rem;
  width: 75%;
}

.about__inner__text p {
  margin-bottom: 1rem;
}

.about__inner__right {
  position: relative;
  display: block;
  margin: auto;
}

.about__inner__right--kenkou {
  position: absolute;
  right: -2rem;
  width: 35%;
  top: -2rem;
}

.about__inner__right--main {
  width: 100%;
  max-width: 400px;
}

/*-------------------------------------
	reason 他h2の見出しなど
--------------------------------------*/
section {
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
}

.section__inner {
  max-width: 1280px;
  margin: auto;
}

.h2__og {
  color: #f29918;
}

.h2__en {
  /* font-family: 'Futura PT', 'Book Oblique', sans-serif; */
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-style: italic;
  font-weight: normal;
  font-size: 2.5rem;
  color: #f29918;
}

.h2__en--wh {
  /* font-family: 'Futura PT', 'Book Oblique', sans-serif; */
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-style: italic;
  font-weight: normal;
  font-size: 2.5rem;
  color: #fff;
}

.reason__contents__li {
  display: flex;
  padding: 0 4rem;
  margin-bottom: 5rem;
}

.reason__contents__li.reverse {
  flex-direction: row-reverse;
}

.reason__contents__li.reverse .reason__contents__img p {
  left: 0;
}

.reason__contents__text {
  width: 100%;
  padding: 3rem 4rem;
}

.reason__contents__text h3 {
  font-size: 2.3rem;
  margin-bottom: 2rem;
}

.reason__contents__text p {
  margin-bottom: 1rem;
}

.reason__contents__img {
  position: relative;
  margin: auto;
}

.reason__contents__img p {
  position: absolute;
  font-size: 15rem;
  color: #f28b2c;
  right: 0;
  bottom: 4rem;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.reason__contents__img img {
  display: block;
  width: 100%;
  border-radius: 3%;
}

#reason:before,
#reason:after {
  position: absolute;
  left: -10%;
  display: block;
  width: 120%;
  content: "";
  border-top: 12em solid #f8f8f8;
  transform: rotate(-20deg);
  pointer-events: none;
  z-index: -1;
}

#reason:before {
  top: 30%;
}

#reason:after {
  bottom: 10%;
}

.reason__contents__text--small {
  font-size: 1rem;
}

.support__flow {
  padding-left: 120px;
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  margin-top: 5%;
  text-align: left;
}

.support__flow::before {
  content: "";
  width: 15px;
  height: 100%;
  background: #f5f5f5;
  margin-left: -8px;
  display: block;
  position: absolute;
  top: 0;
  left: 295px;
}

.support__flow li {
  position: relative;
}

.support__flow li dl {
  padding-left: 140px;
  position: relative;
  margin-bottom: 2.3rem;
}

.support__flow li dl::before {
  width: 7px;
  height: 7px;
  margin-top: -3px;
  background: #333333;
  border-radius: 50%;
  left: 171px;
}

.support__flow li dl::before,
.support__flow li dl::after {
  content: "";
  display: block;
  position: absolute;
  top: 36px;
}

.support__flow li dl::after {
  position: absolute;
  width: 70px;
  border-bottom: 1px dashed #707070;
  left: 185px;
}

.support__flow li span.support__flow--head {
  color: #fff !important;
  font-weight: normal;
  background-color: #ec6400;
  padding: 1.8rem;
  display: block;
  position: absolute;
  top: 5px;
  left: -120px;
  width: 235px;
}

.support__flow li dl dt {
  font-size: 25px;
  font-weight: 600;
  color: #555;
  margin-bottom: 1vh;
  width: 100%;
}

.support__flow dd {
  border: none;
  line-height: 3rem;
  height: 8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 15rem;
}

.support__flow li .support__flow--head::after {
  content: "";
  border-style: solid;
  border-width: 10px 0 10px 18px;
  border-color: transparent transparent transparent #ec6400;
  position: absolute;
  top: 50%;
  left: 100%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

/*--------------------------------------------
		hikaku
--------------------------------------------*/

.hikaku {
  padding: 3rem 0;
  max-width: 1000px;
  margin: 0 auto;
}

.hikaku_body_table {
  width: 98%;
  margin: 0 auto;
}

.hikaku_body_table th {
  font-size: 18px;
  font-weight: bold;
}

.hikaku_body_table th,
.hikaku_body_table td {
  width: 25%;
  text-align: center;
  vertical-align: middle;
  border: solid 1px #222;
}

.hikaku_company {
  padding: 0.25rem 0;
  background-color: #F6F6F6;
  font-weight: 400;
}

.hikaku_company img {
  max-width: 200px;
}

tr .hikaku_company-own {
  background-color: #EC8715;
  border: 5px solid #EC8715;
  font-size: 22px;
  font-weight: bold;
}

.hikaku_object .sankaku {
  font-size: 28px;
  font-weight: 700;
  display: block;
  text-align: center;
}

.hikaku_body_table .red {
  color: #E40005;
}

.hikaku_body_table .line {
  background: linear-gradient(transparent 70%, #FDF53D 30%);
}

.hikaku_body_table td:nth-child(1) {
  padding: 0 0.5rem;
  text-align: left;
  line-height: 6rem;
  font-weight: 700;
}

.hikaku_body_table .hikaku-price {
  line-height: 5rem;
  font-weight: 700;
}

.hikaku_body_table .hikaku-price strong {
  font-size: 22px;
  background: none;
}

.hikaku_body_table .hikaku-price .red strong {
  font-size: 28px;
}

.hikaku_body_table td {
  max-height: 6rem;
  height: 6rem;
  border: solid 1px #222;
  padding: 1rem 0.5rem;
}

tr .hikaku_object-own {
  background-color: #fffef2;
  border-left: 5px solid #EC8715;
  border-right: 5px solid #EC8715;
  font-weight: 700;
}

tr .hikaku_object-own.bb {
  border-bottom: 5px solid #EC8715;
}

/*--------------------------------------------
		price
--------------------------------------------*/
#price {
  background-color: #f29918;
  padding: 5rem;
  position: relative;
}

#price::before {
  position: absolute;
  border: 45px solid;
  border-color: transparent;
  border-top-color: white;
  margin-left: -45px;
  margin-top: -5px;
  top: 0;
  left: 50%;
  content: "";
  height: 0;
  width: 0;
}

.price__head {
  text-align: center;
  display: block;
  position: relative;
  width: fit-content;
  margin: auto;
}

.price__head h2 {
  color: #fff;
  font-size: 2.6rem;
  margin-bottom: 1rem;
}

.price__head p {
  color: #fff;
  padding: 0 1rem;
  margin-bottom: 1.5rem;
}

.price__head img {
  position: absolute;
  top: 0;
  right: -50px;
  width: 4rem;
}

.price__contents {
  margin-top: 3rem;
  max-width: 1200px;
  margin: 4rem auto 1rem;
  overflow: auto;
}

.price__attention p {
  color: #fff;
  max-width: 960px;
  margin: auto;
}

#price table {
  width: 1000px;
  overflow-x: scroll;
  white-space: nowrap;
  text-align: center;
  margin: auto;
  padding: 1.5rem;
}

#price table tr th {
  padding: 1rem;
}

.course .course__title--black,
.course .course__title--blue,
.course .course__title--red {
  font-size: 1.7rem;
  font-weight: bold;
  padding: 1rem 1.5rem;
}

.course .course__title--black {
  background-color: #555;
  color: #fff;
}

.course .course__title--blue {
  background-color: #3366cc;
  color: #fff;
}

.course .course__title--red {
  background-color: #ec1f00;
  color: #fff;
}

.course__txt {
  padding: 2rem;
  font-weight: bold;
}

.course__price {
  font-size: 4rem;
  font-weight: bold;
  padding-top: 2rem;
}

.course__price span {
  font-size: 1.3rem;
}

#price table tr th,
#price table tr td {
  background-color: #fff;
  font-size: 1.45rem;
  max-width: 220px;
  border: #ccc solid 1px;
  border-top: none;
}

#price table tr td.plan2_i,
#price table tr th.course_02 {
  background-color: #fffbd0;
}

#price table tr td {
  padding: 1rem;
}

#price table tr .fa-circle-dot,
#price table tr .fa-circle,
#price table tr .fa-xmark,
#price table tr .fa-play {
  font-size: 2rem;
}

#price table tr .fa-play {
  transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
}

#price table tr .fa-circle-dot,
#price table tr .fa-circle {
  color: #ec1f00;
}

.modal-wrapper {
  z-index: 999;
  position: fixed;
  top: 6rem;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 40px 10px;
  text-align: center;
}

.modal-button {
  color: #4f96f6;
  background-color: #eeeeee;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s;
  display: block;
  padding: 12px 13px;
  text-decoration: none;
  width: fit-content;
}

.modal-button:active {
  /*ボタンを押したとき*/
  -webkit-transform: translateY(2px);
  transform: translateY(2px);
  /*下に動く*/
}

/*ラベルホバー時*/
.modal-button:hover {
  color: #ffffff;
  background-color: #4f96f6;
  transition: 0.6s;
}

.modal-wrapper:not(:target) {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.modal-wrapper:target {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.4s, visibility 0.4s;
}

.modal-wrapper::after {
  display: inline-block;
  height: 100%;
  margin-left: -0.05em;
  vertical-align: middle;
  content: "";
}

.modal-wrapper .modal-window {
  box-sizing: border-box;
  display: inline-block;
  z-index: 20;
  position: relative;
  padding: 10px 30px 25px;
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
  vertical-align: middle;
}

.modal-wrapper .modal-window .modal-content {
  max-height: 80vh;
  overflow-y: auto;
  text-align: left;
}

.modal_title {
  font-size: 1.5em;
  position: relative;
  overflow: hidden;
  padding: 0;
}

.modal_title::before,
.modal_title::after {
  content: "";
  position: absolute;
  bottom: 0;
}

/* h2 プライマリカラー*/
.modal_title:before {
  border-bottom: 4px solid #6bb6ff;
  width: 100%;
}

/* h2 セカンダリカラー*/
.modal_title:after {
  border-bottom: 4px solid #c8e4ff;
  width: 100%;
}

.modal-content p {
  margin: 10px 0 0 0;
}

.modal-overlay {
  z-index: 10;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
}

.modal-wrapper .modal-close {
  z-index: 20;
  position: absolute;
  top: 5px;
  right: 5px;
  width: 35px;
  color: #95979c !important;
  font-size: 30px;
  font-weight: 700;
  line-height: 35px;
  text-align: center;
  text-decoration: none;
  text-indent: 0;
}

.modal-wrapper .modal-close:hover {
  color: #2b2e38 !important;
}

/*--------------------------------------------
		voice
--------------------------------------------*/
#voice {
  background: transparent linear-gradient(91deg, #ec6400 0%, #f7ad09 100%) 0% 0% no-repeat padding-box;
  padding: 2rem;
  overflow-x: hidden;
}

#voice h2 {
  color: #fff;
}

#voice h2 .voice__inner--en {
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-style: italic;
  font-size: 2rem;
}

.voice__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.slide-items {
  width: 100%;
  height: 100%;
}

ul.slick-dots {
  bottom: -18px;
}

.slick-dots li button:before {
  font-family: "slick";
  font-size: 13px;
}

.voice__slider {
  border-radius: 3rem;
  background-color: #fff;
  padding: 2.5rem 5rem 1rem;
  width: auto;
}

.voice__slider h3 {
  font-size: 1.85rem;
  font-weight: bold;
  background: linear-gradient(transparent 50%, #fff699 0%);
  margin-bottom: 1rem;
  width: fit-content;
  margin: auto;
}

/* Slider */
.slick-next {
  right: -6rem;
}

.slick-prev {
  left: -7rem;
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: 1;
}

.slick-next:before {
  font-family: "Font Awesome 6 Pro";
  font-size: 3rem;
  content: "\f138";
  opacity: 1;
  color: #333;
}

.slick-prev:before {
  font-family: "Font Awesome 6 Pro";
  font-size: 3rem;
  content: "\f137";
  opacity: 1;
  color: #333;
}

.voice__slider__contents {
  display: flex;
  margin: 2rem auto;
  justify-content: space-around;
}

.voice__slide__img {
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: 50%;
  justify-content: center;
  text-align: center;
}

.voice__slide__name p {
  font-size: 1.8rem;
}

.voice__slide__img img {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  border-radius: 5rem;
  box-shadow: 3px 3px 5px #00000029;
  margin-bottom: 2rem;
}

.voice__slide_text {
  background-color: #f8f8f8;
  padding: 3rem;
  margin-left: 2rem;
  flex: 2;
}

.voice__slide_text dl dt {
  font-size: 1.8rem;
  font-weight: bold;
}

.voice__slide_text dl dd {
  margin: 1.6rem 0 2.6rem;
}

/*--------------------------------------------
		faq
--------------------------------------------*/
.faq__contents {
  max-width: 900px;
  margin: auto;
}

.faq__inner {
  padding: 2rem;
}

.faq__contents dl {
  border: 2px solid #ed6400;
  padding: 2.5rem 1.5rem 2.5rem 1rem;
  display: flex;
  flex-direction: column;
  display: flex;
  flex-direction: column;
  margin-bottom: 2.5rem;
}

.faq__contents dl dt,
.faq__contents dl dd {
  padding-left: 1rem;
}

.faq__contents dl dt {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 1rem;
  color: #707070;
  display: flex;
  gap: 1.5rem;
}

.faq__contents dl dt span {
  font-weight: bold;
  font-size: 2.5rem;
  color: #707070;
  line-height: 1.4rem;
}

.faq__contents dl dd span {
  font-weight: bold;
  font-size: 2.5rem;
  color: #707070;
}

.faq__contents dl dd {
  padding-left: 1rem;
  display: flex;
  align-items: center;
  gap: 1.75rem;
}

/*--------------------------------------------
		contact-form
--------------------------------------------*/
.contact-form__inner__head,
.company__inner__head {
  width: fit-content;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 2rem auto;
  text-align: center;
  gap: 1rem;
}

.contact-form__inner__head img {
  width: 28rem;
}

/*--------------------------------------------
		footer
--------------------------------------------*/
footer .copyright {
  background-color: #333;
  padding: 1rem;
  text-align: center;
  color: #fff;
}

/*====================================
    company
====================================*/
section#company {
  margin: 3rem 0;
}

.company__inner__head h3 {
  font-size: 1.5rem;
}

.company__inner__head img {
  width: 17rem;
  margin: 2rem 0;
}

.company__table {
  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
  width: 70%;
  margin: 3rem auto;
}

.company__table dl {
  display: table;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  width: 100%;
  box-sizing: border-box;
}

.company__table dt {
  display: table-cell;
  padding: 28px 32px;
  border-right: 1px solid #ddd;
  width: 28%;
  background-color: #f8f8f8;
  vertical-align: middle;
}

.company__table dd {
  display: table-cell;
  padding: 28px 32px;
}

.company__table dd a {
  color: #3366cc;
  margin-left: 10px;
  transition: all 0.2s ease;
}

.company__table dd a:hover {
  color: #3366cc;
  margin-left: 10px;
  opacity: 0.6;
}

.company__logoArea {
    max-width: 1280px;
  margin: 1rem auto;
  display: flex;
  width: fit-content;

}

.company__logoArea img {
  display: block;
  margin: auto;
}

/*====================================
    privacy
====================================*/
.privacy {
  margin: 0 auto;
  width: 90%;
  max-width: 1200px;
  padding: 10rem 1rem;
}

.privacy h2 {
  font-size: 28px;
  margin-bottom: 24px;
  text-align: center;
  border-bottom: #333 solid 1px;
}

.privacy ol li {
  padding-bottom: 20px;
}

.privacy ol li table th,
.privacy ol li table td {
  border: 1px solid #333;
  padding-left: 20px;
}

/* /////////////////////////////////////////////////////////////////////////////

 プライバシーポリシー

///////////////////////////////////////////////////////////////////////////// */
.privacy-policy {
  background-color: #ffffff;
  padding: 40px 30px;
}

.privacy-policy .container {
  max-width: 800px;
  margin: 0 auto;
  font-family: 'Arial', sans-serif;
}

.privacy-policy h2 {
  font-size: 24px;
  color: #333;
  text-align: center; /* 中央揃え */
  margin: 100px 0px 20px;
  display: block; /* ブロック要素として扱う */
  width: 100%; /* 幅を100%に設定 */
}

.privacy-policy h3 {
  font-size: 20px;
  color: #555;
  margin-top: 20px;
}

.privacy-policy h4 {
  font-size: 18px;
  color: #555;
  margin-top: 10px;
font-weight: bold;
}

.privacy-policy p {
  font-size: 17px;
  line-height: 1.6;
  color: #666;
}

.privacy-policy a {
  color: #0073aa;
  text-decoration: none;
}

.privacy-policy a:hover {
  text-decoration: underline;
}

.privacy-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 5px;
}

.privacy-table th, .privacy-table td {
  border: 1px solid #ddd;
  padding: 10px;
  text-align: left;
}

.privacy-table th {
  background-color: #f2f2f2;
  font-weight: bold;
font-size: 16px;
}

.privacy-table td {
  background-color: #ffffff;
font-size: 16px;
}

.text-right {
  text-align: right;
}
.privacy-list {
  list-style-type: disc;
  margin-left: 20px;
  padding-left: 20px;
}

.privacy-list li {
  margin-bottom: 8px;
  color: #333;
  font-size: 16px;
}

.privacy-link {
  text-decoration: none;
  color: #333;
  margin: 10px 0px 20px;
  text-decoration: underline;
  text-align: center;
  display: block;
}

.f_copy {
  text-align: center;
  font-size: 18px;
  background-color: #333;
  padding: 1rem;
  color: #fff;
}

/* @media screen and (min-width: 1173px) {
  .fv__left{
  left: 17%;
}
} */

/*
===============================
 コンサルタント紹介 (Consultant)
===============================
*/
#consultant {
  background-color: #f5f5f5;
  padding: 1rem 0;
  /* 既存のスタイル（上記2行）はそのまま */
  padding-top: 60px; /* 既存の他セクションと余白を合わせる（推奨） */
  padding-bottom: 60px;
}

#consultant > div {
  display: flex;
  align-items: center; /* 垂直方向の中央揃え */
  gap: 40px; /* 写真とテキストの間の隙間 */
  max-width: 1000px; /* サイトの最大幅に合わせて調整 */
  margin: 0 auto;
  padding: 0 20px; /* 左右の余白 */
}

#consultant figure {
  flex-shrink: 0; /* コンテナが縮んでも写真が潰れないように */
  margin: 0;
}

#consultant figure img {
  display: block;
  width: 220px;
  height: 220px;
  border-radius: 50%; /* 写真を円形に */
  object-fit: cover; /* 画像が歪まないように調整 */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); /* 写真に少し影をつける */
}


.consultant-profile__info {
  flex-grow: 1; /* 残りのスペースをすべて取る */
}

.consultant-profile__info h3 {
  font-size: 2.4rem; 
  font-weight: 800;
  margin: 0 0 15px 0;
  font-family: "Zen Kaku Gothic New", sans-serif; /* 見出しとフォントを合わせる */
}

.consultant-profile__info p {
  font-size: 1.6rem; /* 16px */
  line-height: 1.8; /* 行間を広めに */
  margin: 0;
}


/*
===============================
 レスポンシブ対応 (スマホ)
===============================
*/
@media (max-width: 767px) {
  #consultant {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  #consultant > div {
    flex-direction: column; /* 縦積みに */
    gap: 25px;
    padding: 0 15px; /* スマホ時の左右余白 */
  }

  #consultant figure img {
    width: 180px; /* スマホでは写真を少し小さく */
    height: 180px;
  }

  .consultant-profile__info {
    text-align: left; /* スマホでもテキストは左揃え */
  }

  .consultant-profile__info h3 {
    text-align: center; /* 名前だけ中央揃え */
    font-size: 2rem; 
  }

  .consultant-profile__info p {
    font-size: 1.4rem; 
  }
}