@charset "UTF-8";
/*
このSassはVisual Studio Codeの
Live Sass Compilerを使用しています。
*/
/*--------------------------
メディアクエリ
---------------------------*/
/* スマホ表示 */
/*--------------------------
  PC/SPの改行位置
  ---------------------------*/
/* PC改行あり SP改行なし */
@media (min-width: 768px) {
  br.pc {
    display: block;
  }
  br.sp {
    display: none;
  }
}

/* PC改行なし SP改行あり */
@media (max-width: 767px) {
  br.pc {
    display: none;
  }
  br.sp {
    display: block;
  }
}

/*--------------------------
  PC/SPのコンテンツ切り替え
  ※表示させたいデバイスの Class を付ける
  ---------------------------*/
/* PCの場合、SPコンテンツを削除 */
@media (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

/* SPの場合、PCコンテンツを削除 */
@media (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

/*--------------------------
  vwとremの可変レイアウト用
  PC・tablet・SPの共通関数

  ※1pxはborderが消える場合の処置
  ---------------------------*/
/*--------------------------
  PC・tablet用
  remの基準を計算
  ---------------------------*/
/*
    計算式：　10(px) / 1366(px) * 100 = 0.52
    画面幅1366pxの時に "font-size: 10px" 相当になる
  
  　※デザインカンプの1366pxを基準として計算
    →つまり1366pxのデザインカンプのfont-size,width,marginのpxを元に構築しています。
  */
@media (min-width: 768px) {
  html,
  body {
    font-size: 0.73vw;
    letter-spacing: 0.05em;
  }
}

/*--------------------------
  SP用
  remの基準を計算
  ---------------------------*/
/*
    計算式：　10(px) / 375(px) * 100 = 2.66
    画面幅375pxの時に "font-size: 10px" 相当になる
  
  　※デザインカンプの375pxを基準として計算
    →つまり375pxのデザインカンプのfont-size,width,marginのpxを元に構築しています。
  */
@media (max-width: 767px) {
  html,
  body {
    font-size: 2.66vw;
  }
}

/*--------------------------
  vwとremの可変レイアウト用
  SP用
  ---------------------------*/
/*--------------------------
  opacity
  ---------------------------*/
/*--------------------------
テキストを削除
---------------------------*/
/*--------------------------
テキストの 3点リーダー表示 1行のみ
---------------------------*/
/*--------------------------
テキストの 3点リーダー表示 複数行
---------------------------*/
/*--------------------------
リンクのズーム
---------------------------*/
/*--------------------------
プレースホルダーの色設定
---------------------------*/
/* --------------------------
  clearfix
  @include で適用
  -------------------------- */
/*--------------------------
グラデーションアニメーション
---------------------------*/
/*--------------------------
フォント読み込み
---------------------------*/
@media (min-width: 768px) {
  body#top #mainvisual {
    border: 3.6rem solid #fff;
    width: 100%;
    height: 100vh;
    background: url(/images/mainvisual_pc.jpg) no-repeat center center;
    background-size: cover;
    position: relative;
  }
  body#top #mainvisual h1 {
    background: #fff;
    border-radius: 0 0 3rem 0;
    width: 19.5rem;
    height: 18rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: -0.1rem 0 0 -0.1rem;
  }
  body#top #mainvisual h1 img {
    width: 9.5rem;
    height: 11.8rem;
  }
  body#top #mainvisual .catchcopy {
    position: absolute;
    left: 4.8rem;
    bottom: 4rem;
  }
  body#top #mainvisual .catchcopy .passing_bar:before {
    height: 7rem;
  }
  body#top #mainvisual .catchcopy .passing_bar span {
    display: inline-block;
    background: #000;
    font-size: 3.6rem;
    height: 7rem;
    line-height: 6.8rem;
    font-weight: bold;
    letter-spacing: 0.2em;
    color: #fff;
    margin: 0 0 1rem 0;
    padding: 0 2rem;
  }
  body#top #mainvisual header {
    background: #fff;
    border-radius: 0 0 0 3rem;
    width: 48rem;
    height: 8.2rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: absolute;
    top: -0.1rem;
    right: -0.1rem;
  }
  body#top #mainvisual header ul {
    width: 100%;
    margin: -0.5rem 0 0 0;
    padding: 0 1.5rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  body#top #mainvisual header ul li {
    width: 25%;
    text-align: center;
    border-right: 1px dashed #c4c4c4;
    height: 3.4rem;
  }
  body#top #mainvisual header ul li:last-of-type {
    border-right: none;
  }
  body#top #mainvisual header ul li a {
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: 0;
    color: #333;
    margin: 0;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
  }
  body#top #mainvisual header ul li a:hover {
    -webkit-transform: scale(1.05, 1.05);
            transform: scale(1.05, 1.05);
  }
  body#top #mainvisual header ul li a span {
    font-family: "Oswald", sans-serif;
    font-size: 1rem;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1rem;
    color: #898989;
    margin: 0 0 0.5rem 0;
    display: block;
  }
  body#top #mainvisual .decoration {
    position: absolute;
    right: -4rem;
    bottom: 0;
    width: 50%;
    height: auto;
  }
  body#top #philosophy {
    position: relative;
    text-align: center;
    margin: 0 0 20rem 0;
  }
  body#top #philosophy:before {
    content: "PHILOSOPHY";
    font-family: "Montserrat", sans-serif;
    font-size: 18rem;
    font-weight: 300;
    letter-spacing: 0.02em;
    color: #f7f7f7;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  body#top #philosophy .inner {
    width: 60rem;
    margin: 0 auto;
    padding: 14rem 0 0 0;
    position: relative;
    left: 5rem;
  }
  body#top #philosophy .inner h2 {
    font-size: 1.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin: 0 0 10.5rem 0;
    text-align: left;
  }
  body#top #philosophy .inner p {
    font-size: 1.8rem;
    letter-spacing: 0.08em;
    line-height: 5rem;
    margin: 0;
    text-align: left;
  }
  body#top #philosophy .inner p:last-of-type {
    display: block;
    margin: 6rem 0 0 0;
  }
  body#top #philosophy .inner p span {
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.08em;
    margin: 0 0 0 0.5rem;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(73%, transparent), color-stop(50%, #f5e740));
    background: linear-gradient(transparent 73%, #f5e740 50%);
  }
  body#top #philosophy .inner h3 {
    text-align: right;
    margin: 2rem 5rem 0 0;
  }
  body#top #philosophy .inner h3 img {
    width: 10rem;
    height: 5rem;
  }
  body#top h2.heading {
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: 0.06em;
    line-height: 1.7;
    display: block;
    text-align: center;
    position: relative;
  }
  body#top h2.heading span {
    text-align: center;
    font-family: "Montserrat", sans-serif;
    font-size: 4.4rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #333;
    margin: 0;
    display: block;
  }
  body#top h2.heading span:first-letter {
    color: #f2df00;
  }
  body#top h2.heading:after {
    content: "";
    background: #333;
    width: 5rem;
    height: 1px;
    position: absolute;
    bottom: -3rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  body#top #service {
    position: relative;
    min-height: 89rem;
    padding: 0 0 40rem 0;
  }
  body#top #service:before {
    content: "";
    background: #fafafa;
    display: block;
    vertical-align: 0rem;
    position: absolute;
    left: 0;
    top: 10rem;
    width: 38.6rem;
    height: 200rem;
    z-index: -1;
  }
  body#top #service h2 {
    margin: 0 0 13.5rem 0;
  }
  body#top #service .inner {
    width: 110rem;
    margin: 0 auto;
  }
  body#top #service .inner h3 {
    font-size: 3.2rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    margin: 0 0 5rem 0;
    line-height: 1.7;
    position: relative;
  }
  body#top #service .inner h3 span {
    font-family: arial;
    font-size: 1.8rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    margin: 0 0 0;
    display: block;
  }
  body#top #service .inner h3:after {
    content: "";
    background: #333;
    width: 5rem;
    height: 1px;
    position: absolute;
    bottom: -2.5rem;
    left: 0;
    margin: 0 0 0 auto;
  }
  body#top #service .inner p {
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 4rem;
    margin: 0;
  }
  body#top #service .service_image {
    width: 69.4rem;
    height: 56.5rem;
    position: absolute;
    right: 0;
    top: 23.5rem;
  }
  body#top #company {
    position: relative;
    padding: 0 0 30rem 0;
  }
  body#top #company h2 {
    margin: 0 0 5rem 0;
  }
  body#top #company .inner {
    width: 110rem;
    margin: 0 auto;
    padding: 17rem 0 0 0;
  }
  body#top #company .inner dl {
    width: 64rem;
    margin: 0 0 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  body#top #company .inner dl dt {
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    margin: 0 0 3.3rem 0;
    width: 24%;
  }
  body#top #company .inner dl dd {
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    margin: 0 0 3.3rem 0;
    width: 76%;
  }
  body#top #company .company_image {
    width: 50.3rem;
    height: 70rem;
    position: absolute;
    left: 0;
    top: 23rem;
  }
  body#top #contact {
    background: -webkit-gradient(linear, left top, left bottom, from(#f5e740), color-stop(#f2ba00), to(#f2ba00));
    background: linear-gradient(#f5e740, #f2ba00, #f2ba00);
    position: relative;
    padding: 14.8rem 0;
  }
  body#top #contact:before {
    content: "";
    background: url(/images/contact_bg.svg) repeat;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
  }
  body#top #contact .form_wrap {
    position: relative;
    width: 110rem;
    margin: 0 auto;
    border-radius: 3rem;
    background: #fff;
  }
  body#top #contact .form_wrap h2.heading {
    position: absolute;
    left: 0;
    right: 0;
    margin: -3.7rem auto 0;
  }
  body#top #contact .form_wrap h2.heading span:first-letter {
    color: #f2ba00;
  }
  body#top #contact .form_wrap form {
    width: 90rem;
    margin: 0 auto;
    padding: 17rem 0 10rem 0;
    position: relative;
  }
  body#top #contact .form_wrap form table {
    margin: 0 0 5rem;
    padding: 0 0 2rem 0;
    border-collapse: separate;
    border-bottom: 1px solid #f1f1f1;
  }
  body#top #contact .form_wrap form table tr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin: 0 0 3rem 0;
  }
  body#top #contact .form_wrap form table tr th {
    width: 17.5rem;
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    margin: 0;
    text-align: left;
  }
  body#top #contact .form_wrap form table tr th span {
    color: #f20000;
    margin: 0 0 0 0.3rem;
  }
  body#top #contact .form_wrap form table tr td {
    width: 72.5rem;
  }
  body#top #contact .form_wrap form table input::-webkit-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input::placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-webkit-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea:placeholder-shown {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-webkit-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input:focus {
    outline: none;
  }
  body#top #contact .form_wrap form table input[type="text"],
  body#top #contact .form_wrap form table input[type="tel"],
  body#top #contact .form_wrap form table input[type="email"],
  body#top #contact .form_wrap form table input[type="password"] {
    border: 1px solid #cccccc;
    border-radius: 0.5rem;
    width: 47.5rem;
    max-width: 100%;
    margin: 0;
    padding: 0.6rem 1.6rem;
    font-size: 1.4rem;
    cursor: text;
  }
  body#top #contact .form_wrap form table label.checkbox {
    font-size: 1.4rem;
    line-height: 3.5rem;
    margin: 0 2.5rem 0 0;
    cursor: pointer;
  }
  body#top #contact .form_wrap form table label.checkbox input[type="checkbox"] {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: 1px solid #cccccc;
    width: 3.5rem;
    height: 3.5rem;
    line-height: 3.5rem;
    cursor: pointer;
    border-radius: 0.5rem;
    margin: 0 1.2rem 0 0;
    position: relative;
  }
  body#top #contact .form_wrap form table label.checkbox input[type="checkbox"]:hover {
    background: #fffbc6;
  }
  body#top #contact .form_wrap form table label.checkbox input[type="checkbox"]:checked {
    background: url(/images/checkbox.svg) no-repeat 0.4rem 0.4rem;
    background-size: 2.5rem 2.5rem;
  }
  body#top #contact .form_wrap form table select {
    border: 1px solid #cccccc;
    border-radius: 6rem;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 1.5rem 3rem;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #000;
  }
  body#top #contact .form_wrap form table textarea {
    border: 1px solid #cccccc;
    border-radius: 0.5rem;
    width: 100%;
    height: 25rem;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 3.6rem;
    padding: 1rem 2rem;
  }
  body#top #contact .form_wrap form .contact_form_submit input {
    display: block;
    width: 37.2rem;
    height: 6.3rem;
    line-height: 6.3rem;
    background: #272727 url(/images/triangle_black.svg) no-repeat 92% center;
    color: #fff;
    border-radius: 6rem;
    font-size: 1.7rem;
    letter-spacing: 0.05em;
    font-weight: bold;
    text-align: center;
    margin: 0 auto;
    -webkit-transition: 0.3s;
    transition: 0.3s;
  }
  body#top #contact .form_wrap form .contact_form_submit input:hover {
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
  }
  body#top #contact .form_wrap form .contact_form_submit input:hover:hover {
    -webkit-transform: scale(1.03, 1.03);
            transform: scale(1.03, 1.03);
  }
  body#top #contact .form_wrap .error_wrapper .error {
    color: #f20000;
    font-size: 1.4rem;
    display: block;
    line-height: 2.8rem;
  }
  #footer {
    background: #eef0f1;
    text-align: center;
    padding: 5rem 0 2rem;
  }
  #footer .footer_logo {
    width: 9.2rem;
    height: 12.6rem;
    margin: 0 auto 3rem;
  }
  #footer .footer_logo img {
    width: 100%;
    height: 100%;
  }
  #footer small {
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: 0.06em;
    margin: 0;
  }
  /*=======================
  お問い合わせ
  ・内容確認
  ・送信完了
  =======================*/
  #subpage_header {
    background: #eef0f1;
    text-align: center;
  }
  #subpage_header a {
    padding: 20px;
  }
  #subpage_header a img {
    width: 50%;
    height: 50%;
  }
  .contact_form h1 {
    text-align: center;
  }
  .contact_form h1 a {
    display: inline-block;
  }
  #confirm .inner {
    padding: 0 0 100px 0;
  }
  #confirm .inner .problem {
    width: 90rem;
    margin: 8rem auto 5rem;
    font-weight: bold;
    text-align: center;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #confirm .inner .problem {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #confirm .inner .problem {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #confirm .inner .problem strong {
    line-height: 7rem;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #confirm .inner .problem strong {
    font-size: 2rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #confirm .inner .problem strong {
    font-size: 2.6rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #confirm .inner form {
    width: 90rem;
    margin: 0 auto;
  }
  #confirm .inner form table {
    border-top: 1px dashed #707070;
  }
  #confirm .inner form table tr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-bottom: 1px dashed #707070;
    width: 90rem;
    padding: 2.5rem 0;
  }
  #confirm .inner form table tr th {
    width: 28rem;
    font-weight: bold;
    text-align: left;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #confirm .inner form table tr th {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #confirm .inner form table tr th {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #confirm .inner form table tr td {
    width: 74rem;
    text-align: left;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #confirm .inner form table tr td {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #confirm .inner form table tr td {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #confirm .inner form .send {
    width: 87rem;
    margin: 0 auto;
  }
  #confirm .inner form .send .submit {
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
    display: block;
    width: 37.2rem;
    height: 6.3rem;
    line-height: 6.3rem;
    margin: 7rem auto 5rem;
    font-weight: bold;
    color: #fff;
    border-radius: 12rem;
    background: #272727 url(/images/triangle_black.svg) no-repeat 92% center;
    text-align: center;
  }
  #confirm .inner form .send .submit:hover {
    -webkit-transform: scale(1.03, 1.03);
            transform: scale(1.03, 1.03);
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #confirm .inner form .send .submit {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #confirm .inner form .send .submit {
    font-size: 2.34rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #confirm .inner form .send .back {
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
    display: block;
    width: 25rem;
    height: 5rem;
    line-height: 5rem;
    margin: 0 auto;
    font-weight: bold;
    border-radius: 12rem;
    background: url(../images/back_arrow.png) #d2d2d2 no-repeat 7% center;
    background-size: 3.5rem;
    text-align: center;
  }
  #confirm .inner form .send .back:hover {
    -webkit-transform: scale(1.03, 1.03);
            transform: scale(1.03, 1.03);
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #confirm .inner form .send .back {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #confirm .inner form .send .back {
    font-size: 1.82rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #completion .inner .done {
    width: 80rem;
    margin: 10rem auto 10rem;
  }
  #completion .inner .done p.lead {
    margin: 0 0 6rem 0;
    line-height: 3.2rem;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #completion .inner .done p.lead {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #completion .inner .done p.lead {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #completion .inner .done .caution h2 {
    font-weight: bold;
    margin: 0 0 2rem 0;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #completion .inner .done .caution h2 {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #completion .inner .done .caution h2 {
    font-size: 2.34rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #completion .inner .done .caution ul {
    margin: 0 0 3rem 0;
  }
  #completion .inner .done .caution ul li {
    margin: 0 0 1rem 0;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #completion .inner .done .caution ul li {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #completion .inner .done .caution ul li {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #completion .inner .done .caution p {
    margin: 0 0 3rem 0;
    line-height: 4rem;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #completion .inner .done .caution p {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #completion .inner .done .caution p {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #notfound #content {
    width: 90rem;
    min-height: 60rem;
    margin: 10rem auto 0;
    text-align: center;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #notfound #content {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #notfound #content {
    font-size: 2.34rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #notfound #content h1 {
    margin: 0 0 5rem;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #notfound #content h1 {
    font-size: 3.6rem;
  }
}

@media (min-width: 768px) {
  #notfound #content p {
    line-height: 5rem;
    margin: 0 0 5rem;
  }
}

@media (min-width: 768px) and (min-width: 768px) {
  #notfound #content p {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  #notfound #content p {
    font-size: 2.08rem;
    line-height: 5rem;
  }
}

@media (min-width: 768px) {
  #notfound #content p a {
    text-decoration: underline;
  }
}

@media (max-width: 767px) {
  body#top #mainvisual {
    overflow: hidden;
  }
  body#top #mainvisual .inner {
    border: 1.5rem solid #fff;
    width: 100%;
    height: 100vh;
    background: url(/images/mainvisual_sp.jpg) no-repeat center center;
    background-size: cover;
    position: relative;
  }
  body#top #mainvisual .inner h1 {
    background: #fff;
    border-radius: 0 0 3rem 0;
    width: 13rem;
    height: 12rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: -2rem 0 0 -2rem;
    text-align: center;
  }
  body#top #mainvisual .inner h1 a {
    display: inline-block;
  }
  body#top #mainvisual .inner h1 a img {
    width: 45%;
    height: auto;
    margin: 1rem 0 0 1rem;
  }
  body#top #mainvisual .inner .catchcopy {
    position: absolute;
    left: 1rem;
    bottom: 10rem;
  }
  body#top #mainvisual .inner .catchcopy span {
    display: inline-block;
    background: #000;
    font-size: 2.4rem;
    height: 4.8rem;
    line-height: 4.6rem;
    font-weight: bold;
    letter-spacing: 0.22em;
    color: #fff;
    margin: 0 0 1rem 0;
    padding: 0 1.5rem;
    white-space: nowrap;
  }
  body#top #mainvisual .inner header {
    display: none;
  }
  body#top #mainvisual .inner .decoration {
    position: absolute;
    right: -2rem;
    bottom: 19.7rem;
    width: 22.4rem;
  }
  body#top #philosophy {
    position: relative;
    text-align: center;
    margin: 0 0 17rem 0;
    padding: 0 2.5rem;
    overflow: hidden;
  }
  body#top #philosophy:before {
    content: "PHILO";
    font-family: "Montserrat", sans-serif;
    font-size: 10.6rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    color: #f7f7f7;
    position: absolute;
    top: -2.5rem;
    left: -1rem;
    margin: 0 auto;
    z-index: -1;
  }
  body#top #philosophy:after {
    content: "SOPHY";
    font-family: "Montserrat", sans-serif;
    font-size: 10.6rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    color: #f7f7f7;
    position: absolute;
    top: 5.5rem;
    left: -1rem;
    margin: 0 auto;
    z-index: -1;
    white-space: nowrap;
  }
  body#top #philosophy .inner {
    margin: 0 auto;
    padding: 7rem 0 0 0;
    position: relative;
  }
  body#top #philosophy .inner h2 {
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin: 0 0 5rem 0;
    text-align: left;
    line-height: 3.2rem;
  }
  body#top #philosophy .inner p {
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    line-height: 2.8rem;
    margin: 0 0 2.4rem 0;
    text-align: left;
  }
  body#top #philosophy .inner p:last-of-type {
    display: block;
    margin: 6rem 0 0 0;
  }
  body#top #philosophy .inner p span {
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: 0.08em;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(73%, transparent), color-stop(50%, #f5e740));
    background: linear-gradient(transparent 73%, #f5e740 50%);
  }
  body#top #philosophy .inner h3 {
    text-align: right;
    margin: 4rem 0rem 0 0;
  }
  body#top #philosophy .inner h3 img {
    width: 10rem;
    height: 5rem;
  }
  body#top h2.heading {
    font-size: 1.4rem;
    font-weight: normal;
    letter-spacing: 0.06em;
    line-height: 1.7;
    display: block;
    text-align: center;
    position: relative;
  }
  body#top h2.heading span {
    text-align: center;
    font-family: "Montserrat", sans-serif;
    font-size: 3.6rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #333;
    margin: 0;
    display: block;
  }
  body#top h2.heading span:first-letter {
    color: #f2df00;
  }
  body#top h2.heading:after {
    content: "";
    background: #333;
    width: 5rem;
    height: 1px;
    position: absolute;
    bottom: -3rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  body#top #service {
    position: relative;
    min-height: 89rem;
    padding: 0 0 10rem 0;
  }
  body#top #service:before {
    content: "";
    background: #fafafa;
    display: block;
    vertical-align: 0rem;
    position: absolute;
    left: 0;
    top: -5rem;
    width: 13rem;
    height: 200rem;
    z-index: -1;
  }
  body#top #service h2 {
    margin: 0 0 13.5rem 0;
  }
  body#top #service .inner {
    margin: 0 auto 4.5rem;
    padding: 0 2.5rem;
  }
  body#top #service .inner h3 {
    font-size: 2.4rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    margin: 0 0 4rem 0;
    line-height: 1.7;
    position: relative;
  }
  body#top #service .inner h3 span {
    font-family: arial;
    font-size: 1.4rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    margin: 0 0 0;
    display: block;
  }
  body#top #service .inner h3:after {
    content: "";
    background: #333;
    width: 5rem;
    height: 1px;
    position: absolute;
    bottom: -2rem;
    left: 0;
    margin: 0 0 0 auto;
  }
  body#top #service .inner p {
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 2.8rem;
    margin: 0;
  }
  body#top #service figure {
    padding: 0 2.5rem;
  }
  body#top #service figure .service_image {
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
  }
  body#top #company {
    position: relative;
    padding: 0 0 10rem 0;
  }
  body#top #company h2 {
    margin: 0 0 5rem 0;
  }
  body#top #company .inner {
    margin: 0 auto;
    padding: 0 0 0 0;
  }
  body#top #company .inner dl {
    margin: 0 0 0 auto;
    padding: 0 2.5rem;
  }
  body#top #company .inner dl dt {
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.5;
    margin: 0 0 0.5rem 0;
    display: block;
  }
  body#top #company .inner dl dd {
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    margin: 0 0 2.4rem 0;
    display: block;
  }
  body#top #company figure {
    width: 19.8rem;
    height: 37rem;
    position: absolute;
    bottom: 10rem;
    right: 0;
    z-index: -1;
    opacity: 0.9;
  }
  body#top #company figure .company_image {
    width: 100%;
    height: 100%;
    border-radius: 0.5rem;
  }
  body#top #contact {
    background: -webkit-gradient(linear, left top, left bottom, from(#f5e740), color-stop(#f2ba00), to(#f2ba00));
    background: linear-gradient(#f5e740, #f2ba00, #f2ba00);
    position: relative;
    padding: 8rem 2.5rem;
  }
  body#top #contact:before {
    content: "";
    background: url(/images/contact_bg.svg) repeat;
    background-size: 50%;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
  }
  body#top #contact .form_wrap {
    position: relative;
    margin: 0 auto;
    border-radius: 3rem;
    background: #fff;
  }
  body#top #contact .form_wrap h2.heading {
    position: absolute;
    left: 0;
    right: 0;
    margin: -3rem auto 0;
  }
  body#top #contact .form_wrap h2.heading span:first-letter {
    color: #f2ba00;
  }
  body#top #contact .form_wrap h2.heading:after {
    bottom: -2rem;
  }
  body#top #contact .form_wrap form {
    margin: 0 auto;
    padding: 12rem 0 5rem 0;
    position: relative;
  }
  body#top #contact .form_wrap form table {
    width: 100%;
    margin: 0 0 0;
    padding: 0 0 1rem;
    border-collapse: separate;
  }
  body#top #contact .form_wrap form table tr {
    display: block;
    margin: 0 0 2rem 0;
    padding: 0 2.5rem;
  }
  body#top #contact .form_wrap form table tr th {
    font-size: 1.4rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    margin: 0 0 0.5rem 0;
    text-align: left;
    display: block;
  }
  body#top #contact .form_wrap form table tr th span {
    color: #f20000;
    margin: 0 0 0 0.3rem;
  }
  body#top #contact .form_wrap form table tr td {
    display: block;
  }
  body#top #contact .form_wrap form table input::-webkit-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input::placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-webkit-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea:-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-ms-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea:placeholder-shown {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table textarea::-webkit-input-placeholder {
    color: #aaaaaa;
  }
  body#top #contact .form_wrap form table input:focus {
    outline: none;
  }
  body#top #contact .form_wrap form table input[type="text"],
  body#top #contact .form_wrap form table input[type="tel"],
  body#top #contact .form_wrap form table input[type="email"],
  body#top #contact .form_wrap form table input[type="password"] {
    border: 1px solid #cccccc;
    border-radius: 0.5rem;
    width: 100%;
    max-width: 100%;
    margin: 0 0;
    padding: 0.6rem 1.2rem;
    font-size: 1.4rem;
    cursor: text;
  }
  body#top #contact .form_wrap form table label.checkbox {
    font-size: 1.4rem;
    line-height: 3.5rem;
    margin: 1rem 2.5rem 0 0;
    display: block;
    cursor: pointer;
  }
  body#top #contact .form_wrap form table label.checkbox input[type="checkbox"] {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: 1px solid #cccccc;
    width: 3.5rem;
    height: 3.5rem;
    line-height: 3.5rem;
    cursor: pointer;
    border-radius: 0.5rem;
    margin: 0 1.2rem 0 0;
    position: relative;
  }
  body#top #contact .form_wrap form table label.checkbox input[type="checkbox"]:hover {
    background: #fffbc6;
  }
  body#top #contact .form_wrap form table label.checkbox input[type="checkbox"]:checked {
    background: url(/images/checkbox.svg) no-repeat 0.6rem 0.4rem;
    background-size: 2.4rem 2.4rem;
  }
  body#top #contact .form_wrap form table select {
    border: 1px solid #cccccc;
    border-radius: 6rem;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 1.5rem 3rem;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #000;
  }
  body#top #contact .form_wrap form table textarea {
    border: 1px solid #cccccc;
    border-radius: 0.5rem;
    width: 100%;
    min-height: 12rem;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 3.6rem;
    padding: 0.5rem 1.2rem;
  }
  body#top #contact .form_wrap form .contact_form_submit {
    margin: 0 2.5rem;
    padding: 3.5rem 0 0 0;
    border-top: 1px solid #f1f1f1;
  }
  body#top #contact .form_wrap form .contact_form_submit input {
    display: block;
    width: 22.8rem;
    height: 4rem;
    line-height: 4rem;
    background: #272727 url(/images/triangle_black.svg) no-repeat 92% center;
    color: #fff;
    border-radius: 6rem;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    font-weight: bold;
    text-align: center;
    margin: 0 auto;
    -webkit-transition: 0.3s;
    transition: 0.3s;
  }
  body#top #contact .form_wrap form .contact_form_submit input:hover {
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
  }
  body#top #contact .form_wrap form .contact_form_submit input:hover:hover {
    -webkit-transform: scale(1.03, 1.03);
            transform: scale(1.03, 1.03);
  }
  body#top #contact .form_wrap .error_wrapper .error {
    color: #f20000;
    font-size: 1.4rem;
    display: block;
    line-height: 2.8rem;
  }
  #footer {
    background: #eef0f1;
    text-align: center;
    padding: 3rem 0 2rem;
  }
  #footer .footer_logo {
    width: 4.6rem;
    margin: 0 auto 1rem;
  }
  #footer .footer_logo img {
    width: 100%;
    height: 100%;
  }
  #footer small {
    font-size: 1.4rem;
    font-weight: normal;
    letter-spacing: 0.06em;
    margin: 0;
  }
  /*=======================
  サブページヘッダー
  =======================*/
  #subpage_header {
    background: #eef0f1;
    text-align: center;
  }
  #subpage_header a {
    padding: 20px 0 10px;
  }
  #subpage_header a img {
    width: 40%;
    height: auto;
  }
  /*=======================
  お問い合わせ
  ・内容確認
  ・送信完了
  =======================*/
  .contact_form #content {
    position: relative;
    overflow: hidden;
  }
  .contact_form #content:after {
    content: "";
    background: url(../images/bg_orange_round.png) left top no-repeat;
    background-size: 100%;
    width: 20rem;
    height: 18.2rem;
    position: absolute;
    top: 40rem;
    right: -10rem;
    z-index: -1;
  }
  .contact_form #content .inner {
    position: relative;
    overflow: hidden;
    margin: 2rem auto 6rem;
    padding: 0 2rem;
  }
  .contact_form #content .inner:before {
    content: "";
    background: url(../images/bg_blue_round.png) left top no-repeat;
    background-size: 100%;
    width: 21.7rem;
    height: 21.5rem;
    position: absolute;
    top: 5rem;
    left: -9rem;
    z-index: -1;
  }
  .contact_form #content .inner:after {
    content: "";
    background: url(../images/bg_pink_round.png) left top no-repeat;
    background-size: 100%;
    width: 23rem;
    height: 21rem;
    position: absolute;
    bottom: 0;
    left: -15rem;
    z-index: -1;
  }
  .contact_form #content .inner h1 {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    margin: 0 0 2.5rem 0;
  }
  .contact_form #content .inner h1 strong {
    font-size: 2.2rem;
    line-height: 4rem;
    display: block;
  }
  .contact_form #content .inner .telephone {
    display: block;
    border: 1px solid #00a767;
    border-radius: 1.5rem;
    padding: 2.3rem 0 0.5rem 0;
    text-align: center;
    background: #fff;
  }
  .contact_form #content .inner .telephone p {
    font-size: 1.5rem;
    margin: 0 0 1.5rem 0;
  }
  .contact_form #content .inner .telephone p:last-of-type {
    font-size: 1.3rem;
    letter-spacing: initial;
  }
  .contact_form #content .inner .telephone img {
    width: 28.6rem;
    height: auto;
    margin: 0 0 1rem 0;
  }
  #confirm .inner .problem {
    margin: 3rem auto 2rem;
    font-size: 1.4rem;
    font-weight: bold;
  }
  #confirm .inner .problem strong {
    font-size: 1.6rem;
    display: inline-block;
  }
  #confirm .inner form {
    margin: 0 auto;
  }
  #confirm .inner form table {
    border-top: 1px dashed #707070;
    width: 100%;
  }
  #confirm .inner form table tr {
    border-bottom: 1px dashed #707070;
    padding: 1.5rem 0;
    display: block;
    min-height: 8rem;
  }
  #confirm .inner form table tr th {
    font-size: 1.4rem;
    font-weight: bold;
    text-align: left;
    display: block;
    width: 100%;
  }
  #confirm .inner form table tr td {
    font-size: 1.4rem;
    text-align: left;
    display: block;
    width: 100%;
  }
  #confirm .inner form .send {
    margin: 0 auto;
  }
  #confirm .inner form .send .submit {
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
    display: block;
    width: 100%;
    height: 6.3rem;
    line-height: 6.3rem;
    margin: 5rem auto 3rem;
    font-size: 1.4rem;
    font-weight: bold;
    color: #fff;
    border-radius: 12rem;
    background: #272727 url(/images/triangle_black.svg) no-repeat 92% center;
    text-align: center;
  }
  #confirm .inner form .send .submit:hover {
    -ms-filter: "alpha(opacity=70)";
    /* IE 8,9 */
    -moz-opacity: 0.7;
    /* FF , Netscape */
    -khtml-opacity: 0.7;
    /* Safari 1.x */
    opacity: 0.7;
  }
  #confirm .inner form .send .back {
    -webkit-transition: 0.3s;
    transition: 0.3s;
    will-change: transform, animation, position;
    display: block;
    width: 100%;
    height: 5rem;
    line-height: 5rem;
    margin: 0 auto;
    font-size: 1.2rem;
    font-weight: bold;
    border-radius: 12rem;
    background: url(../images/back_arrow.png) #d2d2d2 no-repeat 7% center;
    background-size: 3.5rem;
    text-align: center;
  }
  #confirm .inner form .send .back:hover {
    -ms-filter: "alpha(opacity=70)";
    /* IE 8,9 */
    -moz-opacity: 0.7;
    /* FF , Netscape */
    -khtml-opacity: 0.7;
    /* Safari 1.x */
    opacity: 0.7;
  }
  #completion .inner .done {
    margin: 3rem auto 1rem;
  }
  #completion .inner .done p.lead {
    font-size: 1.4rem;
    margin: 0 0 3rem 0;
  }
  #completion .inner .done .caution h2 {
    font-size: 1.4rem;
    font-weight: bold;
    margin: 0 0 1.5rem 0;
  }
  #completion .inner .done .caution ul {
    margin: 0 0 1.5rem 0;
  }
  #completion .inner .done .caution ul li {
    font-size: 1.4rem;
    margin: 0 0 1rem 0;
    text-indent: -1em;
    padding-left: 1em;
  }
  #completion .inner .done .caution p {
    font-size: 1.4rem;
    margin: 0 0 2rem 0;
  }
  #notfound #content {
    padding: 0 2rem;
    min-height: 40rem;
    margin: 4rem auto 0;
    font-size: 1.6rem;
  }
  #notfound #content h1 {
    font-size: 2.4rem;
    margin: 0 0 3rem;
  }
  #notfound #content p {
    font-size: 1.6rem;
    line-height: 3rem;
    margin: 0 0 3rem;
  }
  #notfound #content p a {
    text-decoration: underline;
  }
}
/*# sourceMappingURL=style.css.map */