/* common - 基礎設定
-------------------------------------------------- */
.wp-block-columns.is-layout-flex {
  margin: 0 auto;
  padding: 0 2rem;
  max-width: 1280px;
}
.wp-block-columns.is-layout-flex p {
  line-height: 2;
}
.wp-block-columns.is-layout-flex p:not(:last-of-type) {
  margin-bottom: 2rem;
}
.column_full_box.wp-block-columns.is-layout-flex {
  margin: 0;
  padding: 5rem 2rem;
  max-width: 100%;
}

.wp-block-columns.is-layout-flex figure img {
  border-radius: 1rem;
}

/* About
-------------------------------------------------- */
.representative_name {
  margin-top: 3rem !important;
  padding-top: 2rem;
  font-family: var( --font-main );
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5 !important;
  border-top: 1px solid rgba( 158, 158, 158, .2 );
  letter-spacing: .1em;
}
.representative_name > span {
  font-size: 2.1rem;
}

.hypno_status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  font-family: var( --font-main );
  padding: 2rem;
}

/* メインのボタン部分 */
.hypno_status_capsule  {
  padding: 1rem 5rem;
  border-radius: 50vh;
  color: #fff;
  font-weight: bold;
  white-space: nowrap;
  min-width: 250px;
  text-align: center;
  background-color: var( --strong-color );
}

/* 矢印の円部分 */
.arrow-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 11px;
  background-color: var( --strong-color );
}

/* .pink { background-color: #E7609E; }
.purple { background-color: #745399; }
.blue { background-color: #1E50A2; }

.pink-bg { background-color: #E7609E; }
.blue-bg { background-color: #1E50A2; } */


/* Therapist
-------------------------------------------------- */
.photo_therapist figure {
  text-align: center;
}
.photo_therapist figure img {
  max-width: 50%;
  border-radius: 50% !important;
  /* outline: 2px solid var( --sub-color );
  outline-offset: 1.5rem; */
}
.photo_therapist figcaption {
  margin-top: 3rem;
  font-family: var( --font-main );
  font-size: 2.1rem;
  font-weight: bold;
}

.memory_photos {
  margin-bottom: 5rem !important;
  padding-top: 5rem;
  border-top: 1px solid rgba( 158, 158, 158, .5 );
}
.memory_photos figure {
  text-align: center;
}

.list_flower > li:not(:last-of-type) {
  margin-bottom: 2rem;
}
.list_flower > li {
  display: flex;
  align-items: flex-start;
  font-size: 1.8rem;
}
.list_flower > li::before {
  content: '\f111';
  font-family: var( --fa-font );
  font-weight: 900;
  margin: 0 1rem;
  color: var( --sub-color );
  flex-shrink: 0;
}

#mamasan_blog {
  padding-bottom: 5rem;
  background-color: rgba( 212, 190, 217, 1 );
}


/* Session
-------------------------------------------------- */
.list_session_info {
  margin: 8rem auto 5rem;
  max-width: 1280px;
  gap: 2%;
}
.list_session_info > li {
  margin-bottom: 2rem;
  width: 32%;
}
.list_session_info > li a {
  position: relative;
  display: block;
  padding: 1rem 2rem;
  border-radius: 50vh;
  font-family: var( --font-main );
  font-size: 1.8rem;
  text-align: center;
  color: #fff;
  background-color: var( --strong-color );
}

.list_session_info > li a::after {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY( -50% );
  content: '\f055';
  font-family: var( --fa-font );
  transition: all ease .6s;
}

.tbl_price {
  margin: 5rem auto;
  max-width: 900px;
}
.tbl_price table {
  border: 2px solid rgba( 22, 22, 14, 1 ) !important;
  border-radius: 10px;
  border-collapse: separate !important;
  border-spacing: 0;
  overflow: hidden;
}
.tbl_price table th, .tbl_price table td {
  padding: 2rem;
  font-size: 2.1rem;
  border: 1px solid rgba( 22, 22, 14, 158, 1 ) !important;
}

.tbl_price table tr td.bg_amikake {
  background-color: rgba( 22, 22, 14, .1 ) !important;
}

.tbl_price table th {
  font-family: var( --font-main );
  color: rgba( 22, 22, 14, 1 );
  background-color: rgba( 22, 22, 14, .2 ) !important;
}
.tbl_price table th.join_cell {
  color: #fff;
  background-color: rgba( 22, 22, 14, 1 ) !important;
}

.tbl_price table td {
  color: rgba( 22, 22, 14, 1 );
}
.tbl_price table td span {
  font-size: 1.2rem;
}

.tbl_price table td.border_none {
  border-left: none !important;
  border-right: none !important;
}
.tbl_price table td.border_left_none {
  border-left: none !important;
}
.tbl_price table td.border_right_none {
  border-right: none !important;
}



.ttl_icon {
  display: flex;
  align-items: center;
  font-size: 2.1rem;
  margin-bottom: 2rem;
}
.ttl_icon::before {
  content: '\f058';
  font-family: var( --fa-font );
  font-weight: 900;
  margin-right: 1rem;
  color: var( --sub-color );
  flex-shrink: 0;
}

.psycology_txt {
  margin-top: 2rem;
}
.list_simple > li {
  display: flex;
  align-items: flex-start;
  padding: .5rem 1rem;
  border-bottom: 1px solid rgba( 128, 128, 128, .5 );
  letter-spacing: .15em;
}
.list_simple > li::before {
  margin-right: 1rem;
  content: '\f111';
  font-family: var( --fa-font );
  font-weight: 900;
  color: var( --sub-color );
  flex-shrink: 0;
}


.wp-block-columns.psycology_box {
  padding: 3rem;
}


.list_step_flow {
  list-style: none;
  padding: 0;
  margin: 5rem 0;
  counter-reset: step-counter;
}

.list_step_flow li {
  display: flex;
  align-items: flex-start;
  padding: 2rem 0;
  border-bottom: 1px dashed rgba( 136, 136, 136, 1 );
  counter-increment: step-counter;
  position: relative;
}

.list_step_flow li::before {
  content: "STEP-" counter( step-counter, decimal-leading-zero );
  
  display: inline-block;
  background-color: rgba( 122, 143, 145, 1 );
  color: #fff;
  font-family: var( --font-main );
  font-weight: bold;
  font-size: 1.8rem;
  padding: .5rem 2.5rem;
  border-radius: 50vh;
  min-width: 180px;
  text-align: center;
  margin-right: 3rem;
  flex-shrink: 0;
  letter-spacing: .15em;
}

.step_title {
  margin: 0 0 1rem 0;
  font-family: var( --font-main );
  font-size: 2.1rem;
  font-weight: 600;
  color: rgba( 122, 143, 145, 1 );
  letter-spacing: .1em;
}

.step_text {
  font-size: 1.4rem;
  color: #333;
  margin: 0;
  letter-spacing: .1em;
}


/* Lecture
-------------------------------------------------- */
.list_lecture_info > li {
  width: 48%;
}

.course_list {
  margin: 5rem auto;
  max-width: 1280px;
}
.course_list.cat-basic > li::before {
  background-color: var( --sub-color );
}

.course_list.cat-basic > li:hover .event_ttl {
  color: var( --sub-color );
}
.course_list.cat-basic > li:hover .event_detail::after {
  color: var( --sub-color );
}

.course_list > li .event_ttl {
  display: flex;
  align-items: center;
}
.course_list > li .event_ttl::before {
  content: '\f111';
  font-family: var( --fa-font );
  font-weight: 900;
  margin: 0 1rem;
  color: var( --sub-color );
  flex-shrink: 0;
}
.course_list.cat-pro > li .event_ttl::before {
  color: var( --strong-color );
}


.list_step_lectures .step_title {
  margin-bottom: 0;
  font-size: 1.8rem;
  line-height: 1.75;
}

.ttl_course {
  display: flex;
  align-items: flex-start;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  font-family: var( --font-main );
  font-size: 2.1rem;
  border-bottom: 1px solid rgba( 136, 136, 136, .5 );
}
.ttl_course::before {
  margin-right: 1rem;
  content: '\f111';
  font-family: var( --fa-font );
  font-weight: 900;
  color: var( --sub-color );
  flex-shrink: 0;
}
.pro_course h2.ttl_course::before {
  color: var( --strong-color );
}
.pro_course .list_simple > li::before {
  color: var( --strong-color );
}
.pro_course .ttl_icon::before {
  color: var( --strong-color );
}

.course_document {
  text-align: right;
}
.course_document span {
  color: var( --strong-color );
}
.course_price {
  margin-bottom: 2rem;
  font-family: var( --font-main );
  font-weight: 600;
  font-size: 2.1rem;
  color: var( --strong-color );
  text-align: right;
  letter-spacing: .05em;
}
.course_price span {
  margin-left: .5rem;
  font-size: 1.4rem;
}

/* After
-------------------------------------------------- */
.after_box h2.ttl_sub > p {
  line-height: 1.5;
  /* color: var( --after-color ); */
}

.tbl_after {
  margin: 5rem auto 0;
  max-width: 640px;
}

.tbl_after table {
  border: 2px solid rgba( 22, 22, 14, 1 ) !important;
  border-radius: 10px;
  border-collapse: separate !important;
  border-spacing: 0;
  overflow: hidden;
}
.tbl_after table thead th {
  background-color: #fff !important;
  border-bottom: 2px solid rgba( 22, 22, 14, 1 ) !important;
}

.tbl_after table th, .tbl_after table td {
  padding: 2rem;
  border: none !important;
}
.tbl_after table th {
  font-size: 1.8rem;
  /* color: #fff; */
  text-align: center !important;
  /* background-color: rgba( 22, 22, 14, 1 ) !important; */
}
.tbl_after table td {
  padding: 1rem 3rem !important;
  font-weight: 700;
  letter-spacing: .1em;
}
.tbl_after table tbody tr:nth-child(even) td {
  background-color: rgba( 238, 238, 238, 1 );
}

/* #after_schedule {
  background-color: rgba( 242, 201, 172, .3 );
} */
#after_schedule .box_inner {
  padding-bottom: 8rem;
}
#after_schedule h2.ttl_main span {
  /* color: var( --after-color ); */
}


/* セッション体験談 - voice
-------------------------------------------------- */
.experiences_box dt {
  margin-top: 5rem;
  padding: 2rem;
  font-size: 2.6rem;
  text-align: center;
  color: #fff;
  background-color: rgba( 197, 130, 158, 1 );
}
.experiences_box dd {
  position: relative;
  padding: 8rem;
  background-color: rgba( 233, 220, 223, 1 );
}

.experiences_box dd::after {
  content: '';
  width: 60px;
  height: 60px;
  position: absolute;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba( 197, 130, 158, 1 ) 0%, rgba( 197, 130, 158, 1 ) 50%, #fff 50%, #fff 100%);
}

.experiences_box dd p:not(:last-of-type) {
  margin-bottom: 2rem;
}
.experiences_box dd p {
  line-height: 2;
}

.experiences_box.error_txt {
  text-align: center;
}

.session_price {
  margin-top: 3rem;
  color: var( --strong-color );
  font-size: 2.1rem;
  letter-spacing: .025em;
}
.session_price span {
  margin: 0 .5rem;
  font-size: 1.6rem;
}

.price_other {
  margin-top: .5rem;
  color: rgba( 158, 161, 163, 1 );
}


/* FAQ
-------------------------------------------------- */
.ttl_faq {
  padding: 1.5rem 2rem !important;
  font-family: var( --font-main );
  font-size: 2.1rem !important;
}

.faq_box > .wp-block-column {
  background-color: #FEF4F4;
}

.list_faq {
  margin: 5rem auto;
  max-width: 90%;
}
.list_faq dt {
  display: flex;
  align-items: flex-start;
  padding: 2.5rem 3rem;
  background-color: #fff;
  font-family: var( --font-main );
  font-size: 2.4rem;
  font-weight: 600;
  color: var( --sub-color );
  border-radius: 10px 10px 0 0;
}
.list_faq dt::before {
  content: '\f059';
  margin-right: 1rem;
  font-size: 2.6rem;
  font-weight: 900;
  font-family: var( --fa-font );
  color: var( --main-color );
  flex-shrink: 0;
}

.list_faq dd {
  padding: 0 3rem 2.5rem;
  background-color: #fff;
  font-size: 1.8rem;
  line-height: 2;
  border-radius: 0 0 10px 10px;
}

.list_faq dd:not(:last-of-type) {
  margin-bottom: 3rem;
}

.faq_box.wp-block-columns.is-layout-flex {
  margin-bottom: 5rem;
}


#cancel_page h2.ttl_main {
  margin-bottom: 5rem;
}
#cancel_page .box_inner .cancel_main_txt {
  margin-bottom: 5rem;
  line-height: 2;
}


/* サイトマップ - sitemap
-------------------------------------------------- */
.ttl_sitemap {
  padding: 1rem;
  border-bottom: 1px dotted #333;
  letter-spacing: .1em;
}
.ttl_sitemap::before {
  margin-right: .5rem;
  content: '\f0c1';
  font-weight: 900;
  font-family: var( --fa-font );
}

.list_sitemap {
  margin-left: 1rem;
}
.list_sitemap > li a {
  display: block;
  padding: 1rem;
  color: #333;
  border-bottom: 1px dashed #777;
}
.list_sitemap > li a::before {
  margin-right: .5rem;
  content: '\f0a9';
  font-weight: 900;
  font-family: var( --fa-font );
  color: var( --strong-color );
}

.list_sitemap > li.list_sitemap_anker a {
  padding-left: 3rem;
}
.list_sitemap > li.list_sitemap_anker a::before { content: '\f0c6'; }
.list_sitemap > li.list_sitemap_session a::before { content: '\f004'; }
.list_sitemap > li.list_sitemap_course a::before { content: '\f304'; }


/* プライバシーポリシー - privacypolicy
-------------------------------------------------- */
body.privacypolicy .txt {
  line-height: 2;
  letter-spacing: .05em;
}
body.privacypolicy .box_inner {
  padding: 2rem;
}
.num_list {
  padding: 2rem 2rem 2rem 5rem;
}
.num_list > li:not(:last-child) {
  margin-bottom: .5rem;
}
.num_list > li p {
  margin-bottom: 2rem;
}

body.privacy-policy .df_btn {
  position: relative;
  margin: 2rem auto 0;
  width: fit-content;
}
body.privacy-policy .df_btn a {
  display: inline-block;
  padding: 1rem 5rem;
  min-width: 280px;
  border-radius: 30px;
  color: #fff;
  text-align: center;
  background: var( --strong-color );
}
body.privacy-policy .df_btn a::after {
  position: absolute;
  right: 25px;
  font-family: var( --fa-font );
  font-weight: 900;
  content: '\f35d';
}

body.privacy-policy h2.chapter_ttl {
  margin: 2rem auto;
  padding: 1rem;
  max-width: 1280px;
  color: var( --strong-color );
  border-bottom: 1px dashed #333;
}
.txt_enactment_date {
  margin-bottom: 5rem;
  text-align: right;
}

/* エラーページ
-------------------------------------------------- */
#error_page .box_inner p {
  text-align: center;
  line-height: 2;
}

/* 予約カレンダー - Calendar
-------------------------------------------------- */
#calendar {
  margin-bottom: 10rem;
  min-height: 800px;
}
#calendar .box_inner {
  max-width: 980px;
}

#booking-package-locale-ja {
  margin-top: 5rem;
}

#booking-package_calendarPage .week_slot {
  font-family: var( --font-main );
  font-weight: bold;
}
#booking-package_calendarPage .week_slot.sat {
  color: #4169e1;
}
#booking-package_calendarPage .week_slot.sun {
  color: #ff6347;
}
.descriptionOfService {
  font-size: 1.4rem;
  color: rgba( 128, 128, 128, 1 );
}

.return_button, .return_form_button, .cartPanel button,
.next_available_day_button, .previous_available_day_button {
  padding: .5rem 3rem !important;
  color: #fff;
  font-weight: bold !important;
  background-color: var( --main-color ) !important;
  border: none !important;
  border-radius: 50vh !important;
}
.previous_available_day_button, .next_available_day_button {
  background-color: var( --sub-color ) !important;
}

#returnToSchedules, .cartPanel button {
  padding: 1rem 3rem !important;
}
.cartPanel button {
  color: #fff;
  font-weight: bold !important;
  background-color: var( --sub-color ) !important;
}
#returnToSchedules {
  color: #fff;
  font-weight: bold !important;
}

#booking-package_inputFormPanel .name {
  display: flex !important;
  align-items: flex-start !important;
  font-family: var( --font-main );
  font-size: 1.8rem;
  font-weight: bold !important;
  color: var( --sub-color );
}
#booking-package_inputFormPanel .name::before {
  margin-right: 1rem;
  font-family: var( --fa-font );
  font-weight: 900;
  content: '\f31c';
}

#booking-package_inputFormPanel div:nth-child(2) .name::before { content: '\f274'; }
#booking-package_inputFormPanel div:nth-child(3) .name::before { content: '\f058'; }
#booking-package_inputFormPanel div:nth-child(4) .name::before { content: '\f157'; }
#booking-package_inputFormPanel div:nth-child(5) .name::before { content: '\f4ff'; }
#booking-package_inputFormPanel div:nth-child(6) .name::before { content: '\f303'; }
#booking-package_inputFormPanel div:nth-child(7) .name::before { content: '\e4e1'; }
#booking-package_inputFormPanel div:nth-child(8) .name::before { content: '\f01e'; }
#booking-package_inputFormPanel div:nth-child(9) .name::before { content: '\f0e0'; }
#booking-package_inputFormPanel div:nth-child(10) .name::before { content: '\f2a0'; }
#booking-package_inputFormPanel div:nth-child(11) .name::before { content: '\f689'; }
#booking-package_inputFormPanel div:nth-child(12) .name::before { content: '\f3c5'; }
#booking-package_inputFormPanel div:nth-child(13) .name::before { content: '\f0b1'; }
#booking-package_inputFormPanel div:nth-child(14) .name::before { content: '\e065'; }
#booking-package_inputFormPanel div:nth-child(15) .name::before,
#booking-package_inputFormPanel div:nth-child(16) .name::before,
#booking-package_inputFormPanel div:nth-child(17) .name::before,
#booking-package_inputFormPanel div:nth-child(18) .name::before,
#booking-package_inputFormPanel div:nth-child(19) .name::before { content: '\f059'; }
#booking-package_inputFormPanel div:nth-child(20) .name::before { content: '\f4ad'; }


/* 1. 全ボタン共通：基本スタイルと非選択時のグレー設定 */
#booking_package_input_gender, #booking_package_input_family,
#booking_package_input_inhabit, #booking_package_input_know,
#booking_package_input_hospital {
  display: flex;
  align-items: center;
}
#booking_package_input_gender label,
#booking_package_input_family label,
#booking_package_input_inhabit label,
#booking_package_input_know label,
#booking_package_input_hospital label {
  cursor: pointer;
  margin-bottom: 0 !important;
  /* flex: 1;
  max-width: 120px; */
  position: relative;
}

#booking_package_input_gender input[type="radio"],
#booking_package_input_family input[type="radio"],
#booking_package_input_inhabit input[type="radio"],
#booking_package_input_know input[type="radio"],
#booking_package_input_hospital input[type="radio"] {
  display: none;
}

#booking_package_input_gender .radio_title,
#booking_package_input_family .radio_title,
#booking_package_input_inhabit .radio_title,
#booking_package_input_know .radio_title,
#booking_package_input_hospital .radio_title {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  background-color: #bdc3c7;
  color: #fff;
  border-radius: 6px;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

/* 2. 共通：アイコンの基本設定 */
#booking_package_input_gender .radio_title::before,
#booking_package_input_family .radio_title::before,
#booking_package_input_inhabit .radio_title::before,
#booking_package_input_know .radio_title::before,
#booking_package_input_hospital .radio_title::before {
  font-family: var( --fa-font );
  font-weight: 900;
  margin-right: 0.5rem;
  font-size: 1.1em;
}

/* 3. アイコンの出し分け */
/* 性別は専用アイコン */
#booking_package_input_gender input[value="男性"] + .radio_title::before { content: '\f183'; }
#booking_package_input_gender input[value="女性"] + .radio_title::before { content: '\f182'; }

/* その他はシンプルなチェックマーク (\f00c) */
#booking_package_input_family .radio_title::before,
#booking_package_input_inhabit .radio_title::before,
#booking_package_input_know .radio_title::before,
#booking_package_input_hospital .radio_title::before {
  content: '\f00c';
}

/* 4. ホバー時の効果（共通） */
#booking_package_input_gender label:hover .radio_title,
#booking_package_input_family label:hover .radio_title,
#booking_package_input_inhabit label:hover .radio_title,
#booking_package_input_know label:hover .radio_title,
#booking_package_input_hospital label:hover .radio_title {
  background-color: #b0b6b9;
}

/* 5. 選択された時の色分け */

/* 性別：男性(青)・女性(ピンク) */
#booking_package_input_gender input[value="男性"]:checked + .radio_title {
  background-color: #1e88e5;
}
#booking_package_input_gender input[value="女性"]:checked + .radio_title {
  background-color: #ec407a;
}

/* 追加項目：選択時はすべてグリーン (#46b450) */
#booking_package_input_family input[type="radio"]:checked + .radio_title,
#booking_package_input_inhabit input[type="radio"]:checked + .radio_title,
#booking_package_input_know input[type="radio"]:checked + .radio_title,
#booking_package_input_hospital input[type="radio"]:checked + .radio_title {
  background-color: #46b450;
  color: #fff;
}


#reservationHeader {
  margin: 3rem auto;
  padding: .5rem 8rem !important;
  width: fit-content;
  color: #fff;
  font-family: var( --font-main );
  font-size: 2.1rem !important;
  font-weight: 600 !important;
  background-color: var( --sub-color ) !important;
  border-radius: 50vh;
}

#booking-package input[type=text],
#booking-package select,
#booking-package textarea {
  padding: 1rem 1.5rem !important;
  border: none !important;
  background-color: rgba( 128, 128, 128, .1 );
  border-bottom: 1px solid rgba( 128, 128, 128, 1 ) !important;
}
#booking-package input[type="text"]:focus {
  outline: none;
  transition: all 0.2s ease-in-out;
}
#booking-package textarea {
  outline: none;
  resize: vertical;
  min-height: 200px;
}

.selectable_service_slot {
  transition: all ease .6s;
}
.total_amount, .addedAllServices .serviceCost  {
  display: none;
}

/* お問い合わせ - contact
-------------------------------------------------- */
.txt_form {
  letter-spacing: .05em;
  line-height: 2;
}

::placeholder { color: rgba( 169, 169, 169, 1 ); }

.contact_form * {
  font-family: "Noto Sans JP", sans-serif;
}

.contact_form {
  display: flex;
  flex-wrap: wrap;
  margin: 5rem auto;
  padding: 2rem;
  max-width: 980px;
  border-radius: 10px;
  border: 2px solid rgba( 197, 130, 158, 1 );
}
.form_readonly {
  font-weight: bold;
  font-size: 1.8rem;
  color: rgba( 197, 130, 158, 1 );
  border: none !important;
}
.form_readonly::placeholder {
  font-size: 1.8rem;
  color: rgba( 197, 130, 158, 1 );
}

.contact_form dt,
.contact_form dd {
  padding: 2rem;
}
.contact_form dt {
  width: 30%;
  font-weight: bold;
  border-bottom: 1px solid #fff;
  background-color: rgba(220, 220, 220, 1);
}
.required::after {
  margin-left: .5rem;
  content: '\2a';
  font-family: 'Font Awesome 5 Free';
  font-size: 1.2rem;
  font-weight: 900;
  color: red;
}
.contact_form dd {
  width: 70%;
}
.contact_form dd p {
  margin-bottom: 0;
  font-size: 1.4rem;
}

.contact_form dd input, .contact_form dd textarea,
.contact_form dd select {
  padding: 1rem;
  width: 100%;
  font-size: 1.6rem;
  border-radius: 5px;
  border: 1px solid rgba( 128, 128, 128, 1 );
}
.contact_form dd input[type=text], .contact_form dd select {
  width: 100%;
}
.contact_form dd input[type=number] {
  width: 100px;
}
.contact_form dd textarea {
  width: 100%;
  resize: vertical;
}

.contact_form dt:last-of-type
.contact_form dd:last-of-type {
  margin-bottom: 0;
}

.lebel_btn input[type=radio] {
  width: auto;
  appearance: auto;
}



input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
  -moz-appearance: textfield !important;
}

dl.contact_form dd p {
  color: #777;
  font-size: 1.2rem;
}

.contact_form_submit {
  display: block;
  cursor: pointer;
  position: relative;
  margin: 0 auto;
  padding: 1.5rem 10rem;
  border: none;
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  background-color: var( --sub-color );
  border-radius: 50vh;
  letter-spacing: .1em;
  transition: all ease .6s;
}
.contact_form_submit:hover {
  background-color: var( --step-color );
}

.wpcf7-spinner {
  display: block;
  margin: 2rem auto;
}

.wpcf7 form .wpcf7-response-output {
  margin: 3rem auto 8rem;
  padding: 1rem 2rem !important;
  max-width: 980px;
  color: #fff;
  text-align: center;
  border-radius: 50vh;
  border: none;
  padding: 1em;
}

.wpcf7 form.sent .wpcf7-response-output {
  background-color: #46b450;
}

.wpcf7 form:not(.sent) .wpcf7-response-output {
  background-color: #ffb900;
}
