@charset "UTF-8";
/* ===============================
   Modern CSS Reset (Light)
   =============================== */
/* Box sizing */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

/* Body defaults */
body {
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Lists */
ul,
ol {
  padding: 0;
  list-style: none;
}

/* Images */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Forms */
input,
button,
textarea,
select {
  font: inherit;
}

/* Buttons */
button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

/* Links */
a {
  text-decoration: none;
  color: inherit;
}

/* Tables */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Reduce motion (accessibility) */
/*
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
*/
:root {
  /* spacing */
  --space-0: 0;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-2-5: 0.625rem;
  --space-3: 0.75rem;
  --space-3-5: 0.875rem;
  --space-4: 1rem;
  --space-4-25: 1.125rem;
  --space-4-5: 1.25rem;
  --space-5: 1.5rem;
  --space-5-5: 1.875rem;
  --space-6: 2rem;
  --space-6-5: 2.5rem;
  --space-7: 3rem;
  --space-7-5: 3.75rem;
  --space-8: 4rem;
  --space-9: 5rem;
  --space-10: 6rem;
}

body {
  font-family: "GenJyuuGothic", system-ui, sans-serif;
  font-size: 16px;
  color: #333;
  background: #fff;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: #ff914d;
}
.container {
  padding: 0 16px;
}
@media (min-width: 768px) {
  .container {
    padding: 0 24px;
  }
}

.container--wide {
  max-width: 1440px;
  margin: 0 auto;
}

.page-title {
  color: #ff914d;
  margin: 0 0 24px;
}

.container {
  max-width: 1440px;
  margin: 0 auto;
}

.container_hero {
  max-width: 1280px;
  margin: 0 auto;
}

.container_main {
  max-width: 960px;
  margin: 0 auto;
}

:root {
  --header-h: 60px; /* 〜767 */
}

@media (min-width: 768px) {
  :root {
    --header-h: 80px;
  }
}
@media (min-width: 1200px) {
  :root {
    --header-h: 120px;
  }
}
@media (min-width: 1440px) {
  :root {
    --header-h: 120px;
  } /* 1440以上はバーガー消すならヘッダー高さだけ残す */
}
#header_left_area {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-2);
}

#header_right_area {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-4);
}

#site_header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1000; /* 他要素の上に */
  background-color: #fff; /* 必須（透け防止） */
}
#site_header.is-scrolled {
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  opacity: 0.95;
}
#site_header .header_inner {
  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;
}

#header_logo {
  max-width: 120px;
  margin-right: var(--space-2);
}
#header_logo #header_logo_img {
  height: calc(var(--header-h) - 0px); /* 上下に余白? */
  width: auto;
  display: block;
}

#header_catch {
  display: none;
  font-weight: bold;
  font-size: var(--space-3-5);
  font-size: clamp(var(--space-3), 1.5vw, var(--space-3-5));
  font-weight: bold;
  line-height: 1;
}
@media (min-width: 768px) {
  #header_catch {
    display: block;
  }
}
#header_catch #header_free_consult {
  color: #ff914d;
}
#header_catch #header_tel {
  line-height: 1;
  font-family: Roboto, sans-serif;
  margin-top: 5px;
  font-size: var(--space-6);
  font-size: clamp(var(--space-6), 4vw, var(--space-6-5));
  font-weight: bold;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
  letter-spacing: -0.025em;
}
#header_catch #header_tel:hover {
  color: #ff914d;
}

@media (max-width: 1439px) {
  .hamburger {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    position: absolute;
    top: 0;
    right: 0;
  }
  li.burger_only {
    display: block;
  }
  #header_navi {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
    position: absolute;
    left: 0;
    width: 100%;
    background-color: var(--color-white);
  }
  #header_navi.close {
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
  }
  #header_navi.open {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
  }
  #header_navi ul {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    background-color: rgba(255, 255, 255, 0.925);
  }
  #header_navi ul li {
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
    width: 100%;
    font-size: var(--space-4);
    padding: var(--space-6);
    text-align: center;
  }
  #header_navi ul li a {
    padding: var(--space-4-5);
    color: #333;
    font-weight: bold;
    -webkit-transition: color 0.3s ease;
    transition: color 0.3s ease;
  }
  #header_navi ul li a:hover {
    color: #ff914d;
  }
}
@media (min-width: 1440px) {
  .hamburger {
    display: none;
  }
  li.burger_only {
    display: none;
  }
  #header_navi {
    background-color: #fff;
  }
  #header_navi ul {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: var(--space-5);
    padding: var(--space-3) 0;
    background: rgba(255, 255, 255, 0.8);
    margin-right: var(--space-5);
  }
  #header_navi ul li a {
    color: #333;
    font-weight: bold;
    -webkit-transition: color 0.3s ease;
    transition: color 0.3s ease;
  }
  #header_navi ul li a:hover {
    color: #ff914d;
  }
}
#header_navi {
  top: 60px;
}
@media (min-width: 768px) {
  #header_navi {
    top: 80px;
  }
}
@media (min-width: 1200px) {
  #header_navi {
    top: 100px;
  }
}

#spacer_burger {
  width: 60px;
}
@media (min-width: 768px) {
  #spacer_burger {
    width: 100px;
  }
}
@media (min-width: 1200px) {
  #spacer_burger {
    width: 120px;
  }
}
@media (min-width: 1440px) {
  #spacer_burger {
    width: 20px;
  }
}

button.hamburger {
  /* サイズ */
  width: 60px;
  height: 60px;
  /* 背景 */
  background-color: #71bf44;
  border: none;
  padding: 0;
  cursor: pointer;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  /* open（×） */
  /* フォーカス可視化（任意） */
}
button.hamburger .hamburger__lines {
  width: 30px; /* SP */
  height: 3px;
  /* close（3本線） */
}
button.hamburger .hamburger__lines::before {
  top: -12px;
}
button.hamburger .hamburger__lines::after {
  top: 12px;
}
@media (min-width: 768px) {
  button.hamburger {
    width: 80px;
    height: 80px;
  }
  button.hamburger .hamburger__lines {
    width: 40px; /* SP */
    height: 4px;
    /* close（3本線） */
  }
  button.hamburger .hamburger__lines::before {
    top: -16px;
  }
  button.hamburger .hamburger__lines::after {
    top: 16px;
  }
}
@media (min-width: 1200px) {
  button.hamburger {
    width: 120px;
    height: 120px;
  }
  button.hamburger .hamburger__lines {
    width: 60px; /* SP */
    height: 5px;
    /* close（3本線） */
  }
  button.hamburger .hamburger__lines::before {
    top: -19px;
  }
  button.hamburger .hamburger__lines::after {
    top: 19px;
  }
}
button.hamburger .hamburger__lines {
  position: relative;
  background-color: #fff; /* 中央線 */
  border-radius: 999px;
  -webkit-transition: background-color 0.2s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.2s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.2s ease, transform 0.25s ease;
  transition: background-color 0.2s ease, transform 0.25s ease, -webkit-transform 0.25s ease;
}
button.hamburger .hamburger__lines::before, button.hamburger .hamburger__lines::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff; /* 上下線 */
  border-radius: 999px;
  -webkit-transition: top 0.25s ease, -webkit-transform 0.25s ease;
  transition: top 0.25s ease, -webkit-transform 0.25s ease;
  transition: transform 0.25s ease, top 0.25s ease;
  transition: transform 0.25s ease, top 0.25s ease, -webkit-transform 0.25s ease;
}
button.hamburger.open .hamburger__lines, button.hamburger.is-open .hamburger__lines {
  background-color: transparent; /* 真ん中消す */
}
button.hamburger.open .hamburger__lines::before, button.hamburger.is-open .hamburger__lines::before {
  top: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
button.hamburger.open .hamburger__lines::after, button.hamburger.is-open .hamburger__lines::after {
  top: 0;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
button.hamburger:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

#bottom_sp_operation_wrapper {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1000; /* 他要素の上に */
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (min-width: 768px) {
  #bottom_sp_operation_wrapper {
    display: none;
  }
}
#bottom_sp_operation_wrapper a.bottom_sp_button {
  text-align: center;
  width: 50%;
  height: 60px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: var(--space-4);
  font-weight: bold;
  color: #fff;
}
#bottom_sp_operation_wrapper a.bottom_sp_button.btn_to_call {
  background-color: #71bf44;
}
#bottom_sp_operation_wrapper a.bottom_sp_button.btn_to_mail {
  background-color: #ff914d;
}
#bottom_sp_operation_wrapper a.bottom_sp_button img {
  width: 36px;
  height: auto;
}

section#footer_related_affiliates {
  padding: var(--space-8) 0;
}

#footer_copyright {
  text-align: center;
  padding: var(--space-4) 0;
  color: #fff;
  font-size: var(--space-3);
  background-color: #ff914d;
}

#footer_cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-1);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#footer_cards .footer_card {
  justify-self: center; /* 横中央 */
}
@media (min-width: 768px) and (max-width: 1023px) {
  #footer_cards {
    grid-template-columns: repeat(2, 1fr);
  }
  #footer_cards .footer_card:first-child {
    grid-column: 1/-1;
  }
}
@media (min-width: 1024px) {
  #footer_cards {
    grid-template-columns: repeat(3, 1fr);
  }
}
#footer_cards #footer_company_name_subtitle {
  line-height: 1.4;
  font-size: var(--space-3);
}
#footer_cards #footer_company_name {
  line-height: 1.4;
  font-size: var(--space-4-25);
  font-weight: 900;
}
#footer_cards #footer_company_address {
  margin: var(--space-2) 0 0 0;
  line-height: 1;
  font-size: var(--space-3);
  font-weight: 700;
}

.footer_label {
  font-size: var(--space-3);
  font-weight: 700;
  margin-right: var(--space-3);
}

.footer_card_inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-1);
  min-height: 80px;
}

#footer_logo_kibou_care {
  width: 100px;
}

#footer_logo_kibou_fudousan {
  width: 210px;
}

#footer_logo_kojuren {
  width: 50px;
}

#footer_logo_onetop_japan {
  width: 117px;
}

#header_to_contact_wrapper {
  display: none;
}
@media (min-width: 768px) {
  #header_to_contact_wrapper {
    display: block;
  }
}

#btn_header_to_contact {
  display: inline-block;
  font-size: var(--space-4-5);
  font-weight: bold;
  line-height: 1;
  padding: var(--space-4-5) var(--space-7);
  background-color: #ff914d;
  color: #fff;
  border: none;
  border-radius: var(--space-10);
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}
#btn_header_to_contact:hover {
  background-color: #ff914d;
  color: #fff;
}

.btn_more {
  display: inline-block;
  font-size: var(--space-4);
  font-weight: bold;
  line-height: 1;
  padding: var(--space-5-5) var(--space-10);
  background-color: #fff;
  border: 2px solid #ff914d;
  border-radius: var(--space-10);
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.btn_more:hover {
  background-color: #ff914d;
  color: #fff;
}

section.section_not_found {
  padding: 120px 0 !important;
}
section.section_not_found div.not_found {
  text-align: center;
  margin: var(--space-6-5) 0;
  color: #333;
}

h2.page_header {
  text-align: center;
  font-size: var(--space-7);
  line-height: 1;
  padding: var(--space-10) 0;
  background-color: #fff4ed;
}
h2.page_header span {
  margin: 10px 0;
  display: block;
  font-size: var(--space-4);
}

h3.section_header {
  color: #ff914d;
}
h3.section_header span {
  color: #333;
}
h3.section_header.header_type_2 {
  color: #fff;
}
h3.section_header.header_type_2 span {
  color: #333;
}
h3.section_header.header_type_3 {
  color: #333;
}
h3.section_header.header_type_3 span {
  color: #ff914d;
}

section.common_section {
  padding: var(--space-9) 0;
}

.section_header {
  text-align: center;
  font-size: var(--space-7);
  line-height: 1;
}
.section_header span {
  margin: 10px 0;
  display: block;
  font-size: var(--space-3);
}

section.section_to_contact {
  padding: var(--space-10) 0;
  background-color: #ffc8a6;
}

/* ▼ Q&A アコーディオン部分 ▼ */
section.section_q_and_a {
  padding: var(--space-10) 0;
  background-color: #fff4ed;
}

.questions_wrapper {
  margin: var(--space-7) auto 0 auto;
}

.single_question {
  background-color: #fff;
  border-radius: var(--space-2);
  margin-bottom: var(--space-4);
  padding: var(--space-6) var(--space-4);
  word-wrap: break-word;
  /* open時：縦線を消す */
}
.single_question .btn_toggle_qa {
  position: absolute;
  right: 0;
  top: 50%; /* ← 縦中央 */
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 24px;
  height: 24px;
  font-size: 24px;
  font-weight: bold;
  line-height: 1;
  cursor: pointer;
}
.single_question .btn_toggle_qa::before,
.single_question .btn_toggle_qa::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  background: #ff914d;
}
.single_question .btn_toggle_qa::after {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.single_question.open .btn_toggle_qa::after {
  opacity: 0;
}
.single_question:hover {
  opacity: 0.8;
}
.single_question .question {
  position: relative;
  font-size: var(--space-5);
  font-size: clamp(var(--space-4-5), 3vw, var(--space-5));
  line-height: 1.2;
  font-weight: bold;
  letter-spacing: -0.03em;
}
.single_question .question br {
  display: block;
}
@media (min-width: 768px) {
  .single_question .question br {
    display: none;
  }
}
.single_question .question .str_q {
  color: #ff914d;
  margin-right: var(--space-2);
}
.single_question .question .question_inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding-right: var(--space-6); /* ボタン分の余白 */
}
.single_question .answer {
  margin-left: var(--space-2);
  font-size: clamp(var(--space-4-25), 2.5vw, var(--space-5));
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  -webkit-transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, transform 0.3s ease;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
}
.single_question .answer_inner {
  padding: var(--space-4) 0 0 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.single_question .answer_inner .str_a {
  color: #333;
  margin-right: var(--space-2);
}
.single_question.open .answer {
  max-height: 1000px; /* 実際の高さより十分大きく */
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.to_contact_text {
  font-size: var(--space-4-5);
  margin: var(--space-6-5) 0;
  text-align: center;
}

.section_to_contact .btn_to_contact_wrapper {
  margin-top: var(--space-6-5);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--space-4);
}
.section_to_contact .btn_to_contact {
  -webkit-box-flex: 0;
  -webkit-flex-grow: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  width: 340px;
}
@media (min-width: 768px) {
  .section_to_contact .btn_to_contact {
    width: 470px;
  }
}
.section_to_contact .btn_to_contact .btn_inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.section_to_contact .btn_to_contact .contact_icon {
  width: 50px;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50px;
      -ms-flex: 0 0 50px;
          flex: 0 0 50px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media (min-width: 768px) {
  .section_to_contact .btn_to_contact .contact_icon {
    width: 60px;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 60px;
        -ms-flex: 0 0 60px;
            flex: 0 0 60px;
  }
}
.section_to_contact .btn_to_contact .contact_icon img.contact_icon {
  width: 100%;
  height: auto;
  display: block;
}
.section_to_contact .btn_to_contact .contact_text {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  text-align: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.section_to_contact .btn_to_contact .contact_spacer {
  width: 50px;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50px;
      -ms-flex: 0 0 50px;
          flex: 0 0 50px;
}
@media (min-width: 768px) {
  .section_to_contact .btn_to_contact .contact_spacer {
    width: 60px;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 60px;
        -ms-flex: 0 0 60px;
            flex: 0 0 60px;
  }
}
.section_to_contact .btn_to_contact {
  background-color: var(--color-main-orange);
  color: #333;
  background-color: #fff;
  padding: var(--space-4);
  border-radius: var(--space-2);
  font-size: var(--space-5);
  -webkit-box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25);
          box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25);
}
.section_to_contact .btn_to_contact:hover {
  opacity: 0.8;
}
.section_to_contact .btn_to_contact .tel_number {
  line-height: 1;
  font-weight: 700;
  font-size: clamp(var(--space-5), 3.6vw, var(--space-6));
}
.section_to_contact .btn_to_contact .tel_number a {
  color: #333;
  text-decoration: none;
}
.section_to_contact .btn_to_contact .business_time {
  line-height: 1;
  margin-top: var(--space-1);
  font-size: var(--space-3);
}
.section_to_contact .btn_to_contact .btn_to_contact_text {
  line-height: 1;
  font-size: var(--space-5);
  font-size: clamp(var(--space-4), 3.1vw, var(--space-5));
  font-weight: 700;
}
.section_to_contact .btn_to_contact .btn_to_contact_text a {
  color: #333;
  text-decoration: none;
}

span.required {
  color: #ff914d;
}

.contact_form_wrapper {
  margin: var(--space-7) auto 0 auto;
}
.contact_form_wrapper .input.text {
  margin-bottom: var(--space-4);
}
.contact_form_wrapper label {
  font-size: var(--space-3-5);
  font-weight: bold;
}
.contact_form_wrapper input[type=text],
.contact_form_wrapper input[type=email],
.contact_form_wrapper input[type=tel],
.contact_form_wrapper textarea {
  width: 100%;
  padding: var(--space-2);
  font-size: var(--space-4-5);
  border: 2px solid #ff914d;
  border-radius: var(--space-2-5);
  margin: var(--space-1) 0 var(--space-4) 0;
}
.user_type_select_wrapper {
  margin: var(--space-7) 0;
}

/* 親は横並び */
.input.radio {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; /* 画面狭ければ折り返す */
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--space-5-5);
}

/* label を横並びサイズに */
.input.radio label {
  position: relative;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex; /* ← ここ重要 */
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 28px; /* 円分の余白だけ */
  white-space: nowrap; /* 文字で折れない */
  cursor: pointer;
  font-size: var(--space-4);
}

/* 元の radio は隠す */
.input.radio label input[type=radio] {
  position: absolute;
  opacity: 0;
}

/* 外円 */
.input.radio label::before {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 22px;
  border: 2px solid #000;
  border-radius: 50%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* 中の黒丸（少し大きめ） */
.input.radio label::after {
  content: "";
  position: absolute;
  left: 4px;
  width: 14px;
  height: 14px;
  background: #000;
  border-radius: 50%;
  -webkit-transform: scale(0);
          transform: scale(0);
}

/* checked */
.input.radio label:has(input[type=radio]:checked)::after {
  -webkit-transform: scale(1);
          transform: scale(1);
}

/* label 基本 */
.input.checkbox label {
  position: relative;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 32px;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  line-height: 1.4;
  font-size: var(--space-4);
}

/* 元のcheckboxを隠す */
.input.checkbox label > input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

/* 未選択：黒枠＋白背景 */
.input.checkbox label::before {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 22px;
  background: #fff; /* 空白 */
  border: 2px solid #000; /* 黒枠 */
  border-radius: 3px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* チェック（最初は非表示） */
.input.checkbox label::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 4px;
  width: 13px;
  height: 10px;
  border-left: 3px solid #fff;
  border-bottom: 3px solid #fff;
  -webkit-transform: rotate(-45deg) scale(0);
          transform: rotate(-45deg) scale(0);
  -webkit-transition: -webkit-transform 0.12s ease;
  transition: -webkit-transform 0.12s ease;
  transition: transform 0.12s ease;
  transition: transform 0.12s ease, -webkit-transform 0.12s ease;
}

/* 選択時：オレンジ塗り＋白チェック */
.input.checkbox label:has(> input[type=checkbox]:checked)::before {
  background: #ff8a3d;
  border-color: #ff8a3d;
}

.input.checkbox label:has(> input[type=checkbox]:checked)::after {
  -webkit-transform: rotate(-45deg) scale(1);
          transform: rotate(-45deg) scale(1);
}

.accept_privacy_policy_wrapper {
  margin: var(--space-6) 0;
  font-size: var(--space-4-5);
  line-height: 1.4;
  text-align: center;
}
.accept_privacy_policy_wrapper a {
  color: #333;
  text-decoration: underline;
}

.privacy_checkbox_wrapper {
  margin-top: var(--space-5);
  margin-bottom: var(--space-5);
}

.submit {
  margin: var(--space-6) 0;
  text-align: center;
}

.btn_confirm {
  width: auto;
  display: inline-block;
  font-size: var(--space-4);
  font-weight: bold;
  border: 2px solid #ff914d;
  line-height: 1;
  padding: var(--space-5-5) var(--space-10);
  background-color: #fff;
  color: #ff914d;
  border-radius: var(--space-10);
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.btn_confirm:hover {
  color: #fff;
  background-color: #ff914d;
}

.btn_back {
  width: auto;
  display: inline-block;
  font-size: var(--space-4);
  font-weight: bold;
  border: 2px solid #333;
  line-height: 1;
  padding: var(--space-5-5) var(--space-10);
  background-color: #fff;
  color: #333;
  border-radius: var(--space-10);
  -webkit-transition: background-color 0.3s ease, color 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.btn_back:hover {
  color: #fff;
  background-color: #333;
}

.submit_buttons_wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; /* ← 強制タテ並び */
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-column-gap: var(--space-6);
     -moz-column-gap: var(--space-6);
          column-gap: var(--space-6);
  row-gap: var(--space-3);
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}

/* 送信を上、修正を下 */
.submit_buttons_wrapper .submit:first-child {
  -webkit-box-ordinal-group: 3;
  -webkit-order: 2;
      -ms-flex-order: 2;
          order: 2; /* 修正 */
}

.submit_buttons_wrapper .submit:last-child {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; /* 送信 */
}

/* ===== PC ===== */
@media screen and (min-width: 769px) {
  .submit_buttons_wrapper {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; /* 横並びに戻す */
  }
  .submit_buttons_wrapper .submit:first-child {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; /* 修正 */
  }
  .submit_buttons_wrapper .submit:last-child {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; /* 送信 */
  }
}
.message.error {
  color: #f00;
  background-color: #fee;
  font-weight: bold;
  font-size: var(--space-4);
  margin-bottom: var(--space-4);
  text-align: center;
  padding: var(--space-4-5) var(--space-5);
  border-radius: var(--space-4);
}

div.error-message {
  color: #fff;
  background-color: #f00;
  font-size: var(--space-3-5);
  padding: var(--space-2) var(--space-4-5);
  border-radius: var(--space-4);
}

.form_confirm_row {
  margin-bottom: var(--space-4-5);
}
.form_confirm_row label {
  display: block;
  font-size: var(--space-3-5);
  font-weight: bold;
  margin-top: var(--space-1);
  margin-bottom: var(--space-1);
}

/* Chrome / Edge / Safari */
::-webkit-input-placeholder {
  color: #aaa;
  opacity: 1;
}
::-moz-placeholder {
  color: #aaa;
  opacity: 1;
}
:-ms-input-placeholder {
  color: #aaa;
  opacity: 1;
}
::-ms-input-placeholder {
  color: #aaa;
  opacity: 1;
}
::placeholder {
  color: #aaa;
  opacity: 1;
}

/* Firefox */
::-moz-placeholder {
  color: #aaa;
  opacity: 1;
}

/* IE（もうほぼ不要だけど） */
:-ms-input-placeholder {
  color: #aaa;
}

.common_inner {
  padding: 0 var(--space-4);
}
@media (min-width: 768px) {
  .common_inner {
    padding: 0 var(--space-6);
  }
}

.font_clamp_24_32_40 {
  font-size: clamp(var(--space-5), 3vw, var(--space-6-5));
}

br.sp_only {
  display: block;
}
@media (min-width: 768px) {
  br.sp_only {
    display: none;
  }
}
br.tab_up_only {
  display: none;
}
@media (min-width: 768px) {
  br.tab_up_only {
    display: block;
  }
}
br.tab_only {
  display: none;
}
@media (min-width: 768px) {
  br.tab_only {
    display: block;
  }
}
@media (min-width: 1024px) {
  br.tab_only {
    display: none;
  }
}
br.pc_only {
  display: none;
}
@media (min-width: 1024px) {
  br.pc_only {
    display: block;
  }
}

.text-center {
  text-align: center !important;
}

@media (min-width: 768px) {
  .text-center_tab {
    text-align: center !important;
  }
}

.text-right {
  text-align: right !important;
}

section#main_visual {
  background-color: #fff4ed;
  padding-top: var(--space-4-5);
  /* TAB以上：構図を活かす */
  /* TAB以上：構図を活かす */
}
@media (min-width: 768px) {
  section#main_visual {
    padding-top: var(--space-5-5);
  }
}
@media (min-width: 1024px) {
  section#main_visual {
    padding-top: var(--space-6-5);
  }
}

#main_visual_wrapper {
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  position: relative;
}
@media (min-width: 768px) {
  #main_visual_wrapper {
    width: 690px;
    max-width: 100%;
  }
}
@media (min-width: 1024px) {
  #main_visual_wrapper {
    width: 1260px;
    max-width: 100%;
  }
}
#main_visual_wrapper #main_visual_frame {
  width: 100%;
  padding-left: var(--space-3);
  padding-right: var(--space-3);
  position: relative;
}
#main_visual_wrapper #main_visual_picture,
#main_visual_wrapper #mv_image {
  width: 100%;
  max-width: 100%;
  display: block;
  border-radius: var(--space-4);
}
#main_visual_wrapper #mv_image {
  -o-object-fit: cover;
     object-fit: cover;
}
#main_visual_wrapper #mv_overlay_wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#main_visual_wrapper #mv_overlay {
  position: absolute;
  width: 100%;
  height: 100%;
}
#main_visual_wrapper #mv_overlay_panel {
  position: absolute;
  width: 100%;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding-bottom: var(--space-7);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 764px) {
  #main_visual_wrapper #mv_overlay_panel {
    padding-bottom: var(--space-7);
  }
}
@media (min-width: 1024px) {
  #main_visual_wrapper #mv_overlay_panel {
    width: 55%;
    height: 100%;
    top: 0;
    left: auto;
    right: 0;
  }
}
#main_visual_wrapper #mv_overlay_panel #mv_overlay_panel_inner #logo_on_mainvisual {
  display: none;
}
@media (min-width: 1024px) {
  #main_visual_wrapper #mv_overlay_panel #mv_overlay_panel_inner #logo_on_mainvisual {
    display: block;
    margin: var(--space-1) auto var(--space-7);
    opacity: 0.9;
  }
}

#mv_catchphrase_main {
  color: #fff;
  text-align: center;
  font-size: var(--space-5-5);
  font-size: clamp(var(--space-4), 6vw, var(--space-6-5));
  font-weight: bold;
  line-height: 1.2;
  text-shadow: 0px 4px 5px rgba(0, 0, 0, 0.6);
}
@media (min-width: 1024px) {
  #mv_catchphrase_main {
    font-size: var(--space-6-5);
    font-size: clamp(var(--space-5), 2.9vw, var(--space-6-5));
  }
}

#mv_catchphrase_sub {
  text-align: center;
  font-size: var(--space-4);
  font-size: clamp(var(--space-3-5), 2.2vw, var(--space-4));
  margin: var(--space-4) 0 0 0;
  color: #fff;
  font-weight: bold;
  text-shadow: 0px 3px 4px rgba(0, 0, 0, 0.6);
}
@media (min-width: 1024px) {
  #mv_catchphrase_sub {
    font-size: var(--space-5);
    font-size: clamp(var(--space-4), 2.5vw, var(--space-4-5));
    margin: var(--space-2) 0 0 0;
  }
}

#mv_scroll_indicator {
  margin: var(--space-7);
  color: #ff914d;
  text-align: center;
}
#mv_scroll_indicator .scroll_text {
  font-size: var(--space-4);
  font-weight: bold;
  margin-bottom: var(--space-4-25);
}

.reason_box {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 16px;
}

.left_line,
.right_line {
  width: 60px !important; /* 0になってたら強制で出す */
  height: 2px !important;
  background: #000 !important; /* 透明上書きを潰す */
  display: block !important;
  opacity: 1 !important;
}

.left_line {
  -webkit-transform: rotate(60deg) !important;
          transform: rotate(60deg) !important;
}

.right_line {
  -webkit-transform: rotate(-60deg) !important;
          transform: rotate(-60deg) !important;
}

.message_header {
  text-align: center;
  font-size: var(--space-5-5);
  font-weight: 700;
  margin: var(--space-4-5) 0;
}

.message_text {
  text-align: left;
  margin: var(--space-5) 0 var(--space-9);
  line-height: 1.6;
  font-size: clamp(var(--space-3-5), 3.5vw, var(--space-4-5));
  letter-spacing: -0.025em;
  color: #333;
}
@media (min-width: 1024px) {
  .message_text {
    text-align: center;
  }
}

.info_text {
  text-align: left;
  margin: var(--space-5) 0 var(--space-9);
  line-height: 1.6;
  font-size: clamp(var(--space-3-5), 4vw, var(--space-4-5));
  color: #333;
}
@media (min-width: 1024px) {
  .info_text {
    text-align: center;
  }
}

.reason_text {
  line-height: 1;
  text-align: center;
}
.reason_text .sub_black {
  padding: var(--space-1) 0;
  display: block;
  font-size: var(--space-5);
  color: #000;
}
.reason_text .main_green {
  padding: var(--space-1) 0;
  line-height: 1;
  display: block;
  font-size: var(--space-6);
  font-weight: bold;
  color: #71bf44;
}

.point_wrapper {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: var(--space-5);
  margin-top: var(--space-7);
  /* スマホ対応：横並びを解除して縦にする */
}
@media (min-width: 1024px) {
  .point_wrapper {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 1200px) {
  .point_wrapper .point_box {
    max-width: 100%;
    width: 300px;
    display: block; /* グリッド解除 */
  }
}
.point_wrapper .point_box {
  background-color: #fff;
  margin-top: -var(--space-5);
  margin-left: auto;
  margin-right: auto;
  border-radius: var(--space-3);
  overflow: hidden; /* ← 中身を角丸に沿って切る */
  -webkit-box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25);
          box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25);
}
.point_wrapper .point_box .point_number {
  text-align: center;
  background-color: #ff914d;
  color: #fff;
  font-size: var(--space-6);
  font-weight: 700;
}
.point_wrapper .point_box .point_number span {
  font-size: var(--space-7);
}
.point_wrapper .point_box .point_text {
  min-height: 4em;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  font-weight: 700;
  font-size: var(--space-5);
  line-height: 1.2;
  background-color: #fff;
  padding: var(--space-4-5) 0;
}

.points_detail_wrapper {
  margin-top: var(--space-6-5);
  margin-bottom: var(--space-9);
  gap: var(--space-7);
  /* 親コンテナ */
  /* 画像ブロックを左側（1列目）の縦いっぱいに配置 */
  /* 各テキスト要素は自動的に2列目に並ぶ */
  /* 画像がはみ出さないように調整 */
  /* スマホ対応：横並びを解除して縦にする */
}
.points_detail_wrapper .point_box {
  margin: var(--space-6) 0;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  /* 左側に画像の幅（例: 240px）、右側に残り全部 */
  grid-template-columns: 390px 1fr;
  /* 各要素の間の余白 */
  -webkit-box-align: start;
  -webkit-align-items: start;
      -ms-flex-align: start;
          align-items: start;
  background-color: #fff;
  margin-top: -var(--space-5);
  border-radius: var(--space-3);
  overflow: hidden; /* ← 中身を角丸に沿って切る */
  -webkit-box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25);
          box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25);
}
.points_detail_wrapper .point_box .point_number {
  text-align: right;
  background-color: #ff914d;
  color: #fff;
  font-size: var(--space-5);
  font-weight: 700;
  padding: var(--space-3) var(--space-3);
}
@media (max-width: 1200px) {
  .points_detail_wrapper .point_box .point_number {
    text-align: center;
  }
}
.points_detail_wrapper .point_box .point_number span {
  font-size: var(--space-5);
}
.points_detail_wrapper .point_box .point_text {
  text-align: left;
  font-weight: 700;
  font-size: var(--space-6);
  font-size: clamp(var(--space-5), 2.6vw, var(--space-6));
  margin-top: var(--space-2);
  padding: var(--space-3) var(--space-5);
  background-color: #fff;
}
.points_detail_wrapper .point_box .point_text br {
  display: none;
}
@media (max-width: 1200px) {
  .points_detail_wrapper .point_box .point_text {
    text-align: center;
  }
  .points_detail_wrapper .point_box .point_text br {
    display: block;
  }
}
.points_detail_wrapper .point_image {
  grid-column: 1;
  grid-row: 1/span 3; /* number, text, detail の3段分を結合 */
}
.points_detail_wrapper .point_number {
  grid-column: 2;
}
.points_detail_wrapper .point_text {
  grid-column: 2;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 10px;
}
.points_detail_wrapper .point_detail {
  grid-column: 2;
  font-size: 1rem;
  line-height: 1.6;
  padding: var(--space-1) var(--space-3) var(--space-4);
}
.points_detail_wrapper .point_image img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 1200px) {
  .points_detail_wrapper .point_box {
    max-width: 100%;
    width: 300px;
    display: block; /* グリッド解除 */
  }
  .points_detail_wrapper .point_image {
    margin-bottom: 20px;
  }
}

.btn_more_wrapper {
  text-align: center;
  margin: var(--space-7-5) 0;
}

table.table_about_company {
  width: 100%;
  border-collapse: collapse;
}
table.table_about_company tr {
  display: block;
}
table.table_about_company th,
table.table_about_company td {
  padding: var(--space-2);
  display: block;
  width: 100%;
  border: none;
  text-align: left;
}
table.table_about_company th {
  padding: var(--space-1);
  font-size: var(--space-4);
  font-weight: 700;
  background-color: #ff914d;
  color: #fff;
}
table.table_about_company td {
  padding: var(--space-3);
  font-size: var(--space-3-5);
  font-weight: normal;
}
@media (min-width: 768px) {
  table.table_about_company tr {
    display: table-row;
  }
  table.table_about_company th,
  table.table_about_company td {
    padding: var(--space-3);
    font-size: var(--space-4-5);
    display: table-cell;
    width: auto;
  }
  table.table_about_company th {
    border: 1px solid #fff;
  }
  table.table_about_company td {
    border: 1px solid #333;
  }
}

#about_main_header {
  text-align: center;
  font-size: var(--space-6-5);
  font-weight: 700;
  margin-bottom: var(--space-7);
}

.about_text {
  text-align: center;
  font-size: var(--space-4-5);
  line-height: 1.8;
  margin-bottom: var(--space-7);
}

#section_staff {
  margin: var(--space-10) 0;
}

#section_staff_inner {
  background: #ffc8a6;
  padding-top: var(--space-9);
  padding-bottom: var(--space-9);
  border-radius: var(--space-5-5);
}
#section_staff_inner #section_staff_img_wrapper {
  margin: var(--space-6-5) 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
#section_staff_inner #section_staff_image {
  display: block;
  padding: var(--space-7) 0;
}
#section_staff_inner .staff_lead {
  text-align: center;
  font-size: var(--space-4-5);
  line-height: 1.6;
  width: 90%;
  max-width: 700px;
  margin: var(--space-6) auto;
}

.privacy_policy_section_header {
  text-align: center;
  font-size: var(--space-6);
  font-weight: 700;
  margin-bottom: var(--space-7);
}

h4.privacy_policy_index {
  font-size: var(--space-4-5);
  font-weight: 700;
  margin: var(--space-6-5) 0 var(--space-4-5) 0;
}

body {
  -webkit-font-smoothing: auto;
  text-rendering: auto;
}

/* デフォルト（SP想定） */
body.debug::before {
  content: "SP";
  position: fixed;
  bottom: 8px;
  right: 8px;
  padding: 4px 8px;
  font-size: 12px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  z-index: 9999;
  pointer-events: none;
}

/* Tablet */
@media (min-width: 768px) {
  body.debug::before {
    content: "TAB (>= 768px)";
  }
}
/* PC */
@media (min-width: 1024px) {
  body.debug::before {
    content: "PC (>= 1024px)";
  }
}/*# sourceMappingURL=style.css.map */