@media screen {
  /* ---------------------------------------------------------------------------------------
	reset
--------------------------------------------------------------------------------------- */
  /*** The new CSS reset - version 1.8.2 (last updated 23.12.2022) ***/

  *:where(
      :not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)
    ) {
    all: unset;
    display: revert;
  }
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  a,
  button {
    cursor: revert;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img {
    max-inline-size: 100%;
    max-block-size: 100%;
  }
  table {
    border-collapse: collapse;
  }
  input,
  textarea {
    -webkit-user-select: auto;
  }
  textarea {
    white-space: revert;
  }
  meter {
    -webkit-appearance: revert;
    appearance: revert;
  }
  pre {
    all: revert;
  }
  ::placeholder {
    color: unset;
  }
  ::marker {
    content: '';
  }
  :where([hidden]) {
    display: none;
  }
  :where([contenteditable]:not([contenteditable='false'])) {
    -moz-user-modify: read-write;
    -webkit-user-modify: read-write;
    overflow-wrap: break-word;
    -webkit-line-break: after-white-space;
    -webkit-user-select: auto;
  }
  :where([draggable='true']) {
    -webkit-user-drag: element;
  }
  /* ---------------------------------------------------------------------------------------
	ansapo custom properties
--------------------------------------------------------------------------------------- */

  @font-face {
    font-weight: 300;
    font-family: 'Zen Old Mincho';
    font-style: normal;
    src: url('../fonts/ZenOldMincho-Regular.woff2') format('woff2');
    font-display: swap;
  }

  @font-face {
    font-weight: 300;
    font-family: 'Noto Sans JP';
    font-style: normal;
    src: url('../fonts/NotoSansJP-Regular.woff2') format('woff2');
    font-display: swap;
  }
  :root {
    --font-zen: 'Zen Old Mincho', serif;
    --font-secondary: 'Noto Sans JP', sans-serif;
    --color-primary: #493488;
    --color-secondary: #6bb866;
    --color-base: #4d4a43;
    --color-dark: #34322c;
    --color-dark2: #383530;
    --color-bg: #f8f6f2;
    --color-line: #34216a;
    --heading-line-height: 1.25;
    --body-line-height: 1.5;
    --container-width_l: 1440px;
    --container-width_m: 1080px;
    --container-width_s: 960px;
    --container-width_sp: 89vw;
    --header-height: 8.4rem;
    --text-base: 1.6rem;
    --letter-spacing: 0.02em;
    --z-header: 10;
    --z-vip_head: 1;
    --z-vip_detail: 2;
    --z-price_note: 1;
  }
  html {
    font-size: 62.5%;
    scroll-behavior: smooth;
  }
  /* ---------------------------------------------------------------------------------------
	utirity
--------------------------------------------------------------------------------------- */

  @media (max-width: 768px) {
    .pc-only {
      display: none !important;
    }
  }
  @media (min-width: 769px) {
    .sp-only {
      display: none !important;
    }
  }
  .hide,
  .is-hidden {
    display: none !important;
  }
  .text-center {
    text-align: center;
  }
  .text-left {
    text-align: left;
  }
  .text-right {
    text-align: right;
  }
  .text-underline {
    text-decoration: underline;
    text-decoration-thickness: from-font;
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .color-primary {
    color: var(--color-primary);
  }
  .color-secondary {
    color: var(--color-secondary);
  }
  .flex {
    --gap: 0px;
    --gap-x: var(--gap);
    --gap-y: var(--gap);
    display: flex;
    gap: var(--gap-y) var(--gap-x);
  }
  @media (max-width: 768px) {
    .sp-flex-column {
      flex-direction: column;
    }
    .sp-flex-column-r {
      flex-direction: column-reverse;
    }
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .flex-column {
    flex-direction: column;
  }
  .flex-center {
    align-items: center;
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-between {
    justify-content: space-between;
  }
  .items-center {
    align-items: center;
  }
  .items-start {
    align-items: flex-start;
  }
  .items-end {
    align-items: flex-end;
  }
  .items-baseline {
    align-items: baseline;
  }
  .bg-light {
    background-color: var(--color-bg);
  }
  .ballon:before {
    display: inline-block;
    color: var(--color-secondary);
    content: '＼';
  }
  .ballon:after {
    display: inline-block;
    color: var(--color-secondary);
    content: '／';
  } /* ---------------------------------------------------------------------------------------
	ansapo styles
--------------------------------------------------------------------------------------- */
  body {
    color: var(--color-base);
    font-size: var(--text-base);
    font-family: var(--font-secondary);
    letter-spacing: var(--letter-spacing);
  }
  /* a {
    transition-duration: 0.4s;
  } */

  @media (min-width: 769px) {
    a[href^='tel:'] {
      pointer-events: none;
    }
  }
  a:hover {
    opacity: 0.9;
  }
  .section_title {
    color: var(--color-dark);
    font-weight: bold;
    font-family: var(--font-zen);
    line-height: var(--heading-line-height);
    letter-spacing: var(--letter-spacing);
    text-align: center;
  }
  /*  tel, mail
  ------------------------------------*/
  .tel_message {
    position: relative;
    display: inline-block;
    padding: 0 1.6rem 0 6rem;
    color: #fff;
    line-height: 3.6rem;
    letter-spacing: 0;
    background: var(--color-primary);
    border-radius: 4px;
  }
  .tel_message::before {
    position: absolute;
    top: 0;
    left: -0.5rem;
    display: block;
    width: 5rem;
    height: 3.6rem;
    background: url(../img/icon_phone.svg) no-repeat center center;
    background-color: #241258;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    content: '';
  }
  .tel_num {
    margin: 0.8rem 0 0;
    font-size: 3.7rem;
    font-family: var(--font-zen);
  }
  .tel_num::before {
    position: relative;
    top: 0.3rem;
    display: inline-block;
    width: 6.3rem;
    height: 3.4rem;
    margin-right: 0.5rem;
    background: url(../img/icon_freephone.svg) no-repeat;
    background-size: cover;
    content: '';
  }
  .tel_time {
    padding-left: 2.4rem;
    font-size: 1.8rem;
    font-family: var(--font-zen);
    line-height: 1;
    letter-spacing: 0;
  }
  .mail_message {
    position: relative;
    display: inline-block;
    padding: 0px 1.6rem 0 7rem;
    line-height: 3.6rem;
    letter-spacing: 0;
    background: #ebe9e4;
    border-radius: 4px;
  }
  .mail_message::before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 6rem;
    height: 3.6rem;
    background: url(../img/icon_mail.svg) no-repeat center center;
    background-color: #e0dcd4;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    content: '';
  }
  .mail_btn {
    display: block;
    width: 320px;
    margin-top: 1.7rem;
    color: #fff;
    font-weight: bold;
    font-size: 1.8rem;
    line-height: 7rem;
    text-align: center;
    background-color: var(--color-secondary);
    border-radius: 35px;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
  }
  /*  order label
  ------------------------------------*/
  .order {
    width: 12.5rem;
    height: 12.5rem;
    color: #fff;
    text-align: center;
    background: var(--color-primary);
    border-radius: 50%;
  }
  .order_lead {
    position: relative;
    width: 96px;
    margin: 0 auto;
    padding: 32px 0 7.5px;
    font-size: 1.5rem;
    border-bottom: 1px solid #241258;
    box-shadow: 1px 2px 0 -1.2px #64509d;
  }
  .order_num {
    font-weight: bold;
    font-family: var(--font-zen);
  }
  /*  header
  ------------------------------------*/
  .header {
    position: fixed;
    top: 0;
    z-index: var(--z-header);
    width: 100vw;
    height: var(--header-height);
    padding: 0 30px;
    color: #fff;
    font-family: var(--font-zen);
    background: var(--color-primary);
  }
  .header_logo {
    margin-top: 1rem;
  }
  .header_contact .contact_tel,
  .header_contact .contact_mail {
    height: 5.4rem;
    padding: 0 2.5rem;
    border-left: 1px solid var(--color-line);
  }
  .header_contact .contact_mail {
    padding-right: 0;
  }
  .header .tel_num {
    display: flex;
    align-items: center;
    margin: 0;
    font-size: 2.4rem;
  }
  .header .tel_num::before {
    top: 0.2rem;
    width: 3.8rem;
    height: 2.2rem;
  }
  .header .tel_time {
    font-size: 1.4rem;
  }
  .header .mail_link {
    position: relative;
    display: block;
    padding-top: 3.2rem;
    font-size: 1.4rem;
  }
  .header .mail_link::before {
    position: absolute;
    top: 0.8rem;
    left: 50%;
    display: block;
    width: 2.8rem;
    height: 2rem;
    background: url(../img/icon_mail_white.svg) no-repeat center center;
    transform: translateX(-50%);
    content: '';
  }
  @media (max-width: 768px) {
    .header {
      justify-content: center;
      --header-height: 6rem;
    }
    .header_logo .logo {
      width: 200px;
      height: 32px;
      margin: 0 auto;
    }
    .header_contact {
      position: fixed;
      bottom: 0;
      justify-content: center;
      width: 100vw;
      padding: 0.5rem 1rem;
      background-color: var(--color-primary);
    }
    .header_contact .contact_tel,
    .header_contact .contact_mail {
      padding: 0;
    }
    .header .tel_num {
      font-size: 2.3rem;
    }
    .header_contact li {
      height: 6rem;
      padding: 0;
    }
    .header_contact li:first-child {
      padding-right: calc(10vw / 3.75);
      border-left: none;
    }
    .header_contact li:last-child {
      padding-left: calc(12vw / 3.75);
    }
    .header .tel_time {
      padding-left: 0;
      font-size: 1.3rem;
    }
    .header .mail_link {
      padding-top: 0.5rem;
    }
    .header .mail_link::before {
      position: relative;
      top: 0.5rem;
      left: 0;
      display: inline-block;
      margin-right: 0.5em;
      transform: none;
    }
    .header .mail_note {
      margin-top: 0.3rem;
      color: #fff;
      font-size: 1.3rem;
      letter-spacing: 0;
    }
  }
  @media (max-width: 374px) {
    .header .tel_num::before {
      width: 3rem;
      height: 1.73rem;
    }
    .header .tel_num {
      font-size: 2rem;
    }
    .header .tel_time {
      padding-top: 0.2rem;
      font-size: 1.2rem;
    }
    .header .mail_link::before {
      width: 2.5rem;
      height: 1.78rem;
    }
    .header .mail_link {
      padding-top: 0.3rem;
    }
    .header .mail_note {
      font-size: 1.2rem;
    }
  }
  @media (max-width: 349px) {
    .header .tel_num::before {
      width: 3rem;
      height: 1.73rem;
    }
    .header .tel_num {
      font-size: 1.8rem;
    }
    .header .tel_time {
      padding-top: 0.5rem;
      font-size: 1rem;
    }
    .header .mail_link::before {
      width: 2.5rem;
      height: 1.78rem;
    }
    .header .mail_link {
      padding-top: 0.3rem;
    }
    .header .mail_note {
      font-size: 1.1rem;
    }
  }
  /*  following banner
  ------------------------------------*/
  .following {
    position: fixed;
    right: 2rem;
    bottom: 2rem;
    z-index: 100;
    opacity: 100;
    transition: all 0.5s ease-in-out 0s;
  }
  .following.hidden {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    pointer-events: none;
  }
  .following.stop-positon {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    pointer-events: none;
  }
  .following_bannerItem {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 13rem;
    height: 13rem;
    margin-top: 1.4rem;
    color: #ffffff;
    border-radius: 50%;
  }
  .following_bannerItem::after {
    position: absolute;
    bottom: 2.4rem;
    left: 50%;
    display: block;
    width: 2rem;
    height: 1.3rem;
    background: url(../img/icon_outline.svg) no-repeat;
    background-size: contain;
    transform: translateX(-50%);
    content: '';
  }
  .following_bannerItem.igonsho {
    font-family: var(--font-zen);
    background: #493488;
    border: solid 1px #392476;
  }
  .following_bannerItem.fudosan {
    background: #5cb963;
    border: solid 1px #3d8b43;
  }
  .following_bannerItem.ansapo {
    font-family: var(--font-zen);
    background: #355da7;
    border: solid 1px #264884;
  }
  .following_bannerText_l {
    margin-top: -1rem;
    font-size: 2rem;
  }
  .following_bannerText_m {
    font-size: 1.6rem;
  }
  @media (max-width: 768px) {
    .following {
      right: 0;
      bottom: 8rem;
    }
    .following_bannerItem {
      align-items: flex-end;
      width: 4rem;
      height: 10rem;
      margin-top: 0.6rem;
      padding: 0.5rem 0;
      line-height: 1em;
      border-radius: 0;
      writing-mode: vertical-rl;
    }
    .following_bannerItem::after {
      content: none;
    }
    .following_bannerText_l {
      margin-top: 0;
      font-size: 1.4rem;
    }
    .following_bannerText_m,
    .following_bannerText_l_sp {
      font-size: 1.2rem;
    }
    .following_bannerText_m::after {
      display: inline-block;
      width: 1rem;
      height: 0.7rem;
      margin-top: 0.2rem;
      background: url(../img/icon_outline.svg) no-repeat;
      background-size: contain;
      content: '';
    }
  }
  /*  mv main visual
  ------------------------------------*/
  .mv {
    position: relative;
    margin-top: var(--header-height);
    background: url(../img/mv.jpg) no-repeat;
    background-size: cover;
  }
  @media (min-width: 769px) {
    .mv_box {
      display: flex;
      flex-direction: column;
      justify-content: center;
      width: calc(140vw / 14.4);
      height: 46.95vw;
      margin: var(--header-height) auto 0;
      padding: 0 1.5rem;
      background: #f8f6f2;
      writing-mode: vertical-rl;
    }
  }
  .mv_title {
    margin-top: 0;
    color: var(--color-dark2);
    font-family: var(--font-zen);
    text-align: left;
  }
  .mv_lead {
    color: var(--color-base);
    text-align: left;
  }
  .mv_catch {
    position: absolute;
    color: #fff;
    text-align: center;
    background: var(--color-secondary);
    border-radius: 50%;
  }
  .mv_catch::after {
    position: absolute;
    top: 83%;
    left: 50%;
    border: 10px solid transparent;
    border-top: 10px solid #fff;
    transform: translateX(-50%);
    content: '';
  }
  @media (min-width: 769px) {
    .mv_title {
      margin-top: 1rem;
      font-weight: lighter;
      font-size: calc(62vw / 14.4);
      line-height: 1.2;
      letter-spacing: 0.05em;
    }
    .mv_lead {
      display: inline-block;
      font-size: calc(24vw / 14.4);
      line-height: 1.44;
      letter-spacing: 0.15em;
    }
    .mv_catch {
      bottom: -2vw;
      left: 50%;
      width: 13.9vw;
      height: 13.9vw;
      padding-top: 2.8vw;
      font-size: calc(52vw / 14.4);
      line-height: 1.07;
      transform: translateX(-50%);
    }
  }
  @media (max-width: 768px) {
    .mv {
      height: calc(460vw / 3.75);
      background-color: var(--color-bg);
      background-image: url(../img/mv_sp_l.jpg), url(../img/mv_sp_r.jpg);
      background-position: top center, bottom center;
      background-size: 100vw, 100vw;
      --header-height: 6rem;
    }
    .mv_box {
      position: relative;
      align-items: flex-start;
      padding-top: calc(180vw / 3.75);
    }
    .mv_title {
      margin: 0 0 0 calc(10vw / 3.75);
      font-size: calc(40vw / 3.75);
      letter-spacing: 0;
    }
    .mv_lead {
      margin: calc(10vw / 3.75) 0 0 calc(10vw / 3.75);
      font-size: calc(16vw / 3.75);
      letter-spacing: 0;
    }
    .mv_catch {
      top: 50%;
      right: calc(10vw / 3.75);
      width: calc(126vw / 3.75);
      height: calc(126vw / 3.75);
      padding-top: calc(23vw / 3.75);
      font-size: calc(32vw / 3.75);
      line-height: calc(34vw / 3.75);
      transform: translateY(-50%);
    }
    .mv_catch::after {
      border-width: calc(7vw / 3.75);
    }
  }

  /*  cta
  ------------------------------------*/
  .cta {
    position: relative;
    max-width: var(--container-width_s);
    margin: 7.8rem auto;
    padding: 3.5rem 10rem 4.5rem;
    border: 4px solid #f2f0ec;
    border-radius: 20px;
  }
  .cta::before {
    display : none;
    position: absolute;
    bottom: 3.5rem;
    left: 49.5%;
    width: 1px;
    height: 15.4rem;
    border-left: 1px solid #dedcd6;
    content: '';
  }
  .cta_tel{
    text-align: center;
  }
  .cta_tel,
  .cta_mail {
    flex: 1;
  }
  .cta_head {
    display: flex;
    align-items: center;
    margin-bottom: 3.6rem;
  }
  .cta_head_label {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 10rem;
    height: 10rem;
    color: #fff;
    font-size: 2.6rem;
    line-height: 1.1;
    background: var(--color-secondary);
    border-radius: 50%;
  }
  .cta_head_label::after {
    position: absolute;
    bottom: 0;
    left: 50%;
    display: block;
    border: 6px solid transparent;
    border-top: 5px solid #fff; /* 好みで色を変えてください */
    transform: translateX(-50%);
    content: '';
  }
  .cta_head_title {
    margin-left: 1.5rem;
    font-weight: 400;
    font-size: 2.8rem;
    font-family: var(--font-zen);
    line-height: 1.36;
    letter-spacing: 0.1em;
  }
  @media (min-width: 769px) and (max-width: 980px) {
    .cta {
      margin-right: 2vw;
      margin-left: 2vw;
      padding-right: 5vw;
      padding-left: 5vw;
    }
  }
  /*  ctaButton
  ------------------------------------*/
  .ctaButton {
    display: flex;
    width: calc(100% - 4vw);
    max-width: 86rem;
    margin: -2.8rem auto 9rem;
    text-align: left;
    column-gap: 2rem;
  }
  .ctaButton_item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 1.7rem 2.8rem 1.7rem 3rem;
    color: #ffffff;
    font-size: 2.2rem;
    border-radius: 6px;
  }
  .ctaButton_item::after {
    display: inline-block;
    width: 2.1rem;
    min-width: 2.1rem;
    height: 1.4rem;
    margin-top: 0.2rem;
    margin-left: auto;
    background: url(../img/icon_outline.svg) no-repeat center center;
    background-size: contain;
    content: '';
  }
  .ctaButton_item.igonsho {
    font-family: var(--font-zen);
    background: #493488;
  }
  .ctaButton_item.fudosan {
    background: #6bb866;
  }
  .ctaButton_item.ansapo {
    font-family: var(--font-zen);
    background: #355da7;
  }
  @media (max-width: 768px) {
    .ctaButton {
      flex-wrap: wrap;
      max-width: 33.5rem;
      margin-top: 0;
      margin-bottom: 3rem;
      column-gap: 0;
      row-gap: 0.8rem;
    }
    .ctaButton_item {
      padding: 1.7rem 2rem 1.7rem 2rem;
      font-size: 1.7rem;
    }
    .ctaButton_item::after {
      width: 1.5rem;
      min-width: 1.5rem;
      height: 1rem;
    }
  }
  /*  desire
  ------------------------------------*/
  .desire {
    --top-gap: 6rem;
    position: relative;
    height: 58rem;
    margin-top: 13rem;
    padding-top: var(--top-gap);
    background-repeat: no-repeat;
    background-position: top 2rem center;
    background-size: cover;
  }
  @media (min-width: 769px) {
    .desire {
      background-image: url(../img/desire/bg_desire.jpg);
    }
  }
  @media (max-width: 768px) {
    .desire {
      background-image: url(../img/desire/bg_desire_sp.jpg);
      background-position: top 4.5rem center;
    }
  }
  @media (min-width: 769px) and (max-width: 1439px) {
    .desire {
      background-position: top 2rem right 37%;
      background-size: auto 100%;
    }
  }
  .desire_title {
    --top-gap: -4.5rem;
    position: absolute;
    top: var(--top-gap);
    left: 50%;
    display: inline-block;
    padding: 0 7.1rem 2.7rem;
    font-size: 4.6rem;
    letter-spacing: var(--letter-spacing);
    white-space: nowrap;
    background: #fff;
    border-radius: 6px;
    transform: translateX(-50%);
  }
  @media (min-width: 769px) and (max-width: 860px) {
    .desire_title {
      padding-right: 2rem;
      padding-left: 2rem;
    }
  }
  .desire_item {
    position: absolute;
    top: var(--pos-t);
    left: var(--pos-l);
    display: inline-block;
    padding: 2.4rem 3.7rem;
    font-size: 2rem;
    letter-spacing: var(--letter-spacing);
    background: #fff;
    border-radius: 22px;
    --pos-t: 0;
    --pos-l: 0;
  }
  @media (min-width: 769px) and (max-width: 1390px) {
    .desire_item {
      font-size: calc(20vw / 14.4);
    }
  }
  @media (min-width: 769px) {
    .desire_content li:nth-child(1) .desire_item {
      --pos-t: 10.8rem;
      --pos-l: calc(220vw / 14.4);
    }
    .desire_content li:nth-child(2) .desire_item {
      --pos-t: 21.55rem;
      --pos-l: calc(150vw / 14.4);
    }
    .desire_content li:nth-child(3) .desire_item {
      --pos-t: 32.51rem;
      --pos-l: calc(333vw / 14.4);
    }
    .desire_content li:nth-child(4) .desire_item {
      --pos-t: 35.46rem;
      --pos-l: calc(914vw / 14.4);
    }
    .desire_content li:nth-child(5) .desire_item {
      --pos-t: 43.8rem;
      --pos-l: calc(506vw / 14.4);
    }
  }
  .desire_item::before {
    --pos-r: 5.8rem;
    --border-size: 7px;
    --color-t: #fff;
    --color-r: #fff;
    --color-b: transparent;
    --color-l: transparent;
    position: absolute;
    top: 98%;
    right: var(--pos-r);
    border-top: var(--border-size) solid var(--color-t);
    border-right: var(--border-size) solid var(--color-r);
    border-bottom: var(--border-size) solid var(--color-b);
    border-left: var(--border-size) solid var(--color-l);
    transform: scaleX(1.7);
    content: '';
  }
  @media (min-width: 1440px) {
    .desire_content li:nth-child(4) .desire_item::before {
      --color-t: #fff;
      --color-r: transparent;
      --color-b: transparent;
      --color-l: #fff;
    }
    .desire_content li:nth-child(4) .desire_item::before {
      --pos-r: 28rem;
    }
  }
  @media (min-width: 769px) and (max-width: 1439px) {
    .desire_content li:nth-child(4) .desire_item::before {
      --pos-r: calc(240vw / 14.4);
      --color-t: #fff;
      --color-r: transparent;
      --color-b: transparent;
      --color-l: #fff;
    }
  }
  @media (max-width: 768px) {
    .desire {
      height: auto;
      margin-top: 4rem;
      padding-top: calc(245vw / 3.75);
      overflow: hidden;
      background-size: 100vw;
    }
    .desire_title {
      padding-bottom: 1.9rem;
      font-size: 2.2rem;
      --top-gap: 0;
    }
    .desire_content {
      position: relative;
      left: 50%;
      display: inline-block;
      transform: translateX(-50%);
    }
    .desire_content::after {
      position: relative;
      bottom: -24px;
      left: 50%;
      display: inline-block;
      border: 21px solid transparent;
      border-top: 24px solid var(--color-primary);
      transform: translateX(-50%);
      content: '';
    }
    .desire_item {
      position: relative;
      margin-bottom: 1rem;
      padding: 1.8rem 2.2rem;
      font-size: 1.4rem;
      background: var(--color-bg);
      border-radius: 16px;
    }
    .desire_content li:nth-child(1) .desire_item {
      --pos-t: 0;
      --pos-l: 32%;
    }
    .desire_content li:nth-child(2) .desire_item {
      --pos-t: 0.4rem;
      --pos-l: -11.74%;
    }
    .desire_content li:nth-child(3) .desire_item {
      --pos-t: 0.4rem;
      --pos-l: 42%;
    }
    .desire_content li:nth-child(4) .desire_item {
      --pos-t: 0.3rem;
      --pos-l: -11.74%;
    }
    .desire_content li:nth-child(5) .desire_item {
      --pos-t: 0.2rem;
      --pos-l: 42%;
    }
    .desire_item:before {
      --pos-r: 10%;
      --color-t: var(--color-bg);
      --color-r: var(--color-bg);
      --color-b: transparent;
      top: 92%;
      --color-l: transparent;
    }
    .desire_content li:nth-child(2n) .desire_item::before {
      --pos-r: 80%;
      --color-t: var(--color-bg);
      --color-l: var(--color-bg);
      --color-r: transparent;
      --color-b: transparent;
    }
  }
  /*  exposition
  ------------------------------------*/
  .exposition {
    position: relative;
    padding: 6.4rem 1.5rem 0;
  }
  .exposition::before {
    position: absolute;
    top: -1px;
    left: 50%;
    display: inline-block;
    border: 24px solid transparent;
    border-top: 24px solid #90a4bf;
    transform: translateX(-50%);
    content: '';
  }
  .exposition_inner {
    width: 100%;
    max-width: var(--container-width_s);
    margin-right: auto;
    margin-left: auto;
  }
  .exposition_title {
    font-weight: bold;
    font-size: 3rem;
    line-height: 1.4;
  }
  .exposition_lead {
    margin-top: 1.2rem;
    font-size: 1.8rem;
    text-align: center;
  }
  .exposition_table {
    margin-top: 3.2rem;
    overflow: auto;
  }
  .exposition_table table {
    width: 100%;
    min-width: 96rem;
    table-layout: fixed;
    border-collapse: collapse;
  }
  .exposition_table thead th {
    padding: 2rem;
    font-weight: 500;
    font-size: 1.8rem;
    text-align: center;
    vertical-align: middle;
    border: solid 1px #707070;
  }
  .exposition_table thead th:nth-child(1) {
    width: 18.3rem;
    background: #34322c;
  }
  .exposition_table thead th:nth-child(2) {
    background: #ebe8df;
  }
  .exposition_table thead th:nth-child(3) {
    color: #fff;
    background: #493488;
  }
  .exposition_table thead th:nth-child(4) {
    color: #fff;
    background: #aea6c7;
  }
  .exposition_table tbody th {
    padding: 2rem;
    font-weight: 500;
    font-size: 1.8rem;
    text-align: center;
    vertical-align: middle;
    background: #ebe8df;
    border: solid 1px #707070;
  }
  .exposition_table tbody td {
    padding: 2rem;
    font-weight: 400;
    border: solid 1px #707070;
  }
  .exposition_pdf {
    margin-top: 7rem;
  }
  .exposition_pdf_title {
    font-size: 2.4rem;
  }
  .exposition_pdf_title a {
    display: block;
  }
  .exposition_pdf_image {
    display: block;
    margin-top: 3rem;
  }
  .exposition_pdf_image img {
    height: auto;
  }
  .exposition_pdf_notes {
    margin-top: 1rem;
    font-size: 1.4rem;
    text-align: right;
  }
  @media (max-width: 768px) {
    .exposition {
      padding: 3rem 1.5rem 0;
    }
    .exposition::before {
      content: none;
    }
    .exposition_title {
      font-size: 3.1rem;
    }
    .exposition_lead {
      margin-top: 1.4rem;
      font-size: 1.4rem;
    }
    .exposition_scrollHint {
      margin-top: 3.6rem;
      font-size: 1.4rem;
      text-align: right;
    }
    .exposition_table {
      margin-top: 1.2rem;
      margin-right: -1.5rem;
    }
    .exposition_table table {
      margin-right: 2rem;
    }
    .exposition_pdf {
      margin-top: 5rem;
    }
    .exposition_pdf_title {
      font-size: 2.4rem;
    }
    .exposition_pdf_image {
      margin-top: 2.4rem;
    }
    .exposition_pdf_image img {
      height: auto;
    }
  }
  /*  flow
  ------------------------------------*/
  .flow {
    max-width: var(--container-width_s);
    margin: 7rem auto 0;
  }
  .flow_title {
    padding: 3rem 0 4.3rem;
    font-size: 4.4rem;
    letter-spacing: var(--letter-spacing);
  }
  .flow .order {
    position: absolute;
    left: -6.5rem;
    box-sizing: content-box;
    width: 13rem;
    min-width: 13rem;
    height: 13rem;
    border: 15px solid #aea6c7;
  }
  .flow .order_lead {
    padding-top: 28px;
  }
  .flow .order_num {
    font-size: 3.6rem;
  }
  .flow_step .list-item {
    position: relative;
    min-height: 16rem;
    margin-bottom: 3.8rem;
    margin-left: 6.5rem;
    padding-left: 9.5rem;
    background: var(--color-bg);
    border-radius: 25em;
  }
  .flow_step .list-item:not(:last-child)::after {
    position: absolute;
    bottom: -3.5rem;
    left: 1.5rem;
    border: 10px solid transparent;
    border-top: 10px solid var(--color-primary);
    transform: translateX(-50%);
    content: '';
  }
  .flow_text {
    margin-left: 4rem;
    padding: 2.7rem 5rem 3rem 0;
    font-weight: 400;
    font-size: 2.4rem;
    letter-spacing: var(--letter-spacing);
  }
  .flow_text b {
    display: block;
    font-weight: bold;
  }
  @media (min-width: 769px) and (max-width: 970px) {
    .flow {
      max-width: 95%;
    }
  }
  @media (max-width: 768px) {
    .flow {
      width: var(--container-width_sp);
      margin-top: 0;
    }
    .flow_step .list-item:not(:last-child)::after {
      bottom: -3rem;
      left: 50%;
    }
    .flow_title {
      padding: 7rem 0 2rem;
      font-size: 3rem;
      letter-spacing: var(--letter-spacing);
    }
    .flow_step .list-item {
      min-height: auto;
      margin: 9.2rem 0 11.7rem;
      padding-left: 0;
      border-radius: 20px;
    }
    .flow_step .list-item:last-child {
      margin-bottom: 4rem;
    }
    .flow_step .sp-flex-column {
      align-items: flex-start;
    }
    .flow .order {
      position: absolute;
      top: -8.5rem;
      left: 50%;
      width: 10rem;
      min-width: 10rem;
      height: 10rem;
      border-width: 5px;
      transform: translateX(-50%);
    }
    .flow .order_lead {
      width: 76px;
      padding: 16px 0 6.4px;
      font-size: 1.4rem;
    }
    .flow .order_num {
      font-size: 3rem;
    }
    .flow_text {
      margin-left: 0;
      padding: 3.4rem 3rem 2rem;
      font-size: 1.8rem;
      letter-spacing: var(--letter-spacing);
    }
  }
  /*  voice
  ------------------------------------*/
  .voice {
    width: 100%;
    max-width: calc(111.2rem + 3rem);
    margin: 7.5rem auto 0;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
  .voice_balloon {
    display: flex;
    justify-content: center;
  }
  .voice_balloon_box {
    position: relative;
    height: 100%;
    margin-top: auto;
    padding: 4rem 4.5rem;
    background: #ebe8df;
    border-radius: 2rem;
  }
  .voice_balloon_text {
    font-weight: bold;
    font-size: 2.2rem;
    font-family: var(--font-zen);
    line-height: 1.8;
  }
  .voice_balloon_person {
  }
  .voice_balloon_person_image {
    display: block;
  }
  .voice_balloon_person_image img {
  }
  .voice_balloon_title {
    margin-top: 3rem;
    font-size: 1.4rem;
    text-align: center;
  }
  .voice_balloon_person_item {
    position: relative;
    display: inline-flex;
    align-items: baseline;
    border-bottom: solid 2px #ebe8df;
  }
  .voice_balloon_person_position {
    font-weight: 500;
    font-size: 2.4rem;
  }
  .voice_balloon_person_position b {
    color: var(--color-secondary);
  }
  .voice_balloon_person_name {
    margin-left: 1rem;
    font-weight: 500;
    font-size: 3rem;
  }
  .voice_title {
    margin-top: 9rem;
    padding-bottom: 3.5rem;
    font-size: 4.4rem;
    border-bottom: solid 1px #34322c;
  }
  .voice_image {
    display: flex;
    gap: 4rem;
    align-items: center;
    justify-content: space-around;
    margin-top: 3.5rem;
    padding: 0 4rem;
  }
  .voice_image img {
    height: auto;
  }
  .voice_balloon_person_image img {
    height: auto;
  }
  @media (max-width: 768px) {
    .voice {
      margin: 6rem auto 5rem;
    }
    .voice_balloon {
      flex-direction: column-reverse;
      gap: 3.4rem;
      align-items: center;
    }
    .voice_balloon_box {
      padding: 3rem 3.5rem;
    }
    .voice_balloon_box::after {
      top: -2rem;
      right: 70%;
      transform: rotate(185deg);
    }
    .voice_balloon_text {
      font-weight: 500;
      font-size: 1.6rem;
      line-height: 1.5;
    }
    .voice_balloon_title {
      margin-top: 2.4rem;
    }
    .voice_balloon_person_item {
      position: relative;
      display: inline-flex;
      align-items: baseline;
      border-bottom: solid 2px #ebe8df;
    }
    .voice_title {
      margin-top: 4rem;
      padding-bottom: 1.8rem;
      font-size: 3.2rem;
    }
    .voice_image {
      flex-direction: column;
      gap: 1rem;
      padding: 0 1rem;
    }
  }
  /*  contact-form
  ------------------------------------*/
  .contact-form {
    padding: 12rem 0;
    background-color: #f5f6f0;
  }
  .contact-form_box {
    max-width: 720px;
    height: auto;
    margin: 0 auto;
  }
  .contact-form_iframe {
    width: 100%;
  }

  @media (max-width: 768px) {
    .contact-form {
      padding: 4rem 0;
    }
    .contact-form_iframe {
      height: 1500px;
    }
  }
  /*  company
  ------------------------------------*/
  .company {
    --company-width: var(--container-width_s);
    --company-radius: 7px;
    position: relative;
    max-width: var(--company-width);
    margin: -2rem auto 7rem;
    padding-top: 4rem;
  }
  .company_title {
    position: relative;
    margin-top: 6rem;
    padding: 1.2rem 0;
    color: #fff;
    font-size: 1.8rem;
    letter-spacing: var(--letter-spacing);
    text-align: center;
    background: var(--color-base);
    border-radius: var(--company-radius);
  }
  .company_content {
    width: 100%;
    max-width: var(--company-width);
    padding: 0.5rem 5rem 4rem;
    font-size: 1.8rem;
    letter-spacing: var(--letter-spacing);
    border-bottom-right-radius: var(--company-radius);
    border-bottom-left-radius: var(--company-radius);
  }
  .company_table {
    width: 100%;
  }
  .company_th,
  .company_td {
    border-bottom: 1px solid #e0ddd6;
  }
  .company_th {
    padding: 2rem 0rem 2rem 4rem;
    text-align: center;
  }
  .company_td {
    position: relative;
    padding: 2rem;
  }
  .company_td .company_data::before {
    position: relative;
    top: 0.6rem;
    display: inline-block;
    width: 3rem;
    height: 2.6rem;
    border-left: 1px solid #e0ddd6;
    content: '';
  }
  @media (min-width: 769px) and (max-width: 980px) {
    .company {
      --company-width: 90vw;
    }
    .company_data {
      padding-left: 2em;
      text-indent: -2em;
    }
  }
  @media (max-width: 768px) {
    .company {
      --company-width: 89vw;
      margin: -7rem auto 4rem;
    }
    .company_title {
      padding-left: 3rem;
      text-align: left;
    }
    .company_content {
      padding: 0 1rem 2rem;
    }
    .company_th {
      padding: 1.2rem 2rem 0.6rem;
      text-align: left;
      border: none;
    }
    .company_th,
    .company_td {
      display: block;
      width: 100%;
    }
    .company_td {
      padding: 0 2rem 1.5rem;
      font-size: 1.6rem;
      letter-spacing: var(--letter-spacing);
    }
    .company_td .company_data::before {
      content: none;
    }
    .company_th::after {
      position: relative;
      top: 0.6rem;
      display: inline-block;
      width: 2rem;
      height: 2.6rem;
      border-right: 1px solid #e0ddd6;
      content: '';
    }
  }
  /*  footer
  ------------------------------------*/
  .footer {
    padding: 7.4rem 0 9rem;
    color: #fff;
    text-align: center;
    background-color: #393733;
  }
  .footer_tel {
    margin-bottom: 5.5rem;
  }
  .footer .tel_title {
    margin-bottom: 0.5rem;
    color: #fff;
    font-size: 4.4rem;
    letter-spacing: var(--letter-spacing);
  }
  .footer .tel_message {
    padding: 0;
    font-size: 1.8rem;
    letter-spacing: var(--letter-spacing);
    background: none;
  }
  .footer .tel_num {
    margin-top: 1.6rem;
  }
  .footer .tel_message::before {
    content: none;
  }
  .footer_divider {
    width: 83vw;
    margin: 0 auto;
    border-bottom: 1px solid #211f1c;
    box-shadow: 0 2px 0 #4a4843;
  }
  .footer_logo {
    margin: 5rem 0 3.4rem;
  }
  .footer_links .list-item:not(:last-child) {
    border-right: 1px solid #fff;
  }
  .footer_link {
    padding: 0 1rem;
    font-size: 1.4rem;
    letter-spacing: var(--letter-spacing);
    text-decoration: underline;
  }
  .copyright {
    margin-top: 1.8rem;
    font-size: 1.2rem;
    letter-spacing: var(--letter-spacing);
  }
  .footer .ctaButton {
    margin-bottom: 4rem;
  }
  @media (max-width: 768px) {
    .footer .tel_title {
      font-size: 3rem;
      letter-spacing: var(--letter-spacing);
    }
    .footer .tel_message {
      padding: 0;
      font-size: 1.6rem;
      line-height: 2.8rem;
      letter-spacing: var(--letter-spacing);
    }
    .footer_tel {
      margin-bottom: 2.85rem;
    }
    .footer_logo {
      margin: 3.7rem 0 3rem;
    }
    .footer .logo {
      width: 26.6rem;
      height: 4.3rem;
    }
    .copyright {
      margin-bottom: 5rem;
    }
    .footer .ctaButton {
      margin-bottom: 3rem;
    }
  }
} /* /@media screen */
