@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap");
/*! destyle.css v3.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}

/* Sections */
/* ============================================ */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

/* Lists (enumeration) */
/* ============================================ */
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */
dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Replaced content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */
button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none; /* 1 */
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit; /* 2 */
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type=checkbox] {
  -webkit-appearance: checkbox;
  appearance: checkbox;
}

[type=radio] {
  -webkit-appearance: radio;
  appearance: radio;
}

/**
 * Correct cursors for clickable elements.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
  cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */
:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * Remove padding
 */
option {
  padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the outline style in Safari.
 */
[type=search] {
  outline-offset: -2px; /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Clickable labels
 */
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable]:focus {
  outline: auto;
}

/* Tables */
/* ============================================ */
/**
1. Correct table border color inheritance in all Chrome and Safari.
*/
table {
  border-color: inherit; /* 1 */
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: bold;
}

html {
  width: 100%;
  min-height: 100%;
  font-size: 2.6666666667vw;
}
@media (min-width: 769px) {
  html {
    overflow-x: hidden;
    font-size: 0.7320644217vw;
  }
}
@media (min-width: 1440px) {
  html {
    font-size: 62.5%;
  }
}

body {
  width: 100%;
  line-height: 1.5;
  font-weight: 500;
  background-color: #eee8e6;
  color: #22232f;
  overflow-x: hidden;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", sans-serif;
}
@media (max-width: 768px) {
  body {
    font-size: 1.4rem;
  }
}
@media (min-width: 1440px) {
  body {
    font-size: 1.6rem;
  }
}
body.is_active {
  height: 100vh;
  overflow: hidden;
}

* {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", sans-serif;
  font-weight: 500;
  letter-spacing: 0.04em;
}

section {
  display: block;
}

a {
  transition-duration: 0.4s;
}
@media (min-width: 1440px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
@media (min-width: 769px) {
  a {
    transition: all 0.5s ease;
  }
  a:hover {
    opacity: 0.5;
  }
}

img {
  max-width: 100%;
}

@supports (-webkit-touch-callout: none) {
  html {
    height: -webkit-fill-available;
  }
  body {
    min-height: 100vh;
    min-height: -webkit-fill-available;
  }
}
/*
  main
--------------------------------------*/
.l-main {
  position: relative;
  display: block;
  flex: 1;
}
@media (max-width: 768px) {
  .l-main {
    margin-top: 14.896vw;
  }
}
@media (min-width: 769px) {
  .l-main {
    margin-top: 5.896vw;
  }
}
@media (min-width: 1440px) {
  .l-main {
    margin-top: 88px;
  }
}

@media (min-width: 769px) {
  .sp {
    display: none;
  }
}

.pc {
  display: none;
}
@media (min-width: 769px) {
  .pc {
    display: initial;
  }
}

/* container */
.container {
  margin: 0 auto;
  padding: 0 5.3334vw;
}
@media (min-width: 769px) {
  .container {
    width: 83.3328vw;
    padding: 0;
  }
}
@media (min-width: 1440px) {
  .container {
    width: 1200px;
  }
}

@media (min-width: 769px) {
  .inner {
    width: 72.22176vw;
    margin: 0 auto;
  }
}
@media (min-width: 1440px) {
  .inner {
    width: 1040px;
  }
}

/*
  inview
--------------------------------------*/
.js-inview {
  opacity: 0;
  transition-duration: 1s;
}
.js-inview.is-fadeIn {
  opacity: 1;
}

.header {
  position: fixed;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0 5.3334vw;
  width: 100vw;
  transition: 0.8s;
  z-index: 97;
}
.header.scroll {
  background-color: #1d4963;
}
.header h1 a img {
  width: 26.667vw;
  height: auto;
}
@media (min-width: 769px) {
  .header {
    position: fixed;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100vw;
    z-index: 97;
    transition: 0.8s;
    padding: 0 2.77776vw 0 2.77776vw;
  }
  .header h1 {
    display: block;
    transition: 0.8s;
    padding: 2.08332vw 1.38888vw;
  }
  .header h1.none {
    display: none;
  }
  .header h1 a img {
    transition: 0.8s;
    width: 13.8888vw;
  }
  .header nav ul {
    display: flex;
    flex-direction: row;
    justify-content: right;
    align-items: center;
  }
  .header nav ul li {
    margin-left: 3.888864vw;
    transition: 0.8s;
  }
  .header nav ul li a {
    color: #f8f9fc;
    font-size: 1.111104vw;
    font-weight: 700;
    line-height: 1; /* 16px */
    letter-spacing: 0.08em;
    transition: 0.8s;
  }
  .header nav ul li.contact {
    padding: 0.833328vw 2.77776vw;
    border-radius: 3.4722vw;
    border: 1px solid #f8f9fc;
    transition: 0.8s;
  }
  .header.scroll {
    background-color: #1d4963;
  }
  .header.scroll h1 {
    padding: 1.666656vw 1.111104vw;
  }
  .header.scroll h1 a img {
    width: 10.4166vw;
  }
  .header.scroll nav ul {
    display: flex;
    flex-direction: row;
    justify-content: right;
    align-items: center;
  }
  .header.scroll nav ul li {
    margin-left: 2.77776vw;
  }
  .header.scroll nav ul li a {
    color: #f8f9fc;
    font-size: 0.972216vw;
    font-weight: 700;
    line-height: 1; /* 16px */
    letter-spacing: 0.08em;
  }
  .header.scroll nav ul li.contact {
    padding: 0.555552vw 2.222208vw;
    border-radius: 1.666656vw;
    border: 1px solid #f8f9fc;
  }
}
@media (min-width: 769px) and (min-width: 1440px) {
  .header {
    padding: 0 40px 0 40px;
  }
  .header h1 {
    padding: 30px 20px;
  }
  .header h1 a img {
    width: 200px;
  }
  .header nav ul li {
    margin-left: 56px;
  }
  .header nav ul li a {
    font-size: 16px;
  }
  .header nav ul li.contact {
    padding: 12px 40px;
    border-radius: 50px;
  }
  .header.scroll h1 {
    padding: 24px 16px;
  }
  .header.scroll h1 a img {
    width: 150px;
  }
  .header.scroll nav ul li {
    margin-left: 40px;
  }
  .header.scroll nav ul li a {
    font-size: 14px;
  }
  .header.scroll nav ul li.contact {
    padding: 8px 32px;
    border-radius: 24px;
  }
}

.drawer_hidden {
  display: none;
}

/* ハンバーガーアイコンの設置スペース */
.drawer_open {
  display: flex;
  height: 60px;
  width: 60px;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 100; /* 重なり順を一番上にする */
  cursor: pointer;
}

/* ハンバーガーメニューのアイコン */
.drawer_open span,
.drawer_open span:before,
.drawer_open span:after {
  content: "";
  display: block;
  height: 0.80001vw;
  width: 6.66675vw;
  border-radius: 0.80001vw;
  background: #f8f9fc;
  transition: 0.5s;
  position: absolute;
}

/* 三本線の一番上の棒の位置調整 */
.drawer_open span:before {
  bottom: 2.13336vw;
}

/* 三本線の一番下の棒の位置調整 */
.drawer_open span:after {
  top: 2.13336vw;
}

/* アイコンがクリックされたら真ん中の線を透明にする */
#drawer_input:checked ~ .drawer_open span {
  background: rgba(255, 255, 255, 0);
}

/* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */
#drawer_input:checked ~ .drawer_open span::before {
  bottom: 0;
  transform: rotate(45deg);
}

#drawer_input:checked ~ .drawer_open span::after {
  top: 0;
  transform: rotate(-45deg);
}

/* メニューのデザイン*/
.nav_content {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 100%; /* メニューを画面の外に飛ばす */
  z-index: 99;
  background: #1d4963;
  transition: 0.5s;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  z-index: 44;
}

/* メニュー黒ポチを消す */
.nav_list {
  list-style: none;
  width: 100vw;
  padding: 21.3336vw;
}
.nav_list li {
  margin-bottom: 6.40008vw;
  text-align: center;
}
.nav_list a {
  color: #f8f9fc;
  font-size: 4.26672vw;
}

/* アイコンがクリックされたらメニューを表示 */
#drawer_input:checked ~ .nav_content {
  left: 0; /* メニューを画面に入れる */
}

.page_top {
  position: relative;
  margin-bottom: 10.6668vw;
}
.page_top .container {
  padding: 21.3336vw 5.3334vw 4.26672vw;
}
.page_top_bc {
  margin-bottom: 10.6668vw;
}
.page_top_bc ul {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: center;
}
.page_top_bc ul li,
.page_top_bc ul span {
  color: #f8f9fc;
  font-size: 2.6667vw;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-right: 2.13336vw;
}
.page_top_title .ja {
  color: #f8f9fc;
  font-size: 6.40008vw;
  font-weight: 700;
  letter-spacing: 0.08;
}
.page_top .en {
  position: absolute;
  bottom: -2.13336vw;
  left: 0;
  mix-blend-mode: soft-light;
  color: #f8f9fc;
  font-size: 10.6668vw;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  font-family: "Outfit", sans-serif;
}
@media (min-width: 769px) {
  .page_top {
    position: relative;
    margin-bottom: 10.4166vw;
  }
  .page_top .container {
    padding: 9.583272vw 0 2.77776vw;
  }
  .page_top_bc {
    margin-bottom: 3.888864vw;
  }
  .page_top_bc ul li,
  .page_top_bc ul span {
    font-size: 0.972216vw;
    margin-right: 0.69444vw;
  }
  .page_top_title .ja {
    font-size: 2.222208vw;
  }
  .page_top .en {
    bottom: -0.833328vw;
    font-size: 6.666624vw;
  }
}
@media (min-width: 1440px) {
  .page_top {
    position: relative;
    margin-bottom: 150px;
  }
  .page_top .container {
    padding: 138px 0 40px;
  }
  .page_top_bc {
    margin-bottom: 56px;
  }
  .page_top_bc ul {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: center;
  }
  .page_top_bc ul li,
  .page_top_bc ul span {
    color: #f8f9fc;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-right: 10px;
  }
  .page_top_title .ja {
    color: #f8f9fc;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.08;
  }
  .page_top .en {
    position: absolute;
    bottom: -12px;
    left: 0;
    mix-blend-mode: soft-light;
    color: #f8f9fc;
    font-size: 96px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    font-family: "Outfit", sans-serif;
  }
}

.cv_contact {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
.cv_contact .part {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10.6668vw 0 32.0004vw;
  position: relative;
  background: var(--linear, linear-gradient(135deg, #15425b 0%, #1e4b65 100%));
  transition: all 0.5s ease;
}
.cv_contact .part .txt .en {
  display: block;
  color: #f8f9fc;
  text-align: center;
  font-family: Outfit;
  font-size: 6.40008vw;
  font-weight: 700;
  line-height: 1.75; /* 42px */
  letter-spacing: 0.08em;
  margin-bottom: 8.53344vw;
}
.cv_contact .part .txt .ja {
  color: #f8f9fc;
  text-align: center;
  font-size: 4.26672vw;
  font-weight: 500;
  line-height: 175%;
  letter-spacing: 0.08em;
}
.cv_contact .part a {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.cv_contact .part:after {
  position: absolute;
  content: "";
  background-image: url("../img/common/arrow.svg");
  background-size: contain;
  width: 8.53344vw;
  height: 8.53344vw;
  bottom: calc(50% - 17.06688vw);
}
.cv_contact .part:hover {
  opacity: 0.6;
}
@media (min-width: 769px) {
  .cv_contact {
    display: flex;
    flex-direction: row;
  }
  .cv_contact .part {
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 5.55552vw 0;
    position: relative;
    background: var(--linear, linear-gradient(135deg, #15425b 0%, #1e4b65 100%));
    transition: all 0.5s ease;
  }
  .cv_contact .part .txt .en {
    display: block;
    color: #f8f9fc;
    text-align: center;
    font-family: Outfit;
    font-size: 1.666656vw;
    font-weight: 700;
    line-height: 1.75; /* 42px */
    letter-spacing: 0.08em;
    margin-bottom: 2.222208vw;
  }
  .cv_contact .part .txt .ja {
    color: #f8f9fc;
    text-align: center;
    font-size: 1.249992vw;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0.08em;
  }
  .cv_contact .part a {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
  }
  .cv_contact .part:after {
    position: absolute;
    content: "";
    background-image: url("../img/common/arrow.svg");
    background-size: contain;
    width: 2.222208vw;
    height: 2.222208vw;
    top: calc(50% - 1.111104vw);
    right: 5.55552vw;
  }
  .cv_contact .part:hover {
    opacity: 0.6;
  }
}
@media (min-width: 1440px) {
  .cv_contact .part {
    padding: 80px 0;
  }
  .cv_contact .part .txt .en {
    font-size: 24px;
    margin-bottom: 32px;
  }
  .cv_contact .part .txt .ja {
    font-size: 18px;
  }
  .cv_contact .part:after {
    width: 32px;
    height: 32px;
    top: calc(50% - 16px);
    right: 80px;
  }
}

.def_btn {
  width: calc(100% - 8px);
  background-color: #1d4963;
  position: relative;
  z-index: 1;
  transition: all 0.5s ease;
}
.def_btn a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 24px 32px 24px 40px;
  color: #f8f9fc;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  z-index: 3;
  position: relative;
}
.def_btn a::after {
  position: absolute;
  content: "";
  background-image: url("../img/common/arrow.svg");
  background-size: contain;
  width: 24px;
  height: 24px;
  top: calc(50% - 12px);
  bottom: auto;
  right: 32px;
}
.def_btn::before {
  position: absolute;
  width: 100%;
  height: 100%;
  content: "";
  border: solid 1px #1d4963;
  right: -8px;
  bottom: -8px;
  z-index: -1;
  transition: all 0.5s ease;
}
.def_btn:hover {
  opacity: 0.6;
}
.def_btn:hover:before {
  right: 0;
  bottom: 0;
  opacity: 0;
}
@media (min-width: 769px) {
  .def_btn {
    width: calc(100% - 0.555552vw);
    background-color: #1d4963;
    position: relative;
    z-index: 1;
    transition: all 0.5s ease;
  }
  .def_btn a {
    display: block;
    width: 100%;
    height: 100%;
    padding: 1.666656vw 2.222208vw 1.666656vw 2.77776vw;
    color: #f8f9fc;
    font-size: 0.972216vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    z-index: 3;
    position: relative;
  }
  .def_btn a::after {
    position: absolute;
    content: "";
    background-image: url("../img/common/arrow.svg");
    background-size: contain;
    width: 1.666656vw;
    height: 1.666656vw;
    top: calc(50% - 0.833328vw);
    right: 2.222208vw;
  }
  .def_btn::before {
    position: absolute;
    width: 100%;
    height: 100%;
    content: "";
    border: solid 1px #1d4963;
    right: -0.555552vw;
    bottom: -0.555552vw;
    z-index: -1;
    transition: all 0.5s ease;
  }
  .def_btn:hover {
    opacity: 0.6;
  }
  .def_btn:hover:before {
    right: 0;
    bottom: 0;
    opacity: 0;
  }
}
@media (min-width: 1440px) {
  .def_btn {
    width: calc(100% - 8px);
  }
  .def_btn a {
    padding: 24px 32px 24px 40px;
    font-size: 14px;
  }
  .def_btn a::after {
    width: 24px;
    height: 24px;
    top: calc(50% - 12px);
    right: 32px;
  }
  .def_btn::before {
    right: -8px;
    bottom: -8px;
  }
}

.sa {
  opacity: 0;
  transition: all 1s ease;
}

.sa.show {
  opacity: 1;
  transform: none;
}

.sa--lr {
  transform: translate(-100px, 0);
}

.sa--rl {
  transform: translate(100px, 0);
}

.sa--up {
  transform: translate(0, 100px);
}

.sa--down {
  transform: translate(0, -100px);
}

.sa--scaleUp {
  transform: scale(0.5);
}

.sa--scaleDown {
  transform: scale(1.5);
}

.sa--rotateL {
  transform: rotate(180deg);
}

.sa--rotateR {
  transform: rotate(-180deg);
}

.loader-bg {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background: var(--linear, linear-gradient(135deg, #15425b 0%, #1e4b65 100%));
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader,
.loader:before,
.loader:after {
  background: #ffffff;
  -webkit-animation: load1 1s infinite ease-in-out;
  animation: load1 1s infinite ease-in-out;
  width: 1em;
  height: 4em;
}

.loader {
  color: #ffffff;
  text-indent: -9999em;
  margin: 88px auto;
  position: relative;
  font-size: 11px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}

.loader:before,
.loader:after {
  position: absolute;
  top: 0;
  content: "";
}

.loader:before {
  left: -1.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}

.loader:after {
  left: 1.5em;
}

@-webkit-keyframes load1 {
  0%, 80%, 100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}
@keyframes load1 {
  0%, 80%, 100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}
.footer {
  padding: 14.93352vw 0 10.6668vw;
  background-color: #f7f6f4;
}
@media (min-width: 769px) {
  .footer {
    padding: 7.63884vw 0 3.888864vw;
  }
}
@media (min-width: 1440px) {
  .footer {
    padding: 110px 0 56px;
  }
}
@media (min-width: 769px) {
  .footer .container {
    display: flex;
    justify-content: space-between;
  }
}
.footer .left {
  text-align: center;
}
.footer .left_logo {
  margin: 0 auto;
  margin-bottom: 10.6668vw;
  display: block;
  width: fit-content;
  height: fit-content;
}
.footer .left_logo img {
  width: 41.06718vw;
  height: auto;
}
@media (min-width: 769px) {
  .footer .left_logo {
    margin: 0;
    margin-bottom: 2.77776vw;
  }
  .footer .left_logo img {
    width: 18.472104vw;
  }
}
@media (min-width: 1440px) {
  .footer .left_logo {
    margin-bottom: 40px;
  }
  .footer .left_logo img {
    width: 266px;
  }
}
.footer .left p {
  font-size: 14px;
  letter-spacing: 0.08em;
  line-height: 1.75;
}
@media (min-width: 769px) {
  .footer .left p {
    text-align: left;
  }
}
.footer .right_top {
  flex-direction: row;
  justify-content: left;
  flex-wrap: nowrap;
  margin-bottom: 64px;
}
.footer .right_top a {
  display: block;
  margin-left: 40px;
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
}
.footer .right_top a.small {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
}
@media (min-width: 769px) {
  .footer .right_top {
    display: flex;
    max-width: 55.5552vw;
    margin-bottom: 4.444416vw;
  }
  .footer .right_top a {
    margin-left: 2.77776vw;
    margin-bottom: 1.666656vw;
    font-size: 1.111104vw;
  }
  .footer .right_top a.small {
    font-size: 0.972216vw;
    font-weight: 500;
    margin-bottom: 0.555552vw;
  }
}
@media (min-width: 1440px) {
  .footer .right_top a {
    margin-left: 40px;
    margin-bottom: 16px;
    font-size: 16px;
  }
  .footer .right_top a.small {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px;
  }
}
.footer .bottom {
  text-align: center;
}
@media (min-width: 769px) {
  .footer .bottom {
    text-align: left;
  }
}
.footer .bottom small {
  text-align: center;
}
@media (min-width: 769px) {
  .footer .bottom small {
    text-align: left;
  }
}
.footer .bottom a {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
}
@media (min-width: 769px) {
  .footer .bottom a {
    font-size: 0.972216vw;
    font-weight: 500;
    margin-bottom: 0.555552vw;
  }
}
@media (min-width: 1440px) {
  .footer .bottom a {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px;
  }
}

.top_fv {
  background-image: url("../img/top/top0.jpg");
  background-size: cover;
  background-position: center;
  padding: 26.667vw 0 14.93352vw;
}
.top_fv_catch {
  color: #f8f9fc;
  font-size: 4.80006vw;
  letter-spacing: 0.15em;
  margin-bottom: 8.53344vw;
}
.top_fv_catch strong {
  color: #f8f9fc;
  font-size: 10.6668vw;
}
.top_fv_txt {
  color: #f8f9fc;
  font-size: 3.73338vw;
  line-height: 2;
  letter-spacing: 0.08em;
  margin-bottom: 8.53344vw;
  transition-delay: 1s;
}
.top_fv_btn {
  display: block;
  width: fit-content;
  background-color: #f8f9fc;
  border-radius: 28px;
  transition-delay: 1.3s;
}
.top_fv_btn a {
  display: block;
  padding: 2.13336vw 10.6668vw 2.13336vw 7.46676vw;
  width: 100%;
  height: 100%;
  font-size: 3.73338vw;
  letter-spacing: 0.08em;
  position: relative;
}
.top_fv_btn a::before {
  position: absolute;
  content: "";
  width: 24px;
  height: 24px;
  top: calc(50% - 12px);
  right: 16px;
  background-image: url("../img/common/arrow_nv.svg");
  background-size: contain;
}
@media (min-width: 769px) {
  .top_fv {
    background-image: url("../img/top/top0.jpg");
    background-size: cover;
    background-position: center;
    padding: 12.84714vw 0 5.55552vw;
  }
  .top_fv_catch {
    color: #f8f9fc;
    font-size: 2.77776vw;
    letter-spacing: 0.15em;
    margin-bottom: 2.77776vw;
  }
  .top_fv_catch strong {
    color: #f8f9fc;
    font-size: 5.55552vw;
  }
  .top_fv_txt {
    color: #f8f9fc;
    font-size: 1.111104vw;
    line-height: 2;
    letter-spacing: 0.08em;
    margin-bottom: 2.222208vw;
    transition-delay: 1s;
  }
  .top_fv_btn {
    display: block;
    width: fit-content;
    background-color: #f8f9fc;
    border-radius: 1.944432vw;
    transition-delay: 1.3s;
  }
  .top_fv_btn a {
    display: block;
    padding: 1.111104vw 4.999968vw 1.111104vw 3.333312vw;
    width: 100%;
    height: 100%;
    font-size: 1.111104vw;
    letter-spacing: 0.08em;
    position: relative;
  }
  .top_fv_btn a::before {
    position: absolute;
    content: "";
    width: 1.666656vw;
    height: 1.666656vw;
    top: calc(50% - 0.833328vw);
    right: 1.111104vw;
    background-image: url("../img/common/arrow_nv.svg");
    background-size: contain;
  }
}
@media (min-width: 1440px) {
  .top_fv {
    padding: 185px 0 80px;
  }
  .top_fv_catch {
    font-size: 40px;
    margin-bottom: 40px;
  }
  .top_fv_catch strong {
    font-size: 80px;
  }
  .top_fv_txt {
    font-size: 16px;
    margin-bottom: 32px;
  }
  .top_fv_btn {
    border-radius: 28px;
  }
  .top_fv_btn a {
    padding: 16px 72px 16px 48px;
    font-size: 16px;
  }
  .top_fv_btn a::before {
    width: 24px;
    height: 24px;
    top: calc(50% - 12px);
    right: 16px;
  }
}
.top_news .container {
  padding: 26.667vw 5.3334vw;
}
.top_news_title_title h3 {
  width: fit-content;
  color: #22232f;
  font-size: 6.40008vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
}
.top_news_title_title h3::after {
  position: absolute;
  content: "";
  background-color: #22232f;
  width: 4.26672vw;
  height: 2px;
  right: -60px;
  top: calc(50% - 1px);
}
.top_news_title_btn {
  margin-top: 6.40008vw;
  display: block;
  width: fit-content;
  border: solid 1px #22232f;
  border-radius: 7.46676vw;
}
.top_news_title_btn a {
  display: block;
  padding: 2.13336vw 10.6668vw 2.13336vw 7.46676vw;
  width: 100%;
  height: 100%;
  font-size: 3.73338vw;
  letter-spacing: 0.08em;
  position: relative;
}
.top_news_title_btn a::before {
  position: absolute;
  content: "";
  width: 24px;
  height: 24px;
  top: calc(50% - 12px);
  right: 16px;
  background-image: url("../img/common/arrow_nv.svg");
  background-size: contain;
}
.top_news_inner {
  margin-top: 6.40008vw;
}
.top_news_info {
  padding: 4.26672vw;
  padding-bottom: 14.93352vw;
  border-top: solid 1px #22232f;
  border-bottom: solid 1px #22232f;
  position: relative;
  width: 100%;
  margin-left: 0;
}
.top_news_info_up {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: center;
  margin-bottom: 2.13336vw;
}
.top_news_info::after {
  position: absolute;
  right: 24px;
  bottom: 24px;
  content: "";
  width: 32px;
  height: 32px;
  background-image: url("../img/common/arrow_nv.svg");
  background-size: contain;
}
.top_news_date {
  margin-right: 0vw;
}
.top_news_date span {
  font-size: 3.73338vw;
  color: #bbbbbb;
}
.top_news_cat {
  padding: 1.06668vw 7.46676vw;
  border-radius: 3.73338vw;
  width: fit-content;
  font-size: 3.73338vw;
  border: solid 1px #22232f;
  line-height: 1;
  color: #22232f;
}
@media (min-width: 769px) {
  .top_news_cat {
    padding: 0.277776vw 1.944432vw;
    border-radius: 2.222208vw;
    font-size: 0.972216vw;
  }
}
@media (min-width: 1440px) {
  .top_news_cat {
    padding: 8px 24px;
    border-radius: 32px;
    font-size: 14px;
  }
}
.top_news_tit {
  margin-bottom: 16px;
}
.top_news_tit h5 {
  font-size: 4.26672vw;
  line-height: 1.5;
}
@media (min-width: 769px) {
  .top_news_tit h5 {
    font-size: 1.111104vw;
  }
}
@media (min-width: 1440px) {
  .top_news_tit h5 {
    font-size: 20px;
  }
}
.top_news_ex p {
  font-size: 3.73338vw !important;
  line-height: 175%;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .top_news .container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10.4166vw 0;
  }
  .top_news_title_title h3 {
    width: fit-content;
    color: #22232f;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
  }
  .top_news_title_title h3::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
  .top_news_title_btn {
    margin-top: 2.222208vw;
    display: block;
    width: fit-content;
    border: solid 1px #22232f;
    border-radius: 1.944432vw;
  }
  .top_news_title_btn a {
    display: block;
    padding: 1.111104vw 4.999968vw 1.111104vw 3.333312vw;
    width: 100%;
    height: 100%;
    font-size: 1.111104vw;
    letter-spacing: 0.08em;
    position: relative;
  }
  .top_news_title_btn a::before {
    position: absolute;
    content: "";
    width: 1.666656vw;
    height: 1.666656vw;
    top: calc(50% - 0.833328vw);
    right: 1.111104vw;
    background-image: url("../img/common/arrow_nv.svg");
    background-size: contain;
  }
  .top_news_inner {
    display: flex;
    width: 65.27736vw;
    flex-direction: row;
    justify-content: left;
    margin-top: 0;
  }
  .top_news_info {
    padding: 1.666656vw;
    padding-bottom: 4.999968vw;
    border-top: solid 1px #22232f;
    border-bottom: solid 1px #22232f;
    position: relative;
    width: 19.44432vw;
    margin-left: 1.666656vw;
  }
  .top_news_info_up {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: center;
    margin-bottom: 0.555552vw;
  }
  .top_news_info::after {
    position: absolute;
    right: 1.666656vw;
    bottom: 1.666656vw;
    content: "";
    width: 2.222208vw;
    height: 2.222208vw;
    background-image: url("../img/common/arrow_nv.svg");
    background-size: contain;
  }
  .top_news_date {
    margin-right: 1.666656vw;
  }
  .top_news_date span {
    font-size: 0.972216vw;
    color: #bbbbbb;
  }
  .top_news_cat {
    padding: 0.277776vw 1.944432vw;
    border-radius: 2.222208vw;
    font-size: 0.972216vw;
  }
  .top_news_tit {
    margin-bottom: 1.111104vw;
  }
  .top_news_tit h5 {
    font-size: 1.111104vw;
  }
}
.top_news_ex p {
  font-size: 0.972216vw !important;
}
@media (min-width: 1440px) {
  .top_news .container {
    padding: 150px 0;
  }
  .top_news_title_title h3 {
    font-size: 32px;
  }
  .top_news_title_title h3::after {
    width: 32px;
    height: 2px;
    right: -60px;
    top: calc(50% - 1px);
  }
  .top_news_title_btn {
    margin-top: 32px;
    border-radius: 28px;
  }
  .top_news_title_btn a {
    padding: 16px 72px 16px 48px;
    font-size: 16px;
  }
  .top_news_title_btn a::before {
    width: 24px;
    height: 24px;
    top: calc(50% - 12px);
    right: 16px;
  }
  .top_news_inner {
    width: 940px;
  }
  .top_news_info {
    padding: 24px;
    padding-bottom: 72px;
    width: 280px;
    margin-left: 24px;
  }
  .top_news_info_up {
    margin-bottom: 8px;
  }
  .top_news_info::after {
    right: 24px;
    bottom: 24px;
    width: 32px;
    height: 32px;
  }
  .top_news_date {
    margin-right: 24px;
  }
  .top_news_date span {
    font-size: 14px;
  }
  .top_news_cat {
    padding: 8px 24px;
    border-radius: 32px;
    font-size: 14px;
  }
  .top_news_tit {
    margin-bottom: 16px;
  }
  .top_news_tit h5 {
    font-size: 4.26672vw;
    line-height: 1.5;
  }
}
@media (min-width: 1440px) and (min-width: 769px) {
  .top_news_tit h5 {
    font-size: 1.111104vw;
  }
}
@media (min-width: 1440px) and (min-width: 1440px) {
  .top_news_tit h5 {
    font-size: 20px;
  }
}
@media (min-width: 1440px) {
  .top_news_ex p {
    font-size: 14px !important;
  }
}
.top_about {
  position: relative;
  padding-bottom: 80.001vw;
}
.top_about_first {
  position: relative;
  z-index: -1;
}
.top_about_first img {
  display: block;
  margin-left: auto;
  margin-right: 0;
  z-index: -1;
  object-fit: cover;
  width: 100%;
  height: 40.0005vw;
}
.top_about_second {
  position: absolute;
  z-index: -4;
  left: 0vw;
  bottom: -58.6674vw;
  width: 64.0008vw;
  height: 48.0006vw;
}
.top_about_second img {
  object-fit: cover;
  width: 64.0008vw;
  height: 48.0006vw;
}
.top_about_part {
  margin-top: 0vw;
  margin: 0vw 0 0 auto;
  padding: 10.6668vw 6.40008vw;
  background-color: #f8f9fc;
  z-index: 2;
  position: relative;
}
.top_about_part_title {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: flex-end;
  margin-bottom: 8.53344vw;
}
.top_about_part_title .num {
  color: #1d4963;
  font-family: Outfit;
  font-size: 10.6668vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-right: 10.6668vw;
}
.top_about_part_title h4 {
  color: #1d4963;
  font-size: 4.80006vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 1.60002vw;
  z-index: 3;
  padding-right: 3.73338vw;
}
.top_about_part_title h4::before {
  position: absolute;
  content: "";
  background-color: #1d4963;
  width: 2px;
  height: 32px;
  left: -26px;
  top: 0;
}
.top_about_part_title h4 .en {
  position: absolute;
  display: block;
  color: #d3d6d8;
  font-family: Outfit;
  font-size: 6.40008vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.top_about_part_text {
  margin-bottom: 8.53344vw;
}
.top_about_part_text p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .top_about {
    position: relative;
    padding-bottom: 80px;
  }
  .top_about_first {
    position: relative;
    z-index: -1;
  }
  .top_about_first img {
    display: block;
    margin-left: auto;
    margin-right: 0;
    z-index: -1;
    width: auto;
    height: auto;
  }
  .top_about_second {
    position: absolute;
    left: -41.6664vw;
    bottom: -2.77776vw;
    width: 34.722vw;
    height: auto;
  }
  .top_about_second img {
    width: 34.722vw;
    height: auto;
  }
  .top_about_part {
    margin-top: -2.77776vw;
    margin: -2.77776vw 0 0 auto;
    width: 41.6664vw;
    padding: 2.77776vw 3.888864vw;
    background-color: #f8f9fc;
    z-index: 2;
    position: relative;
  }
  .top_about_part_title {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: flex-end;
    margin-bottom: 2.77776vw;
  }
  .top_about_part_title .num {
    color: #1d4963;
    font-family: Outfit;
    font-size: 4.999968vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    margin-right: 3.194424vw;
  }
  .top_about_part_title h4 {
    color: #1d4963;
    font-size: 1.249992vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 0.833328vw;
    z-index: 3;
    padding-right: 2.77776vw;
  }
  .top_about_part_title h4::before {
    position: absolute;
    content: "";
    background-color: #1d4963;
    width: 0.138888vw;
    height: 2.222208vw;
    left: -1.805544vw;
    top: 0;
  }
  .top_about_part_title h4 .en {
    position: absolute;
    display: block;
    color: #d3d6d8;
    font-family: "Outfit", sans-serif;
    font-size: 2.77776vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    bottom: 0;
    left: 0;
    z-index: -1;
  }
  .top_about_part_text {
    margin-bottom: 2.222208vw;
    min-height: 9.72216vw;
  }
  .top_about_part_text p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
}
@media (min-width: 1440px) {
  .top_about {
    padding-bottom: 195px;
  }
  .top_about_second {
    left: -600px;
    bottom: -40px;
    width: 500px;
  }
  .top_about_part {
    margin-top: -40px;
    margin: -40px 0 0 auto;
    width: 600px;
    padding: 40px 56px;
  }
  .top_about_part_title {
    margin-bottom: 40px;
  }
  .top_about_part_title .num {
    font-size: 72px;
    margin-right: 46px;
  }
  .top_about_part_title h4 {
    font-size: 18px;
    margin-bottom: 12px;
    padding-right: 40px;
  }
  .top_about_part_title h4::before {
    width: 2px;
    height: 32px;
    left: -26px;
    top: 0;
  }
  .top_about_part_title h4 .en {
    font-size: 40px;
  }
  .top_about_part_text {
    margin-bottom: 32px;
    min-height: 140px;
  }
  .top_about_part_text p {
    font-size: 16px;
  }
}
.top_half {
  margin-bottom: 21.3336vw;
}
.top_half img {
  width: 100%;
    max-width: 1000px;display: block;margin: 0 auto;
  height: auto;
  object-fit: cover;
}
@media (min-width: 769px) {
  .top_half {
    margin-bottom: 80px;
  }
  .top_half img {
    height: auto;
  }
}
@media (min-width: 1440px) {
  .top_half {
    margin-bottom: 80px;
  }
}
.top_service {
  position: relative;
  padding-bottom: 154.6686vw;
    overflow-x: hidden
}
.top_service_first {
  position: absolute;
  z-index: 4;
  bottom: 53.334vw;
  left: -80.001vw;
}
.top_service_first img {
  display: block;
  margin-left: auto;
  margin-right: 0;
  z-index: -1;
  height: 85.3344vw;
}
.top_service_second {
  position: absolute;
  width: 106.668vw;
  left: 21.3336vw;
  bottom: -66.6675vw;
}
.top_service_second img {
  width: 106.668vw;
  height: auto;
  object-fit: cover;
}
.top_service_part {
  padding: 10.6668vw 6.40008vw;
  background-color: #f8f9fc;
  z-index: 2;
  position: relative;
  transition-delay: 0.5s;
}
.top_service_part_title {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: flex-end;
  margin-bottom: 8.53344vw;
}
.top_service_part_title .num {
  color: #1d4963;
  font-family: Outfit;
  font-size: 10.6668vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-right: 10.6668vw;
}
.top_service_part_title h4 {
  color: #1d4963;
  font-size: 4.80006vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 1.60002vw;
  z-index: 3;
  padding-right: 3.73338vw;
}
.top_service_part_title h4::before {
  position: absolute;
  content: "";
  background-color: #1d4963;
  width: 2px;
  height: 32px;
  left: -26px;
  top: 0;
}
.top_service_part_title h4 .en {
  position: absolute;
  display: block;
  color: #d3d6d8;
  font-family: Outfit;
  font-size: 6.40008vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.top_service_part_text {
  margin-bottom: 8.53344vw;
}
.top_service_part_text p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .top_service {
    position: relative;
    padding-bottom: 43.263612vw;
  }
  .top_service_first {
    position: absolute;
    z-index: 4;
    top: -8.33328vw;
    right: -8.33328vw;
    left: auto;
    bottom: auto;
  }
  .top_service_first img {
    display: block;
    margin-left: auto;
    margin-right: 0;
    z-index: -1;
    height: auto;
  }
  .top_service_second {
    position: absolute;
    width: 36.11088vw;
    left: 8.33328vw;
    bottom: -26.38872vw;
  }
  .top_service_second img {
    width: 36.11088vw;
  }
  .top_service_part {
    width: 41.6664vw;
    padding: 2.77776vw 3.888864vw;
    background-color: #f8f9fc;
    z-index: 2;
    position: relative;
    transition-delay: 0.5s;
  }
  .top_service_part_title {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: flex-end;
    margin-bottom: 2.77776vw;
  }
  .top_service_part_title .num {
    color: #1d4963;
    font-family: "Outfit", sans-serif;
    font-size: 4.999968vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    margin-right: 3.194424vw;
  }
  .top_service_part_title h4 {
    color: #1d4963;
    font-size: 1.249992vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 0.833328vw;
    padding-right: 2.77776vw;
  }
  .top_service_part_title h4::before {
    position: absolute;
    content: "";
    background-color: #1d4963;
    width: 0.138888vw;
    height: 2.222208vw;
    left: -1.805544vw;
    top: 0;
  }
  .top_service_part_title h4 .en {
    position: absolute;
    display: block;
    color: #d3d6d8;
    font-family: Outfit;
    font-size: 2.77776vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    bottom: 0;
    left: 0;
    z-index: -1;
  }
  .top_service_part_text {
    margin-bottom: 2.222208vw;
    min-height: 9.72216vw;
  }
  .top_service_part_text p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
}
@media (min-width: 1440px) {
  .top_service {
    padding-bottom: 623px;
  }
  .top_service_first {
    top: -120px;
    right: 120px;
  }
  .top_service_second {
    width: 520px;
    left: 120px;
    bottom: -380px;
  }
  .top_service_second img {
    width: 520px;
  }
  .top_service_part {
    width: 600px;
    padding: 40px 56px;
  }
  .top_service_part_title {
    margin-bottom: 40px;
  }
  .top_service_part_title .num {
    font-size: 72px;
    margin-right: 46px;
  }
  .top_service_part_title h4 {
    font-size: 18px;
    margin-bottom: 12px;
    z-index: 3;
    padding-right: 40px;
  }
  .top_service_part_title h4::before {
    width: 2px;
    height: 32px;
    left: -26px;
  }
  .top_service_part_title h4 .en {
    font-size: 40px;
  }
  .top_service_part_text {
    margin-bottom: 32px;
    min-height: 140px;
  }
  .top_service_part_text p {
    font-size: 16px;
  }
}
.top_request {
  position: relative;
  margin-top: -40.0005vw;
  padding-bottom: 40.0005vw;
}
.top_request_first {
  position: absolute;
  top: -21.3336vw;
  left: 32.0004vw;
  z-index: -1;
}
.top_request_first img {
  display: block;
  z-index: -1;
  object-fit: cover;
}
.top_request_part {
  padding: 10.6668vw 6.40008vw;
  background-color: #f8f9fc;
  z-index: 2;
  position: relative;
  transition-delay: 0.5s;
}
.top_request_part_title {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: flex-end;
  margin-bottom: 8.53344vw;
}
.top_request_part_title .num {
  color: #1d4963;
  font-family: Outfit;
  font-size: 10.6668vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-right: 10.6668vw;
}
.top_request_part_title h4 {
  color: #1d4963;
  font-size: 4.80006vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 1.60002vw;
  z-index: 3;
  padding-right: 3.73338vw;
}
.top_request_part_title h4::before {
  position: absolute;
  content: "";
  background-color: #1d4963;
  width: 2px;
  height: 32px;
  left: -26px;
  top: 0;
}
.top_request_part_title h4 .en {
  position: absolute;
  display: block;
  color: #d3d6d8;
  font-family: Outfit;
  font-size: 6.40008vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.top_request_part_text {
  margin-bottom: 8.53344vw;
}
.top_request_part_text p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .top_request {
    position: relative;
    margin-top: 0;
    padding-bottom: 10.4166vw;
  }
  .top_request_first {
    position: absolute;
    top: -6.458292vw;
    left: 8.33328vw;
    z-index: -1;
  }
  .top_request_first img {
    display: block;
    z-index: -1;
    width: 47.22192vw;
  }
  .top_request_part {
    width: 41.6664vw;
    padding: 2.77776vw 3.888864vw;
    margin-right: 0;
    margin-left: auto;
    background-color: #f8f9fc;
    z-index: 2;
    position: relative;
    transition-delay: 0.5s;
  }
  .top_request_part_title {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: flex-end;
    margin-bottom: 2.77776vw;
  }
  .top_request_part_title .num {
    color: #1d4963;
    font-family: Outfit;
    font-size: 4.999968vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    margin-right: 3.194424vw;
  }
  .top_request_part_title h4 {
    color: #1d4963;
    font-size: 1.249992vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 0.833328vw;
    z-index: 3;
    padding-right: 2.77776vw;
  }
  .top_request_part_title h4::before {
    position: absolute;
    content: "";
    background-color: #1d4963;
    width: 0.138888vw;
    height: 2.222208vw;
    left: -1.805544vw;
    top: 0;
  }
  .top_request_part_title h4 .en {
    position: absolute;
    display: block;
    color: #d3d6d8;
    font-family: Outfit;
    font-size: 2.77776vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    bottom: 0;
    left: 0;
    z-index: -1;
  }
  .top_request_part_text {
    margin-bottom: 2.222208vw;
    min-height: 9.72216vw;
  }
  .top_request_part_text p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
}
@media (min-width: 1440px) {
  .top_request {
    padding-bottom: 150px;
  }
  .top_request_first {
    top: -93px;
    left: 120px;
  }
  .top_request_first img {
    width: 680px;
  }
  .top_request_part {
    width: 600px;
    padding: 40px 56px;
  }
  .top_request_part_title {
    margin-bottom: 40px;
  }
  .top_request_part_title .num {
    font-size: 72px;
    margin-right: 46px;
  }
  .top_request_part_title h4 {
    font-size: 18px;
    margin-bottom: 12px;
    padding-right: 40px;
  }
  .top_request_part_title h4::before {
    width: 2px;
    height: 32px;
    left: -26px;
  }
  .top_request_part_title h4 .en {
    font-size: 40px;
  }
  .top_request_part_text {
    margin-bottom: 32px;
    min-height: 140px;
  }
  .top_request_part_text p {
    font-size: 16px;
  }
}

.about .page_top {
  background-image: url("../img/about/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.about_intro {
  padding: 0 0 32.0004vw;
}
.about_intro_title {
  color: #22232f;
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-right: 136px;
  margin-bottom: 6.40008vw;
}
.about_intro_title::after {
  position: absolute;
  content: "";
  background-color: #22232f;
  width: 4.26672vw;
  height: 0.53334vw;
  right: 66.6675vw;
  top: calc(50% - 1px);
}
.about_intro_txt p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 2.5;
  letter-spacing: 0.08em;
}
.about_intro_txt p span {
  background-color: #1d4963;
  display: inline-block;
  width: fit-content;
  color: #f8f9fc;
  font-size: 5.3334vw;
  font-weight: 700;
  padding: 0 6.40008vw;
  line-height: 2;
  margin: 2.13336vw;
  margin-left: 0;
  transition-delay: 0.1s;
}
.about_intro_txt p span.n2 {
  transition-delay: 0.2s;
}
.about_intro_txt p span.n3 {
  transition-delay: 0.3s;
}
@media (min-width: 769px) {
  .about_intro {
    padding: 0 0 10.4166vw;
  }
  .about_intro .inner {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: flex-start;
  }
  .about_intro_title {
    color: #22232f;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-right: 9.444384vw;
    margin-bottom: 0;
  }
  .about_intro_title::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
  .about_intro_txt {
    max-width: 53.332992vw;
  }
  .about_intro_txt p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.08em;
  }
  .about_intro_txt p span {
    background-color: #1d4963;
    display: inline-block;
    width: fit-content;
    color: #f8f9fc;
    font-size: 2.222208vw;
    font-weight: 700;
    padding: 0 1.666656vw;
    line-height: 2;
    margin: 0.555552vw 0.555552vw 0.555552vw 0;
    transition-delay: 0.1s;
  }
  .about_intro_txt p span.n2 {
    transition-delay: 0.2s;
  }
  .about_intro_txt p span.n3 {
    transition-delay: 0.3s;
  }
}
@media (min-width: 1440px) {
  .about_intro {
    padding: 0 0 150px;
  }
  .about_intro_title {
    font-size: 32px;
    margin-right: 136px;
  }
  .about_intro_title::after {
    width: 32px;
    height: 2px;
    right: -60px;
  }
  .about_intro_txt {
    max-width: 768px;
  }
  .about_intro_txt p {
    font-size: 16px;
  }
  .about_intro_txt p span {
    font-size: 32px;
    padding: 0 24px;
    margin: 8px 8px 8px 0;
  }
}
.about_inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin-bottom: 32.0004vw;
  position: relative;
}
.about_inner .half {
  width: 100%;
}
.about_inner_left {
  background-color: #1d4963;
  padding: 21.3336vw 5.3334vw 26.667vw;
}
.about_inner_right {
  width: fit-content !important;
  position: absolute;
  z-index: 4;
  right: 5.3334vw;
  bottom: 0vw;
}
.about_inner_right img {
  opacity: 0.2;
  width: 53.334vw;
  height: auto;
}
.about_inner_head {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: flex-end;
  margin-bottom: 10.6668vw;
}
.about_inner_head strong {
  color: #f8f9fc;
  font-family: "Outfit", sans-serif;
  font-size: 14.93352vw;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-right: 4.26672vw;
}
.about_inner_head .ja {
  color: #f8f9fc;
  font-size: 4.26672vw;
  letter-spacing: 0.08em;
  position: relative;
  z-index: 2;
  margin-bottom: 3.20004vw;
}
.about_inner_head .en {
  position: absolute;
  font-size: 10.6668vw;
  font-weight: 700;
  font-family: "Outfit", sans-serif;
  color: #102a39;
  bottom: -3.73338vw;
  left: 0;
  z-index: -1;
}
.about_inner_title {
  margin-bottom: 8.53344vw;
}
.about_inner_title h4 {
  font-size: 6.40008vw;
  color: #f8f9fc;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.about_inner_title h4 span {
  font-size: 4.26672vw;
  font-weight: 400;
  margin-left: 5.3334vw;
  margin-bottom: 4.26672vw;
  display: block;
}
.about_inner_txt p {
  font-size: 4.26672vw;
  color: #f8f9fc;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.about_inner_btn {
  display: flex;
  flex-direction: row;
  justify-content: right;
  margin-top: 17.06688vw;
}
.about_inner_btn div {
  position: relative;
  padding-left: 6.13341vw;
  padding-right: 6.13341vw;
}
.about_inner_btn div::before {
  position: absolute;
  content: "";
  width: 1px;
  height: 5.3334vw;
  background-color: #f8f9fc;
  left: 0;
  top: 0;
}
.about_inner_btn div:first-child::before {
  display: none;
}
.about_inner_btn input {
  position: relative;
  z-index: 5;
  font-size: 3.73338vw;
  font-family: "Outfit", sans-serif;
  font-weight: 700;
  color: #102a39;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .about_inner {
    display: flex;
    flex-direction: row;
    margin-bottom: 10.4166vw;
  }
  .about_inner .half {
    width: 50%;
  }
  .about_inner_left {
    background-color: #1d4963;
    padding: 8.33328vw 5.55552vw 11.944368vw 8.33328vw;
  }
  .about_inner_right {
    width: 50% !important;
    padding: 0 0 0 5.55552vw;
    position: relative;
    right: auto;
    bottom: auto;
    display: flex;
    align-items: center;
  }
  .about_inner_right img {
    width: 36.11088vw;
    opacity: 1;
  }
  .about_inner_head {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: flex-end;
    margin-bottom: 2.77776vw;
  }
  .about_inner_head strong {
    color: #f8f9fc;
    font-family: "Outfit", sans-serif;
    font-size: 6.666624vw;
    line-height: 1;
    letter-spacing: 0.08em;
    margin-right: 3.333312vw;
  }
  .about_inner_head .ja {
    color: #f8f9fc;
    font-size: 1.38888vw;
    letter-spacing: 0.08em;
    position: relative;
    z-index: 2;
    margin-bottom: 1.111104vw;
  }
  .about_inner_head .en {
    position: absolute;
    font-size: 3.888864vw;
    font-weight: 700;
    font-family: "Outfit", sans-serif;
    color: #102a39;
    bottom: -18px;
    left: 0;
    z-index: -1;
  }
  .about_inner_title {
    margin-bottom: 2.77776vw;
  }
  .about_inner_title h4 {
    font-size: 2.222208vw;
    color: #f8f9fc;
    font-weight: 700;
    letter-spacing: 0.08em;
  }
  .about_inner_title h4 span {
    font-size: 1.111104vw;
    font-weight: 400;
    margin-left: 1.944432vw;
    margin-bottom: 1.111104vw;
    display: block;
  }
  .about_inner_txt p {
    font-size: 1.111104vw;
    color: #f8f9fc;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
  .about_inner_btn {
    display: flex;
    flex-direction: row;
    justify-content: right;
    margin-top: 6.111072vw;
  }
  .about_inner_btn div {
    position: relative;
    padding-left: 1.597212vw;
    padding-right: 1.597212vw;
  }
  .about_inner_btn div::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 1.666656vw;
    background-color: #f8f9fc;
    left: 0;
    top: 0;
  }
  .about_inner_btn div:first-child::before {
    display: none;
  }
  .about_inner_btn input {
    font-size: 0.972216vw;
    font-family: "Outfit", sans-serif;
    font-weight: 700;
    color: #102a39;
    letter-spacing: 0.08em;
    transition: 0.5s ease;
  }
  .about_inner_btn input:hover {
    color: #f8f9fc;
  }
}
@media (min-width: 1440px) {
  .about_inner {
    margin-bottom: 150px;
  }
  .about_inner_left {
    padding: 120px 80px 172px 120px;
  }
  .about_inner_right {
    padding: 0 0 0 80px;
  }
  .about_inner_right img {
    width: 520px;
  }
  .about_inner_head {
    margin-bottom: 40px;
  }
  .about_inner_head strong {
    font-size: 96px;
    margin-right: 48px;
  }
  .about_inner_head .ja {
    font-size: 20px;
    margin-bottom: 16px;
  }
  .about_inner_head .en {
    font-size: 56px;
    bottom: -18px;
  }
  .about_inner_title {
    margin-bottom: 40px;
  }
  .about_inner_title h4 {
    font-size: 32px;
  }
  .about_inner_title h4 span {
    font-size: 16px;
    font-weight: 400;
    margin-left: 28px;
    margin-bottom: 16px;
    display: block;
  }
  .about_inner_txt p {
    font-size: 16px;
    letter-spacing: 0.08em;
  }
  .about_inner_btn {
    margin-top: 88px;
  }
  .about_inner_btn div {
    padding-left: 23px;
    padding-right: 23px;
  }
  .about_inner_btn div::before {
    height: 24px;
  }
  .about_inner_btn input {
    font-size: 14px;
  }
}
.about_company {
  padding-bottom: 40.0005vw;
}
.about_company_title {
  margin-bottom: 10.6668vw;
}
.about_company_title h3 {
  color: #22232f;
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
}
.about_company_part {
  border-bottom: 1px solid #737373;
  padding: 6.40008vw 2.13336vw;
}
.about_company_part:first-child {
  border-top: 1px solid #737373;
}
.about_company_part .label {
  display: block;
  text-align: left;
  color: #737373;
  font-size: 3.20004vw;
  position: relative;
  margin-bottom: 2.13336vw;
}
.about_company_part .content {
  text-align: left;
  font-size: 3.73338vw;
  line-height: 1.75;
}
@media (min-width: 769px) {
  .about_company {
    padding-bottom: 10.4166vw;
  }
  .about_company .container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
  }
  .about_company_title {
    margin-bottom: 0;
  }
  .about_company_title h3 {
    color: #22232f;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
  }
  .about_company_title h3::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
  .about_company_inner {
    width: 64.374588vw;
  }
  .about_company_part {
    display: flex;
    flex-direction: row;
    align-items: center;
    border-bottom: 1px solid #737373;
    padding: 0;
  }
  .about_company_part:first-child {
    border-top: 1px solid #737373;
  }
  .about_company_part .label {
    width: 22.083192vw;
    text-align: left;
    padding: 2.499984vw 0 2.499984vw 1.666656vw;
    color: #737373;
    font-size: 0.972216vw;
    position: relative;
    margin-bottom: 0;
  }
  .about_company_part .label:after {
    position: absolute;
    content: "";
    width: 1px;
    height: calc(100% - 4.999968vw);
    background-color: #737373;
    right: 0;
    top: 2.499984vw;
  }
  .about_company_part .content {
    text-align: left;
    font-size: 1.111104vw;
    line-height: 1.75;
    padding: 2.499984vw 0 2.499984vw 5.55552vw;
  }
}
@media (min-width: 1440px) {
  .about_company {
    padding-bottom: 150px;
  }
  .about_company_title h3 {
    font-size: 32px;
  }
  .about_company_title h3::after {
    width: 32px;
    height: 2px;
    right: -60px;
    top: calc(50% - 1px);
  }
  .about_company_inner {
    width: 927px;
  }
  .about_company_part .label {
    width: 318px;
    padding: 36px 0 36px 24px;
    font-size: 14px;
  }
  .about_company_part .label:after {
    height: calc(100% - 72px);
    top: 36px;
  }
  .about_company_part .content {
    font-size: 16px;
    padding: 36px 0 36px 80px;
  }
}

.service .page_top {
  background-image: url("../img/service/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.service_intro {
  background-color: #1d4963;
  padding: 21.3336vw 0;
}
.service_intro_title {
  color: #f8f9fc;
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 6.40008vw;
}
.service_intro_title::after {
  position: absolute;
  content: "";
  background-color: #f8f9fc;
  width: 4.26672vw;
  height: 0.26667vw;
  right: 53.334vw;
  top: calc(50% - 1px);
}
.service_intro_txt p {
  color: #f8f9fc;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
}
.service_intro_txt p span {
  background-color: #f8f9fc;
  display: inline-block;
  width: fit-content;
  color: #1d4963;
  font-size: 16px;
  font-weight: 700;
  padding: 0 24px;
  line-height: 2;
  margin: 4px 8px 4px 0;
}
@media (min-width: 769px) {
  .service_intro {
    background-color: #1d4963;
    padding: 5.55552vw 0 8.33328vw;
    margin-bottom: -2.77776vw;
  }
  .service_intro .inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .service_intro_title {
    color: #f8f9fc;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
  }
  .service_intro_title::after {
    position: absolute;
    content: "";
    background-color: #f8f9fc;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
  .service_intro_txt {
    max-width: 53.332992vw;
  }
  .service_intro_txt p {
    color: #f8f9fc;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.08em;
  }
  .service_intro_txt p span {
    background-color: #f8f9fc;
    display: inline-block;
    width: fit-content;
    color: #1d4963;
    font-size: 1.111104vw;
    font-weight: 700;
    padding: 0 1.666656vw;
    line-height: 2;
    margin: 0.277776vw 0.555552vw 0.277776vw 0;
  }
}
@media (min-width: 1440px) {
  .service_intro {
    padding: 80px 0 120px;
    margin-bottom: -40px;
  }
  .service_intro_title {
    font-size: 32px;
  }
  .service_intro_title::after {
    width: 32px;
    height: 2px;
    right: -60px;
  }
  .service_intro_txt {
    max-width: 768px;
  }
  .service_intro_txt p {
    font-size: 16px;
  }
  .service_intro_txt p span {
    font-size: 16px;
    padding: 0 24px;
    margin: 4px 8px 4px 0;
  }
}
.service_inner .container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0 0 40.0005vw 0;
}
.service_inner_part {
  width: 100%;
  padding: 10.6668vw 5.3334vw 21.3336vw;
  background-color: #f8f9fc;
}
.service_inner_part_title {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: flex-end;
  margin-bottom: 10.6668vw;
}
.service_inner_part_title .num {
  color: #1d4963;
  font-family: Outfit;
  font-size: 10.6668vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-right: 3.73338vw;
}
.service_inner_part_title h4 {
  color: #1d4963;
  font-size: 3.73338vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 2.13336vw;
  z-index: 3;
}
.service_inner_part_title h4::before {
  position: absolute;
  content: "";
  background-color: #1d4963;
  width: 0.26667vw;
  height: 6.66675vw;
  left: -2.13336vw;
  top: 0;
}
.service_inner_part_title h4 .en {
  position: absolute;
  color: #d3d6d8;
  font-family: Outfit;
  font-size: 7.46676vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.service_inner_part_text {
  margin-bottom: 6.40008vw;
}
.service_inner_part_text p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .service_inner .container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    padding-bottom: 10.4166vw;
  }
  .service_inner_part {
    width: 50%;
    padding: 2.77776vw 3.888864vw;
    background-color: #f8f9fc;
  }
  .service_inner_part_title {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: flex-end;
    margin-bottom: 2.77776vw;
  }
  .service_inner_part_title .num {
    color: #1d4963;
    font-family: Outfit;
    font-size: 4.999968vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    margin-right: 3.194424vw;
  }
  .service_inner_part_title h4 {
    color: #1d4963;
    font-size: 1.249992vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 0.833328vw;
    z-index: 3;
  }
  .service_inner_part_title h4::before {
    position: absolute;
    content: "";
    background-color: #1d4963;
    width: 0.138888vw;
    height: 2.222208vw;
    left: -1.805544vw;
    top: 0;
  }
  .service_inner_part_title h4 .en {
    position: absolute;
    color: #d3d6d8;
    font-family: Outfit;
    font-size: 2.77776vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    bottom: 0;
    left: 0;
    z-index: -1;
  }
  .service_inner_part_text {
    margin-bottom: 2.222208vw;
    min-height: 9.72216vw;
  }
  .service_inner_part_text p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
  .service_inner_part.n1 {
    transition-delay: 0.1s;
  }
  .service_inner_part.n2 {
    transition-delay: 0.3s;
  }
  .service_inner_part.n3 {
    transition-delay: 0.1s;
  }
  .service_inner_part.n4 {
    transition-delay: 0.3s;
  }
}
@media (min-width: 1440px) {
  .service_inner .container {
    padding-bottom: 150px;
  }
  .service_inner_part {
    width: 50%;
    padding: 40px 56px;
  }
  .service_inner_part_title {
    margin-bottom: 40px;
  }
  .service_inner_part_title .num {
    font-size: 72px;
    margin-right: 46px;
  }
  .service_inner_part_title h4 {
    font-size: 18px;
    margin-bottom: 12px;
  }
  .service_inner_part_title h4::before {
    width: 2px;
    height: 32px;
    left: -26px;
  }
  .service_inner_part_title h4 .en {
    font-size: 40px;
  }
  .service_inner_part_text {
    margin-bottom: 32px;
    min-height: 140px;
  }
  .service_inner_part_text p {
    font-size: 16px;
  }
}

.service_page .page_top {
  background-image: url("../img/service/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.service_page_intro .inner {
  padding: 0 0 21.3336vw;
}
.service_page_intro p {
  text-align: center;
  font-size: 3.73338vw;
  letter-spacing: 0.08em;
  line-height: 2;
}
@media (min-width: 769px) {
  .service_page_intro .inner {
    padding: 0 0 10.4166vw;
  }
  .service_page_intro p {
    text-align: center;
    font-size: 1.38888vw;
    letter-spacing: 0.08em;
    line-height: 2;
  }
}
@media (min-width: 1440px) {
  .service_page_intro .inner {
    padding: 0 0 150px;
  }
  .service_page_intro p {
    font-size: 20px;
  }
}
.service_page_lead {
  background-color: #1d4963;
  margin-bottom: 21.3336vw;
}
.service_page_lead .inner {
  padding: 10.6668vw 0;
}
.service_page_lead .inner h3 {
  display: block;
  width: fit-content;
  font-size: 4.80006vw;
  font-weight: 700;
  color: #1d4963;
  padding: 1.06668vw 3.20004vw;
  letter-spacing: 0.08em;
  background-color: #f8f9fc;
  margin-bottom: 6.40008vw;
}
.service_page_lead .inner p {
  font-size: 3.73338vw;
  color: #f8f9fc;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .service_page_lead {
    background-color: #1d4963;
    margin-bottom: 10.4166vw;
  }
  .service_page_lead .inner {
    padding: 5.55552vw 0;
  }
  .service_page_lead .inner h3 {
    display: block;
    width: fit-content;
    font-size: 2.222208vw;
    font-weight: 700;
    color: #1d4963;
    padding: 0.555552vw 1.666656vw;
    letter-spacing: 0.08em;
    background-color: #f8f9fc;
    margin-bottom: 2.77776vw;
  }
  .service_page_lead .inner p {
    font-size: 1.111104vw;
    color: #f8f9fc;
    line-height: 2;
    letter-spacing: 0.08em;
  }
}
@media (min-width: 1440px) {
  .service_page_lead {
    margin-bottom: 150px;
  }
  .service_page_lead .inner {
    padding: 80px 0;
  }
  .service_page_lead .inner h3 {
    font-size: 32px;
    padding: 8px 24px;
    margin-bottom: 40px;
  }
  .service_page_lead .inner p {
    font-size: 16px;
  }
}
.service_page_inner .inner {
  position: relative;
  padding-top: 21.3336vw;
  padding-bottom: 80.001vw;
}
.service_page_inner_title {
  color: #22232f;
  font-size: 6.40008vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: fit-content;
}
.service_page_inner_title::after {
  position: absolute;
  content: "";
  background-color: #22232f;
  width: 4.26672vw;
  height: 0.53334vw;
  right: 66.6675vw;
  top: calc(50% - 1px);
}
@media (min-width: 769px) {
  .service_page_inner .inner {
    position: relative;
    padding-top: 0;
    padding-bottom: 25.972056vw;
  }
  .service_page_inner_title {
    color: #22232f;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: fit-content;
  }
  .service_page_inner_title::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
}
@media (min-width: 1440px) {
  .service_page_inner .inner {
    padding-bottom: 374px;
  }
  .service_page_inner_title {
    font-size: 32px;
  }
  .service_page_inner_title::after {
    width: 32px;
    height: 2px;
    right: -60px;
  }
}
.service_page_part {
  padding: 6.40008vw 6.40008vw;
  background-color: #f8f9fc;
  position: relative;
}
.service_page_part_title {
  margin-bottom: 4.26672vw;
}
.service_page_part_title .point {
  display: block;
  font-family: "Outfit", sans-serif;
  color: #1d4963;
  font-size: 4.26672vw;
  letter-spacing: 0.08em;
  margin-right: 4.26672vw;
}
.service_page_part_title .point strong {
  font-family: "Outfit", sans-serif;
  font-size: 6.40008vw;
  letter-spacing: 0.08em;
}
.service_page_part_title .title {
  color: #1d4963;
  font-size: 4.26672vw;
}
.service_page_part_txt p {
  font-size: 3.73338vw;
  letter-spacing: 0.08em;
  line-height: 1.75;
}
.service_page_part_img {
  position: absolute;
  z-index: -1;
}
.service_page_part_img.img01 {
  width: 80vw;
  left: 0;
  bottom: -53.334vw;
}
.service_page_part_img.img01 img {
  object-fit: cover;
}
.service_page_part_img.img02 {
  width: 80vw;
  bottom: -53.334vw;
}
.service_page_part_img.img02 img {
  object-fit: cover;
}
.service_page_part_img.img03 {
  width: 80vw;
  left: 0;
  bottom: -106.668vw;
}
.service_page_part_img.img03 img {
  object-fit: cover;
}
.service_page_part.part01 {
  margin-bottom: 66.6675vw;
}
.service_page_part.part02 {
  margin-bottom: 66.6675vw;
}
.service_page_part.right {
  margin-left: auto;
  margin-right: 0;
}
@media (min-width: 769px) {
  .service_page_part {
    padding: 2.77776vw 3.888864vw;
    width: 46.110816vw;
    position: relative;
  }
  .service_page_part_title {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: center;
    margin-bottom: 1.666656vw;
  }
  .service_page_part_title .point {
    font-family: "Outfit", sans-serif;
    color: #1d4963;
    font-size: 1.666656vw;
    letter-spacing: 0.08em;
    margin-right: 3.333312vw;
  }
  .service_page_part_title .point strong {
    font-family: "Outfit", sans-serif;
    font-size: 2.77776vw;
    letter-spacing: 0.08em;
  }
  .service_page_part_title .title {
    color: #1d4963;
    font-size: 1.249992vw;
  }
  .service_page_part_txt p {
    font-size: 1.111104vw;
    letter-spacing: 0.08em;
    line-height: 1.75;
  }
  .service_page_part_img {
    position: absolute;
    z-index: -1;
  }
  .service_page_part_img.img01 {
    bottom: -10.555488vw;
    left: -31.666464vw;
    width: 35.41644vw;
  }
  .service_page_part_img.img02 {
    bottom: auto;
    top: -2.77776vw;
    right: -31.666464vw;
    width: 35.41644vw;
  }
  .service_page_part_img.img03 {
    bottom: auto;
    top: -2.77776vw;
    left: -26.110944vw;
    width: 32.777568vw;
  }
  .service_page_part.part01 {
    margin-bottom: 23.749848vw;
  }
  .service_page_part.part02 {
    margin-bottom: 9.583272vw;
  }
  .service_page_part.right {
    margin-left: auto;
    margin-right: 0;
  }
}
@media (min-width: 1440px) {
  .service_page_part {
    padding: 40px 56px;
    width: 664px;
  }
  .service_page_part_title {
    margin-bottom: 24px;
  }
  .service_page_part_title .point {
    font-size: 24px;
    margin-right: 48px;
  }
  .service_page_part_title .point strong {
    font-size: 40px;
  }
  .service_page_part_title .title {
    font-size: 18px;
  }
  .service_page_part_txt p {
    font-size: 16px;
  }
  .service_page_part_img.img01 {
    bottom: -152px;
    left: -456px;
    width: 510px;
  }
  .service_page_part_img.img02 {
    top: -40px;
    right: -456px;
    width: 510px;
  }
  .service_page_part_img.img03 {
    top: -40px;
    left: -376px;
    width: 472px;
  }
  .service_page_part.part01 {
    margin-bottom: 342px;
  }
  .service_page_part.part02 {
    margin-bottom: 138px;
  }
}

.news .page_top {
  background-image: url("../img/news/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.news_content {
  margin-top: 32.0004vw;
}
@media (min-width: 769px) {
  .news_content {
    margin-top: 4.86108vw;
  }
  .news_content .container .inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
  }
}
@media (min-width: 1440px) {
  .news_content {
    margin-top: 70px;
  }
}
.news_cat {
  margin-bottom: 17.06688vw;
  transition-delay: 0.1s;
}
@media (min-width: 769px) {
  .news_cat {
    margin-bottom: 0;
  }
}
.news_cat_title {
  color: #22232f;
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 10.6668vw;
}
.news_cat_title::after {
  position: absolute;
  content: "";
  background-color: #22232f;
  width: 32px;
  height: 2px;
  right: -56px;
  top: calc(50% - 1px);
}
@media (min-width: 769px) {
  .news_cat_title {
    color: #22232f;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 2.77776vw;
  }
  .news_cat_title::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -3.888864vw;
    top: calc(50% - 1px);
  }
}
@media (min-width: 1440px) {
  .news_cat_title {
    font-size: 26px;
    margin-bottom: 40px;
  }
  .news_cat_title::after {
    width: 32px;
    height: 2px;
    right: -56px;
    top: calc(50% - 1px);
  }
}
.news_cat_cat {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 24px;text-transform: uppercase;
}
@media (min-width: 769px) {
  .news_cat_cat {
    font-size: 0.972216vw;
    margin-bottom: 1.666656vw;
  }
}
@media (min-width: 1440px) {
  .news_cat_cat {
    color: #22232f;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 24px;
  }
}
.news_cat ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
@media (min-width: 769px) {
  .news_cat ul {
    display: block;
  }
}
.news_cat ul li {
  padding: 1.06668vw 7.46676vw;
  border-radius: 6.40008vw;
  margin-right: 2.13336vw;
  margin-bottom: 2.13336vw;
  width: fit-content;
  position: relative;
  line-height: 1;
  border: solid 1px #22232f;
}
@media (min-width: 769px) {
  .news_cat ul li {
    padding: 0.277776vw 1.944432vw;
    border-radius: 2.222208vw;
    margin-right: 0;
    margin-bottom: 1.111104vw;
    transition: all 0.5s ease;
  }
  .news_cat ul li:hover {
    opacity: 0.6;
  }
}
@media (min-width: 1440px) {
  .news_cat ul li {
    padding: 8px 24px;
    border-radius: 100px;
    margin-bottom: 8px;
  }
}
.news_cat ul li.all {
  background-color: #22232f;
}
.news_cat ul li.all span {
  color: #f8f9fc;
}
.news_cat ul li a {
  width: 100%;
  height: 100%;
  border-radius: 3.20004vw;
  top: 0;
  left: 0;
  position: absolute;
  line-height: 1;
  z-index: 2;
}
@media (min-width: 769px) {
  .news_cat ul li a {
    border-radius: 1.04166vw;
  }
}
@media (min-width: 1440px) {
  .news_cat ul li a {
    border-radius: 15px;
  }
}
.news_cat ul li span {
  font-size: 3.73338vw;
  color: #22232f;
  line-height: 1;
}
@media (min-width: 769px) {
  .news_cat ul li span {
    font-size: 0.972216vw;
  }
}
@media (min-width: 1440px) {
  .news_cat ul li span {
    font-size: 14px;
  }
}
.news_list {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 17.06688vw;
  transition-delay: 0.5s;
}
@media (min-width: 769px) {
  .news_list {
    width: 53.332992vw;
    margin-bottom: 10.4166vw;
  }
}
@media (min-width: 1440px) {
  .news_list {
    width: 768px;
    margin-bottom: 150px;
  }
}
.news_post {
  width: 100%;
  margin-bottom: 10.6668vw;
  position: relative;
}
@media (min-width: 769px) {
  .news_post {
    width: 25.277616vw;
    margin-bottom: 2.77776vw;
    transition: all 0.5s ease;
  }
}
@media (min-width: 1440px) {
  .news_post {
    width: 364px;
    margin-bottom: 40px;
  }
}
.news_post:hover {
  opacity: 0.6;
}
.news_post_link {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}
.news_post_thumb {
  position: relative;
}
.news_post_thumb img {
  width: 100%;
  height: 60.80076vw;
  object-fit: contain;
  border-radius: 1.06668vw;
}
@media (min-width: 769px) {
  .news_post_thumb img {
    height: 14.23602vw;
    border-radius: 0.277776vw;
  }
}
@media (min-width: 1440px) {
  .news_post_thumb img {
    height: 205px;
    border-radius: 4px;
  }
}
.news_post_info {
  padding: 24px;
  padding-bottom: 72px;
  border-bottom: solid 1px #22232f;
  position: relative;
}
.news_post_info_up {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: center;
  margin-bottom: 8px;
}
.news_post_info::after {
  position: absolute;
  right: 24px;
  bottom: 24px;
  content: "";
  width: 32px;
  height: 32px;
  background-image: url("../img/common/arrow_nv.svg");
  background-size: contain;
}
@media (min-width: 769px) {
  .news_post_info {
    padding: 1.666656vw;
    padding-bottom: 4.999968vw;
    border-bottom: solid 1px #22232f;
    position: relative;
  }
  .news_post_info_up {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: center;
    margin-bottom: 0.555552vw;
  }
  .news_post_info::after {
    position: absolute;
    right: 1.666656vw;
    bottom: 1.666656vw;
    content: "";
    width: 2.222208vw;
    height: 2.222208vw;
    background-image: url("../img/common/arrow_nv.svg");
    background-size: contain;
  }
}
@media (min-width: 1440px) {
  .news_post_info {
    padding: 24px;
    padding-bottom: 72px;
  }
  .news_post_info_up {
    margin-bottom: 8px;
  }
  .news_post_info::after {
    right: 24px;
    bottom: 24px;
    width: 32px;
    height: 32px;
  }
}
.news_post_date {
  margin-right: 24px;
}
.news_post_date span {
  font-size: 14px;
  color: #bbbbbb;
}
@media (min-width: 769px) {
  .news_post_date {
    margin-right: 1.666656vw;
  }
  .news_post_date span {
    font-size: 0.972216vw;
  }
}
@media (min-width: 1440px) {
  .news_post_date {
    margin-right: 24px;
  }
  .news_post_date span {
    font-size: 14px;
  }
}
.news_post_cat {
  padding: 1.06668vw 7.46676vw;
  border-radius: 3.73338vw;
  width: fit-content;
  font-size: 3.73338vw;
  border: solid 1px #22232f;
  line-height: 1;
  color: #22232f;
}
@media (min-width: 769px) {
  .news_post_cat {
    padding: 0.555552vw 1.666656vw;
    border-radius: 2.222208vw;
    font-size: 0.972216vw;
  }
}
@media (min-width: 1440px) {
  .news_post_cat {
    padding: 8px 24px;
    border-radius: 32px;
    font-size: 14px;
  }
}
.news_post_tit {
  margin-bottom: 16px;
}
.news_post_tit h5 {
  font-size: 4.26672vw;
  line-height: 1.5;
}
@media (min-width: 769px) {
  .news_post_tit h5 {
    font-size: 1.38888vw;
  }
}
@media (min-width: 1440px) {
  .news_post_tit h5 {
    font-size: 20px;
  }
}
.news_post_ex p {
  font-size: 14px;
  line-height: 175%;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .news_post_ex p {
    font-size: 0.972216vw;
  }
}
@media (min-width: 1440px) {
  .news_post_ex p {
    font-size: 14px;
  }
}
.news_paginate {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  margin-top: 8.53344vw;
}
@media (min-width: 769px) {
  .news_paginate {
    margin-top: 2.77776vw;
  }
}
@media (min-width: 1440px) {
  .news_paginate {
    margin-top: 40px;
  }
}
.news_paginate .page-numbers {
  display: block;
  width: 10.6668vw;
  height: 10.6668vw;
  font-size: 3.73338vw;
  text-align: center;
  line-height: 2.75;
  border-radius: 5.3334vw;
  background-color: #f8f9fc;
  color: #737373;
  border: solid 1px #737373;
  font-family: "Outfit", sans-serif;
  margin: 0 1.06668vw;
}
.news_paginate .page-numbers.current {
  background-color: #f0f1f1;
}
.news_paginate .page-numbers:hover {
  background-color: #f0f1f1;
  opacity: 1;
}
@media (min-width: 769px) {
  .news_paginate .page-numbers {
    width: 3.333312vw;
    height: 3.333312vw;
    font-size: 1.111104vw;
    line-height: 3;
    border-radius: 1.666656vw;
    margin: 0 0.833328vw;
  }
}
@media (min-width: 1440px) {
  .news_paginate .page-numbers {
    width: 48px;
    height: 48px;
    font-size: 16px;
    border-radius: 24px;
    margin: 0 12px;
  }
}

/* container */
.container_single {
  margin: 0 auto;
  padding: 0 4.26672vw;
}
@media (min-width: 769px) {
  .container_single {
    width: 62.4996vw;
    padding: 0;
  }
}
@media (min-width: 1440px) {
  .container_single {
    width: 900px;
  }
}

.single {
  margin-bottom: 40.0005vw;
}
.single .page_top {
  background-image: url("../img/news/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.single_title {
  margin-bottom: 9.60012vw;
}
.single_title h2 {
  font-size: 6.40008vw;
  line-height: 1.5;
  margin-bottom: 4.26672vw;
}
.single_cat {
  color: #22232f;
  display: block;
  width: fit-content;
  font-size: 3.73338vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  padding: 1.06668vw 7.46676vw;
  border-radius: 6.40008vw;
  margin-right: 2.13336vw;
  margin-bottom: 2.13336vw;
  border: solid 1px #22232f;
}
.single_cat span {
  color: #22232f;
  font-size: 3.73338vw;
}
.single_tag span {
  color: #d1d3d4;
  font-size: 3.73338vw;
}
.single_thumb {
  margin-bottom: 10.6668vw;
  width: 100%;
  height: auto;
}
.single_thumb img {
  width: 100%;
  height: auto;
}
.single_content {
  margin-bottom: 10.6668vw;
}
.single_content h3 {
  font-size: 5.3334vw;
  line-height: 1.5;
  margin-bottom: 6.40008vw;
}
.single_content h4 {
  font-size: 4.80006vw;
  line-height: 1.5;
  margin-bottom: 6.40008vw;
}
.single_content p {
  font-size: 3.73338vw;
  line-height: 1.75;
  margin-bottom: 10.6668vw;
}
.single_content img {
  width: 100%;
  height: auto;
  margin: 0 auto 10.6668vw;
}
@media (min-width: 769px) {
  .single {
    padding-top: 0;
    margin-bottom: 10.4166vw;
  }
  .single .container_inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .single_title {
    margin-bottom: 2.77776vw;
  }
  .single_title h2 {
    font-size: 1.666656vw;
    margin-bottom: 2.77776vw;
  }
  .single_cat {
    padding: 0.277776vw 1.944432vw;
    border-radius: 1.38888vw;
    margin-bottom: 0.555552vw;
    font-size: 1.111104vw;
    line-height: 1.75;
  }
  .single_cat span {
    font-size: 1.111104vw;
  }
  .single_tag span {
    font-size: 1.111104vw;
  }
  .single_thumb {
    margin-bottom: 1.666656vw;
  }
  .single_content {
    margin-bottom: 5.55552vw;
  }
  .single_content article {
    width: 53.332992vw;
  }
  .single_content h3 {
    font-size: 1.666656vw;
    margin-bottom: 1.666656vw;
  }
  .single_content h4 {
    font-size: 1.38888vw;
    margin-bottom: 1.666656vw;
  }
  .single_content p {
    font-size: 1.111104vw;
    line-height: 1.75;
    margin-bottom: 2.77776vw;
  }
  .single_content img {
    width: 55.5552vw;
    margin: 0 auto 5.55552vw;
  }
}
@media (min-width: 1440px) {
  .single {
    margin-bottom: 150px;
  }
  .single_title {
    margin-bottom: 40px;
  }
  .single_title h2 {
    font-size: 24px;
    margin-bottom: 40px;
  }
  .single_cat {
    padding: 4px 28px;
    border-radius: 20px;
    margin-bottom: 8px;
  }
  .single_cat span {
    font-size: 14px;
  }
  .single_tag span {
    font-size: 16px;
  }
  .single_thumb {
    margin-bottom: 24px;
  }
  .single_content {
    margin-bottom: 80px;
  }
  .single_content article {
    width: 768px;
  }
  .single_content h3 {
    font-size: 24px;
    margin-bottom: 24px;
  }
  .single_content h4 {
    font-size: 20px;
    margin-bottom: 24px;
  }
  .single_content p {
    font-size: 16px;
    margin-bottom: 40px;
  }
  .single_content img {
    width: 800px;
    margin: 0 auto 80px;
  }
}

.single_back {
  display: block;
  width: fit-content;
  background-color: #1d4963;
  border-radius: 28px;
  transition-delay: 1.3s;
  margin: 0 auto;
}
.single_back a {
  color: #f8f9fc;
  display: block;
  padding: 2.13336vw 10.6668vw 2.13336vw 7.46676vw;
  width: 100%;
  height: 100%;
  font-size: 3.73338vw;
  letter-spacing: 0.08em;
  position: relative;
}
.single_back a::before {
  position: absolute;
  content: "";
  width: 24px;
  height: 24px;
  top: calc(50% - 12px);
  right: 16px;
  background-image: url("../img/common/arrow.svg");
  background-size: contain;
}
@media (min-width: 769px) {
  .single_back {
    display: block;
    width: fit-content;
    background-color: #1d4963;
    border-radius: 1.944432vw;
    transition-delay: 1.3s;
  }
  .single_back a {
    display: block;
    padding: 1.111104vw 4.999968vw 1.111104vw 3.333312vw;
    width: 100%;
    height: 100%;
    font-size: 1.111104vw;
    letter-spacing: 0.08em;
    position: relative;
  }
  .single_back a::before {
    position: absolute;
    content: "";
    width: 1.666656vw;
    height: 1.666656vw;
    top: calc(50% - 0.833328vw);
    right: 1.111104vw;
    background-size: contain;
  }
}
@media (min-width: 1440px) {
  .single_back {
    border-radius: 28px;
  }
  .single_back a {
    padding: 16px 72px 16px 48px;
    font-size: 16px;
  }
  .single_back a::before {
    width: 24px;
    height: 24px;
    top: calc(50% - 12px);
    right: 16px;
  }
}

.request .page_top {
  background-image: url("../img/contact/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}

.request-confirm .page_top {
  background-image: url("../img/contact/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.request-confirm .contact_form_part p {
  display: flex;
  flex-direction: row;
  font-size: 16px;
}
.request-confirm .contact_form_part p input {
  margin: 0 20px;
}

.contact-confirm .page_top {
  background-image: url("../img/contact/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.contact-confirm .contact_form_part p {
  display: flex;
  flex-direction: row;
  font-size: 16px;
}
.contact-confirm .contact_form_part p input {
  margin: 0 20px;
}

.contact .page_top,
.request .page_top {
  background-image: url("../img/contact/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.contact_intro,
.request_intro {
  padding: 0 0 21.3336vw;
}
.contact_intro_title,
.request_intro_title {
  color: #22232f;
  position: relative;
  display: inline-block;
  width: fit-content;
  margin-bottom: 6.40008vw;
}
.contact_intro_title h3,
.request_intro_title h3 {
  display: inline-block;
  width: fit-content;
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.contact_intro_title::after,
.request_intro_title::after {
  position: absolute;
  content: "";
  background-color: #22232f;
  width: 4.26672vw;
  height: 0.53334vw;
  right: -6.40008vw;
  top: calc(50% - 1px);
}
.contact_intro_txt p,
.request_intro_txt p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (min-width: 769px) {
  .contact_intro,
  .request_intro {
    padding: 0 0 6.9444vw;
  }
  .contact_intro .inner,
  .request_intro .inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .contact_intro_title,
  .request_intro_title {
    color: #22232f;
    position: relative;
    margin-bottom: 0;
  }
  .contact_intro_title h3,
  .request_intro_title h3 {
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
  .contact_intro_title::after,
  .request_intro_title::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
  .contact_intro_txt,
  .request_intro_txt {
    max-width: 48.6108vw;
  }
  .contact_intro_txt p,
  .request_intro_txt p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.08em;
  }
}
@media (min-width: 1440px) {
  .contact_intro,
  .request_intro {
    padding: 0 0 100px;
  }
  .contact_intro_title h3,
  .request_intro_title h3 {
    font-size: 32px;
  }
  .contact_intro_title::after,
  .request_intro_title::after {
    width: 32px;
    height: 2px;
    right: -60px;
    top: calc(50% - 1px);
  }
  .contact_intro_txt,
  .request_intro_txt {
    max-width: 700px;
  }
  .contact_intro_txt p,
  .request_intro_txt p {
    font-size: 16px;
  }
}
.contact_flow,
.request_flow {
  margin-bottom: 21.3336vw;
}
.contact_flow .container,
.request_flow .container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  width: 89.33445vw;
  padding: 0;
}
.contact_flow .container::after,
.request_flow .container::after {
  position: absolute;
  width: 100%;
  height: 1px;
  content: "";
  background-color: #22232f;
  top: 6.40008vw;
  left: 0;
  z-index: -1;
}
.contact_flow .container .part .num,
.request_flow .container .part .num {
  text-align: center;
  display: block;
  margin: 0 auto 6.40008vw;
  font-size: 3.20004vw;
  letter-spacing: 0.08em;
  color: #f8f9fc;
  font-family: "Outfit", sans-serif;
  width: 8.53344vw;
  height: 8.53344vw;
  line-height: 8.53344vw;
  background-color: #1d4963;
  border-radius: 4.26672vw;
}
.contact_flow .container .part .txt,
.request_flow .container .part .txt {
  display: block;
  font-size: 3.73338vw;
  color: #737373;
  letter-spacing: 0.08em;
  line-height: 1;
}
.contact_flow .container .part.active .num,
.request_flow .container .part.active .num {
  font-size: 4.26672vw;
  width: 12.80016vw;
  height: 12.80016vw;
  line-height: 12.80016vw;
  border-radius: 6.40008vw;
  margin-bottom: 4.26672vw;
}
.contact_flow .container .part.active .txt,
.request_flow .container .part.active .txt {
  font-size: 3.73338vw;
  color: #22232f;
  letter-spacing: 0.08em;
  line-height: 1;
}
@media (min-width: 769px) {
  .contact_flow,
  .request_flow {
    margin-bottom: 5.55552vw;
  }
  .contact_flow .container,
  .request_flow .container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    position: relative;
    width: 41.458068vw;
  }
  .contact_flow .container::after,
  .request_flow .container::after {
    position: absolute;
    width: 100%;
    height: 1px;
    content: "";
    background-color: #22232f;
    top: 1.666656vw;
    left: 0;
    z-index: -1;
  }
  .contact_flow .container .part .num,
  .request_flow .container .part .num {
    text-align: center;
    display: block;
    margin: 0 auto 1.666656vw;
    font-size: 0.833328vw;
    letter-spacing: 0.08em;
    color: #f8f9fc;
    font-family: "Outfit", sans-serif;
    width: 2.222208vw;
    height: 2.222208vw;
    line-height: 2.222208vw;
    background-color: #1d4963;
    border-radius: 1.111104vw;
    margin-bottom: 1.666656vw;
  }
  .contact_flow .container .part .txt,
  .request_flow .container .part .txt {
    display: block;
    font-size: 0.972216vw;
    color: #737373;
    letter-spacing: 0.08em;
    line-height: 1;
  }
  .contact_flow .container .part.active .num,
  .request_flow .container .part.active .num {
    font-size: 1.111104vw;
    width: 3.333312vw;
    height: 3.333312vw;
    line-height: 3.333312vw;
    border-radius: 1.666656vw;
    margin-bottom: 1.111104vw;
  }
  .contact_flow .container .part.active .txt,
  .request_flow .container .part.active .txt {
    font-size: 0.972216vw;
    color: #22232f;
    letter-spacing: 0.08em;
    line-height: 1;
  }
}
@media (min-width: 1440px) {
  .contact_flow,
  .request_flow {
    margin-bottom: 80px;
  }
  .contact_flow .container,
  .request_flow .container {
    width: 597px;
  }
  .contact_flow .container::after,
  .request_flow .container::after {
    height: 1px;
    top: 24px;
  }
  .contact_flow .container .part .num,
  .request_flow .container .part .num {
    margin: 0 auto 24px;
    font-size: 12px;
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 16px;
    margin-bottom: 24px;
  }
  .contact_flow .container .part .txt,
  .request_flow .container .part .txt {
    font-size: 14px;
  }
  .contact_flow .container .part.active .num,
  .request_flow .container .part.active .num {
    font-size: 16px;
    width: 48px;
    height: 48px;
    line-height: 48px;
    border-radius: 24px;
    margin-bottom: 16px;
  }
  .contact_flow .container .part.active .txt,
  .request_flow .container .part.active .txt {
    font-size: 14px;
  }
}
.contact_inner,
.request_inner {
  padding-bottom: 150px;
}
@media (min-width: 769px) {
  .contact_inner,
  .request_inner {
    padding-bottom: 10.4166vw;
  }
}
@media (min-width: 1440px) {
  .contact_inner,
  .request_inner {
    padding-bottom: 150px;
  }
}
.contact_form_part,
.request_form_part {
  margin-bottom: 8.53344vw;
}
.contact_form_part_label,
.request_form_part_label {
  margin-bottom: 2.6667vw;
}
.contact_form_part_label p,
.request_form_part_label p {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: center;
  position: relative;
}
.contact_form_part_label p .label,
.request_form_part_label p .label {
  font-size: 3.73338vw;
  letter-spacing: 0.08em;
  margin-right: 10.6668vw;
}
.contact_form_part_label p .red,
.request_form_part_label p .red {
  padding: 1.06668vw 2.13336vw;
  border: solid 1px #d83434;
  color: #d83434;
  font-size: 3.20004vw;
  letter-spacing: 0.08em;
}
.contact_form_part_area input,
.contact_form_part_area textarea,
.request_form_part_area input,
.request_form_part_area textarea {
  border: solid 1px #22232f;
  width: 100%;
  font-size: 3.73338vw;
  line-height: 1.75;
  letter-spacing: 0.08em;
  padding: 4.26672vw;
}
.contact_form_part_area .wpcf7-not-valid-tip,
.request_form_part_area .wpcf7-not-valid-tip {
  font-size: 3.73338vw;
  font-weight: 500;
  letter-spacing: 0.08em;
  padding: 2.13336vw;
}
.contact_form_part.privacy,
.request_form_part.privacy {
  margin-top: 21.3336vw;
}
.contact_form_part.privacy p,
.request_form_part.privacy p {
  margin: 0 auto;
  display: block;
  width: fit-content;
  padding-bottom: 2.13336vw;
  border-bottom: 1px solid #22232f;
}
.contact_form_part.accept,
.request_form_part.accept {
  margin-top: 10.6668vw;
}
.contact_form_part.accept p,
.request_form_part.accept p {
  margin: 0 auto;
}
.contact_form_part.submit p,
.request_form_part.submit p {
  width: fit-content;
  margin: 0 auto;
}
.contact_form_part.submit input,
.request_form_part.submit input {
  padding: 4.26672vw 19.20024vw;
  width: fit-content;
  background-color: #1d4963;
  border-radius: 7.46676vw;
  color: #f8f9fc;
}
.contact_form_part.submit span,
.request_form_part.submit span {
  display: none;
}
@media (min-width: 769px) {
  .contact_form_part,
  .request_form_part {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2.77776vw;
  }
  .contact_form_part_label,
  .request_form_part_label {
    width: 12.84714vw;
    margin-bottom: 0;
  }
  .contact_form_part_label p,
  .request_form_part_label p {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    position: relative;
  }
  .contact_form_part_label p .label,
  .request_form_part_label p .label {
    font-size: 0.972216vw;
    letter-spacing: 0.08em;
    margin-right: 0;
  }
  .contact_form_part_label p .red,
  .request_form_part_label p .red {
    padding: 0.277776vw 0.555552vw;
    border: solid 1px #d83434;
    color: #d83434;
    font-size: 0.833328vw;
    letter-spacing: 0.08em;
  }
  .contact_form_part_label p:after,
  .request_form_part_label p:after {
    content: "";
    position: absolute;
    background-color: #22232f;
    width: 1.111104vw;
    height: 1px;
    top: calc(50% - 0.5px);
    right: -2.222208vw;
  }
  .contact_form_part_area,
  .request_form_part_area {
    width: 54.444096vw;
  }
  .contact_form_part_area input,
  .contact_form_part_area textarea,
  .request_form_part_area input,
  .request_form_part_area textarea {
    border: solid 1px #22232f;
    width: 100%;
    font-size: 0.972216vw;
    line-height: 1.75;
    letter-spacing: 0.08em;
    padding: 1.111104vw;
  }
  .contact_form_part_area .wpcf7-not-valid-tip,
  .request_form_part_area .wpcf7-not-valid-tip {
    font-size: 0.972216vw;
    font-weight: 500;
    letter-spacing: 0.08em;
    padding: 0.555552vw;
  }
  .contact_form_part.privacy,
  .request_form_part.privacy {
    margin-top: 5.55552vw;
  }
  .contact_form_part.privacy p,
  .request_form_part.privacy p {
    margin: 0 auto;
    padding-bottom: 0.555552vw;
    border-bottom: 1px solid #22232f;
  }
  .contact_form_part.accept,
  .request_form_part.accept {
    margin-top: 2.77776vw;
  }
  .contact_form_part.accept p,
  .request_form_part.accept p {
    margin: 0 auto;
  }
  .contact_form_part.submit p,
  .request_form_part.submit p {
    width: fit-content;
    margin: 0 auto;
  }
  .contact_form_part.submit input,
  .request_form_part.submit input {
    padding: 1.111104vw 4.999968vw;
    width: fit-content;
    background-color: #1d4963;
    border-radius: 1.944432vw;
    color: #f8f9fc;
  }
  .contact_form_part.submit span,
  .request_form_part.submit span {
    display: none;
  }
}
@media (min-width: 1440px) {
  .contact_form_part,
  .request_form_part {
    margin-bottom: 40px;
  }
  .contact_form_part_label,
  .request_form_part_label {
    width: 185px;
  }
  .contact_form_part_label p .label,
  .request_form_part_label p .label {
    font-size: 14px;
  }
  .contact_form_part_label p .red,
  .request_form_part_label p .red {
    padding: 4px 8px;
    font-size: 12px;
  }
  .contact_form_part_label p:after,
  .request_form_part_label p:after {
    width: 16px;
    height: 1px;
    top: calc(50% - 0.5px);
    right: -32px;
  }
  .contact_form_part_area,
  .request_form_part_area {
    width: 784px;
  }
  .contact_form_part_area input,
  .contact_form_part_area textarea,
  .request_form_part_area input,
  .request_form_part_area textarea {
    font-size: 14px;
    padding: 16px;
  }
  .contact_form_part_area .wpcf7-not-valid-tip,
  .request_form_part_area .wpcf7-not-valid-tip {
    font-size: 14px;
    padding: 8px;
  }
  .contact_form_part.privacy,
  .request_form_part.privacy {
    margin-top: 80px;
  }
  .contact_form_part.privacy p,
  .request_form_part.privacy p {
    padding-bottom: 8px;
  }
  .contact_form_part.accept,
  .request_form_part.accept {
    margin-top: 40px;
  }
  .contact_form_part.submit input,
  .request_form_part.submit input {
    padding: 16px 72px;
    border-radius: 28px;
  }
}
.contact_thanks,
.request_thanks {
  padding-bottom: 21.3336vw;
}
.contact_thanks h3,
.request_thanks h3 {
  text-align: center;
  font-size: 5.3334vw;
  margin-bottom: 10.6668vw;
}
.contact_thanks p,
.request_thanks p {
  font-size: 4.26672vw;
}
.contact_thanks p span,
.request_thanks p span {
  font-size: 3.73338vw;
}
.contact_thanks .def_btn,
.request_thanks .def_btn {
  margin-top: 7.46676vw;
}
@media (min-width: 769px) {
  .contact_thanks,
  .request_thanks {
    padding-bottom: 6.9444vw;
  }
  .contact_thanks h3,
  .request_thanks h3 {
    text-align: center;
    font-size: 1.38888vw;
    margin-bottom: 2.77776vw;
  }
  .contact_thanks p,
  .request_thanks p {
    font-size: 1.249992vw;
  }
  .contact_thanks p span,
  .request_thanks p span {
    font-size: 1.111104vw;
  }
  .contact_thanks .def_btn,
  .request_thanks .def_btn {
    margin: 2.77776vw auto 0;
    width: 40%;
  }
}
@media (min-width: 1440px) {
  .contact_thanks,
  .request_thanks {
    padding-bottom: 100px;
  }
  .contact_thanks h3,
  .request_thanks h3 {
    text-align: center;
    font-size: 20px;
    margin-bottom: 40px;
  }
  .contact_thanks p,
  .request_thanks p {
    font-size: 18px;
  }
  .contact_thanks p span,
  .request_thanks p span {
    font-size: 16px;
  }
  .contact_thanks .def_btn,
  .request_thanks .def_btn {
    margin-top: 40px;
  }
}

.privacypolicy .page_top {
  background-image: url("../img/service/page_top_bg.jpg");
  background-size: cover;
  background-position: center;
}
.privacypolicy_intro {
  padding: 0 0 21.3336vw;
}
.privacypolicy_intro_title {
  color: #22232f;
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  position: relative;
  margin-bottom: 6.40008vw;
}
.privacypolicy_intro_title::after {
  position: absolute;
  content: "";
  background-color: #22232f;
  width: 4.26672vw;
  height: 0.26667vw;
  right: 21.3336vw;
  top: calc(50% - 1px);
}
.privacypolicy_intro_txt p {
  color: #22232f;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
}
.privacypolicy_inner {
  padding-bottom: 26.667vw;
}
.privacypolicy_inner .part {
  margin-bottom: 10.6668vw;
}
.privacypolicy_inner .part h4 {
  font-size: 5.3334vw;
  font-weight: 700;
  line-height: 175%; /* 42px */
  letter-spacing: 0.08em;
  background: var(--linear, linear-gradient(135deg, #15425b 0%, #1e4b65 100%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 2.6667vw;
}
.privacypolicy_inner .part p {
  color: #1d4963;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 200%; /* 32px */
  letter-spacing: 0.08em;
}
.privacypolicy_inner .part li {
  color: #1d4963;
  font-size: 3.73338vw;
  font-weight: 500;
  line-height: 200%; /* 32px */
  letter-spacing: 0.08em;
}
.privacypolicy_inner .part ol {
  list-style: auto;
  list-style-position: inside;
}
.privacypolicy_inner .part ol ul {
  list-style: disc;
  list-style-position: inside;
}
@media (min-width: 769px) {
  .privacypolicy_intro {
    padding: 0 0 6.9444vw;
  }
  .privacypolicy_intro .inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .privacypolicy_intro_title {
    color: #22232f;
    font-size: 2.222208vw;
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 0;
  }
  .privacypolicy_intro_title::after {
    position: absolute;
    content: "";
    background-color: #22232f;
    width: 2.222208vw;
    height: 0.138888vw;
    right: -4.16664vw;
    top: calc(50% - 1px);
  }
  .privacypolicy_intro_txt {
    max-width: 38.958084vw;
  }
  .privacypolicy_intro_txt p {
    color: #22232f;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.08em;
  }
  .privacypolicy_inner {
    padding-bottom: 10.4166vw;
  }
  .privacypolicy_inner .part {
    margin-bottom: 4.444416vw;
  }
  .privacypolicy_inner .part h4 {
    font-size: 1.666656vw;
    font-weight: 700;
    line-height: 175%; /* 42px */
    letter-spacing: 0.08em;
    background: var(--linear, linear-gradient(135deg, #15425b 0%, #1e4b65 100%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 1.111104vw;
  }
  .privacypolicy_inner .part p {
    color: #1d4963;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 200%; /* 32px */
    letter-spacing: 0.08em;
  }
  .privacypolicy_inner .part li {
    color: #1d4963;
    font-size: 1.111104vw;
    font-weight: 500;
    line-height: 200%; /* 32px */
    letter-spacing: 0.08em;
  }
  .privacypolicy_inner .part ol {
    list-style: auto;
    list-style-position: inside;
  }
  .privacypolicy_inner .part ol ul {
    list-style: disc;
    list-style-position: inside;
  }
}
@media (min-width: 1440px) {
  .privacypolicy_intro {
    padding: 0 0 100px;
  }
  .privacypolicy_intro_title {
    font-size: 32px;
  }
  .privacypolicy_intro_title::after {
    width: 32px;
    height: 2px;
    right: -60px;
    top: calc(50% - 1px);
  }
  .privacypolicy_intro_txt {
    max-width: 561px;
  }
  .privacypolicy_intro_txt p {
    font-size: 16px;
  }
  .privacypolicy_inner {
    padding-bottom: 150px;
  }
  .privacypolicy_inner .part {
    margin-bottom: 64px;
  }
  .privacypolicy_inner .part h4 {
    font-size: 24px;
    margin-bottom: 16px;
  }
  .privacypolicy_inner .part p {
    font-size: 16px;
  }
  .privacypolicy_inner .part li {
    font-size: 16px;
  }
}