@charset "UTF-8";
@font-face {
  font-family: "Zen Old Mincho";
  src: url("../fonts/ZenOldMincho-Regular.woff") format("woff"), url("../fonts/ZenOldMincho-Regular.ttf") format("ttf");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Zen Old Mincho";
  src: url("../fonts/ZenOldMincho-Medium.woff") format("woff"), url("../fonts/ZenOldMincho-Medium.ttf") format("ttf");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Zen Old Mincho";
  src: url("../fonts/ZenOldMincho-SemiBold.woff") format("woff"), url("../fonts/ZenOldMincho-SemiBold.ttf") format("ttf");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Zen Old Mincho";
  src: url("../fonts/ZenOldMincho-Bold.woff") format("woff"), url("../fonts/ZenOldMincho-Bold.ttf") format("ttf");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Zen Old Mincho";
  src: url("../fonts/ZenOldMincho-Black.woff") format("woff"), url("../fonts/ZenOldMincho-Black.ttf") format("ttf");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
html {
  font-size: 62.5%;
}

body {
  font-family: "Zen Old Mincho", serif;
  font-size: 4.8vw;
  font-weight: 400;
  line-height: 1.45;
  color: #252525;
  background: #fff;
}
body.open {
  height: 100%;
  overflow: hidden;
}
body::before, body::after {
  content: "";
  display: block;
  width: 4px;
  height: 100vh;
  background: #FF4B00;
  position: fixed;
  top: 0;
  z-index: 10;
  pointer-events: none;
}
body::before {
  left: 0;
}
body::after {
  right: 0;
}

img {
  width: 100%;
  height: auto;
}

.sp {
  display: block;
}

.pc {
  display: none;
}

#wrap {
  width: 100%;
  overflow-x: clip;
}

.section {
  padding: 17.0666666667vw 0 21.3333333333vw;
}

.inner_section {
  width: 91.7333333333vw;
  margin: 0 auto;
}

/* header
------------------------------------------------------------------------- */
.header_logo a {
  display: block;
}
.header_logo a .img_logo {
  width: 6.4vw;
  position: fixed;
  z-index: 100;
  top: 5.3333333333vw;
  left: 2.1333333333vw;
  mix-blend-mode: multiply;
}
.header_logo a .txt_logo {
  width: 29.6vw;
  position: fixed;
  top: 6.4vw;
  left: 10.6666666667vw;
  z-index: 100;
  mix-blend-mode: exclusion;
}

/* ハンバーガーメニュー ここから*/
#nav_toggle {
  position: fixed;
  top: 0;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 17.0666666667vw;
  height: 17.0666666667vw;
  background: #1F1F1F;
  z-index: 100;
  display: none;
}

#nav_toggle div {
  width: 12.2666666667vw;
  height: 9.3333333333vw;
  margin: 0 auto;
  position: relative;
}

#nav_toggle span {
  display: block;
  width: 8.5333333333vw;
  height: 1px;
  background: #fff;
  position: absolute;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: top 0.2s ease, -webkit-transform 0.2s ease-in-out;
  transition: top 0.2s ease, -webkit-transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out, top 0.2s ease;
  transition: transform 0.2s ease-in-out, top 0.2s ease, -webkit-transform 0.2s ease-in-out;
}

#nav_toggle span:nth-child(1) {
  top: 0;
}

#nav_toggle span:nth-child(2) {
  top: 2.1333333333vw;
}

#nav_toggle p:nth-child(3) {
  text-align: center;
  font-weight: bold;
  font-size: 4.2666666667vw;
  color: #fff;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  letter-spacing: -0.1em;
}

.open #nav_toggle span:nth-child(1) {
  -webkit-transform: translate(-50%, -50%) rotate(20deg);
          transform: translate(-50%, -50%) rotate(20deg);
  top: 1.6vw;
}

.open #nav_toggle span:nth-child(2) {
  -webkit-transform: translate(-50%, -50%) rotate(-20deg);
          transform: translate(-50%, -50%) rotate(-20deg);
  top: 1.6vw;
}

/* グローバルナビゲーション */
#g_nav {
  width: 100%;
  height: calc(100vh - 17.0666666667vw);
  padding: 4.2666666667vw 0;
  overflow-y: auto;
  position: fixed;
  top: 17.0666666667vw;
  left: 0;
  z-index: 1000;
  display: none;
}

.ul_nav {
  width: 87.4666666667vw;
  margin: 0 auto;
}

/* 共通パーツ
------------------------------------------------------------------------- */
/* ========== ボタン ========== */
.btn a {
  display: block;
  padding: 2.1333333333vw;
  border-radius: 1.0666666667vw;
  position: relative;
  /* 色のついた外枠だけを乗算（中の要素には乗算をかけない） */
}
.btn a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  mix-blend-mode: multiply;
}
.btn a > span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background: #2F2E2E;
  position: relative;
  z-index: 1;
  height: 17.0666666667vw;
  color: #fff;
  border-radius: 1.0666666667vw;
  font-size: 3.7333333333vw;
  font-weight: bold;
}
.btn a > span span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.1333333333vw;
  font-size: 6.4vw;
  font-weight: 900;
}
.btn a > span span::before {
  content: "";
  display: block;
  width: 4.2666666667vw;
  background-repeat: no-repeat;
  background-size: contain;
}
.btn a > span span.icon_download::before {
  height: 4.2666666667vw;
  background-image: url(../images/icon_download.svg);
}
.btn a > span span.icon_consultation::before {
  height: 4.2666666667vw;
  background-image: url(../images/icon_mail.svg);
}
.btn.btn_purple a::before {
  background: #921AFA;
}
.btn.btn_orange a::before {
  background: #FF6600;
}

.btn_common {
  width: 78.9333333333vw;
  margin: 12.8vw auto 0;
}
.btn_common a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 5.3333333333vw;
  font-weight: 900;
  height: 17.0666666667vw;
  padding: 0 10.6666666667vw 0 6.4vw;
  position: relative;
  background: #fff;
  border-radius: 1.0666666667vw;
}
.btn_common a::before {
  content: "";
  display: block;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background: -webkit-gradient(linear, left top, right top, from(#252525), to(#FF4B00));
  background: linear-gradient(to right, #252525, #FF4B00);
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: -1;
  border-radius: 1.3333333333vw;
}
.btn_common a::after {
  content: "";
  display: block;
  width: 6.4vw;
  height: 6.4vw;
  background: url(../images/arrow_black_bold.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 4.2666666667vw;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.bg_white_noise .btn_common a {
  padding: 0;
  z-index: 1;
}
.bg_white_noise .btn_common a span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  background-color: #eeeae9;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  padding: 0 10.6666666667vw 0 6.4vw;
  border-radius: 1.0666666667vw;
}

.bg_black_noise .btn_common a {
  color: #fff;
  padding: 0;
  z-index: 1;
}
.bg_black_noise .btn_common a::before {
  background: -webkit-gradient(linear, left top, right top, from(#fff), to(#FF4B00));
  background: linear-gradient(to right, #fff, #FF4B00);
}
.bg_black_noise .btn_common a::after {
  background-image: url(../images/arrow_white.svg);
}
.bg_black_noise .btn_common a span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  background-color: #252525;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  padding: 0 10.6666666667vw 0 6.4vw;
  border-radius: 1.3333333333vw;
}

/* ========== 見出し ========== */
.ttl_heading02 {
  width: 91.7333333333vw;
  margin: 0 auto 10.6666666667vw;
  font-size: 12.8vw;
  font-weight: 900;
  letter-spacing: -0.12em;
}
.ttl_heading02:has(+ .lead_text) {
  margin-bottom: 4.2666666667vw;
}
.ttl_heading02 span {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  background: -webkit-gradient(linear, left top, right top, from(#252525), color-stop(62%, #252525), to(#ff4b00));
  background: linear-gradient(90deg, #252525 0%, #252525 62%, #ff4b00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.1em;
}

.ttl_heading03 {
  font-size: 10.6666666667vw;
  letter-spacing: -0.05em;
  padding-bottom: 2.1333333333vw;
  margin-bottom: 4.2666666667vw;
  position: relative;
}
.ttl_heading03::before, .ttl_heading03::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.ttl_heading03::before {
  background: -webkit-gradient(linear, left top, right top, color-stop(70%, #252525), to(#FF4B00));
  background: linear-gradient(to right, #252525 70%, #FF4B00);
}
.ttl_heading03::after {
  background: linear-gradient(to right, transparent, transparent 5px, #fff 5px, #fff 10px);
  background-size: 10px 3px;
}

.bg_white_noise .ttl_heading03::after {
  background-image: linear-gradient(to right, transparent, transparent 5px, #EEEAE9 5px, #EEEAE9 10px);
}

.bg_black_noise .ttl_heading02 span {
  background-image: -webkit-gradient(linear, left top, right top, from(#fff), color-stop(62%, #fff), to(#ff4b00));
  background-image: linear-gradient(90deg, #fff 0%, #fff 62%, #ff4b00 100%);
}
.bg_black_noise .ttl_heading03 {
  color: #fff;
}
.bg_black_noise .ttl_heading03::before {
  background: -webkit-gradient(linear, left top, right top, color-stop(70%, #fff), to(#FF4B00));
  background: linear-gradient(to right, #fff 70%, #FF4B00);
}
.bg_black_noise .ttl_heading03::after {
  background-image: linear-gradient(to right, transparent, transparent 5px, #252525 5px, #252525 10px);
}

/* ========== リード文 ========== */
.lead_text {
  width: 91.7333333333vw;
  margin: 0 auto 10.6666666667vw;
}

/* ========== 背景 ========== */
.bg_black_noise {
  background-color: #252525;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

.bg_white_noise {
  background-color: #eeeae9;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

/* CTA
------------------------------------------------------------------------- */
.cta {
  background: url(../images/cta_bg_sp.png) no-repeat;
  background-size: cover;
}

.ul_cta_link {
  width: 91.7333333333vw;
  margin: 0 auto 12.8vw;
}
.ul_cta_link li a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 32vw;
  border: 1px solid #443F3D;
  border-radius: 1.0666666667vw;
  font-weight: 900;
  font-size: 6.4vw;
  padding-left: 6.4vw;
  position: relative;
}
.ul_cta_link li a::after {
  content: "";
  display: block;
  width: 6.4vw;
  height: 6.4vw;
  background: url(../images/arrow_black_bold.svg) no-repeat;
  background-size: contain;
  position: absolute;
  bottom: 4.2666666667vw;
  right: 4.2666666667vw;
}

.cta_text {
  width: 91.7333333333vw;
  margin: 0 auto;
}

.wrap_cta_btn {
  width: 91.4666666667vw;
  margin: 6.4vw auto 0;
}
.wrap_cta_btn .btn {
  margin-bottom: 6.4vw;
}
.wrap_cta_btn .btn:last-child {
  margin-bottom: 0;
}
.wrap_cta_btn .btn a {
  padding: 4.2666666667vw;
}
.wrap_cta_btn .btn a > span {
  height: 23.4666666667vw;
}

/* footer
------------------------------------------------------------------------- */
#footer {
  padding: 10.6666666667vw 0 21.3333333333vw;
}

/* ========== footer_nav ========== */
.wrap_footer_nav_area {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 4.2666666667vw;
  padding-bottom: 10.6666666667vw;
  position: relative;
}
.wrap_footer_nav_area::before, .wrap_footer_nav_area::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.wrap_footer_nav_area::before {
  background: -webkit-gradient(linear, left top, right top, color-stop(10%, #252525), to(#FF4B00));
  background: linear-gradient(to right, #252525 10%, #FF4B00);
}
.wrap_footer_nav_area::after {
  background: linear-gradient(to right, transparent, transparent 5px, #fff 5px, #fff 10px);
  background-size: 10px 3px;
}

.footer_nav {
  width: 43.7333333333vw;
}

.ul_footer_nav {
  margin-bottom: 6.4vw;
}
.ul_footer_nav:last-child {
  margin-bottom: 0;
}
.ul_footer_nav li {
  margin-bottom: 4.2666666667vw;
}
.ul_footer_nav li:last-child {
  margin-bottom: 0;
}
.ul_footer_nav li a {
  font-weight: 900;
  display: block;
}

.li_footer_nav_lv1 > a {
  margin-bottom: 4.2666666667vw;
}

.ul_footer_nav_lv2 li {
  margin-bottom: 2.1333333333vw;
}
.ul_footer_nav_lv2 li a {
  font-weight: 400;
  font-size: 3.7333333333vw;
}

/* ========== footer_company ========== */
.wrap_footer_company {
  width: 91.7333333333vw;
  margin: 10.6666666667vw auto;
}

.google_map {
  border: 4px solid #FF4B00;
  border-radius: 1.0666666667vw;
  overflow: hidden;
  height: 40.5333333333vw;
}
.google_map iframe {
  width: 100%;
  height: 100%;
}

.footer_company_text {
  margin-top: 4.2666666667vw;
}
.footer_company_text p {
  font-weight: 900;
  font-size: 6.4vw;
}
.footer_company_text address {
  margin: 4.2666666667vw 0;
}
.footer_company_text ul li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.1333333333vw;
}
.footer_company_text ul li::before {
  content: "";
  display: block;
  min-width: 1.6vw;
  max-width: 1.6vw;
  height: 1.6vw;
  background: #252525;
  border-radius: 50%;
  margin-top: 2.6666666667vw;
}

#footer .ttl_heading02 {
  font-weight: 400;
  font-size: 10.6666666667vw;
  letter-spacing: -0.05em;
}
#footer .ttl_heading02 span {
  background-image: -webkit-gradient(linear, left top, right top, from(#252525), color-stop(30%, #252525), to(#ff4b00));
  background-image: linear-gradient(90deg, #252525 0%, #252525 30%, #ff4b00 100%);
}

.wrap_footer_sign {
  width: 91.7333333333vw;
  margin: 0 auto;
}

.footer_logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.1333333333vw;
  margin-bottom: 4.2666666667vw;
  background: #fff;
}
.footer_logo .img_logo {
  width: 14.4vw;
}
.footer_logo .txt_logo {
  width: 50.6666666667vw;
  mix-blend-mode: difference;
}

.footer_sign_text {
  font-size: 4.2666666667vw;
}

.copyright {
  font-size: 8.5333333333vw;
  letter-spacing: -0.05em;
  text-align: center;
  margin-top: 12.8vw;
}
.copyright small {
  background-color: rgba(68, 63, 61, 0.4);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='1'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.1em;
}

/* 下層ページ
------------------------------------------------------------------------- */
.lower {
  display: block;
}

/* ========== FV ========== */
.lower_fv {
  padding: 33.0666666667vw 0 17.0666666667vw;
  border-bottom: 1px solid #EEEAE9;
  position: relative;
}

/* ========== パンくず ========== */
.wrap_breadcrumbs {
  position: absolute;
  bottom: 0;
  right: 4.2666666667vw;
}

.breadcrumbs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 3.2vw;
  letter-spacing: -0.1em;
}
.breadcrumbs > span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.breadcrumbs > span::after {
  content: "";
  display: block;
  width: 1.0666666667vw;
  height: 1.0666666667vw;
  border-radius: 50%;
  background: #252525;
  margin: 0 2.1333333333vw;
}
.breadcrumbs > span:last-child::after {
  content: none;
}

@media print, screen and (min-width: 769px) {
  body {
    font-size: min(1.4705882353vw, 20px);
  }
  body::before, body::after {
    width: 8px;
  }
  .sp {
    display: none;
  }
  .pc {
    display: block;
  }
  .section {
    padding: min(4.7058823529vw, 64px) 0 min(5.8823529412vw, 80px);
  }
  .inner_section {
    width: min(82.3529411765vw, 1120px);
  }
  /* header
  ------------------------------------------------------------------------- */
  #header::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: -webkit-gradient(linear, left top, right top, from(#252525), to(#FF4B00));
    background: linear-gradient(to right, #252525, #FF4B00);
    position: fixed;
    top: min(5.8823529412vw, 80px);
    left: 0;
    z-index: 100;
  }
  .header_logo a .img_logo {
    width: min(3.5294117647vw, 48px);
    top: min(1.1764705882vw, 16px);
    left: min(1.7647058824vw, 24px);
  }
  .header_logo a .txt_logo {
    width: min(12.3529411765vw, 168px);
    top: min(2.0588235294vw, 28px);
    left: min(5.8823529412vw, 80px);
  }
  /* ハンバーガーメニュー ここから*/
  #nav_toggle {
    display: none;
  }
  /* グローバルナビゲーション */
  #g_nav {
    width: auto;
    height: auto;
    padding: 0;
    overflow-y: visible;
    position: fixed;
    top: min(1.1764705882vw, 16px);
    left: auto;
    right: min(1.7647058824vw, 24px);
    z-index: 1000;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: min(2.9411764706vw, 40px);
  }
  .ul_nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: min(1.7647058824vw, 24px);
    width: auto;
    margin: 0;
  }
  .ul_nav li a {
    font-weight: 900;
    background: #fff;
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .ul_nav li a:hover {
    background: #252525;
    color: #fff;
  }
  .ul_nav li.active a {
    background: #252525;
    color: #fff;
  }
  .ul_nav li.active a:hover {
    background: #FF4B00;
  }
  /* ボタン */
  .wrap_header_btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: min(1.1764705882vw, 16px);
  }
  .wrap_header_btn .btn {
    width: min(9.9264705882vw, 135px);
  }
  .wrap_header_btn .btn a {
    padding: min(0.2941176471vw, 4px);
  }
  .wrap_header_btn .btn span {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: min(0.2941176471vw, 4px);
    height: min(2.9411764706vw, 40px);
    font-size: min(1.4705882353vw, 20px);
  }
  .wrap_header_btn .btn span::before {
    content: "";
    display: block;
    width: min(1.1764705882vw, 16px);
    background-repeat: no-repeat;
    background-size: contain;
  }
  .wrap_header_btn .btn span.icon_download::before {
    height: min(1.1764705882vw, 16px);
    background-image: url(../images/icon_download.svg);
  }
  .wrap_header_btn .btn span.icon_consultation::before {
    height: min(1.0294117647vw, 14px);
    background-image: url(../images/icon_mail.svg);
  }
  .wrap_header_btn .btn span::after {
    width: calc(100% + min(0.5882352941vw, 8px));
    height: calc(100% + min(0.5882352941vw, 8px));
  }
  /* 共通パーツ
  ------------------------------------------------------------------------- */
  /* ========== ボタン ========== */
  .btn {
    width: min(21.7647058824vw, 296px);
  }
  .btn a {
    padding: min(0.5882352941vw, 8px);
    border-radius: min(0.2941176471vw, 4px);
  }
  .btn a:hover > span::after {
    opacity: 1;
  }
  .btn a > span {
    height: min(4.7058823529vw, 64px);
    border-radius: min(0.2941176471vw, 4px);
    font-size: min(1.0294117647vw, 14px);
    position: relative;
  }
  .btn a > span::after {
    content: "";
    display: block;
    width: calc(100% + min(1.1764705882vw, 16px));
    height: calc(100% + min(1.1764705882vw, 16px));
    background: #2F2E2E;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: -1;
    border-radius: min(0.2941176471vw, 4px);
    opacity: 0;
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .btn a > span span {
    gap: min(0.5882352941vw, 8px);
    font-size: min(1.7647058824vw, 24px);
  }
  .btn a > span span::before {
    width: min(1.1764705882vw, 16px);
  }
  .btn a > span span.icon_download::before {
    height: min(1.1764705882vw, 16px);
  }
  .btn a > span span.icon_consultation::before {
    height: min(1.0294117647vw, 14px);
  }
  .btn_common {
    width: min(25.8823529412vw, 352px);
    margin: min(3.5294117647vw, 48px) auto 0;
  }
  .btn_common a {
    font-size: min(1.7647058824vw, 24px);
    height: min(4.7058823529vw, 64px);
    padding: 0 min(2.9411764706vw, 40px) 0 min(1.7647058824vw, 24px);
    border-radius: min(0.2941176471vw, 4px);
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .btn_common a:hover {
    background: -webkit-gradient(linear, left top, right top, color-stop(60%, #252525), to(#FF4B00));
    background: linear-gradient(to right, #252525 60%, #FF4B00);
    color: #fff;
  }
  .btn_common a:hover::after {
    background-image: url(../images/arrow_white.svg);
  }
  .btn_common a::before {
    border-radius: min(0.3676470588vw, 5px);
  }
  .btn_common a::after {
    width: min(1.7647058824vw, 24px);
    height: min(1.7647058824vw, 24px);
    right: min(1.1764705882vw, 16px);
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .bg_white_noise .btn_common a span {
    padding: 0 min(2.9411764706vw, 40px) 0 min(1.7647058824vw, 24px);
    border-radius: min(0.2941176471vw, 4px);
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .bg_white_noise .btn_common a:hover span {
    background: -webkit-gradient(linear, left top, right top, color-stop(60%, #252525), to(#FF4B00));
    background: linear-gradient(to right, #252525 60%, #FF4B00);
  }
  .bg_black_noise .btn_common a span {
    padding: 0 min(2.9411764706vw, 40px) 0 min(1.7647058824vw, 24px);
    border-radius: min(0.3676470588vw, 5px);
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .bg_black_noise .btn_common a:hover span {
    background: -webkit-gradient(linear, left top, right top, color-stop(60%, #252525), to(#FF4B00));
    background: linear-gradient(to right, #252525 60%, #FF4B00);
  }
  /* ========== 見出し ========== */
  .ttl_heading02 {
    width: min(90.5882352941vw, 1232px);
    margin: 0 auto min(2.9411764706vw, 40px);
    font-size: min(5.8823529412vw, 80px);
    letter-spacing: -0.1em;
  }
  .ttl_heading02:has(+ .lead_text) {
    margin-bottom: min(1.1764705882vw, 16px);
  }
  .ttl_heading02 span {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
  .ttl_heading03 {
    font-size: min(4.7058823529vw, 64px);
    padding-bottom: min(0.5882352941vw, 8px);
    margin-bottom: min(1.1764705882vw, 16px);
  }
  /* ========== リード文 ========== */
  .lead_text {
    width: min(90.5882352941vw, 1232px);
    margin: 0 auto min(2.9411764706vw, 40px);
  }
  /* CTA
  ------------------------------------------------------------------------- */
  .cta {
    background-image: url(../images/top/fv_bg.png);
  }
  .ul_cta_link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    margin: 0 auto min(4.7058823529vw, 64px);
    padding: 0 min(0.5882352941vw, 8px);
  }
  .ul_cta_link li {
    width: 33.3333333333%;
  }
  .ul_cta_link li a {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 15.8823529412vw;
    border-radius: min(0.2941176471vw, 4px);
    font-size: min(2.9411764706vw, 40px);
    padding-left: 0;
  }
  .ul_cta_link li a::after {
    width: min(1.7647058824vw, 24px);
    height: min(1.7647058824vw, 24px);
    bottom: min(1.7647058824vw, 24px);
    right: min(1.7647058824vw, 24px);
  }
  .cta .ttl_heading02 {
    margin-bottom: 0;
    text-align: center;
  }
  .cta .ttl_heading02 span {
    display: inline;
  }
  .cta_text {
    width: auto;
    text-align: center;
  }
  .wrap_cta_btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: min(2.3529411765vw, 32px);
    width: 100%;
    margin: min(1.7647058824vw, 24px) auto 0;
  }
  .wrap_cta_btn .btn {
    width: min(32.9411764706vw, 448px);
    margin: c0;
  }
  .wrap_cta_btn .btn a {
    padding: min(1.1764705882vw, 16px);
  }
  .wrap_cta_btn .btn a > span {
    height: min(6.4705882353vw, 88px);
  }
  .wrap_cta_btn .btn a > span::after {
    width: calc(100% + min(2.3529411765vw, 32px));
    height: calc(100% + min(2.3529411765vw, 32px));
  }
  /* footer
  ------------------------------------------------------------------------- */
  #footer {
    padding: min(5.8823529412vw, 80px) 0 min(2.3529411765vw, 32px);
  }
  /* ========== footer_nav ========== */
  .wrap_footer_nav_area {
    gap: min(2.3529411765vw, 32px);
    padding-bottom: min(5.8823529412vw, 80px);
  }
  .footer_nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: min(2.3529411765vw, 32px);
    width: min(40vw, 544px);
  }
  .ul_footer_nav {
    width: 50%;
    margin-bottom: 0;
  }
  .ul_footer_nav:last-child {
    margin-bottom: 0;
  }
  .ul_footer_nav li {
    margin-bottom: min(1.1764705882vw, 16px);
  }
  .ul_footer_nav li a {
    -webkit-transition: 0.2s;
    transition: 0.2s;
  }
  .ul_footer_nav li a:hover {
    color: #FF4B00;
    text-decoration: underline;
  }
  .li_footer_nav_lv1 {
    margin-top: min(2.9411764706vw, 40px);
  }
  .li_footer_nav_lv1:first-child {
    margin-top: 0;
  }
  .li_footer_nav_lv1 > a {
    margin-bottom: min(1.1764705882vw, 16px);
  }
  .ul_footer_nav_lv2 li {
    margin-bottom: min(0.5882352941vw, 8px);
  }
  .ul_footer_nav_lv2 li a {
    font-size: min(1.3235294118vw, 18px);
  }
  /* ========== footer_company ========== */
  .wrap_footer_company {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: min(2.3529411765vw, 32px);
    width: min(82.3529411765vw, 1120px);
    margin: min(3.5294117647vw, 48px) auto;
  }
  .google_map {
    width: min(40vw, 544px);
    border-radius: min(0.2941176471vw, 4px);
    height: auto;
  }
  .google_map iframe {
    width: 100%;
    height: 100%;
  }
  .footer_company_text {
    width: min(40vw, 544px);
    margin-top: 0;
  }
  .footer_company_text p {
    font-size: min(2.3529411765vw, 32px);
  }
  .footer_company_text address {
    margin: min(1.1764705882vw, 16px) 0;
  }
  .footer_company_text ul li {
    gap: min(0.5882352941vw, 8px);
    font-size: min(1.3235294118vw, 18px);
  }
  .footer_company_text ul li::before {
    min-width: min(0.4411764706vw, 6px);
    max-width: min(0.4411764706vw, 6px);
    height: min(0.4411764706vw, 6px);
    margin-top: min(0.7352941176vw, 10px);
  }
  #footer .ttl_heading02 {
    width: min(82.3529411765vw, 1120px);
    font-size: min(4.7058823529vw, 64px);
    letter-spacing: 0;
  }
  .wrap_footer_sign {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: min(2.3529411765vw, 32px);
    width: 100%;
  }
  .footer_logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: min(0.5882352941vw, 8px);
    margin-bottom: 0;
    width: min(18.8235294118vw, 256px);
  }
  .footer_logo .img_logo {
    width: min(3.9705882353vw, 54px);
  }
  .footer_logo .txt_logo {
    width: min(13.9705882353vw, 190px);
  }
  .footer_sign_text {
    width: min(47.0588235294vw, 640px);
    font-size: min(1.1764705882vw, 16px);
  }
  .copyright {
    font-size: min(8.8235294118vw, 120px);
    margin-top: 0;
  }
  /* 下層ページ
  ------------------------------------------------------------------------- */
  /* ========== FV ========== */
  .lower_fv {
    padding: min(10.5882352941vw, 144px) 0 min(4.7058823529vw, 64px);
  }
  /* ========== パンくず ========== */
  .wrap_breadcrumbs {
    right: min(4.7058823529vw, 64px);
  }
  .breadcrumbs {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    font-size: min(1.0294117647vw, 14px);
  }
  .breadcrumbs > span::after {
    width: min(0.2941176471vw, 4px);
    height: min(0.2941176471vw, 4px);
    margin: 0 min(0.5882352941vw, 8px);
  }
}
/* =================== 
		一時的に非表示
=================== =================== =================== */
.display_none {
  display: none !important;
}

/* =================== 
=================== =================== =================== */