@charset "UTF-8";
/* ベース */
:root {
  --color-white: #fff;
  --color-white-rgb: 255, 255, 255;
  --color-black: #222f22;
  --color-black-rgb: 34, 47, 34;
  --color-black-0: #000;
  --color-black-0-rgb: 0, 0, 0;
  --color-btn: #000014;
  --color-btn-rgb: 0, 0, 20;
  --color-blue: #009ee2;
  --color-blue-rgb: 0, 158, 226;
  --color-blue-l: #66c5ee;
  --color-blue-l-rgb: 102, 197, 238;
  --color-blue-h: #8ff1ff;
  --color-blue-h-rgb: 143, 241, 255;
  --color-blue-d: #2e3192;
  --color-blue-d-rgb: 46, 49, 146;
  --color-red: #d94236;
  --color-red-rgb: 217, 66, 54;
  --color-gray: #e1e7e7;
  --color-gray-rgb: 225, 231, 231;
  --color-gray-d: #666666;
  --color-gray-d-rgb: 102, 102, 102;
  --color-shadow: #6da4db;
  --color-shadow-rgb: 109, 164, 219;
  --color-main: #346160;
  --color-main-rgb: 52, 97, 96;
  --color-sub: #a1a6a1;
  --color-sub-rgb: 161, 166, 161;
  --color-sub-l: #f1f4f4;
  --color-sub-l-rgb: 241, 244, 244;
  --color-border: #e2e3e2;
  --color-border-rgb: 226, 227, 226;
  --color-table: #d6d7d5;
  --color-table-rgb: 214, 215, 213;
  --font-base: "neue-haas-grotesk-display", "Neue Haas Grotesk Display Pro", "Neue Haas Grotesk Text Pro", "Arial", "Helvetica Neue", "YakuHanJP", "Zen Kaku Gothic New", "Noto Sans JP", "游ゴシック体", "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
  --font-min: "Noto Serif JP", "游明朝", "YuMincho", "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "BIZUDMincho", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", "seri";
  --font-jost: "Jost", sans-serif;
  --font-marc: "Marcellus", serif;
  --font-weight-light: 300;
  --font-weight-reg: 400;
  --font-weight-mid: 500;
  --font-weight-semi: 600;
  --font-weight-bold: 700;
  --font-spacing-0: 0em;
  --font-spacing-03: 0.03em;
  --font-spacing-04: 0.04em;
  --font-spacing-05: 0.05em;
  --font-spacing-06: 0.06em;
  --font-spacing-075: 0.075em;
  --font-spacing-08: 0.08em;
  --font-spacing-1: 0.1em;
  --font-spacing-2: 0.2em;
  --space-margin: 120px;
  --space-margin_sub: 60px;
  --space-padding: 40px;
  --space-padding_sub: 20px;
}
@media only screen and (max-width: 860px) {
  :root {
    --space-margin: 16vw;
    --space-margin_sub: 8vw;
    --space-padding: 4vw;
    --space-padding_sub: 2vw;
  }
}

#wpadminbar {
  position: sticky !important;
  top: auto !important;
  bottom: 0;
}

html {
  margin-top: 0 !important;
}

.pc_none, .sp {
  display: none;
}
@media only screen and (max-width: 860px) {
  .pc_none, .sp {
    display: block;
  }
}

@media only screen and (max-width: 860px) {
  .sp_none, .pc {
    display: none;
  }
}

@media only screen and (max-width: 860px) {
  .pc_contents {
    display: none;
  }
}

.sp_contents {
  display: none;
}
@media only screen and (max-width: 860px) {
  .sp_contents {
    display: block;
  }
}

.no_link {
  display: none;
}

:root {
  font-size: 62.5%;
}
@media only screen and (max-width: 860px) {
  :root {
    font-size: 62.5%;
  }
}

* {
  box-sizing: border-box;
}

img {
  vertical-align: middle;
  max-width: 100%;
  height: auto;
}

svg {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  opacity: 0.6;
}

button:hover {
  opacity: 0.6;
}

ul,
ol {
  list-style: none;
}

dt {
  font-weight: normal;
}

body {
  position: relative;
  font-feature-settings: "palt" 1;
  font-kerning: none;
  font-family: var(--font-base);
  font-weight: 500;
  color: var(--color-black);
  margin-left: auto;
  margin-right: auto;
  background-color: var(--color-white);
  letter-spacing: 0.06em;
  -webkit-text-size-adjust: 100%;
}
@media only screen and (max-width: 860px) {
  body {
    max-width: none;
    min-width: auto;
    letter-spacing: 0.04em;
  }
}
@media only screen and (max-width: 860px) {
  body.fixed {
    width: 100%;
    height: 100%;
    position: fixed;
  }
}

.el_preload {
  display: none;
}

/* layout */
.ly_main {
  padding-top: var(--head-h);
  padding-bottom: 190px;
}

.ly_inner {
  max-width: 1260px;
  margin: 0 auto;
  padding: 0 80px;
}
@media only screen and (max-width: 860px) {
  .ly_inner {
    padding: 0 4vw;
  }
}

.ly_innerMin {
  max-width: 850px;
  margin: 0 auto;
  padding: 0 20px;
}
@media only screen and (max-width: 860px) {
  .ly_innerMin {
    padding: 0;
  }
}

.ly_innerL {
  max-width: 1640px;
  margin: 0 auto;
  padding: 0 80px;
}
@media only screen and (max-width: 860px) {
  .ly_innerL {
    padding: 0 4%;
  }
}

.ly_innerXl {
  max-width: 1850px;
  margin: 0 auto;
  padding: 0 80px;
}
@media only screen and (max-width: 860px) {
  .ly_innerXl {
    padding: 0 4%;
  }
}

.ly_innerPage {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 20px;
}
@media only screen and (max-width: 860px) {
  .ly_innerPage {
    padding: 0 4%;
  }
}

.ly_sec {
  --sec: 160px;
  padding-top: var(--sec);
  padding-bottom: var(--sec);
}
@media only screen and (max-width: 860px) {
  .ly_sec {
    padding-top: 16%;
    padding-bottom: 16%;
  }
}
.ly_sec__margin {
  padding-top: 0;
  padding-bottom: 0;
  margin-top: var(--sec);
  margin-bottom: var(--sec);
}
.ly_sec__margin:last-of-type {
  margin-bottom: 0;
}
@media only screen and (max-width: 860px) {
  .ly_sec__margin {
    margin-top: 16%;
    margin-bottom: 16%;
  }
}

.ly_head {
  background-color: transparent;
  padding: 30px;
  position: fixed;
  top: 0;
  z-index: 150;
  width: 100%;
}
@media only screen and (max-width: 860px) {
  .ly_head {
    padding: 4%;
  }
}
.ly_head::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-color: var(--color-white);
  backdrop-filter: invert(100%);
}

.bl_head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.bl_head_logo {
  max-width: 250px;
  width: 40%;
  z-index: 200;
}
.bl_head_logo a {
  display: block;
}
.bl_head .js_head_logo.is_active {
  fill: var(--color-white);
}

@media only screen and (max-width: 860px) {
  .bl_gnav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-main);
    padding: 4vw;
    padding-top: calc(var(--head-h) + 4vw);
    display: none;
  }
}
.bl_gnav_list {
  display: flex;
  justify-content: center;
  gap: 2.5em;
  font-size: 1.6rem;
}
@media only screen and (max-width: 860px) {
  .bl_gnav_list {
    color: var(--color-white);
    flex-direction: column;
    gap: 2em;
    font-size: 1.7rem;
  }
  .bl_gnav_list .el_blank_arrow {
    fill: var(--color-white);
  }
}
.bl_gnav_copy {
  display: none;
  color: var(--color-white);
  font-size: 1rem;
  text-align: center;
  position: absolute;
  bottom: 0;
  padding: 4vw 0;
  left: 0;
  right: 0;
}
@media only screen and (max-width: 860px) {
  .bl_gnav_copy {
    display: block;
  }
}
.bl_gnav_toggle {
  display: none;
  position: relative;
  width: 46px;
  height: 36px;
  z-index: 200;
}
@media only screen and (max-width: 860px) {
  .bl_gnav_toggle {
    display: block;
  }
}
.bl_gnav_toggle span {
  position: absolute;
  height: 1px;
  background-color: var(--color-main);
  width: 100%;
  transition: all ease 0.6s;
}
.bl_gnav_toggle span:nth-of-type(1) {
  top: calc(50% + 3px);
}
.bl_gnav_toggle span:nth-of-type(2) {
  bottom: calc(50% + 3px);
}
.bl_gnav_toggle.is_active span {
  background-color: var(--color-white);
}
.bl_gnav_toggle.is_active span:nth-of-type(1) {
  top: 50%;
  transform: translateY(-50%) rotate(40deg);
}
.bl_gnav_toggle.is_active span:nth-of-type(2) {
  bottom: 50%;
  transform: translateY(50%) rotate(-40deg);
}

.ly_foot {
  background-color: var(--color-white);
  padding: 0 60px;
}
@media only screen and (max-width: 860px) {
  .ly_foot {
    padding: 0 4vw;
  }
}

@media only screen and (max-width: 860px) {
  .bl_foot_nav {
    display: none;
  }
}
.bl_foot_nav_list {
  display: flex;
  gap: 2em;
  font-size: 2.7rem;
}
.bl_foot_main {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 40px;
  align-items: center;
  padding: 140px 0;
}
@media only screen and (max-width: 860px) {
  .bl_foot_main {
    display: block;
    padding: 12% 0;
  }
}
.bl_foot_main_box {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  font-size: 1.2rem;
  align-items: flex-end;
}
@media only screen and (max-width: 860px) {
  .bl_foot_main_box {
    align-items: center;
    justify-content: center;
    margin-top: 4em;
    font-size: 1rem;
    gap: 1em;
  }
}
.bl_foot_logo {
  max-width: 1100px;
  width: 100%;
}
@media only screen and (max-width: 860px) {
  .bl_foot_logo {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
  }
}

.bl_pager {
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  position: relative;
  font-size: 3rem;
  text-align: center;
  column-gap: 1em;
  font-weight: normal;
  margin-top: 3em;
}
@media only screen and (max-width: 860px) {
  .bl_pager {
    font-size: 1.5rem;
    margin-top: 5em;
  }
}
.bl_pager_num {
  display: block;
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  align-content: center;
  padding: 0.8em;
  position: relative;
  letter-spacing: 0;
  line-height: 1;
}
.bl_pager_num__is {
  color: var(--color-white);
  padding-left: 0.9em;
}
.bl_pager_num__is::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background-color: rgba(var(--color-main-rgb), 0.5);
  filter: blur(14px);
  border-radius: 100%;
  z-index: -1;
}

/* component */
.el_logo {
  fill: var(--color-main);
}

.bl_pageHeading {
  font-size: 10.5rem;
  margin-bottom: 0.5em;
  font-weight: 500;
}
@media only screen and (max-width: 860px) {
  .bl_pageHeading {
    font-size: 6.5rem;
    margin-bottom: 0.8em;
  }
}
.bl_pageHeading_en {
  display: block;
  color: var(--color-main);
  line-height: 1;
  filter: blur(7px);
  opacity: 0.3;
  font-weight: 400;
}
@media only screen and (max-width: 860px) {
  .bl_pageHeading_en {
    filter: blur(4px);
  }
}
.bl_pageHeading_ja {
  margin-top: -1.5em;
  font-size: 1.6rem;
  color: var(--color-sub);
  display: block;
}
@media only screen and (max-width: 860px) {
  .bl_pageHeading_ja {
    font-size: 1.1rem;
  }
}

.el_blank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  column-gap: 0.25em;
}
.el_blank_arrow {
  display: block;
  width: 0.75em;
  height: 0.75em;
}

.el_btn {
  display: inline-block;
  padding: 1.5em 1em;
  min-width: 20em;
  border: 1px solid var(--color-table);
  background-image: url(../img/common/arrow_btn.svg);
  background-repeat: no-repeat;
  background-position: bottom 1em right 1em;
  background-size: 1em;
  text-align: center;
  font-weight: 400;
}
@media only screen and (max-width: 860px) {
  .el_btn {
    padding: 1.5em 0;
  }
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
  width: 100%;
  background-color: var(--color-sub-l);
  padding: 1em;
  border-radius: 5px;
  font-size: 1.6rem;
  line-height: 1.5;
}
@media only screen and (max-width: 860px) {
  input[type=text],
  input[type=email],
  input[type=tel],
  textarea {
    padding: 0.25em 1em;
  }
}

label {
  cursor: pointer;
  position: relative;
  padding-left: 2.5em;
  display: block;
}
label span {
  display: inline-block;
}
label input[type=radio] {
  position: absolute;
  left: 0;
  bottom: 50%;
  transform: translateY(50%);
  width: 1.5em;
  height: 1.5em;
  border: none;
  display: block;
  background-color: var(--color-border);
  appearance: none;
  border-radius: 100%;
}
label input[type=radio] + span::before {
  content: "";
  display: block;
  position: absolute;
  left: 0.25em;
  bottom: 50%;
  transform: translateY(50%);
  width: 1em;
  height: 1em;
  background-color: var(--color-white);
  border-radius: 100%;
}
label input[type=radio]:checked + span::before {
  background-color: var(--color-main);
}

.wpcf7-radio {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.75em;
}

.mwform-radio-field {
  margin: 0;
  line-height: 1.5;
  display: block;
  padding: 0;
}

.el_radio {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.75em;
}

.bl_btn_area {
  margin-top: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1em;
  font-size: 1.8rem;
  font-weight: normal;
}
@media only screen and (max-width: 860px) {
  .bl_btn_area {
    margin-top: 12%;
    padding: 0 6vw;
    font-size: 1.3rem;
  }
}

.el_privacy {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.el_privacy a {
  font-weight: bold;
  color: var(--color-main);
  text-decoration: underline;
}
/*# sourceMappingURL=maps/common.css.map */