
/* ---------------------------------------------------------
共通
--------------------------------------------------------- */
body {
  line-height: 1.8;
  overflow-x: hidden;
}
img {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}
img, video, object {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  border: none;
}
@media only screen and (max-width: 767px) { /*SP表示*/
  .pc {
    display: none;
  }
}
@media screen and (min-width:767px) and (max-width:1024px) { /*タブレット表示*/
  body {
    min-width: initial;
  }
}
@media only screen and (min-width: 768px) { /*PC表示*/
  .sp {
    display: none;
  }

  /* PC表示でフォームを中央に配置 */
  .content-form,
  .content-sub_header {
    max-width: 980px; /* PCでのフォームの最大幅を定義 */
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
  }
}

.sp_only {
  display: none;
}

/* first_view */
.first_view {
  background-image: linear-gradient(136deg, rgb(242 243 240), rgb(221 220 217));
  display: flex;
  justify-content: center;
}
.first_view .pc_only {
  position: relative;
  margin: 0 auto;
  height: 773px;
  max-width: inherit;
}
.first_view .sp_only {
  display: none;
}
@media screen and (max-width: 980px) {
  .pc_only {
    display: none !important;
  }
  .first_view .pc_only {
    display: none !important;
  }
  .first_view .sp_only {
    display: block !important;
    position: relative;
    width: 100%;
  }
}
#header {
  width: 100%;
  padding: 20px 15px 0 !important;
  margin-top: 0 !important;
  }

/* ---------------------------------------------------------
   LPフォーム
--------------------------------------------------------- */
.content-sub_header {
  max-width: none; 
  padding-left: 0; 
  padding-right: 0;
}
.lp-page .content-sub_header,
.lp-page .content-form {
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
}
.grid-container {
  margin: 1% 0;
  -js-display: flex;
  -ms-display: flex;
  -ms-flex-wrap: wrap;
  display: -webkit-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.grid-container:after {
  content: "";
  display: block;
  clear: both;
}
.grid-container > * {
  float: left;
  display: inline-block;
  margin-right: 1%;
}
.grid-container > * :last-child {
  margin-right: 0;
}
.grid-container img {
  max-width: 100%;
  height: auto;
}
.content .content_body .grid-content {
  margin: 10px 10px 30px 10px;
  display: flex;
  text-align: left;
}

.content-form .form_progress {
    margin: 30px 0 20px;
}
.container, .content-blog {
    margin: 0 auto;
    max-width: 980px;
    padding: 0 20px;
}

.cl3 {
  width: 24.25%;
}
.cl9 {
  width: 73.75%;
}

.content-form .content_body br {
  display: none;
}
.content-form input[type="number"]::-webkit-outer-spin-button,
.content-form input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance: none;
}

.content-form input[type="text"],
.content-form input[type="number"],
.content-form input[type="tel"],
.content-form input[type="email"],
.content-form select{
  border: 1px solid #d2d2d2;
  padding: .5em;
  width: 24em;
  box-sizing: border-box;
} 

.content-form select[name="yy"]{
  width: 5.2em;
}
.content-form select[name="mm"],
.content-form select[name="dd"]{
  width: 4em;
}
.content-form input[name="name1"],
.content-form input[name="name2"],
.content-form input[name="furigana1"],
.content-form input[name="furigana2"]{
  width: 10em;
}
.breadcrumbs {
  display: none;
}
.lp-page .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.content-form .content_body span{
  font-size: 14px;
}

.content-form .content_body label {
  margin-right: 1em;
  padding: .6em 0;
  font-size: 14px;
}
.content-form .content_body .select{
  margin-left: 3px;
  margin-right: 3px;
}

@media screen and (max-width: 767px) {
  .content-form .grid-container{
    padding: 8px 0; 
    display: flex;
    flex-wrap: nowrap; 
  }
  .content-form .content_body .grid-content {
    margin: 0;
    /*padding: 0 5px ;*/
    text-align: left;
  }
  .content-form .content_body p {
    font-size: 3.1vw;
  }
  .content-form .content_body label,
  .content-form .content_body span {
    font-size: 3vw; /* SP用に文字サイズを固定 */
  }
  .content-form .content_body label{
    display: flex;
    margin-right: .5em;
  }

  .content-form select{

    width: auto;
    font-size: 10px;
  }
  .lp-page .container {
    max-width: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }

  .lp-page .content-sub_header,
  .lp-page .content-form {
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
    max-width: 100%;
  }

  .grid-container > .cl3 {
    width: 30%;
    padding-right: 5px;
    box-sizing: border-box;
  }
  .grid-container > .cl9 {
    width: 70%;
  }
  
  /* 全ての入力欄とセレクトボックスの基本設定 */
  .content-form input[type="text"],
  .content-form input[type="number"],
  .content-form input[type="tel"],
  .content-form input[type="email"],
  .content-form select {
    width: 100%;
    box-sizing: border-box;
    font-size: 3vw;
  }

  .content-form .grid-container .cl9 {
      display: flex;
      justify-content: space-between;
      align-items: center;
  }
  .content-form .content_body p {
    font-size: 12px;
    /*height: 30px; */
    padding: 0 10px;
  }
  /* 個人情報の同意文面と確認ボタン */
  .content-form form .grid-container:last-of-type {
    display: flex;
    flex-direction: column; /* 要素を縦に並べる */
    align-items: center;    /* 中央揃えにする */
    padding-top: 20px;
  }

  /* セクション内の子要素(文章とボタンエリア)の幅を100%に */
  .content-form form .grid-container:last-of-type > .cl12 {
    width: 100%;
    text-align: center;
  }
  .content-form form .grid-container:last-of-type > .cl12:first-child {
    margin-bottom: 20px;
  }
  
  /* ボタンのスタイル調整 */
  .content-form .more .button {
    width: auto;
    margin-bottom: 10px;
    min-width: 250px; 
    max-width: 80%; 
    display: inline-block; 
  }
  .content-form .more .button:last-child {
    margin-bottom: 0;
  }
  .content-form .more {
    text-align: center; 
  }
}

@media screen and (max-width: 768px) {
  #header {
    display: block;
    position: relative; 
    height: 50px; 
    width: 100%;
    padding: 0 !important;
    box-sizing: border-box;
    margin-top: 0 !important;
  }
  #header .logoarea {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
  }
  #header > div:last-child {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    margin-top: auto;
  }
  body.lp-page {
  margin-top: 0px !important;
}
}
#header {
  width: 100%;
  padding: 20px 15px 0 !important;
  }

body.lp-page {
  margin-top: 0px !important;
}