@charset "UTF-8";
/* ///////////////////////////////////////////
  style.scss
/////////////////////////////////////////// */
/*====================================
  00_base
=====================================*/
/*====================================
  04_font
=====================================*/
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700&display=swap&subset=japanese");
@import url("https://fonts.googleapis.com/css2?family=Kaisei+Decol:wght@400..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400..900&display=swap");
/* Box sizing rules */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  -ms-text-size-adjust: none;
      text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  -webkit-margin-after: 0;
          margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
/*
h1, h2,
h3, h4 {
  text-wrap: balance;
}
*/
/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/*====================================
  01_layout
=====================================*/
/* ///////////////////////////////////////////
  value.scss
  変数・mixinに関する設定
/////////////////////////////////////////// */
/*====================================
  カラー
====================================*/
/*====================================
  画像
====================================*/
/*====================================
  font
=====================================*/
/*
//14px（横幅320px）～16px（横幅768px以上）で可変するフォントサイズ
$variableFontSize: clamp(0.875rem, 0.786rem + 0.45vw, 1rem);
$variableFontSizeを元に$sizeに入力したフォントサイズ（px）と同等のサイズを計算する
※こちらは可変しません

@function fz($size) {
  $fontSize: calc($variableFontSize * ($size / 16));
  @return $fontSize;
}
*/
/* ///////////////////////////////////////////
  scss
  mixinに関する設定
/////////////////////////////////////////// */
/*====================================
  フォント
====================================*/
/*====================================
  レイアウト・パーツ
====================================*/
/* /////////////////////////////////
  Media Queries
///////////////////////////////// */
/* ///////////////////////////////////////////
  extend.scss
  各ページで使い回すパーツやスタイルに関する記述
/////////////////////////////////////////// */
/* ======================
ページタイトル
====================== */
/*
%pagetitle {
  color:#f00;
}
*/
/* ======================
見出し
====================== */
/* ///////////////////////////////////////////
  layout.scss
  全体のレイアウトに関する記述
/////////////////////////////////////////// */
html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-style: normal;
  font-weight: 500;
  color: #000000;
  overflow-x: hidden;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  text-wrap: pretty;
  word-break: auto-phrase;
  line-height: 1.8;
}
@media only screen and (max-width: 375px) {
  body {
    font-size: 14px;
  }
}
body.fixed {
  height: 100%;
  overflow: hidden;
}

h1, h2, h3, h4, h5, h6,
table, tr, td, th,
ol, ul, li,
dl, dt, dd,
p {
  margin: 0;
  padding: 0;
  font-style: normal;
  font-size: 100%;
  list-style: none;
}

i, em {
  font-style: normal;
}

img {
  border: none;
  margin: 0;
  padding: 0;
}

figure {
  display: block;
  margin: 0;
}

a, *:focus {
  outline: none;
}

*::-moz-selection {
  background: #000000;
  color: #fff;
}

*::selection {
  background: #000000;
  color: #fff;
}

.hide {
  display: none !important;
}

@media only screen and (max-width: 820px) {
  .hideSP {
    display: none !important;
  }
}

@media only screen and (min-width: 821px) and (max-width: 1219px) {
  .hideTL {
    display: none !important;
  }
}

@media print, screen and (min-width: 1220px) {
  .hideDT {
    display: none !important;
  }
}

@media print, screen and (min-width: 821px) {
  .hidePC {
    display: none !important;
  }
}

main {
  margin: 0 auto;
}
a:link {
  color: #00b9ef;
}
a:visited {
  color: #666;
}
a:hover, a:active {
  color: #56d9ff;
}

/* ///////////////////////////////////////////
  header.scss
  ヘッダーに関する設定
/////////////////////////////////////////// */
.header {
  display: none;
}
/* ///////////////////////////////////////////
  footer.scss
  フッターに関する設定
/////////////////////////////////////////// */
@media print, screen and (min-width: 821px) {
  .footer__container {
    padding: 78px 30px 50px 30px;
  }
}
@media only screen and (max-width: 820px) {
  .footer__container {
    padding: 44px 20px 50px 20px;
  }
}
.footer__container h2 {
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media print, screen and (min-width: 821px) {
  .footer__container h2 {
    margin-bottom: 20px;
  }
}
@media only screen and (max-width: 820px) {
  .footer__container h2 {
    margin-bottom: 20px;
  }
}
.footer__container h2 span {
  display: inline-block;
  text-align: center;
  background-color: #f39939;
  color: #fff;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.4;
  min-width: 280px;
}
@media print, screen and (min-width: 821px) {
  .footer__container h2 span {
    padding: 5px 20px;
  }
}
@media only screen and (max-width: 820px) {
  .footer__container h2 span {
    padding: 7px 40px;
  }
}
.footer__container h3 {
  font-size: 1rem;
  font-weight: 700;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; /* 横線を上下中央 */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /* 文字と横線を横並び */
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; /* 文字を中央寄せ */
  margin-bottom: 12px;
}
.footer__container h3::before, .footer__container h3::after {
  background-color: #a9a9a9; /* 横線の色 */
  content: "";
  height: 1px; /* 横線の高さ */
  width: 89px; /* 横線の長さ */
}
.footer__container h3::before {
  margin-right: 26px; /* 文字との余白 */
}
.footer__container h3::after {
  margin-left: 26px; /* 文字との余白 */
}
.footer__container p {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
}
@media print, screen and (min-width: 821px) {
  .footer__container p .tel {
    text-decoration: none;
    pointer-events: none;
    color: #000;
  }
}
@media only screen and (max-width: 820px) {
  .footer__container p .tel {
    text-decoration: none;
    color: #000;
  }
}
.footer small {
  color: #fff;
  text-align: center;
  display: block;
  background-color: #00b9ef;
  font-size: 0.875rem;
  padding: 15px 20px;
}
/*====================================
  02_module
=====================================*/
/* ///////////////////////////////////////////
  module.scss
  各ページで使い回すパーツやスタイルに関する記述
/////////////////////////////////////////// */
.mod__button01 {
  font-weight: 700;
  margin: 0 auto;
  width: 100%;
  max-width: 800px;
  background-color: #fff;
  border-radius: 60px;
  overflow: hidden;
  letter-spacing: 1px;
}
@media print, screen and (min-width: 821px) {
  .mod__button01 {
    height: 120px;
    font-size: 1.75rem;
    letter-spacing: 2px;
  }
}
@media only screen and (max-width: 820px) {
  .mod__button01 {
    max-width: 450px;
    height: 80px;
    font-size: 1.125rem;
  }
}
.mod__button01 a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-decoration: none;
  border-radius: 60px;
  color: #000000;
  background: -webkit-gradient(linear, left top, left bottom, from(#FFDE24), to(#A88800));
  background: linear-gradient(180deg, #FFDE24 0%, #A88800 100%);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media print, screen and (min-width: 821px) {
  .mod__button01 a {
    width: 100%;
    height: 100%;
  }
}
@media only screen and (max-width: 820px) {
  .mod__button01 a {
    width: 100%;
    height: 100%;
  }
}
.mod__button01 a:hover {
  opacity: 0.8;
}
.mod__button01 a span {
  display: inline-block;
  position: relative;
  width: 100%;
  text-align: center;
}
.mod__button01 a span::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 40px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 13px;
  height: 13px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%3E%3Cg%20transform%3D%22translate(-6%20-5)%22%3E%3Cpath%20d%3D%22M32.5%2C16.5h-2V13H27V11h4.5a1%2C1%2C0%2C0%2C1%2C1%2C1Z%22%20transform%3D%22translate(-13.5%20-6)%22%2F%3E%3Cpath%20d%3D%22M23%2C26H14a1%2C1%2C0%2C0%2C1-1-1V16a1%2C1%2C0%2C0%2C1%2C1-1h4v2H15v7h7V21h2v4A1%2C1%2C0%2C0%2C1%2C23%2C26Z%22%20transform%3D%22translate(-7%20-8)%22%2F%3E%3Cpath%20d%3D%22M.707%2C6.207-.707%2C4.793l5.5-5.5L6.207.707Z%22%20transform%3D%22translate(12%206.5)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 820px) {
  .mod__button01 a span::after {
    right: 30px;
  }
}
.mod__button02 {
  font-family: "Kaisei Decol", sans-serif;
  font-weight: 300;
  margin-top: auto;
  max-width: 390px;
  margin: 0 auto;
  width: 100%;
  height: 80px;
  font-size: 1.75rem;
}
.mod__button02 a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-decoration: none;
  border-radius: 60px;
  color: #000000;
  background: #fff;
  color: #00b9ef;
  border: 1px solid #00b9ef;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  width: 100%;
  height: 80px;
}
.mod__button02 a:hover {
  background-color: #00b9ef;
  color: #000000;
}
.mod__button02 a span {
  display: inline-block;
  position: relative;
  width: 100%;
  text-align: center;
}
.mod__button02 a span::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 30px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 13px;
  height: 13px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%3E%3Cg%20transform%3D%22translate(-6%20-5)%22%3E%3Cpath%20d%3D%22M32.5%2C16.5h-2V13H27V11h4.5a1%2C1%2C0%2C0%2C1%2C1%2C1Z%22%20transform%3D%22translate(-13.5%20-6)%22%2F%3E%3Cpath%20d%3D%22M23%2C26H14a1%2C1%2C0%2C0%2C1-1-1V16a1%2C1%2C0%2C0%2C1%2C1-1h4v2H15v7h7V21h2v4A1%2C1%2C0%2C0%2C1%2C23%2C26Z%22%20transform%3D%22translate(-7%20-8)%22%2F%3E%3Cpath%20d%3D%22M.707%2C6.207-.707%2C4.793l5.5-5.5L6.207.707Z%22%20transform%3D%22translate(12%206.5)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}
.mod__button03 {
  font-weight: 500;
  margin-top: auto;
  max-width: 480px;
  margin: 0 auto;
  width: 100%;
  height: 80px;
  font-size: 1rem;
}
@media only screen and (max-width: 820px) {
  .mod__button03 {
    max-width: 295px;
    line-height: 1.4;
  }
}
.mod__button03 a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-decoration: none;
  border-radius: 60px;
  color: #000000;
  background: #fff;
  color: #00b9ef;
  border: 1px solid #00b9ef;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  width: 100%;
  height: 80px;
}
.mod__button03 a:hover {
  background-color: #00b9ef;
  color: #000000;
}
.mod__button03 a span {
  display: inline-block;
  position: relative;
  width: 100%;
  text-align: center;
}
.mod__button03 a span::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 30px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 13px;
  height: 13px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%3E%3Cg%20transform%3D%22translate(-6%20-5)%22%3E%3Cpath%20d%3D%22M32.5%2C16.5h-2V13H27V11h4.5a1%2C1%2C0%2C0%2C1%2C1%2C1Z%22%20transform%3D%22translate(-13.5%20-6)%22%2F%3E%3Cpath%20d%3D%22M23%2C26H14a1%2C1%2C0%2C0%2C1-1-1V16a1%2C1%2C0%2C0%2C1%2C1-1h4v2H15v7h7V21h2v4A1%2C1%2C0%2C0%2C1%2C23%2C26Z%22%20transform%3D%22translate(-7%20-8)%22%2F%3E%3Cpath%20d%3D%22M.707%2C6.207-.707%2C4.793l5.5-5.5L6.207.707Z%22%20transform%3D%22translate(12%206.5)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

/*====================================
  03_page
=====================================*/
/* /////////////////////////////////////////////////////////
  トップページ
///////////////////////////////////////////////////////// */
/*====================================
  about
====================================*/
.home__heading {
  font-weight: 500;
  text-align: center;
  color: #00b9ef;
}
@media print, screen and (min-width: 821px) {
  .home__heading {
    font-size: 4rem;
  }
}
@media only screen and (max-width: 820px) {
  .home__heading {
    font-size: 2rem;
  }
}
.home__heading span {
  display: block;
  margin-top: 0.5em;
}
@media print, screen and (min-width: 821px) {
  .home__heading span {
    font-size: 1.5rem;
  }
}
@media only screen and (max-width: 820px) {
  .home__heading span {
    font-size: 1rem;
  }
}

/*====================================
  mv
====================================*/
.mv {
  position: relative;
}
@media print, screen and (min-width: 821px) {
  .mv {
    min-height: 800px;
    padding: 60px 30px;
    background-image: url("../images/mv_bg-pc.jpg");
    background-position: 50% 50%;
    background-size: cover;
    background-repeat: no-repeat;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media only screen and (max-width: 820px) {
  .mv {
    padding: 84vw 15px 40px 15px;
    background-image: url("../images/mv_bg-sp.jpg");
    background-position: 50% 50%;
    background-position: top center;
    background-size: cover;
    background-repeat: no-repeat;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.mv__container {
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .mv__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media print, screen and (min-width: 821px) {
  .mv__text {
    width: 53%;
  }
}
@media only screen and (min-width: 821px) and (min-width: 821px) and (max-width: 1219px) {
  .mv__text {
    width: 68%;
  }
}
.mv__text .mv-main {
  display: block;
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .mv__text .mv-main {
    width: 100%;
  }
}
@media only screen and (max-width: 820px) {
  .mv__text .mv-main {
    width: 100%;
  }
}
.mv__text .mv-main img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*====================================
  about
====================================*/
.about {
  background-color: #fffcc5;
}
@media print, screen and (min-width: 821px) {
  .about {
    padding: 100px 30px 100px 30px;
  }
}
@media only screen and (max-width: 820px) {
  .about {
    padding: 60px 20px 70px 20px;
  }
}
.about .container {
  max-width: 990px;
  width: 100%;
  margin: 0 auto;
}
.about .container h2 {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .about .container h2 {
    width: 481px;
    margin-bottom: 40px;
  }
}
@media only screen and (max-width: 820px) {
  .about .container h2 {
    wisth: 100%;
    max-width: 450px;
    margin-bottom: 28px;
  }
}
.about .container h2 img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
.about .container figure {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .about .container figure {
    max-width: 990px;
  }
}
@media only screen and (max-width: 820px) {
  .about .container figure {
    max-width: 450px;
  }
}
.about .container figure img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*====================================
  feature
====================================*/
.feature {
  background-color: #00b9ef;
  position: relative;
}
@media print, screen and (min-width: 821px) {
  .feature {
    padding: 0 30px 0 30px;
  }
}
@media only screen and (max-width: 820px) {
  .feature {
    padding: 0 20px 60px 20px;
  }
}
.feature::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 55px;
  background: #fffcc5;
}
@media only screen and (max-width: 820px) {
  .feature::before {
    height: 10vw;
    max-height: 50px;
  }
}
.feature .container {
  max-width: 1260px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.feature .container h2 {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .feature .container h2 {
    width: 481px;
    margin-bottom: 40px;
  }
}
@media only screen and (max-width: 820px) {
  .feature .container h2 {
    wisth: 100%;
    max-width: 450px;
    margin-bottom: 28px;
  }
}
.feature .container h2 img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
.feature .container figure {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .feature .container figure {
    max-width: 1260px;
  }
}
@media only screen and (max-width: 820px) {
  .feature .container figure {
    max-width: 600px;
  }
}
.feature .container figure img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*====================================
  interview
====================================*/
.interview {
  background-color: #fff;
}
@media print, screen and (min-width: 821px) {
  .interview {
    padding: 84px 30px 88px 30px;
  }
}
@media only screen and (max-width: 820px) {
  .interview {
    padding: 40px 0;
  }
}
.interview .container {
  max-width: 1260px;
  width: 100%;
  margin: 0 auto;
}
.interview .container figure {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .interview .container figure {
    max-width: 1260px;
  }
}
@media only screen and (max-width: 820px) {
  .interview .container figure {
    max-width: 100%;
  }
}
.interview .container figure img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*====================================
  faq
====================================*/
.faq {
  background-color: #fffcc5;
}
@media print, screen and (min-width: 821px) {
  .faq {
    padding: 80px 30px;
  }
}
@media only screen and (max-width: 820px) {
  .faq {
    padding: 60px 20px;
  }
}
.faq .container {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
}
.faq .container h2 {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .faq .container h2 {
    width: 481px;
    margin-bottom: 76px;
  }
}
@media only screen and (max-width: 820px) {
  .faq .container h2 {
    wisth: 100%;
    max-width: 450px;
    margin-bottom: 30px;
  }
}
.faq .container h2 img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
.faq .container figure {
  margin: 0 auto;
}
@media print, screen and (min-width: 821px) {
  .faq .container figure {
    max-width: 1000px;
  }
}
@media only screen and (max-width: 820px) {
  .faq .container figure {
    max-width: 450px;
  }
}
.faq .container figure img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}