@charset "UTF-8";
img {
  width: auto;
  height: auto;
}

a {
  outline: none;
}

h2 {
  font-weight: normal;
}

html#form,
#form body {
  height: 100%;
  min-height: 720px;
}

body {
  color: #000;
  min-width: 1000px;
  max-width: 100%;
  overflow-x: hidden;
  margin: 0 auto;
}

strong {
  font-weight: bold;
}

.hover {
  -webkit-transition: .5s;
  transition: .5s;
  opacity: 1;
}

.hover:hover {
  opacity: .7;
}

.pageInner {
  margin: auto;
  width: 1100px;
  position: relative;
}

.center {
  text-align: center;
}

.flexBetween {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.flexStart {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}

.pattern_bg, #fv, .info1, #gallery h2, #gallery .gallery_area, #voice, #form #formFrame {
  background: url(../img/backgroundimage_pattern_01.png) repeat left top;
}

.section_title, #form .form_title {
  font-size: 28px;
  line-height: 50px;
}

.shadown_btn {
  position: relative;
}

.shadown_btn::after {
  content: '';
  background: url(../img/form_shadow.png) no-repeat;
  width: 434px;
  height: 146px;
  position: absolute;
  top: -19px;
  left: -38px;
  z-index: 1;
}

/*----- header -----*/
#header {
  height: 100px;
  background: url(../img/fv_campaign_image_pattern.png) repeat left top;
}

#header .header_inner {
  max-width: 900px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#header h1 {
  text-align: center;
}

#header .header_btn_group {
  display: flex;
  justify-content: space-between;
}

#header .header_inner .header_contact {
  display: flex; /* Flexboxを使用して中央揃え */
  justify-content: center; /* 要素を水平方向に中央揃え */
  align-items: center; /* 要素を垂直方向に中央揃え */
  margin: 5px;
}

/* ヘッダー内ボタンの共通スタイル */
#header .header_inner .header_contact a {
  text-align: center;
  text-decoration: none;
  color: white;
  font-weight: bold;
  font-size: 20px;
}

/* 「問い合わせ」ボタンのスタイル */
#header .header_inner .header_contact .contact_btn {
  width: 180px; /* 共通の幅を設定 */
  height: 40px; /* 共通の高さを設定 */
  background-color: #b6a062;
  border-radius: 100px;
  display: flex; /* Flexboxを使用して中央揃え */
  justify-content: center; /* テキストを水平方向に中央揃え */
  align-items: center; /* テキストを垂直方向に中央揃え */
}

/* 「内覧予約」ボタンのスタイル */
#header .header_inner .header_contact .viewing_btn {
  width: 180px; /* 共通の幅を設定 */
  height: 40px; /* 共通の高さを設定 */
  background-color: #23272f;
  border-radius: 100px;
  display: flex; /* Flexboxを使用して中央揃え */
  justify-content: center; /* テキストを水平方向に中央揃え */
  align-items: center; /* テキストを垂直方向に中央揃え */
}

/* 「TEL 03-6451-1524（平日9:00〜17:00）」ボタンのスタイル */
#header .header_inner .header_contact .tel_btn {
  width: 250px;
  height: 70px;
  display: flex; /* Flexboxを使用 */
  flex-direction: column; /* 要素を縦に並べる */
  background-color: transparent; /* 背景を透明に設定 */
  justify-content: center; /* テキストを水平方向に中央揃え */
  align-items: center; /* テキストを垂直方向に中央揃え */
}

#header .header_inner .header_contact .tel_btn p {
  margin: 5px;
}

#header .header_inner .header_contact .tel_btn .tel_num {
  display: block; /* ブロック要素として表示 */
  font-size: 20px;
}

#header .header_inner .header_contact .tel_btn .open_hour {
  display: block; /* ブロック要素として表示 */
  font-size: 14px;
}

/* ボタンへのホバーエフェクト */
#header .header_inner .header_contact a:hover {
  opacity: 0.5;
}

/*----- fv -----*/
#fv {}

#fv .fv-background {
  height: 590px;
  margin: auto;
  background: url(../img/fv_backgroundimage_02.jpg) no-repeat center top;
  position: relative;
}

/* #fv .fv-background .fv_title {
  position: absolute;
  top: auto;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
} */

.img-responsive {
  max-width: 70%;
  height: auto;
}

#fv .opening_campaign {
  position: absolute;
  left: calc(50% + 44px);
  bottom: 0;
}

#fv .fv_campaign {
  background: url(../img/fv_campaign_image_pattern.png) repeat left top;
}

#fv .fv_campaign p {
  width: 1140px;
  margin: 0 auto;
  position: relative;
}

#fv .fv_campaign p span {
  display: block;
  color: #fff;
  font-size: 30px;
  font-weight: bold;
  text-align: left;
  position: absolute;
  top: 41px;
  left: 65px;
}

/*----- info1 -----*/
.info1 ul {
  padding: 20px 60px 40px 50px;
}

.info1 ul li {
  position: relative;
}

.info1 ul li a {
  display: block;
  position: relative;
  z-index: 2;
}

.info1 ul li::after {
  content: '';
  background: url(../img/bnt_shadown.png) no-repeat;
  width: 536px;
  height: 156px;
  position: absolute;
  top: -19px;
  left: -38px;
  z-index: 1;
}

/*----- info -----*/
.info {
  background: url(../img/info_background_image_pattern.jpg) repeat left top;
}

.info .info_background {
  background: url(../img/info_background_image.jpg) no-repeat center top;
  padding: 71px 0 150px;
}

.info .info1 {
  margin-top: 42px;
  padding: 40px 60px 40px 50px;
}

.info ul li {
  position: relative;
}

.info ul li a {
  display: block;
  position: relative;
  z-index: 2;
}

.info ul li::after {
  content: '';
  background: url(../img/bnt_shadown.png) no-repeat;
  width: 536px;
  height: 156px;
  position: absolute;
  top: -19px;
  left: -38px;
  z-index: 1;
}

.banners {
  background: #e4e0d3;
  padding: 37px 0;
}

/*----- about -----*/
#about {
  padding: 70px 0 80px;
  height: 630px;
}

#about .pageInner {
  position: relative;
}

#about .about_text {
  position: absolute;
  top: 0;
  right: 0;
  width: 400px;
  height: 100%;
  background: #fff;
  z-index: 3;
  font-size: 17px;
  padding: 90px 0 0 43px;
  line-height: 36px;
}

#about .about_text p {
  margin-bottom: 36px;
  position: relative;
  z-index: 2;
}

#about .about_text::after {
  content: '';
  background: #e1eeff;
  width: 250px;
  height: 250px;
  top: 200px;
  left: 120px;
  position: absolute;
}

#about .owl-carousel {
  position: unset;
}

#about .owl-nav {
  position: absolute;
  z-index: 4;
}

#about #slideCenter {
  width: 1100px;
  background: #fff;
}

#about #slideLeft, #about #slideRight {
  position: absolute;
  background: #fff;
  width: 350px;
  height: 100%;
  top: 0;
}

#about #slideLeft {
  left: -360px;
}

#about #slideLeft .item .about_center {
  overflow: hidden;
}

#about #slideLeft .item img {
  margin-left: -340px;
}

#about #slideRight {
  right: -350px;
}

#about #slideRight .item .about_center {
  overflow: hidden;
}

#about #slideRight .item img {
  margin-left: 0;
}

@media only screen and (min-width: 1800px) {
  #about #slideLeft .item img {
    margin-left: -290px;
  }
  #about #slideRight .item img {
    margin-left: 140px;
  }
}

/*----- point -----*/
#point p {
  font-size: 18px;
  line-height: 31px;
  color: #010101;
}

#point p.point_04_text {
  letter-spacing: 0.6px;
}

#point ul {
  font-size: 0;
  margin-left: -20px;
  position: relative;
}

#point ul::before {
  content: '';
  width: 1px;
  height: 100px;
  position: absolute;
  top: -15px;
  left: 570px;
  background: #555;
}

#point ul::after {
  content: '';
  width: 1px;
  height: 100px;
  position: absolute;
  top: 107px;
  left: 570px;
  background: #555;
}

#point ul li {
  font-size: 18px;
  line-height: 25px;
  color: #010101;
  display: inline-block;
  border-bottom: 1px solid #555;
  width: 540px;
  margin-left: 20px;
  vertical-align: top;
}

#point ul li strong {
  display: block;
  color: #a48b43;
}

#point ul li span {
  font-size: 16px;
}

#point ul li.point_03_1 {
  padding: 0 0 20px 81px;
}

#point ul li.point_03_2 {
  padding: 0 0 45px 50px;
}

#point ul li.point_03_3 {
  padding: 24px 0 0 81px;
  border-bottom: none;
}

#point ul li.point_03_4 {
  padding: 24px 0 0 50px;
  border-bottom: none;
}

#point .point_01_text {
  font-size: 18px;
  line-height: 32px;
  margin: 24px 0 42px;
}

#point .point_01_text strong {
  display: block;
  font-size: 22px;
  color: #315a8f;
  letter-spacing: 1px;
}

#point .point_01 {
  background: #618fc2;
}

#point .point_02 {
  background: #8184a3;
  margin-bottom: 23px;
}

#point .point_03 {
  background: #998e7f;
  margin: 55px 0 115px;
  height: 350px;
}

#point .point_04 {
  background: #81a6af;
  margin: 60px 0 22px;
}

/*----- plan -----*/
#plan {
  margin: 87px 0 0;
}

#plan .plan_title {
  background: #557297;
  padding: 40px 0 14px;
}

#plan .section_title, #plan #form .form_title, #form #plan .form_title {
  line-height: 66px;
  color: #fff;
}

#plan .plan_pattern {
  background: url(../img/plan_backgroundimage_pattern_01.png) repeat left top;
  padding: 60px 0 50px;
}

#plan .plan_box {
  margin: 0 50px 10px;
}

#plan .plan_box_bnt {
  background: #e1eeff;
  padding: 10px 100px 10px 68px;
  position: relative;
  cursor: pointer;
}

#plan .plan_box_bnt::before {
  content: "";
  background: #73aaf4;
  width: 30px;
  height: 2px;
  position: absolute;
  top: 34px;
  left: 0;
}

#plan .plan_box_bnt::after {
  content: "";
  background: url(../img/plan_icon_off.png) no-repeat;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 15px;
  right: 20px;
}

#plan .plan_box_bnt span {
  font-size: 26px;
  line-height: 50px;
  color: #315a8f;
  letter-spacing: -2px;
}

#plan .plan_box_bnt .tag_text {
  font-size: 18px;
  line-height: 31px;
  width: 160px;
  text-align: center;
  float: right;
  margin-top: 10px;
}

#plan .plan_box_bnt .tag_green {
  background: #23beae;
  color: #fff;
}

#plan .plan_box_bnt .tag_white {
  background: #fff;
  color: #557297;
}

#plan .acitve {
  background: #8ea0b7;
}

#plan .acitve span {
  color: #fff;
}

#plan .acitve::before {
  background: #fff;
}

#plan .acitve::after {
  content: "";
  background: url(../img/plan_icon_on.png) no-repeat;
}

#plan .plan_box_detail {
  display: none;
  background: #fff;
  padding: 40px 0 38px;
}

#plan .plan_campaign_top {
  background: #f3ffa5;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 940px;
  height: 150px;
  margin: -20px auto 0;
  padding: 44px 30px 0 32px;
}

#plan .plan_campaign_top dl {
  font-size: 18px;
  line-height: 36px;
  font-weight: bold;
}

#plan .plan_campaign_top dl dt {
  text-align: right;
  width: 90px;
  margin-right: 8px;
}

#plan .plan_campaign_top dl dd {
  text-align: left;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  letter-spacing: -1.5px;
}

#plan .plan_campaign_bottom {
  padding: 38px 80px 10px;
}

#plan .plan_price {
  border-bottom: 1px solid #73aaf4;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
}

#plan .plan_price dt {
  background: #73aaf4;
  width: 190px;
  height: 30px;
  color: #fff;
  font-size: 20px;
  line-height: 30px;
  padding-left: 16px;
}

#plan .plan_price dt span {
  font-size: 16px;
  margin-left: -5px;
}

#plan .plan_price dd {
  font-size: 28px;
  line-height: 30px;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  margin-left: 25px;
}

#plan .plan_price dd span {
  font-size: 18px;
}

#plan .plan_price dd .price_title {
  margin-right: 12px;
}

#plan .plan_service {
  margin: 29px 0 20px;
}

#plan .plan_service dt {
  border-bottom: 1px solid #73aaf4;
  margin-bottom: 20px;
}

#plan .plan_service dt p {
  background: #73aaf4;
  width: 190px;
  height: 30px;
  color: #fff;
  font-size: 20px;
  line-height: 30px;
  padding-left: 16px;
}

#plan .plan_benefits {
  position: relative;
  border-bottom: 2px solid #23beae;
  font-size: 0;
  padding: 12px 0 27px 118px;
}

#plan .plan_benefits::before {
  content: '';
  background: url(../img/plan_benefits_subtitle.png) no-repeat;
  width: 100px;
  height: 100px;
  position: absolute;
  top: 0;
  left: 0;
}

#plan .plan_benefits li {
  font-size: 17px;
  line-height: 36px;
  font-weight: bold;
  color: #315a8f;
  letter-spacing: -0.5px;
  display: inline-block;
  vertical-align: top;
  width: 360px;
}

#plan .plan_benefits li span {
  display: block;
  line-height: 9px;
  margin-left: 22px;
}

#plan .plan_private_room .plan_campaign_bottom {
  padding-top: 34px;
}

#plan .plan_private_room .plan_service {
  margin-bottom: 30px;
}

#plan .plan_private_room .plan_box_detail {
  padding-bottom: 48px;
}

#plan .plan_virtual .plan_service dd {
  margin-left: 5px;
}

#plan .plan_virtual .plan_benefits {
  padding-bottom: 63px;
}

#plan .plan_virtual_B .plan_campaign_bottom {
  padding-top: 9px;
}

#plan .plan_virtual_B .plan_service dd {
  margin-left: 5px;
}

#plan .plan_virtual_B .plan_benefits {
  padding-bottom: 63px;
}

/*----- gallery -----*/
#gallery {
  margin-bottom: 58px;
}

#gallery h2 {
  padding: 60px 0 42px;
}

#gallery h2 .section_title, #gallery h2 #form .form_title, #form #gallery h2 .form_title {
  margin-top: 8px;
}

#gallery .gallery_slide {
  margin: 10px 0 0;
}

#gallery .gallery_slide .owl-item {
  position: relative;
  width: 600px;
  height: 400px;
}

#gallery .gallery_slide .owl-item::before {
  content: "";
  background: rgba(0, 0, 0, 0.5);
  width: 600px;
  height: 400px;
  position: absolute;
  top: 0;
  left: 0;
}

#gallery .gallery_slide .center::before {
  background: none;
}

#gallery .gallery_area {
  margin-top: 25px;
  padding-top: 20px;
}

#gallery .gallery_area .gallery_area_btn {
  background: url(../img/gallery_area_image.jpg) no-repeat;
  width: 860px;
  height: 280px;
  margin: 0 auto 70px;
  position: relative;
}

#gallery .gallery_area .gallery_area_btn li {
  position: absolute;
  background: rgba(177, 151, 78, 0.8);
  padding: 10px;
  cursor: pointer;
}

#gallery .gallery_area .gallery_area_btn li.vacant {
  position: absolute;
  background: rgba(101, 205, 156, 0.8);
  padding: 10px;
  cursor: pointer;
}

#gallery .gallery_area .gallery_area_btn li.active {
  background: rgba(85, 114, 151, 0.8);
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_A {
  bottom: 60px;
  right: 320px;
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_B {
  top: 30px;
  right: 320px;
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_C {
  top: 0px;
  left: 260px;
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_D {
  bottom: 50px;
  left: 35px;
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_E {
  top: 40px;
  left: 150px;
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_F {
  bottom: 50px;
  left: 190px;
}

#gallery .gallery_area .gallery_area_btn .gallery_btn_G {
  bottom: 50px;
  left: 300px;
}

#gallery .gallery_area h3 {
  margin-bottom: 22px;
}

/*----- service -----*/
#service h2 {
  line-height: 50px;
}

#service h2 .section_title, #service h2 #form .form_title, #form #service h2 .form_title {
  margin: 9px 0 3px;
}

#service h2 .service_subtitle {
  font-size: 18px;
}

#service .service_content {
  margin-top: 28px;
  margin-bottom: 20px;
  font-size: 0;
}

#service .service_content .item {
  display: inline-block;
  width: 530px;
  height: 240px;
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
  vertical-align: top;
  margin-bottom: 40px;
  position: relative;
}

#service .service_content .item::before {
  content: '';
  background: #b2becb;
  width: 310px;
  height: 4px;
  position: absolute;
  top: 176px;
  left: 30px;
}

#service .service_content .item_right {
  margin-left: 40px;
}

#service .service_content dl dt {
  font-size: 18px;
  line-height: 25px;
  letter-spacing: -1px;
  margin: 76px 0 0 41px;
}

#service .service_content dl dt p {
  margin-bottom: 19px;
}

#service .service_content dl dt strong {
  font-size: 20px;
  display: block;
}

#service .service_content dl dt span {
  font-size: 16px;
  font-weight: bold;
}

#service .service_content .service_02 dt {
  margin-top: 73px;
}

#service .service_content .service_02 dt strong {
  line-height: 31px;
}

#service .service_content .service_03::before {
  top: 186px;
}

#service .service_content .service_03 dt {
  margin-top: 67px;
}

#service .service_content .service_03 dt strong {
  margin-bottom: 19px;
}

#service .service_content .service_04::before {
  top: 186px;
}

#service .service_content .service_04 strong {
  margin-bottom: 55px;
}

/*----- voice -----*/
#voice {
  padding: 60px 0;
}

#voice h2 .section_title, #voice h2 #form .form_title, #form #voice h2 .form_title {
  margin: 9px 0 30px;
}

#voice .voice_content {
  position: relative;
}

#voice .voice_content::before {
  content: '';
  background: #d7dde6;
  width: 100%;
  height: 150px;
  position: absolute;
  top: 0;
  left: 0;
}

#voice .voice_item {
  width: 50%;
}

#voice .voice_item dt {
  font-size: 20px;
  line-height: 26px;
}

#voice .voice_item dl {
  margin: 0px 20px 10px 40px;
}

#voice .voice_item .voice_item_txt {
  padding: 27px 41px 0;
}

#voice .voice_item_txt {
  height: 190px;
  background: #fff;
  border-radius: 10px;
  -webkit-box-shadow: 0px 3px 0px 0px lightgray;
  box-shadow: 0px 3px 0px 0px lightgray;
  font-size: 16px;
  line-height: 24px;
}

#voice .voice_01 {
  padding: 21px 20px 0 30px;
}

#voice .voice_01 dt {
  margin-top: 32px;
}

#voice .voice_02 {
  padding: 21px 30px 0 20px;
}

#voice .voice_02 dt {
  margin-top: 22px;
}

/*----- flow -----*/
#flow {
  padding: 60px 0 20px;
}

#flow .section_title, #flow #form .form_title, #form #flow .form_title {
  margin-top: 7px;
}

#flow ul {
  margin-top: 43px;
  position: relative;
}

#flow ul::before {
  content: '';
  background: #e4e0d3;
  width: 20px;
  height: 700px;
  position: absolute;
  top: -30px;
  left: 540px;
}

#flow ul li {
  margin-bottom: 10px;
  position: relative;
}

/*----- faq -----*/
#faq {
  padding-top: 90px;
}

#faq .section_title, #faq #form .form_title, #form #faq .form_title {
  margin-top: 8px;
}

#faq .faq_content {
  width: 920px;
  margin: 32px auto 0;
  vertical-align: top;
}

#faq .faq_content > div {
  width: 440px;
}

#faq dl {
  margin-bottom: 29px;
}

#faq dl:first-of-type dd {
  height: 150px;
}

#faq dt {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  font-size: 18px;
  line-height: 34px;
  color: #597599;
  padding: 19px 89px 16px;
  position: relative;
  cursor: pointer;
}

#faq dt::before {
  content: '';
  background: url(../img/faq_icon_q.png) no-repeat;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 15px;
  left: 30px;
}

#faq dd {
  background: #ebeff5;
  font-size: 17px;
  line-height: 28px;
  padding: 12px 20px 0;
  height: 110px;
}

#faq dd a {
  font-weight: bold;
  color: #597599;
  text-decoration: underline;
}

#faq dd p {
  margin-bottom: 28px;
}

/*----- access -----*/
#access {
  padding: 40px 0 50px;
}

#access h2 {
  background: #e4e0d3;
  width: 580px;
  margin: auto;
  padding: 60px 0 10px;
}

#access .section_title, #access #form .form_title, #form #access .form_title {
  margin-top: 9px;
}

#access .access_content {
  background: #e4e0d3;
  width: 580px;
  margin: auto;
  padding: 44px 0 39px;
}

#access dl {
  background: url(../img/access_frame_image.png) no-repeat;
  width: 621px;
  height: 81px;
  margin: 54px 0 0 -20px;
  padding: 21px 109px 0 50px;
  font-size: 18px;
  line-height: 40px;
}

/*----- fixed_box -----*/
#fixed_box {
  display: none;
  background: rgba(255, 255, 255, 0.6);
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 80px;
  z-index: 9999;
  padding-top: 6px;
}

#fixed_box ul {
  padding: 0 70px 0 60px;
}

/*----- footer -----*/
footer {
  background: #23282e;
  padding: 51px 0 7px;
}

footer ul {
  position: relative;
  margin: 54px 285px 40px 300px;
}

footer ul::before {
  content: '';
  background: #fff;
  width: 1px;
  height: 40px;
  position: absolute;
  top: 0;
  right: 194px;
}

footer ul li {
  font-size: 16px;
  line-height: 40px;
  color: #fff;
}

footer small {
  font-size: 16px;
  line-height: 34px;
  color: #fff;
  letter-spacing: -0.5px;
}

/*----- form -----*/
.formInputFrame, #form .formTable td select,
#form .formTable td input[type="text"],
#form .formTable td textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: #e1eeff;
  border: none;
  border-radius: 0;
  padding: 0 15px;
  resize: none;
  font-size: 18px;
  line-height: 50px;
}

#form #formFrame {
  padding-bottom: 100px;
}

#form .form_text {
  position: absolute;
  top: -20px;
  left: 130px;
}

#form .form_title {
  padding: 102px 0 18px;
}

#form #mainFrame {
  width: 1000px;
  margin: auto;
}

#form #mainFrame .subTitle {
  font-size: 18px;
  line-height: 26px;
  letter-spacing: -1px;
  padding: 34px 91px 40px;
  background: #fff;
}

#form .formTable {
  background: #fff;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 64px;
}

#form .formTable .error {
  color: #df3434;
  font-size: 14px;
  margin-bottom: 7px;
}

#form .formTable tr {
  border-top: 1px solid #b2b2b2;
}
#form .formTable tr.date.no-border {
  border: none;
}

#form .formTable .time {
  text-align: right;
  margin-top: 10px;
}

#form .formTable .req th::before {
  content: '必須';
  color: #fff;
  font-size: 16px;
  line-height: 20px;
  font-weight: normal;
  text-align: center;
  background: #d55858;
  width: 70px;
  height: 20px;
  position: absolute;
  top: 40%;
  left: 90px;
}

#form .formTable .any th::before {
  content: '任意';
  color: #fff;
  font-size: 16px;
  line-height: 20px;
  font-weight: normal;
  text-align: center;
  background: #969696;
  width: 70px;
  height: 20px;
  position: absolute;
  top: 40%;
  left: 90px;
}

#form .formTable .top th {
  padding-top: 35px;
}

#form .formTable .top th,
#form .formTable .top td {
  vertical-align: top;
}

#form .formTable th,
#form .formTable td {
  font-size: 18px;
  line-height: 50px;
  vertical-align: middle;
  padding: 19px 0 21px;
}

#form .formTable th {
  padding-left: 198px;
  width: 390px;
  position: relative;
}

#form .formTable th label {
  font-size: 18px;
  line-height: 50px;
  font-weight: bold;
}

#form .formTable td {
  padding-right: 90px;
  /*radio周り*/
  /*ここまでradio周り*/
}

#form .formTable td input[type="text"] {
  width: 100%;
}

#form .formTable td textarea {
  width: 100%;
  height: 160px;
  line-height: 36px;
}

#form .formTable td input[type="radio"] {
  display: none;
}

#form .formTable td input[type="radio"] + label {
  background: #fff;
  cursor: pointer;
  font-size: 18px;
  line-height: 36px;
  color: #3c67a0;
  font-weight: bold;
  letter-spacing: -2px;
  width: 250px;
  height: 70px;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: .2s;
  transition: .2s;
  display: inline-block;
  border: 4px solid #7297c8;
  margin-bottom: 10px;
  padding: 12px 0 0 45px;
}

#form .formTable td input[type="radio"] + label:hover {
  background-color: #7297c8;
  color: #fff;
}

#form .formTable td input[type="radio"] + label::before {
  content: '';
  background: #fff;
  border: 3px solid #989898;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  left: 15px;
  top: 34%;
  border-radius: 50%;
}

#form .formTable td input[type="radio"] + label::after {
  content: '';
  background: #7297c8;
  display: block;
  opacity: 0;
  width: 10px;
  height: 10px;
  position: absolute;
  left: 20px;
  top: 42%;
  border-radius: 50%;
}

#form .formTable td input[type="radio"]:checked + label {
  background: #7297c8;
  color: #fff;
}

#form .formTable td input[type="radio"]:checked + label::before {
  border: none;
}

#form .formTable td input[type="radio"]:checked + label::after {
  opacity: 1;
}

#form .formTable .other.any th::before {
  top: 50px;
}

#form .formTable .other td,
#form .formTable .other th {
  padding-bottom: 50px;
}

#form .formTable .date td span {
  display: inline-block;
  vertical-align: middle;
}

#form .formTable .date td .form_icon {
  cursor: pointer;
}

#form .formTable .date td .form_icon img {
  display: inline-block;
  vertical-align: middle;
}

#form .formTable .date td .form_input {
  width: 470px;
  margin-left: 14px;
}

#form input[type="image"] {
  position: relative;
  z-index: 2;
}

#form #nextBtn {
  width: 380px;
  height: 60px;
  margin: auto;
}

/*----- confirm -----*/
#form.confirm .other td,
#form.confirm .other th {
  line-height: 36px;
}

#form.confirm .other td label,
#form.confirm .other th label {
  line-height: 36px;
}

#form.confirm .other.any th::before {
  top: 40px;
}

#form.confirm #sentPrev {
  margin: auto;
  width: 380px;
  text-align: center;
}

#form.confirm #prevBtn {
  position: relative;
}

#form.confirm #prevBtn img {
  cursor: pointer;
  margin-top: 30px;
  position: relative;
  z-index: 3;
}

#form.confirm #prevBtn::after {
  content: '';
  background: url(../img/back_shadown.png) no-repeat;
  width: 336px;
  height: 158px;
  position: absolute;
  top: -5px;
  left: 26px;
  z-index: 1;
}

/*----- thanks -----*/
#form.thanks #mainFrame {
  background: #fff;
  padding: 37px 91px 130px;
}

#form.thanks h3 {
  font-size: 24px;
  line-height: 26px;
  font-weight: normal;
  letter-spacing: -1px;
  margin-bottom: 28px;
}

#form.thanks p {
  font-size: 18px;
  line-height: 26px;
  letter-spacing: -0.6px;
}

#form.thanks #goTop {
  margin: 41px 0 60px;
}

/*----- form.form02 -----*/
#form.form02 .plan td {
  width: 610px;
  padding-top: 19px;
}

#form.form02 .plan th::before {
  top: 19%;
}

#form.form02 .plan .plan2,
#form.form02 .plan .plan4 {
  margin-left: 14px;
}

/*----- #form.form02 .confirm-----*/
