@charset "UTF-8";
:root {
  --bc01: #e1021d;
}

/* ==========================================================================
   Foundation
   ========================================================================== */
/*!
 * ress.css • v1.2.2
 * MIT License
 * github.com/filipelinhares/ress
 */
/* # =================================================================
   # Global selectors
   # ================================================================= */
html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%; /* iOS 8+ */
}

*,
::before,
::after {
  background-repeat: no-repeat; /* Set `background-repeat: no-repeat` to all elements and pseudo elements */
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

::before,
::after {
  text-decoration: inherit; /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
  vertical-align: inherit;
}

* {
  padding: 0; /* Reset `padding` and `margin` of all elements */
  margin: 0;
}

/* # =================================================================
   # General elements
   # ================================================================= */
/* Add the correct display in iOS 4-7.*/
audio:not([controls]) {
  display: none;
  height: 0;
}

hr {
  overflow: visible; /* Show the overflow in Edge and IE */
}

/*
* Correct `block` display not defined for any HTML5 element in IE 8/9
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox
* Correct `block` display not defined for `main` in IE 11
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  display: block;
}

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

small {
  font-size: 80%; /* Set font-size to 80% in `small` elements */
}

[hidden],
template {
  display: none; /* Add the correct display in IE */
}

abbr[title] {
  border-bottom: 1px dotted; /* Add a bordered underline effect in all browsers */
  text-decoration: none; /* Remove text decoration in Firefox 40+ */
}

a {
  background-color: transparent; /* Remove the gray background on active links in IE 10 */
  -webkit-text-decoration-skip: objects; /* Remove gaps in links underline in iOS 8+ and Safari 8+ */
}

a:active,
a:hover {
  outline-width: 0; /* Remove the outline when hovering in all browsers */
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace; /* Specify the font family of code elements */
}

b,
strong {
  font-weight: bolder; /* Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+ */
}

dfn {
  font-style: italic; /* Address styling not present in Safari and Chrome */
}

/* Address styling not present in IE 8/9 */
mark {
  background-color: #ff0;
  color: #000;
}

/* https://gist.github.com/unruthless/413930 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* # =================================================================
   # Forms
   # ================================================================= */
input {
  border-radius: 0;
}

/* Apply cursor pointer to button elements */
button,
[type=button],
[type=reset],
[type=submit],
[role=button] {
  cursor: pointer;
}

/* Replace pointer cursor in disabled elements */
[disabled] {
  cursor: default;
}

[type=number] {
  width: auto; /* Firefox 36+ */
}

[type=search] {
  -webkit-appearance: textfield; /* Safari 8+ */
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none; /* Safari 8 */
}

textarea {
  overflow: auto; /* Internet Explorer 11+ */
  resize: vertical; /* Specify textarea resizability */
}

button,
input,
optgroup,
select,
textarea {
  font: inherit; /* Specify font inheritance of form elements */
}

optgroup {
  font-weight: bold; /* Restore the font weight unset by the previous rule. */
}

button {
  overflow: visible; /* Address `overflow` set to `hidden` in IE 8/9/10/11 */
}

/* Remove inner padding and border in Firefox 4+ */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: 0;
  padding: 0;
}

/* Replace focus style removed in the border reset above */
button:-moz-focusring,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  outline: 1px dotted ButtonText;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button; /* Correct the inability to style clickable types in iOS */
}

button,
select {
  text-transform: none; /* Firefox 40+, Internet Explorer 11- */
}

/* Remove the default button styling in all browsers */
button,
input,
select,
textarea {
  background-color: transparent;
  border-style: none;
  color: inherit;
}

/* Style select like a standard input */
select {
  -moz-appearance: none; /* Firefox 36+ */
  -webkit-appearance: none; /* Chrome 41+ */
}

select::-ms-expand {
  display: none; /* Internet Explorer 11+ */
}

select::-ms-value {
  color: currentColor; /* Internet Explorer 11+ */
}

legend {
  border: 0; /* Correct `color` not being inherited in IE 8/9/10/11 */
  color: inherit; /* Correct the color inheritance from `fieldset` elements in IE */
  display: table; /* Correct the text wrapping in Edge and IE */
  max-width: 100%; /* Correct the text wrapping in Edge and IE */
  white-space: normal; /* Correct the text wrapping in Edge and IE */
}

::-webkit-file-upload-button {
  -webkit-appearance: button; /* Correct the inability to style clickable types in iOS and Safari */
  font: inherit; /* Change font properties to `inherit` in Chrome and Safari */
}

[type=search] {
  -webkit-appearance: textfield; /* Correct the odd appearance in Chrome and Safari */
  outline-offset: -2px; /* Correct the outline style in Safari */
}

/* # =================================================================
   # Specify media element style
   # ================================================================= */
img {
  border-style: none; /* Remove border when inside `a` element in IE 8/9/10 */
}

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

svg:not(:root) {
  overflow: hidden; /* Internet Explorer 11- */
}

audio,
canvas,
progress,
video {
  display: inline-block; /* Internet Explorer 11+, Windows Phone 8.1+ */
}

/* # =================================================================
   # Accessibility
   # ================================================================= */
/* Hide content from screens but not screenreaders */
@media screen {
  [hidden~=screen] {
    display: inherit;
  }
  [hidden~=screen]:not(:active):not(:focus):not(:target) {
    position: absolute !important;
    clip: rect(0 0 0 0) !important;
  }
}
/* Specify the progress cursor of updating elements */
[aria-busy=true] {
  cursor: progress;
}

/* Specify the pointer cursor of trigger elements */
[aria-controls] {
  cursor: pointer;
}

/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */
[aria-disabled] {
  cursor: default;
}

/* # =================================================================
   # Selection
   # ================================================================= */
/* Specify text selection background color and omit drop shadow */
::-moz-selection {
  background-color: #b3d4fc; /* Required when declaring ::selection */
  color: #000;
  text-shadow: none;
}

::selection {
  background-color: #b3d4fc; /* Required when declaring ::selection */
  color: #000;
  text-shadow: none;
}

body {
  background: url("../img/bg.png") repeat-y center top/100% auto;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, system-ui, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  line-height: 1.5;
}
@media only screen and (max-width: 768px) {
  body {
    padding-top: 18.6666666667vw;
  }
}

img {
  display: block;
  height: auto;
  vertical-align: bottom;
}
@media only screen and (max-width: 768px) {
  img {
    width: 100%;
  }
}
@media print, screen and (min-width: 769px) {
  img {
    max-width: 100%;
  }
}

ul {
  list-style: none;
}

a {
  color: #000;
  text-decoration: none;
}

.l-header {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 999;
}
@media only screen and (max-width: 768px) {
  .l-header {
    height: 18.6666666667vw;
    padding-left: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .l-header {
    padding-inline: 30px 10px;
  }
}
.l-header .l-header-logo {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
@media print, screen and (min-width: 769px) {
  .l-header .l-header-logo {
    padding-top: 10px;
  }
}
@media only screen and (max-width: 768px) {
  .l-header .l-header-logo img {
    height: auto;
    width: 32.2666666667vw;
  }
}
.l-header .weglot-container {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  margin-left: auto;
}
@media only screen and (max-width: 768px) {
  .l-header .weglot-container {
    margin-right: 10px;
  }
}
@media print, screen and (min-width: 769px) {
  .l-header .weglot-container {
    margin-right: 10px;
    margin-top: 10px;
  }
}
.l-header .l-header-button {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}
@media print, screen and (min-width: 769px) {
  .l-header .l-header-button {
    padding-top: 10px;
  }
}
.l-header .l-header-button a {
  background: var(--bc01);
  border: 2px solid var(--bc01);
  color: #fff;
  font-family: "Jost", sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  position: relative;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
@media only screen and (max-width: 768px) {
  .l-header .l-header-button a {
    display: block;
    font-size: 4vw;
    height: 18.6666666667vw;
    padding-top: 4.2666666667vw;
    text-align: center;
    width: 18.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .l-header .l-header-button a {
    font-size: 0.9375rem;
    display: -ms-grid;
    display: grid;
    height: 40px;
    padding-left: 20px;
    place-content: center start;
    width: 160px;
  }
}
.l-header .l-header-button a::after {
  background: #fff;
  content: "";
  display: block;
  -webkit-mask-image: url("/_assets/img/icon-arrow01.svg");
          mask-image: url("/_assets/img/icon-arrow01.svg");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  position: absolute;
}
@media only screen and (max-width: 768px) {
  .l-header .l-header-button a::after {
    height: 2.6666666667vw;
    left: 50%;
    top: 10.6666666667vw;
    translate: -50%;
    width: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .l-header .l-header-button a::after {
    height: 10px;
    right: 12px;
    top: 50%;
    translate: 0 -50%;
    width: 12px;
  }
}
@media print, screen and (min-width: 769px) {
  .l-header .l-header-button a:hover {
    background: #fff;
    color: var(--bc01);
  }
}
@media print, screen and (min-width: 769px) {
  .l-header .l-header-button a:hover::after {
    background: var(--bc01);
  }
}

.l-main {
  overflow-x: hidden;
}
@media print, screen and (min-width: 769px) {
  .l-main {
    background: url("/_assets/img/pict02.png") no-repeat right bottom 120px/700px auto;
  }
}

.l-footer {
  background: #fff;
  display: -ms-grid;
  display: grid;
  place-content: center;
}
@media only screen and (max-width: 768px) {
  .l-footer {
    border-top: 1px solid #34344c;
    height: 13.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .l-footer {
    border-top: 1px solid #eee;
    height: 100px;
  }
}
.l-footer .l-footer-copyright {
  font-family: "Jost", sans-serif;
  font-weight: 300;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 768px) {
  .l-footer .l-footer-copyright {
    font-size: 2.4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .l-footer .l-footer-copyright {
    font-size: 0.75rem;
  }
}

.c-box {
  margin-inline: auto;
  max-width: 1400px;
}

.c-ttl .c-ttl-en {
  color: #fff;
  font-family: "Jost", sans-serif;
  font-weight: 300;
  line-height: 1;
}
@media only screen and (max-width: 768px) {
  .c-ttl .c-ttl-en {
    font-size: 3.7333333333vw;
    margin-bottom: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .c-ttl .c-ttl-en {
    font-size: 1.25rem;
    margin-bottom: 20px;
  }
}

.p-mv .c-box {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-mv .c-box {
    padding-left: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-mv .c-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
.p-mv .p-mv-copy {
  position: absolute;
}
@media only screen and (max-width: 768px) {
  .p-mv .p-mv-copy {
    bottom: -60vw;
    left: 50%;
    translate: -50%;
    width: 74.1333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-mv .p-mv-copy {
    bottom: 72px;
    left: 80px;
  }
}

@media only screen and (max-width: 768px) {
  .p-about {
    background: url("/_assets/img/pict01_sp.png") no-repeat right 55.2vw/25.3333333333vw auto;
    margin-bottom: 24vw;
    padding-top: 90.1333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-about {
    background: url("/_assets/img/pict01.png") no-repeat left 92px/322px auto;
    margin-bottom: 125px;
    padding-top: 125px;
  }
}
.p-about .c-box {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-about .c-box {
    margin-bottom: 10.6666666667vw;
    padding-inline: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-about .c-box {
    padding-left: 60px;
    padding-top: 327px;
  }
}
@media only screen and (max-width: 768px) {
  .p-about .p-about-ttl {
    margin-bottom: 8.5333333333vw;
    width: 71.4666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-about .p-about-ttl {
    position: absolute;
    right: 308px;
    top: 0;
  }
}
@media only screen and (max-width: 768px) {
  .p-about .p-about-lead {
    width: 60vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-about .p-about-lead {
    position: absolute;
    right: 542px;
    top: 165px;
  }
}
@media print, screen and (min-width: 769px) {
  .p-about .p-about-image {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
@media print, screen and (min-width: 769px) {
  .p-about .p-about-image-main {
    height: 470px;
    width: calc(50% + 640px);
  }
}
.p-about .p-about-image-main img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .p-concept {
    margin-bottom: 32vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept {
    margin-bottom: 162px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .c-ttl {
    margin-bottom: 11.7333333333vw;
    width: 41.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .c-ttl {
    margin-bottom: 80px;
  }
}
.p-concept .p-concept-inner {
  margin-inline: auto;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-inner {
    padding-inline: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-inner {
    width: 1024px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-wrap {
    overflow: visible;
    margin-right: -5.3333333333vw;
    position: relative;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider-wrap {
    margin-bottom: 17px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-wrap::after {
    background: url("/_assets/img/pict-slide.png") no-repeat left top/cover;
    content: "";
    display: block;
    height: 16vw;
    position: absolute;
    right: 4.8vw;
    top: 60vw;
    -webkit-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
    width: 16vw;
    z-index: 200;
  }
}
.p-concept .p-concept-slider-wrap.is-slided::after {
  opacity: 0;
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 60px;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider .p-concept-slider-detail-item {
    display: none;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slide {
    padding-right: 16.5333333333vw;
    width: 67.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slide {
    width: 300px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slide:has(.--i03) {
    padding-right: 0;
    width: 67.2vw;
  }
}
.p-concept .p-concept-item {
  position: relative;
  width: 100%;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item {
    padding-top: 20.5333333333vw;
    height: 100vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-item {
    height: 441px;
    padding-top: 103px;
  }
}
.p-concept .p-concept-item::before {
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0;
}
.p-concept .p-concept-item::after {
  background: url("/_assets/img/pict-arrow.svg") no-repeat left top/cover;
  content: "";
  display: block;
  position: absolute;
  top: 50%;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item::after {
    height: 14.1333333333vw;
    right: -10.6666666667vw;
    width: 8.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-item::after {
    height: 62px;
    right: -50px;
    width: 37px;
  }
}
.p-concept .p-concept-item.--i01::before {
  background: url("/_assets/img/bg-concept01.png") no-repeat left top/100% auto;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i01::before {
    height: 122.6666666667vw;
    width: 147.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-item.--i01::before {
    height: 548px;
    width: 661px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i01 .p-concept-icon {
    width: 14.1333333333vw;
  }
}
.p-concept .p-concept-item.--i02::before {
  background: url("/_assets/img/bg-concept02.png") no-repeat left top/100% auto;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i02::before {
    height: 122.6666666667vw;
    width: 147.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-item.--i02::before {
    height: 548px;
    width: 661px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i02 .p-concept-icon {
    width: 22.6666666667vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i03 {
    padding-right: 0;
    width: 67.2vw;
  }
}
.p-concept .p-concept-item.--i03::before {
  background: url("/_assets/img/bg-concept03.png") no-repeat left top/100% auto;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i03::before {
    height: 121.3333333333vw;
    width: 67.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-item.--i03::before {
    height: 542px;
    width: 300px;
  }
}
.p-concept .p-concept-item.--i03::after {
  display: none;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-item.--i03 .p-concept-icon {
    width: 21.8666666667vw;
  }
}
.p-concept .p-concept-item-inner {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
  z-index: 2;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-icon {
    height: 16.2666666667vw;
    margin-bottom: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-icon {
    height: 72px;
    margin-bottom: 12px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-heading {
    font-size: 4.2666666667vw;
    margin-bottom: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-heading {
    font-size: 1.0625rem;
    margin-bottom: 24px;
  }
}
.p-concept .p-concept-text {
  line-height: 1.5;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-text {
    font-size: 3.7333333333vw;
    width: 40vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-text {
    font-size: 1rem;
    width: 180px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-detail {
    display: none;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider-detail {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-detail-item {
    background: url("/_assets/img/pict-line01.svg") no-repeat center top/1.8666666667vw auto;
    margin-top: 3.2vw;
    padding-top: 9.6vw;
    width: 67.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider-detail-item:first-child {
    background: url("/_assets/img/pict-line01.svg") no-repeat center top/9px auto;
    padding-top: 43px;
    width: 300px;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider-detail-item:last-child {
    background: url("/_assets/img/pict-line02.svg") no-repeat center top/370px auto;
    padding-top: 80px;
    width: 660px;
  }
}
.p-concept .p-concept-slider-detail-text {
  color: #fff;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  line-height: 1.5;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-detail-text {
    font-size: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider-detail-text {
    font-size: 1rem;
  }
}
.p-concept .p-concept-slider-detail-flag {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-detail-flag {
    margin-top: 1.8666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-concept .p-concept-slider-detail-flag {
    margin-top: 7px;
  }
}
@media only screen and (max-width: 768px) {
  .p-concept .p-concept-slider-detail-flag img {
    width: 57.6vw;
  }
}

.p-features {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-features {
    background: #f0f2f4;
    padding: 19.2vw 5.3333333333vw 11.4666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features {
    padding-block: 100px 80px;
  }
}
.p-features::before {
  background: #f0f2f4;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
}
@media print, screen and (min-width: 769px) {
  .p-features::before {
    width: calc(50% + 640px);
  }
}
.p-features .p-features-inner {
  position: relative;
  z-index: 2;
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-inner {
    margin-inline: auto;
    width: 1024px;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .c-ttl {
    margin-bottom: 16vw;
    width: 84vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .c-ttl {
    margin-bottom: 80px;
  }
}
.p-features .c-ttl-en {
  color: #34344c;
}
.p-features .p-features-item {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: #fafbfc;
    border-radius: 2.6666666667vw;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 6.4vw 6.4vw 9.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-item {
    padding-left: 64px;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item + div {
    margin-top: 4.8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-item + div {
    margin-top: 16px;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item.--i01 .p-features-pict {
    width: 33.8666666667vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item.--i02 .p-features-pict {
    width: 34.9333333333vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item.--i03 .p-features-pict {
    width: 24.5333333333vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item.--i04 .p-features-pict {
    width: 36.8vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-item.--i05 .p-features-pict {
    width: 33.0666666667vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-num {
    margin-bottom: 4.8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-num {
    left: 0;
    position: absolute;
    top: 90px;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-num img {
    height: 14.9333333333vw;
    width: auto;
  }
}
.p-features .p-features-main {
  background: #fafbfc;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-main {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 6.9333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-main {
    border-radius: 10px;
    padding: 44px 50px 60px 0;
  }
}
.p-features .p-features-pict {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-pict {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 264px;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-detail {
    padding-top: 10px;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-heading {
    font-size: 5.3333333333vw;
    margin-bottom: 4.8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-heading {
    font-size: 1.5rem;
    margin-bottom: 14px;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-text {
    font-size: 3.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-text {
    font-size: 1rem;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-features-text + p {
    margin-top: 5.6vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-features-text + p {
    margin-top: 24px;
  }
}
.p-features .p-example {
  background: #f0f2f4;
}
@media only screen and (max-width: 768px) {
  .p-features .p-example {
    margin-top: 4.8vw;
    padding: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-example {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: 20px;
    padding: 18px 30px 24px 0;
  }
}
.p-features .p-example-title {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media only screen and (max-width: 768px) {
  .p-features .p-example-title {
    font-size: 3.2vw;
    margin-bottom: 1.8666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-example-title {
    font-size: 0.875rem;
    text-align: center;
    width: 94px;
  }
}
.p-features .p-example-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 768px) {
  .p-features .p-example-item {
    gap: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-example-item {
    gap: 15px;
    padding-left: 10px;
  }
}
.p-features .p-example-item:not(:last-child) {
  border-bottom: 1px solid #ccc;
}
@media only screen and (max-width: 768px) {
  .p-features .p-example-item:not(:last-child) {
    margin-bottom: 4vw;
    padding-bottom: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-example-item:not(:last-child) {
    margin-bottom: 15px;
    padding-bottom: 15px;
  }
}
.p-features .p-example-pict {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media only screen and (max-width: 768px) {
  .p-features .p-example-pict {
    width: 15.7333333333vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-features .p-example-heading {
    font-size: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-example-heading {
    font-size: 0.875rem;
  }
}
.p-features .p-example-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (max-width: 768px) {
  .p-features .p-example-list li {
    font-size: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-features .p-example-list li {
    font-size: 0.875rem;
  }
}
.p-features .p-example-list li::before {
  content: "・";
  display: block;
}

.p-company {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-company {
    background: url("/_assets/img/pict01_sp.png") no-repeat right -13.8666666667vw/25.3333333333vw auto;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company {
    padding-block: 94px 120px;
  }
}
.p-company::after {
  bottom: 0;
  content: "";
  display: block;
  mix-blend-mode: soft-light;
  position: absolute;
}
@media only screen and (max-width: 768px) {
  .p-company::after {
    background: url("/_assets/img/pict02_sp.png") no-repeat left top/53.6vw auto;
    height: 73.3333333333vw;
    right: 0;
    width: 53.6vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company::after {
    background: url("/_assets/img/pict03.png") no-repeat left top/574px auto;
    height: 512px;
    right: 50px;
    width: 574px;
  }
}
@media only screen and (max-width: 768px) {
  .p-company .p-company-inner {
    padding: 19.2vw 5.3333333333vw 20.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company .p-company-inner {
    margin-inline: auto;
    width: 1024px;
  }
}
@media only screen and (max-width: 768px) {
  .p-company .c-ttl {
    margin-bottom: 10.6666666667vw;
    width: 41.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company .c-ttl {
    margin-bottom: 62px;
  }
}
.p-company .c-ttl-en {
  color: #fff;
}
@media print, screen and (min-width: 769px) {
  .p-company .p-company-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
@media only screen and (max-width: 768px) {
  .p-company .p-company-item + div {
    margin-top: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company .p-company-item + div {
    margin-top: 16px;
  }
}
.p-company .p-company-item dt {
  color: #fff;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-weight: bold;
}
@media only screen and (max-width: 768px) {
  .p-company .p-company-item dt {
    border-left: 2px solid #fff;
    font-size: 3.7333333333vw;
    margin-bottom: 0.8vw;
    padding-left: 2.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company .p-company-item dt {
    font-size: 1rem;
    line-height: 2.25;
    width: 230px;
  }
}
.p-company .p-company-item dd {
  color: #fff;
}
@media only screen and (max-width: 768px) {
  .p-company .p-company-item dd {
    font-size: 3.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-company .p-company-item dd {
    font-size: 1rem;
    line-height: 2.25;
  }
}

.p-contact {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media only screen and (max-width: 768px) {
  .p-contact {
    padding-block: 19.7333333333vw 18.9333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-contact {
    padding-block: 140px 126px;
  }
}
.p-contact .p-contact-title {
  font-family: "Jost", sans-serif;
  font-weight: 300;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media only screen and (max-width: 768px) {
  .p-contact .p-contact-title {
    font-size: 10.6666666667vw;
    margin-bottom: 1.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-contact .p-contact-title {
    font-size: 5rem;
    margin-bottom: 18px;
  }
}
@media only screen and (max-width: 768px) {
  .p-contact .p-contact-title-sub {
    margin-bottom: 6.9333333333vw;
    width: 36vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-contact .p-contact-title-sub {
    margin-bottom: 40px;
  }
}
@media only screen and (max-width: 768px) {
  .p-contact .p-contact-button {
    width: 11.4666666667vw;
  }
}
.p-contact .p-contact-button a {
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
@media print, screen and (min-width: 769px) {
  .p-contact .p-contact-button a:hover {
    opacity: 0.8;
  }
}
.p-contact .p-contact-text {
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .p-contact .p-contact-text {
    margin-top: 10.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-contact .p-contact-text {
    margin-top: 50px;
  }
}

@media only screen and (max-width: 768px) {
  [lang=en] .p-mv .p-mv-copy {
    width: 93.8666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=en] .p-mv .p-mv-copy {
    width: 584px;
  }
}
[lang=en] .p-mv .p-mv-copy img {
  height: auto;
  width: 100%;
}
@media only screen and (max-width: 768px) {
  [lang=en] .p-about .p-about-lead {
    width: 88.8vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=en] .p-about .p-about-lead {
    width: 527px;
  }
}
@media only screen and (max-width: 768px) {
  [lang=en] .p-concept .p-concept-item {
    height: 104.5333333333vw;
    padding-top: 16vw;
  }
}
[lang=en] .p-concept .p-concept-heading {
  text-align: center;
}
@media only screen and (max-width: 768px) {
  [lang=en] .p-concept .p-concept-heading {
    margin-bottom: 2.6666666667vw;
    padding-inline: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=en] .p-concept .p-concept-heading {
    padding-inline: 20px;
  }
}
@media only screen and (max-width: 768px) {
  [lang=en] .p-concept .p-concept-text {
    width: 53.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=en] .p-concept .p-concept-text {
    width: 234px;
  }
}

@media only screen and (max-width: 768px) {
  [lang=vi] .p-mv .p-mv-copy {
    width: 90.1333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=vi] .p-mv .p-mv-copy {
    width: 558px;
  }
}
[lang=vi] .p-mv .p-mv-copy img {
  height: auto;
  width: 100%;
}
@media only screen and (max-width: 768px) {
  [lang=vi] .p-about .p-about-lead {
    width: 85.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=vi] .p-about .p-about-lead {
    width: 527px;
  }
}
@media only screen and (max-width: 768px) {
  [lang=vi] .p-concept .p-concept-item {
    height: 108.2666666667vw;
    padding-top: 12.2666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=vi] .p-concept .p-concept-item {
    height: 466px;
    padding-top: 78px;
  }
}
[lang=vi] .p-concept .p-concept-heading {
  text-align: center;
}
@media only screen and (max-width: 768px) {
  [lang=vi] .p-concept .p-concept-heading {
    padding-inline: 5.3333333333vw;
    margin-bottom: 2.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=vi] .p-concept .p-concept-heading {
    margin-bottom: 10px;
  }
}
@media only screen and (max-width: 768px) {
  [lang=vi] .p-concept .p-concept-text {
    width: 53.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=vi] .p-concept .p-concept-text {
    width: 230px;
  }
}

@media only screen and (max-width: 768px) {
  [lang=ms] .p-mv .p-mv-copy {
    width: 91.4666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=ms] .p-mv .p-mv-copy {
    width: 798px;
  }
}
[lang=ms] .p-mv .p-mv-copy img {
  height: auto;
  width: 100%;
}
@media only screen and (max-width: 768px) {
  [lang=ms] .p-about .p-about-lead {
    width: 87.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=ms] .p-about .p-about-lead {
    width: 525px;
  }
}
@media only screen and (max-width: 768px) {
  [lang=ms] .p-concept .p-concept-item {
    height: 113.3333333333vw;
    padding-top: 7.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=ms] .p-concept .p-concept-item {
    height: 480px;
    padding-top: 64px;
  }
}
[lang=ms] .p-concept .p-concept-heading {
  text-align: center;
}
@media only screen and (max-width: 768px) {
  [lang=ms] .p-concept .p-concept-heading {
    margin-bottom: 2.6666666667vw;
    padding-inline: 5.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=ms] .p-concept .p-concept-heading {
    margin-bottom: 10px;
    padding-inline: 20px;
  }
}
@media only screen and (max-width: 768px) {
  [lang=ms] .p-concept .p-concept-text {
    width: 53.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=ms] .p-concept .p-concept-text {
    width: 234px;
  }
}

@media only screen and (max-width: 768px) {
  [lang=zh] .p-mv .p-mv-copy {
    width: 73.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=zh] .p-mv .p-mv-copy {
    width: 545px;
  }
}
[lang=zh] .p-mv .p-mv-copy img {
  height: auto;
  width: 100%;
}
@media only screen and (max-width: 768px) {
  [lang=zh] .p-about .p-about-lead {
    width: 88.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=zh] .p-about .p-about-lead {
    width: 415px;
  }
}

@media only screen and (max-width: 768px) {
  [lang=zh-tw] .p-mv .p-mv-copy {
    width: 65.8666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=zh-tw] .p-mv .p-mv-copy {
    width: 545px;
  }
}
[lang=zh-tw] .p-mv .p-mv-copy img {
  height: auto;
  width: 100%;
}
@media only screen and (max-width: 768px) {
  [lang=zh-tw] .p-about .p-about-lead {
    width: 88.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  [lang=zh-tw] .p-about .p-about-lead {
    width: 415px;
  }
}

/* display */
@media only screen and (max-width: 768px) {
  .u-pc {
    display: none !important;
  }
}

@media print, screen and (min-width: 769px) {
  .u-sp {
    display: none !important;
  }
}