@charset "UTF-8";

/************************************************************************
* reset
************************************************************************/
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  -webkit-print-color-adjust: exact;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-underline-offset: 0.2em;
  background: #fff;
  min-height: 100vh;
  min-height: -webkit-fill-available;
  color: #000;
  font-family: "Ryumin Regular KL", serif;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 400;
  letter-spacing: 0;
  line-break: strict;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  word-break: normal;
  overflow-wrap: anywhere;
}

article,
aside,
footer,
header,
nav,
section,
main {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6,
a,
p,
span,
em,
small,
strong,
sub,
sup,
mark,
del,
ins,
strike,
abbr,
dfn,
blockquote,
q,
cite,
code,
pre,
ol,
ul,
li,
dl,
dt,
dd,
div,
section,
article,
main,
aside,
nav,
header,
hgroup,
footer,
img,
figure,
figcaption,
address,
time,
audio,
video,
canvas,
iframe,
details,
summary,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  vertical-align: baseline;
  margin: 0;
  border: 0;
  padding: 0;
  font: inherit;
  font-size: 100%;
}

a {
  display: inline-block;
  -webkit-transition: opacity 0.3s ease 0s;
  transition: opacity 0.3s ease 0s;
  color: inherit;
  text-decoration: none;
}

a[href="*"] {
  cursor: pointer;
}

a[href="*"]:hover,
a[href="*"]:focus-visible {
  opacity: 0.7;
}

img,
svg {
  display: inline-block;
  vertical-align: top;
  border: none;
  width: 100%;
  max-width: 100%;
  height: auto;
}

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

code,
kbd,
pre,
samp {
  font-size: inherit;
}

ul,
ol {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote::after,
blockquote::before,
q::after,
q::before {
  content: "";
  content: none;
}

address {
  font-style: italic;
}

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  margin: 0;
  border: none;
  background: transparent;
  padding: 0;
  font: inherit;
}

abbr,
acronym {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

cite {
  font-style: italic;
}

code,
kbd {
  background-color: #edeef0;
  padding: 0.25em 0.5em;
}

em {
  font-style: italic;
  font-weight: 700;
}

pre {
  display: block;
  background-color: #edeef0;
  padding: 1em 2em;
}

sub {
  vertical-align: sub;
  font-size: smaller;
}

sup {
  vertical-align: super;
  font-size: smaller;
}

var {
  background-color: #edeef0;
  padding: 0.25em 0.5em;
  font-style: italic;
}

/************************************************************************
* end reset
************************************************************************/
.js-fadeIn {
  visibility: hidden;
  opacity: 0;
}

.js-fadeInUp {
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  visibility: hidden;
  opacity: 0;
}

.js-fadeInLeft {
  -webkit-transform: translateX(-30px);
  transform: translateX(-30px);
  visibility: hidden;
  opacity: 0;
}

.js-fadeInRight {
  -webkit-transform: translateX(30px);
  transform: translateX(30px);
  visibility: hidden;
  opacity: 0;
}

.js-fadeSlide {
  position: relative;
}

.js-fadeSlide img {
  position: relative;
  z-index: 0;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
}

.js-fadeSlide::after {
  position: absolute;
  top: 0;
  right: 0;
  -webkit-transform: scale(0, 1);
  transform: scale(0, 1);
  -webkit-transform-origin: left top;
  transform-origin: left top;
  z-index: 2;
  background-color: #f1efeb;
  width: 100%;
  height: 100%;
  content: "";
}

.js-fadeSlide.is-show::after {
  -webkit-animation: slide 1.4s ease 0s forwards;
  animation: slide 1.4s ease 0s forwards;
}

.js-fadeSlide.is-show img {
  -webkit-animation: clip 1.4s ease 0s forwards;
  animation: clip 1.4s ease 0s forwards;
}

.js-parallax {
  overflow: hidden;
}

.js-parallax img {
  height: auto;
}

@-webkit-keyframes fadeInLeft {
  from {
    -webkit-transform: translate3d(-2%, 0, 0);
    transform: translate3d(-2%, 0, 0);
    opacity: 0;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes fadeInLeft {
  from {
    -webkit-transform: translate3d(-2%, 0, 0);
    transform: translate3d(-2%, 0, 0);
    opacity: 0;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@-webkit-keyframes fadeInRight {
  from {
    -webkit-transform: translate3d(2%, 0, 0);
    transform: translate3d(2%, 0, 0);
    opacity: 0;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes fadeInRight {
  from {
    -webkit-transform: translate3d(2%, 0, 0);
    transform: translate3d(2%, 0, 0);
    opacity: 0;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@-webkit-keyframes fadeInUp {
  from {
    -webkit-transform: translate3d(0, 2%, 0);
    transform: translate3d(0, 2%, 0);
    opacity: 0;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    -webkit-transform: translate3d(0, 2%, 0);
    transform: translate3d(0, 2%, 0);
    opacity: 0;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fadeInLeft,
.fadeInRight,
.fadeInUp,
.fadeIn,
.fadeOut {
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}

.fadeInLeft {
  -webkit-animation-name: fadeinleft;
  animation-name: fadeInLeft;
}

.fadeInRight {
  -webkit-animation-name: fadeinright;
  animation-name: fadeInRight;
}

.fadeInUp {
  -webkit-animation-name: fadeinup;
  animation-name: fadeInUp;
}

.fadeIn {
  -webkit-animation-name: fadein;
  animation-name: fadeIn;
}

.fadeOut {
  opacity: 1;
  -webkit-animation-name: fadeout;
  animation-name: fadeOut;
}

@-webkit-keyframes slide {
  0% {
    -webkit-transform: scale(0, 1);
    transform: scale(0, 1);
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }

  49% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }

  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: right top;
    transform-origin: right top;
  }

  100% {
    -webkit-transform: scale(0, 1);
    transform: scale(0, 1);
    -webkit-transform-origin: right top;
    transform-origin: right top;
  }
}

@keyframes slide {
  0% {
    -webkit-transform: scale(0, 1);
    transform: scale(0, 1);
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }

  49% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: left top;
    transform-origin: left top;
  }

  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: right top;
    transform-origin: right top;
  }

  100% {
    -webkit-transform: scale(0, 1);
    transform: scale(0, 1);
    -webkit-transform-origin: right top;
    transform-origin: right top;
  }
}

@-webkit-keyframes clip {
  0% {
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
  }

  100% {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
  }
}

@keyframes clip {
  0% {
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
  }

  100% {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
  }
}

[data-target] {
  cursor: pointer;
}

html {
  scrollbar-gutter: stable;
  font-size: 16px;
}

button {
  color: #000;
}

/************************************************************************
* layout
************************************************************************/
body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}

body.fadeIn {
  opacity: 0;
}

main {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

footer {
  margin-top: auto;
}

/************************************************************************
* base
************************************************************************/
a[target="_blank"]:not([class]) {
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

a[target="_blank"]:not([class])::after {
  display: inline-block;
  -webkit-mask-image: url("../img/common/icon-outerLink.svg");
  mask-image: url("../img/common/icon-outerLink.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  margin-left: 0.7647058824em;
  background-color: currentColor;
  width: 0.8529411765em;
  height: 0.7647058824em;
  font-weight: 900;
  content: "";
}

a:not([class]) {
  color: #03c;
}

a:not([class]):visited {
  color: #639;
}

a:not([class]):hover {
  text-decoration: underline;
}

table {
  margin-right: auto;
  margin-left: auto;
  border-collapse: collapse;
  border-spacing: 0;
  width: auto;
  min-width: 100%;
  table-layout: fixed;
}

th,
td {
  border: 1px solid;
}

address {
  font-style: normal;
}

details .icon {
  aspect-ratio: 1;
  display: block;
  position: relative;
  width: 24px;
  width: 1.5rem;
}

details .icon::before,
details .icon::after {
  inset: 0;
  position: absolute;
  margin: auto;
  background-color: #000;
  width: 13px;
  width: 0.8125rem;
  height: 1px;
  content: "";
}

details .icon::after {
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}

details[open]>summary .icon::after {
  -webkit-transform: rotate(0);
  transform: rotate(0);
}

details.is-closing[open]>summary .icon::after {
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}

summary {
  /* display: list-item;以外を指定してデフォルトの三角形アイコンを消します */
  display: block;
  cursor: pointer;
}

summary::-webkit-details-marker {
  /* Safariで表示されるデフォルトの三角形アイコンを消します */
  display: none;
}

/************************************************************************
* end base
************************************************************************/

/************************************************************************
* form
************************************************************************/
.wpcf7-form-control-wrap {
  width: 100%;
}

.wpcf7-character-count {
  margin: 0 -1em;
}

@media screen and (max-width: 650px) {
  .wpcf7-character-count {
    margin: 0;
  }
}

.wpcf7-list-item {
  margin: 0 !important;
}

.p-form__checkboxLabel .wpcf7-list-item {
  margin: 0 !important;
}

.p-form__radio {
  display: flex;
  gap: 0 1em;
}

@media screen and (max-width: 810px) {
  .p-form__radio {
    flex-direction: column;
    gap: 0.4em 0;
  }
}

.wpcf7-submit {
  margin: 4rem auto 0;
  display: table;
  cursor: pointer;
  background-color: #000 !important;
  color: #fff !important;
  border: 1px solid #000 !important;
  appearance: none;
  position: relative;
  transition: 0.3s ease 0s;
  transition-property: color, background-color, border-color;
  border: 1px solid #000;
  background-color: #fff;
  background-image: none;
  padding: 17px 55px;
  padding: 1.0625rem 3.4375rem;
  color: #000;
  font: inherit;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.wpcf7-submit:disabled {
  cursor: pointer !important;
}

.wpcf7-submit:hover {
  /* mix-blend-mode: difference!important; */
  color: #000 !important;
  background-color: #fff !important;
}

.p-form__back {
  margin: 0 auto;
  display: table;
  transition: opacity 0.3s;
}

.p-form__back:hover {
  opacity: 0.6;
}

form {
  margin: 0;
  padding: 0;
}

form button[type="submit"],
form input[type="submit"],
form input[type="button"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  width: auto;
}

form button[type="submit"]:hover,
form button[type="submit"]:focus-visible,
form input[type="submit"]:hover,
form input[type="submit"]:focus-visible,
form input[type="button"]:hover,
form input[type="button"]:focus-visible {
  outline: none;
}

form button[type="submit"]:disabled,
form input[type="submit"]:disabled,
form input[type="button"]:disabled {
  cursor: default;
  border-color: transparent;
}

form button[type="submit"] ::-moz-focus-inner,
form input[type="submit"] ::-moz-focus-inner,
form input[type="button"] ::-moz-focus-inner {
  border: none;
  padding: 0;
}

label {
  cursor: pointer;
}

input,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  background-color: #fff;
  background-image: none;
  padding: calc(1.0625rem - 0.6em) 1.25rem;
  width: 100%;
  font-family: inherit;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.6;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #aaa;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #aaa;
}

input::-ms-input-placeholder,
textarea::-ms-input-placeholder {
  color: #aaa;
}

input::placeholder,
textarea::placeholder {
  color: #aaa;
}

textarea {
  height: 283px;
  height: 17.6875rem;
  resize: vertical;
}

textarea:hover,
textarea:focus-visible {
  outline: none;
}

textarea:focus-visible {
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  border-color: #707070;
}

textarea ::-moz-focus-inner {
  border: none;
  padding: 0;
}

input:focus {
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  border-color: #707070;
}

input[type="radio"] {
  position: absolute;
  opacity: 0;
  margin: 0;
  padding: 0;
  width: auto;
  line-height: 1.5;
}

input[type="radio"]+span {
  display: inline-block;
  position: relative;
  cursor: pointer;
  margin: 0;
  padding: 0 0 0 26px;
  padding: 0 0 0 1.625rem;
  line-height: 1.5;
}

input[type="radio"]+span::before {
  display: block;
  position: absolute;
  top: 0.5lh;
  left: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  border: 1px solid #b5b5b5;
  border-radius: 50%;
  background: #fff;
  width: 20px;
  width: 1.25rem;
  height: 20px;
  height: 1.25rem;
  content: "";
}

input[type="radio"]+span::after {
  display: block;
  position: absolute;
  top: 0.5lh;
  left: 5px;
  left: 0.3125rem;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease 0s;
  transition: opacity 0.3s ease 0s;
  border-radius: 50%;
  background: #707070;
  width: 10px;
  width: 0.625rem;
  height: 10px;
  height: 0.625rem;
  content: "";
}

input[type="radio"]:focus-visible+span::before {
  outline: -webkit-focus-ring-color auto 5px;
}

input[type="radio"]:checked+span::after {
  opacity: 1;
}

input[type="checkbox"] {
  position: absolute;
  vertical-align: middle;
  opacity: 0;
  margin: 0;
  padding: 0;
  width: auto;
  line-height: 1.5;
}

input[type="checkbox"]+span {
  display: inline-block;
  position: relative;
  vertical-align: middle;
  cursor: pointer;
  padding-left: 2.16em;
  line-height: 1.5;
}

input[type="checkbox"]+span::before {
  display: inline-block;
  position: absolute;
  top: 0.5lh;
  left: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: background-color 0.3s ease 0s;
  transition: background-color 0.3s ease 0s;
  border: 1px solid #999385;
  width: 1.25em;
  height: 1.25em;
  content: "";
}

input[type="checkbox"]+span::after {
  display: inline-block;
  position: absolute;
  top: 0.5lh;
  left: 0;
  -webkit-transform: translateY(-70%) translateX(0.5em) rotate(45deg);
  transform: translateY(-70%) translateX(0.5em) rotate(45deg);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease 0s;
  transition: opacity 0.3s ease 0s;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  width: 0.4em;
  height: 0.8em;
  content: "";
}

input[type="checkbox"]:focus-visible+span::before {
  outline: -webkit-focus-ring-color auto 5px;
}

input[type="checkbox"]:checked+span::before {
  background-color: #999385;
}

input[type="checkbox"]:checked:focus-visible+span::before {
  outline: none;
}

input[type="checkbox"]:checked+span::after {
  opacity: 1;
}

input[type="number"],
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  -moz-appearance: textfield;
  margin: 0;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  padding: 0.4em 2.4em 0.4em 0.8em;
  color: inherit;
  font-family: inherit;
  font-size: 14px;
  font-size: 0.875rem;
}

select::-ms-expand {
  display: none;
}

select:focus {
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  border-color: #707070;
}

select:focus-visible {
  outline: initial;
}

select:invalid {
  color: #f1efeb;
}

select:not(:disabled) {
  cursor: pointer;
}

:root {
  /* ウィンドウサイズ */
  --vw: 100vw;
  --vh: 100vh;

  /* 三角形 */
  --clip-triangle-top: polygon(50% 0, 100% 100%, 0 100%);
  --clip-triangle-bottom: polygon(0 0, 100% 0, 50% 100%);
  --clip-triangle-right: polygon(0 0, 100% 50%, 0 100%);
  --clip-triangle-left: polygon(0 50%, 100% 0, 100% 100%);
  --clip-triangle-lower-left: polygon(0 0, 100% 100%, 0 100%);
  --clip-triangle-upper-left: polygon(0 0, 100% 0, 0 100%);
  --clip-triangle-lower-right: polygon(100% 0, 100% 100%, 0 100%);
  --clip-triangle-upper-right: polygon(0 0, 100% 0, 100% 100%);

  /**
     * svgをbackgroundで使う
     * 色：#ffffff -> %23ffffff
     */
  --icon-btn-arrow: url('data:image/svg+xml;utf8,<svg width="37" height="6" viewBox="0 0 37 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 5H36L26.2703 1" stroke="%230C4A6E"/></svg>');

  /* ヘッダー高さ */
  --header-height: 45px;
}

/************************************************************************
* overwrite mfp
************************************************************************/
.mfp-bg {
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
  background-color: #afa688;
}

.mfp-bg.mfp-ready {
  opacity: 0.8;
}

.mfp-bg.mfp-removing {
  opacity: 0;
}

.mfp-wrap .mfp-content {
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}

.mfp-wrap .mfp-arrow {
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}

.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
}

.mfp-wrap.mfp-ready .mfp-arrow {
  opacity: 1;
}

.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
}

.mfp-wrap.mfp-removing .mfp-arrow {
  opacity: 0;
}

/************************************************************************
* overwrite mfp end
************************************************************************/

/************************************************************************
* MW WP Form Over write
************************************************************************/
.mwform-radio-field,
.mwform-checkbox-field {
  display: inline-block;
}

.mw_wp_form_preview .c-select::after {
  content: none;
}

.mw_wp_form_preview .p-hasPlaceholder__text {
  display: none;
}

/************************************************************************
* swiper
************************************************************************/
.swiper-button-prev,
.swiper-button-next {
  aspect-ratio: 1;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 1;
  -webkit-transition: background-position 0.3s;
  transition: background-position 0.3s;
  cursor: pointer;
  background-color: #000;
  background-image: url("../images/common/slider_arrow.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 0.9375rem;
  width: 50px;
  width: 3.125rem;
}

.swiper-button-prev {
  -webkit-transform: translateY(-50%) rotateY(180deg);
  transform: translateY(-50%) rotateY(180deg);
}

.swiper-pagination {
  font-size: 0;
}

.swiper-pagination-bullet {
  display: inline-block;
  cursor: pointer;
  border-radius: 50%;
  background-color: #d5d5d5;
  width: 5px;
  height: 5px;
}

.swiper-pagination-bullet+.swiper-pagination-bullet {
  margin-left: 5px;
}

.swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #0c4a6e;
}

/* rtl ******************************************************************/

/************************************************************************
* swiper end
************************************************************************/
.wpcf7-spinner {
  display: none;
}

/************************************************************************
* Table of Contents Plus
************************************************************************/
#toc_container {
  padding: 30px 20px;
  padding: 1.875rem 1.25rem;
  width: 100% !important;
}

#toc_container .toc_number {
  margin-right: 0.5em;
  color: #0c4a6e;
  font-weight: 700;
}

#toc_container .toc_list li {
  color: #000;
}

#toc_container .toc_list li::before {
  display: none;
  color: #0c4a6e;
}

#toc_container .toc_list li+li {
  margin-top: 0.5em;
}

#toc_container .toc_list a {
  color: #000;
}

.l-concept {
  margin-top: 32px;
  margin-top: 2rem;
}

.l-container {
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}

.l-container.l-container--full {
  margin-left: calc((100% - 100vw) / 2);
  width: 100vw;
  max-width: none;
}

.l-gallery {
  margin-top: 65px;
  margin-top: 4.0625rem;
}

.l-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 20;
  -webkit-transition: top 0.3s ease 0s;
  transition: top 0.3s ease 0s;
  width: 100%;
}

.l-header.is-fixed {
  top: 0;
}

.l-service {
  padding: 70px 0 40px;
  padding: 4.375rem 0 2.5rem;
}

/************************************************************************
* 基本形
************************************************************************/
.c-btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline-block;
  position: relative;
  -webkit-transition: 0.3s ease 0s;
  transition: 0.3s ease 0s;
  -webkit-transition-property: color, background-color, border-color;
  transition-property: color, background-color, border-color;
  margin: 0;
  border: 1px solid #000;
  background-color: #fff;
  background-image: none;
  padding: 17px 55px;
  padding: 1.0625rem 3.4375rem;
  color: #000;
  font: inherit;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.c-btn::before {
  aspect-ratio: 46/8;
  display: block;
  position: absolute;
  right: -16px;
  right: -1rem;
  -webkit-mask-image: url("../images/common/arrow.svg");
  mask-image: url("../images/common/arrow.svg");
  -webkit-mask-position: top;
  mask-position: top;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-transition: background-color 0.3s, mix-blend-mode 0.3s,
    -webkit-transform 0.3s;
  transition: background-color 0.3s, mix-blend-mode 0.3s, -webkit-transform 0.3s;
  transition: background-color 0.3s, mix-blend-mode 0.3s, transform 0.3s;
  transition: background-color 0.3s, mix-blend-mode 0.3s, transform 0.3s,
    -webkit-transform 0.3s;
  background-color: currentColor;
  width: 46px;
  width: 2.875rem;
  content: "";
}

/************************************************************************
* modifier
************************************************************************/
.c-btn--white {
  border: 1px solid #fff;
  background-color: transparent;
  color: #fff;
}

.c-btn--black {
  background-color: #000;
  color: #fff;
}

.c-btn--black::before {
  mix-blend-mode: difference;
  background-color: #fff;
}

.c-btn.c-btn--shine {
  position: relative;
  overflow: hidden;
}

.c-btn.c-btn--shine::before {
  /*絶対配置でキラッと光るの位置を決める*/
  position: absolute;
  top: 0;
  left: -75%;
  -webkit-transform: skewX(-25deg);
  transform: skewX(-25deg);
  background: -webkit-gradient(linear,
      left top,
      right top,
      from(rgba(255, 255, 255, 0)),
      to(rgba(255, 255, 255, 0.8)));
  background: linear-gradient(to right,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.8) 100%);

  /*キラッと光る形状*/
  width: 50%;
  height: 100%;
  content: "";
}

.c-btn.c-btn--shine:hover,
.c-btn.c-btn--shine:focus-visible {
  opacity: 1;
  border-color: #fff;
  background-color: #fff;
  color: #000;
}

.c-btn.c-btn--shine:hover::before,
.c-btn.c-btn--shine:focus-visible::before {
  -webkit-animation: shine 0.7s;
  animation: shine 0.7s;
}

@-webkit-keyframes shine {
  100% {
    left: 125%;
  }
}

@keyframes shine {
  100% {
    left: 125%;
  }
}

.c-btn--arrowRight {
  position: relative;
  padding-right: 2em;
  padding-left: 1.38em;
}

.c-btn--arrowRight::after {
  position: absolute;
  top: 50%;
  right: 0.83em;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  font: var(--fa-font-solid);
  font-weight: 900;
  content: "\f061";
}

/************************************************************************
* バリエーション:角丸ボタン
************************************************************************/
.c-roundedBtn {
  display: inline-block;
  -webkit-transition: 0.25s;
  transition: 0.25s;
  border: 2px solid transparent;
  border-radius: 10px;
  border-bottom-color: rgb(6.9836065574, 43.0655737705, 64.0163934426);
  background-color: #0c4a6e;
  padding: 15px 10px;
  width: 236px;
  max-width: 100%;
  color: #fff;
  font-size: 16px;
  font-size: 1rem;
  text-align: center;
  text-decoration: none;
}

.c-roundedBtn:hover,
.c-roundedBtn:focus {
  border-color: currentColor;
  background-color: #fff;
  color: #0c4a6e;
}

/************************************************************************
* バリエーション：アイコン付き小ボタン
************************************************************************/
.c-beforeIconBtn {
  display: inline-block;
  position: relative;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border: 1px solid currentColor;
  padding: 0.2em 0.3em;
  color: #0c4a6e;
  text-decoration: none;
}

.c-beforeIconBtn:hover,
.c-beforeIconBtn:focus {
  background-color: #0c4a6e;
  color: #fff;
}

.c-beforeIconBtn::before {
  display: inline-block;
  margin-right: 0.5em;
  font: var(--fa-font-solid);
  font-weight: 900;
}

.c-beforeIconBtn--download::before {
  content: "\f019";
}

.c-totop {
  display: block;
  position: fixed;
  right: 20px;
  right: 1.25rem;
  bottom: 20px;
  bottom: 1.25rem;
  visibility: hidden;
  opacity: 0;
  z-index: 30;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  background-color: #65a7ce;
  width: 50px;
  width: 3.125rem;
  height: 50px;
  height: 3.125rem;
}

.c-totop::before {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -20%) rotate(-45deg);
  transform: translate(-50%, -20%) rotate(-45deg);
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  width: 20px;
  width: 1.25rem;
  height: 20px;
  height: 1.25rem;
  content: "";
}

.c-totop.is-active {
  visibility: visible;
  opacity: 0.7;
}

.c-totop.is-active:hover,
.c-totop.is-active:focus {
  opacity: 1;
}

.p-article__date+.p-article__date {
  margin-left: 20px;
}

.p-article__label {
  margin-left: 20px;
}

.p-article__title {
  margin-top: 31px;
  font-size: 20px;
  line-height: 1.5;
}

.p-article__eyecatch {
  margin-bottom: 30px;
  margin-bottom: 1.875rem;
  text-align: center;
}

.p-article__body {
  margin-top: 16px;
  border-top: 1px solid #b5b5b5;
  border-bottom: 1px solid #b5b5b5;
  padding-top: 30px;
  padding-bottom: 50px;
  font-size: 15px;
  line-height: 2;
}

.p-article__body h1,
.p-article__body h2,
.p-article__body h3,
.p-article__body h4,
.p-article__body h5,
.p-article__body h6 {
  margin-top: 2em;
  margin-bottom: 1em;
  font-weight: 700;
  line-height: 1.5;
}

.p-article__body h1 {
  font-size: 32px;
  font-size: 2rem;
}

.p-article__body h2 {
  background-color: #000;
  padding: 0.3em 0.4em;
  color: #fff;
  font-size: 26px;
  font-size: 1.625rem;
}

.p-article__body h3 {
  border-left: 5px solid #000;
  padding-left: 0.5em;
  font-size: 24px;
  font-size: 1.5rem;
}

.p-article__body h4 {
  font-size: 20px;
  font-size: 1.25rem;
}

.p-article__body h5 {
  font-size: 18px;
  font-size: 1.125rem;
}

.p-article__body .c-beforeBar {
  position: relative;
  padding-left: 1.5em;
}

.p-article__body .c-beforeBar::before {
  position: absolute;
  top: 1em;
  left: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: #000;
  content: "ー";
}

.p-article__body ul {
  list-style: none;
}

.p-article__body ul li {
  position: relative;
  padding-left: 1em;
}

.p-article__body ul li::before {
  position: absolute;
  left: 0;
  content: "・";
}

.p-article__body table {
  border: none;
  width: 100%;
}

.p-article__body table th,
.p-article__body table td {
  vertical-align: middle;
  border: none;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 20px;
  padding: 1.25rem;
}

.p-article__body table th {
  border-right: 1px solid #000;
  width: 130px;
  width: 8.125rem;
  font-size: 17px;
  font-size: 1.0625rem;
  font-weight: 700;
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
  text-justify: inter-ideograph;
}

.p-article__body *+* {
  margin-top: 25px;
}

.p-article__body *:first-child {
  margin-top: 0;
}

.p-article__body .wp-block-spacer,
.p-article__body .wp-block-spacer+* {
  margin-top: 0;
}

.p-article__body p {
  font-weight: 400;
}

.p-article__body ul,
.p-article__body ol {
  display: grid;
  grid-template-columns: -webkit-max-content 1fr;
  grid-template-columns: max-content 1fr;
  margin-left: 10px;
  margin-left: 0.625rem;
}

.p-article__body ul ul,
.p-article__body ul ol,
.p-article__body ol ul,
.p-article__body ol ol {
  margin-top: 15px;
  margin-top: 0.9375rem;
  margin-left: 0;
}

.p-article__body ul li,
.p-article__body ol li {
  gap: 10px;
  gap: 0.625rem;
  display: grid;
  grid-column: span 2;
  grid-template-columns: subgrid;
}

.p-article__body ol {
  padding-left: 1.25em;
}

.p-article__body ol>li:not([class]) {
  list-style: decimal;
}

.p-article__body ol>li:not([class])::marker {
  color: #0c4a6e;
  font-weight: 700;
}

.p-article__body li:not([class])+li {
  margin-top: 10px;
  margin-top: 0.625rem;
}

.p-article__body a:not([class]) {
  color: #0c4a6e;
  text-decoration: underline;
}

.p-article__body figcaption {
  margin-top: 0;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  color: #000;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
}

.p-article__body strong,
.p-article__body b {
  font-weight: 700;
}

.p-article__body blockquote,
.p-article__body q {
  position: relative;
  background-color: #edeef0;
  padding: 1em 4em;
}

.p-article__body blockquote::before,
.p-article__body blockquote::after,
.p-article__body q::before,
.p-article__body q::after {
  position: absolute;
  color: #b2b2b2;
  font: var(--fa-font-solid);
  font-size: 2em;
  font-weight: 900;
}

.p-article__body blockquote::before,
.p-article__body q::before {
  top: 0;
  left: 0.5em;
  content: "\f10d";
}

.p-article__body blockquote::after,
.p-article__body q::after {
  right: 0.5em;
  bottom: 0;
  content: "\f10e";
}

.p-article__body q {
  display: inline-block;
}

.p-article__body dl {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}

.p-article__body dt,
.p-article__body dd {
  border-top: 1px solid #b5b5b5;
  padding: 20px 10px;
  padding: 1.25rem 0.625rem;
}

.p-article__body dt:last-of-type,
.p-article__body dd:last-of-type {
  border-bottom: 1px solid #b5b5b5;
}

.p-article__body dt {
  width: 33%;
  font-weight: 700;
}

.p-article__body dd {
  width: 67%;
}

.p-article__body pre {
  overflow: auto;
  font-size: 14px;
  font-size: 0.875rem;
  letter-spacing: 0;
  white-space: pre;
}

.p-article__body .aligncenter {
  display: block;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.p-article__body .alignleft {
  float: left;
  margin-right: 1em;
}

.p-article__body .alignright {
  float: right;
  margin-left: 1em;
}

.p-article__body .gallery {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.p-article__body .gallery-columns-4 {
  gap: 20px;
}

.p-article__body .gallery-columns-4>.gallery-item {
  width: calc((100% - 60px) / 4);
}

.p-article__body .gallery-item {
  margin-top: 0;
}

.p-article__body .gallery-icon {
  text-align: center;
}

.p-article__links {
  margin-top: 30px;
  margin-top: 1.875rem;
  text-align: center;
}

.post-page-numbers {
  display: inline-block;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  border: 1px solid #0c4a6e;
  width: 2em;
  height: 2em;
  color: #0c4a6e;
  font-size: 14px;
  letter-spacing: 0;
  line-height: 2em;
  text-align: center;
}

.p-article__links .post-page-numbers {
  text-decoration: none;
}

.post-page-numbers+.post-page-numbers {
  margin-left: 10px;
}

.post-page-numbers.current {
  background-color: #0c4a6e;
  color: #fff;
}

.post-page-numbers.dots {
  border: none;
}

.p-company {
  color: #fff;
}

.p-company__body {
  gap: 30px;
  gap: 1.875rem;
  display: grid;
  background-color: rgba(0, 0, 0, 0.8);
  padding: 70px 30px;
  padding: 4.375rem 1.875rem;
}

.p-company__lead {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6666666667;
}

.p-company__text {
  margin-top: 30px;
  margin-top: 1.875rem;
}

.p-company__btn {
  margin-top: 40px;
  margin-top: 2.5rem;
}

.p-company__img {
  position: -webkit-sticky;
  position: sticky;
  top: 40px;
  top: 2.5rem;
  scale: 0.6;
  opacity: 0;
  z-index: -1;
  padding-top: 40px;
  padding-top: 2.5rem;
}

.p-company__img img {
  aspect-ratio: 375/260;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-concept {
  position: relative;
  overflow-x: clip;
}

.p-concept__inner {
  position: relative;
  padding: 60px 0 20px;
  padding: 3.75rem 0 1.25rem;
  width: 63%;
}

@media screen and (max-width: 1080px) {
  .p-concept__inner {
    width: 90%;
  }
}

@media screen and (max-width: 810px) {
  .p-concept__inner {
    width: 100%;
  }
}

.p-concept__heading {
  gap: 50px;
  gap: 4.125rem;
  display: grid;
  position: sticky;
  top: 60px;
  top: 3.75rem;
}

.p-concept__title {
  font-size: 30px;
  font-size: 1.875rem;
  letter-spacing: 0.09em;
  line-height: 1.3666666667;
}

.p-concept__imgs {
  margin: 0 calc(50% - 50vw);
}

.p-concept__imgBox {
  margin-inline: auto;
  position: relative;
  margin-top: 200px;
  margin-top: 12.5rem;
  width: 100%;
  max-width: 1280px;
  height: 685px;
  height: 42.8125rem;
  opacity: 0.6;
  z-index: -1;
}

.p-concept__img {
  position: absolute;
}

.p-concept__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-concept__img:nth-child(1) {
  top: 0;
  right: 0;
  width: 180px;
  width: 11.25rem;
}

.p-concept__img:nth-child(1) img {
  aspect-ratio: 1;
}

.p-concept__img:nth-child(2) {
  top: 250px;
  top: 15.625rem;
  left: -33px;
  left: -2.0625rem;
  width: 220px;
  width: 13.75rem;
}

.p-concept__img:nth-child(2) img {
  aspect-ratio: 220/130;
}

.p-concept__img:nth-child(3) {
  right: 20px;
  right: 1.25rem;
  bottom: 193px;
  bottom: 12.0625rem;
  width: 110px;
  width: 6.875rem;
}

.p-concept__img:nth-child(3) img {
  aspect-ratio: 1;
}

.p-concept__img:nth-child(4) {
  bottom: 0;
  left: 20px;
  left: 1.25rem;
  width: 145px;
  width: 9.0625rem;
}

.p-concept__img:nth-child(4) img {
  aspect-ratio: 1;
}

.p-concept__img {
  z-index: -1;
}

.p-contact {
  padding: 70px 0 50px;
  padding: 4.375rem 0 3.125rem;
}

.p-contact__form {
  margin-top: 44px;
  margin-top: 2.75rem;
}

.p-drawer {
  z-index: 40;
  margin-left: auto;
}

.p-drawer__box {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 100%;
}

.p-drawer__contact {
  display: block;
  display: grid;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  z-index: 41;
  background-color: #000;
  padding: 0 41px;
  padding: 0 2.5625rem;
  height: 100%;
  color: #fff;
  font-size: 15px;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1;
}

.p-drawer__icon {
  display: inline-block;
  position: relative;
  z-index: 41;
  cursor: pointer;
  background-color: #fff;
  padding: 19px 17.5px;
  padding: 1.1875rem 1.09375rem;
  height: 100%;
  font-size: 0;
  line-height: 1;
  text-align: center;
}

.p-drawer__bars {
  display: inline-block;
  vertical-align: bottom;
  width: 16px;
}

.p-drawer__bar {
  display: block;
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
  margin-top: 3px;
  background: #999385;
  width: 100%;
  height: 1px;
}

.p-drawer__bar:first-child {
  margin-top: 0;
}

.is-opened .p-drawer__bar:nth-child(2) {
  background: transparent;
}

.is-opened .p-drawer__bar:first-child {
  -webkit-transform: translateY(4px) rotate(45deg);
  transform: translateY(4px) rotate(45deg);
  width: 100%;
}

.is-opened .p-drawer__bar:last-child {
  -webkit-transform: translateY(-4px) rotate(-45deg);
  transform: translateY(-4px) rotate(-45deg);
  width: 100%;
}

.p-drawer__bg {
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

.p-drawer__bg.is-opened {
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.25);
  width: 100vw;
  height: 100vh;
}

.p-drawer__content {
  -webkit-overflow-scrolling: touch;
  position: fixed;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  -webkit-transform: translateX(105%);
  transform: translateX(105%);
  z-index: 40;
  -webkit-transition: -webkit-transform 0.5s ease 0s;
  transition: -webkit-transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;
  background: #f1efeb;
  padding-top: var(--header-height, 45px);
  padding-bottom: var(--header-height, 45px);
  width: 100%;
  height: 100vh;
  max-height: 100dvh;
  overflow: auto;
}

.p-drawer__content.is-opened {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  -webkit-box-shadow: 6px 0 25px rgba(0, 0, 0, 0.16);
  box-shadow: 6px 0 25px rgba(0, 0, 0, 0.16);
}

.p-drawer__inner {
  position: relative;
  padding-right: 20px;
  padding-left: 20px;
  width: 100%;
}

.p-drawer__nav {
  padding: 106px 0 151px;
  padding: 6.625rem 0 9.4375rem;
}

.p-drawer__img {
  display: none;
}

.p-flow {
  background-color: #edeef0;
  padding: 70px 0;
  padding: 4.375rem 0;
}

.p-flow__lead {
  margin-top: 40px;
  margin-top: 2.5rem;
  font-size: 18px;
  font-size: 1.1rem;
  line-height: 1.6666666667;
}

.p-flow__list {
  gap: 61px;
  gap: 3.8125rem;
  display: grid;
  margin-top: 41px;
  margin-top: 2.5625rem;
}

.p-flow__item {
  position: relative;
}

.p-flow__item:not(:last-child)::after {
  display: block;
  position: absolute;
  top: calc(100% + 1.25rem);
  left: 50%;
  -webkit-transform: translateX(-50%) rotate(90deg);
  transform: translateX(-50%) rotate(90deg);
  background-image: url(../images/common/arrow_down_sp.svg);
  background-position: top;
  background-repeat: no-repeat;
  background-size: contain;
  width: 20px;
  width: 1.25rem;
  height: 20px;
  height: 1.25rem;
  content: "";
}

.p-flow__step {
  position: absolute;
  top: 0;
  left: 0;
  color: #999385;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1;
  text-align: center;
}

.p-flow__step span {
  font-size: 40px;
  font-size: 2.5rem;
}

.p-flow__img img {
  aspect-ratio: 300/240;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  clip-path: polygon(38% 0%, 100% 0, 100% 100%, 0 100%, 0% 38%);
}

.p-flow__title {
  margin-top: 15px;
  font-size: 1.2rem;
}

.p-flow__text {
  margin-top: 15px;
}

.p-footer {
  background-color: #2e2e2e;
  padding: 70px 0 60px;
  padding: 4.375rem 0 3.75rem;
  color: #fff;
}

.p-footer__inner {
  gap: 50px;
  gap: 3.125rem;
  display: grid;
}

.p-footer__logo {
  width: 247px;
  width: 15.4375rem;
}

.p-footer__address {
  margin-top: calc(1.875rem - 0.3em);
}

.p-footer__contact {
  gap: 24px;
  gap: 1.5rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}

.p-footer__telList {
  gap: calc(0.5625rem - 0.6em);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  margin-top: calc(1.875rem - 0.3em);
  list-style: none;
}

.p-footer__telItem {
  gap: 10px;
  gap: 0.625rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.p-footer__telLabel {
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 40px;
  width: 2.5rem;
  color: rgba(255, 255, 255, 0.3);
}

.p-footer__telNumber {
  color: #fff;
  font-size: 14px;
  font-size: 0.875rem;
}

.p-footer__copy {
  margin-top: 60px;
  margin-top: 3.75rem;
  font-size: 11px;
  font-size: 0.6875rem;
  text-align: center;
}

.p-form {
  background-color: #f1efeb;
  padding: 40px 30px;
  padding: 2.5rem 1.875rem;
}

.p-form__thanks {
  margin-top: 30px;
}

.p-form__thanks .c-btn {
  margin-top: 30px;
}

.p-form__note {
  color: #eb002c;
}

.p-form__list {
  gap: calc(1.875rem - 0.3em);
  display: grid;
  margin-top: 20px;
  margin-top: 1.25rem;
}

.p-form__item {
  gap: calc(1.25rem - 0.6em);
  display: grid;
}

.p-form__itemBody {
  gap: 20px;
  gap: 1.25rem;
  /* display: grid; */
}

.p-form__input.p-form__input--area {
  width: 96px;
  width: 6rem;
}

.p-form__zip {
  gap: 14px;
  gap: 0.875rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  align-items: center;
}

@media screen and (max-width: 650px) {
  .p-form__zip {
    margin-bottom: 5px;
  }
}

.p-form__privacyWrap {
  margin-top: 28px;
  margin-top: 1.75rem;
  text-align: center;
}

.p-form__checkboxText {
  font-size: 12px;
  font-size: 0.75rem;
  text-align: center;
}

.p-form__red {
  padding-left: 5px;
  padding-left: 0.3125rem;
  color: #eb002c;
  font-size: 14px;
  font-size: 0.875rem;
}

.p-form__scrollBox {
  margin-top: 40px;
  margin-top: 2.5rem;
  background-color: #f7f7f8;
  padding: 9px;
  padding: 0.5625rem;
  height: 120px;
  height: 7.5rem;
  overflow-y: scroll;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 2;
}

.p-form__footer {
  text-align: center;
}

/************************************************************************
* p-fv
************************************************************************/
.p-gallery {
  position: relative;
  background-color: #f1efeb;
  padding: 115px 0;
  padding: 7.1875rem 0;
  overflow-x: clip;
}

.p-gallery__flow {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  position: absolute;
  top: 0;
  -webkit-transform: translateY(-40%);
  transform: translateY(-40%);
  z-index: 3;
  -webkit-animation: flowanimation 30s linear infinite;
  animation: flowAnimation 30s linear infinite;
  background: -webkit-gradient(linear,
      left top,
      left bottom,
      color-stop(40%, #f1efeb),
      color-stop(40%, #fff));
  background: linear-gradient(to bottom, #f1efeb 40%, #fff 40%);
  background-clip: text;
  color: transparent;
  font-size: 76px;
  font-size: 4.75rem;
  line-height: 1;
  white-space: nowrap;
}

@-webkit-keyframes flowAnimation {
  from {
    -webkit-transform: translate(0%, -40%);
    transform: translate(0%, -40%);
  }

  to {
    -webkit-transform: translate(-50%, -40%);
    transform: translate(-50%, -40%);
  }
}

@keyframes flowAnimation {
  from {
    -webkit-transform: translate(0%, -40%);
    transform: translate(0%, -40%);
  }

  to {
    -webkit-transform: translate(-50%, -40%);
    transform: translate(-50%, -40%);
  }
}

.p-gallery__list {
  gap: 70px;
  gap: 4.375rem;
  display: grid;
  margin-top: 50px;
  margin-top: 3.125rem;
}

.p-gallery__item:nth-child(odd) .p-galleryItem {
  margin-right: calc(50% - 50vw);
}

.p-gallery__item:nth-child(odd) .p-galleryItem__swiperBtn--next {
  right: 20px;
  right: 1.25rem;
}

.p-gallery__item:nth-child(even) .p-galleryItem {
  margin-left: calc(50% - 50vw);
}

.p-gallery__item:nth-child(even) .p-galleryItem__swiperBtn--prev {
  left: 20px;
  left: 1.25rem;
}

.p-gallery__itemBtn {
  margin-top: 30px;
  margin-top: 1.875rem;
}

.p-gallery__decoration {
  position: absolute;
  bottom: -7px;
  bottom: -0.4375rem;
  left: -3px;
  left: -0.1875rem;
  opacity: 0.3;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  color: #fff;
  font-size: 76px;
  font-size: 4.75rem;
  line-height: 1;
  white-space: nowrap;
}

.p-galleryItem__contents {
  gap: 20px;
  gap: 1.25rem;
  display: grid;
}

.p-galleryItem__contents.p-galleryItem__contents--left .p-subTitle {
  text-align: right;
}

.p-galleryItem__swiper {
  width: 100%;
}

.p-galleryItem__swiper .swiper-wrapper {
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
}

.p-galleryItem__img img {
  aspect-ratio: 287/335;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-galleryItem__swiperBtn {
  position: absolute;
}

.p-galleryItem__swiperBtn--prev {
  left: 0;
}

.p-galleryItem__swiperBtn--next {
  right: 0;
}

.p-header__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  align-items: flex-start;
  align-items: center;
  padding-left: 9px;
  padding-left: 0.5625rem;
  height: 100%;
}

.p-header__logo {
  position: relative;
  z-index: 41;
  width: 200px;
}

.logo--black {
  opacity: 0;
}

.logo--white {
  position: absolute;
  top: 0;
  left: 0;
}

.js-active .logo--white {
  opacity: 0;
  position: relative;
}

.js-active .logo--black {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 1;
  z-index: 1;
}


.p-header__logo img,
.p-header__logo svg {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  transition: opacity 0.3s;
}

.p-header__drawer {
  height: 50px;
}

.p-member {
  padding: 70px 0 95px;
  padding: 4.375rem 0 5.9375rem;
}

.p-member__lead {
  margin-top: 40px;
  margin-top: 2.5rem;
  font-size: 18px;
  font-size: 1.1rem;
  line-height: 1.6666666667;
}

.p-member__list {
  gap: 40px;
  gap: 2.5rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  margin-top: 40px;
  margin-top: 2.5rem;
}

.p-member__item {
  gap: calc(1.875rem - 0.6em);
  display: grid;
  width: 100%;
}

.p-member__img {
  width: 100%;
}

.p-member__img img {
  aspect-ratio: 335/218;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-member__body {
  gap: calc(1.875rem - 0.6em);
  display: grid;
  width: 100%;
}

.p-member__bodyHead {
  gap: calc(1.875rem - 0.3em);
  display: grid;
}

.p-member__catch {
  font-size: 18px;
  font-size: 1.2rem;
  font-weight: 700;
}

.p-member__info {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  margin-left: auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  letter-spacing: 0.16em;
}

.p-member__role {
  font-size: 14px;
  font-size: 0.875rem;
}

.p-member__name {
  font-size: 20px;
  font-size: 1.25rem;
}

.p-member__btn {
  margin-top: 60px;
  margin-top: 3.75rem;
  text-align: center;
}

.p-mv {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 400px;
  min-height: 25rem;
  overflow: clip;
}

.p-mv__splash {
  inset: 0;
  position: fixed;
  z-index: 9999;
  background-image: -webkit-gradient(linear,
      left top,
      left bottom,
      from(hsla(0, 0%, 100%, 0)),
      color-stop(hsla(0, 0%, 100%, 0)),
      color-stop(#f1efeb),
      to(#f1efeb));
  background-image: linear-gradient(180deg,
      hsla(0, 0%, 100%, 0),
      hsla(0, 0%, 100%, 0),
      #f1efeb,
      #f1efeb);
  background-position: center bottom 0;
  background-size: 100% 300%;
  width: 100%;
  height: 100vh;
  height: 100svh;
  pointer-events: none;
}

.p-mv__splash.isHidden {
  -webkit-transition: background-position 1s cubic-bezier(0.39, 0.58, 0.57, 1) 0.5s;
  transition: background-position 1s cubic-bezier(0.39, 0.58, 0.57, 1) 0.5s;
  background-position: center bottom 100%;
}

.p-mv__mainTitle {
  position: absolute;
  bottom: 50px;
  bottom: 3.125rem;
  left: 20px;
  left: 1.25rem;
  z-index: 3;
  color: #fff;
  font-size: 30px;
  font-size: 1.875rem;
  letter-spacing: 0.09em;
  line-height: 1.275;
}

.p-mv__slide {
  inset: 0;
  position: absolute;
}

.p-mv__slide::before {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 2;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  content: "";
}

.p-mv__slideItem {
  inset: 0;
  position: absolute;
}

.p-mv__slideItem img {
  scale: 1.05;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-mv__slideItem.now {
  z-index: 1;
  -webkit-clip-path: inset(0 0 0 100%);
  clip-path: inset(0 0 0 100%);
  -webkit-animation: mvAnimation 1s ease forwards;
  animation: mvAnimation 1s ease forwards;
}

.p-mv__slideItem.now img {
  -webkit-animation: mvZoom 4s linear forwards;
  animation: mvZoom 4s linear forwards;
}

.p-mv__slideItem.pre {
  z-index: 0;
}

@keyframes mvAnimation {
  0% {
    -webkit-clip-path: inset(0 0 0 100%);
    clip-path: inset(0 0 0 100%);
  }

  100% {
    -webkit-clip-path: inset(0 0 0 0%);
    clip-path: inset(0 0 0 0%);
  }
}

@keyframes mvZoom {
  0% {
    scale: 1;
  }

  100% {
    scale: 1.05;
  }
}

.p-mv__scroll {
  position: absolute;
  right: 32px;
  right: 2rem;
  bottom: 20px;
  bottom: 1.25rem;
  z-index: 3;
  width: 1px;
  height: 37px;
  height: 2.3125rem;
  color: #fff;
}

.p-mv__scroll::after {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 3;
  -webkit-animation: scrollline 2s infinite;
  animation: scrollLine 2s infinite;
  background-color: #fff;
  width: 1px;
  height: 100%;
  content: "";
}

.p-mv__scroll span {
  display: none;
}

/* 線のアニメーション */
@-webkit-keyframes scrollLine {
  0% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  51% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }

  100% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}

@keyframes scrollLine {
  0% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  51% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }

  100% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}

/* 矢印のアニメーション */
@-webkit-keyframes scrollArrow {
  0% {
    -webkit-transform: rotate(-45deg) translate(0, 0);
    transform: rotate(-45deg) translate(0, 0);
    opacity: 0;
  }

  40% {
    opacity: 1;
  }

  80% {
    -webkit-transform: rotate(-45deg) translate(-20px, 20px);
    transform: rotate(-45deg) translate(-20px, 20px);
    opacity: 0;
  }

  100% {
    opacity: 0;
  }
}

@keyframes scrollArrow {
  0% {
    -webkit-transform: rotate(-45deg) translate(0, 0);
    transform: rotate(-45deg) translate(0, 0);
    opacity: 0;
  }

  40% {
    opacity: 1;
  }

  80% {
    -webkit-transform: rotate(-45deg) translate(-20px, 20px);
    transform: rotate(-45deg) translate(-20px, 20px);
    opacity: 0;
  }

  100% {
    opacity: 0;
  }
}

.p-navBlock {
  gap: 32px;
  gap: 2rem;
  display: grid;
}

.p-navBlock.p-navBlock--drawer .p-navBlock__list {
  width: 100%;
}

.p-navBlock.p-navBlock--drawer .p-navBlock__titleEn {
  color: #999385;
}

.p-navBlock__list {
  gap: 40px 33px;
  gap: 2.5rem 2.0625rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.p-navBlock__title {
  border-top: 1px solid #707070;
  padding-top: calc(1.375rem - 0.3em);
}

.p-navBlock__titleEn {
  display: block;
  color: rgba(255, 255, 255, 0.3);
  font-size: 13px;
  font-size: 0.8125rem;
}

.p-navBlock__titleJa {
  font-size: 15px;
  font-size: 0.9375rem;
  letter-spacing: 0.09em;
}

.p-navBlock__link {
  gap: calc(0.6875rem - 0.6em);
  display: grid;
}

.p-navBlock__subList {
  margin-top: calc(1.3125rem - 0.6em);
  font-size: 12px;
  font-size: 0.75rem;
}

.p-navBlock__subItemLink {
  display: block;
  position: relative;
  -webkit-transition: opacity 0.3s ease 0s;
  transition: opacity 0.3s ease 0s;
  padding-left: 16px;
  padding-left: 1rem;
}

.p-navBlock__subItemLink::before {
  aspect-ratio: 5/1;
  display: block;
  position: absolute;
  top: 0.5lh;
  left: 0;
  background-color: #707070;
  width: 5px;
  width: 0.3125rem;
  content: "";
}

/************************************************************************
* p-pagination
************************************************************************/
.p-pagination__inner {
  letter-spacing: 0;
  text-align: center;
}

.page-numbers {
  display: inline-block;
  border: 1px solid #0c4a6e;
  width: 2em;
  height: 2em;
  color: #0c4a6e;
  font-size: 14px;
  font-size: 0.875rem;
  letter-spacing: 0;
  line-height: 2;
}

.page-numbers+.page-numbers {
  margin-left: 10px;
  margin-left: 0.625rem;
}

.page-numbers.current {
  background-color: #0c4a6e;
  color: #fff;
}

.page-numbers.dots {
  border: none;
}

.p-recruit {
  position: relative;
  padding: 70px 0 80px;
  padding: 4.375rem 0 5rem;
  overflow-x: clip;
}

.p-recruit__bg {
  position: absolute;
  bottom: 0;
  z-index: -1;
  -webkit-clip-path: inset(0);
  clip-path: inset(0);
  width: 100%;
  height: 62.0643431635%;
  pointer-events: none;
}

.p-recruit__bg::after {
  position: fixed;
  top: 0;
  left: 0;
  background-image: url(../images/top/recruit_bg.png);
  background-size: cover;
  width: 100%;
  height: 100%;
  content: "";
}

.p-recruit__content {
  margin-top: 40px;
  margin-top: 2.5rem;
}

.p-recruit__body {
  gap: 30px;
  gap: 1.875rem;
  display: grid;
}

.p-recruit__img {
  position: relative;
  margin: 0 calc(50% - 50vw);
}

.p-recruit__img img {
  aspect-ratio: 355/178;
  display: block;
  margin-left: auto;
  width: 94.6666666667vw;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-recruit__message {
  gap: 30px;
  gap: 1.875rem;
  display: grid;
  z-index: 4;
}

.p-recruit__lead {
  font-size: 18px;
  font-size: 1.125rem;
  /* font-feature-settings: "palt"; */
}

.p-sectionTitle {
  display: grid;
  position: relative;
  padding-bottom: calc(1.25rem - 0.3em);
  font-size: 25px;
  font-size: 1.5625rem;
}

.p-sectionTitle::before {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #999385;
  width: 25px;
  width: 1.5625rem;
  height: 2px;
  height: 0.125rem;
  content: "";
}

.p-sectionTitle.p-sectionTitle--white {
  color: #fff;
}

.p-sectionTitle.p-sectionTitle--white .p-sectionTitle-en {
  color: #fff;
}

.p-sectionTitle.p-sectionTitle--white::before {
  background-color: #fff;
}

.p-sectionTitle-en {
  color: #999385;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5;
}

.p-sectionTitle-ja {
  letter-spacing: 0.16em;
}

.p-service {
  overflow-x: clip;
}

.p-service__inner {
  margin-inline: auto;
  position: relative;
}

.p-service__decoration {
  display: none;
}

.p-service__list {
  gap: 70px;
  gap: 4.375rem;
  display: grid;
  margin-top: 60px;
  margin-top: 3.75rem;
}

.p-service__item:nth-child(2) .p-service__itemTitle {
  text-align: right;
}

.p-service__itemImgBox {
  position: relative;
  margin-top: 30px;
  margin-top: 1.875rem;
  padding-bottom: 68px;
  padding-bottom: 4.25rem;
}

.p-service__itemImg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-service__itemImg:first-of-type {
  margin: 0 calc(50% - 50vw);
}

.p-service__itemImg:first-of-type img {
  aspect-ratio: 375/188;
}

.p-service__itemImg:nth-of-type(2) {
  aspect-ratio: 1;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  width: 34.1333333333vw;
}

.p-service__itemImg:nth-of-type(2) img {
  aspect-ratio: 1/1.2;
  margin-top: auto;
  height: auto;
}

.p-service__itemText {
  margin-top: 30px;
  margin-top: 1.875rem;
}

.p-service__itemBtn {
  margin-top: 40px;
  margin-top: 2.5rem;
}

.p-subTitle {
  font-size: 20px;
  font-size: 1.25rem;
  letter-spacing: 0.16em;
  line-height: 1.2;
}

.clearfix::after {
  display: block;
  clear: both;
  content: "";
}

/************************************************************************
* visible device
************************************************************************/
.u-onlyPc {
  display: none;
}

.u-onlyTab {
  display: none;
}

.u-onlySp {
  display: none;
}

.u-inlineBlock {
  display: inline-block !important;
}

.u-block {
  display: block !important;
}

.u-inline {
  display: inline !important;
}

.u-overflowHidden {
  overflow: hidden !important;
}

@media screen and (min-width: 600px) {
  .p-article__body .gallery-columns-4>.gallery-item {
    width: calc((100% - 20px) / 2);
  }

  .p-flow__text {
    margin-top: 15px;
  }
}

/* Tab */
@media screen and (min-width: 768px) {
  body {
    font-size: 16px;
    font-size: 1rem;
  }

  html {
    font-size: 1.5625vw;
  }

  input,
  textarea {
    padding: calc(1.375rem - 0.6em) 1.875rem;
    font-size: 16px;
    font-size: 1rem;
  }

  select {
    font-size: 16px;
    font-size: 1rem;
  }

  :root {
    --header-height: 57px;
  }

  .swiper-button-prev,
  .swiper-button-next {
    background-size: 1.3125rem;
    width: 70px;
    width: 4.375rem;
  }

  .swiper-button-prev:hover,
  .swiper-button-next:hover {
    background-position: calc(50% + 0.3125rem);
  }

  #toc_container {
    padding: 30px 60px;
    padding: 1.875rem 3.75rem;
  }

  .l-concept {
    margin-top: 42px;
    margin-top: 2.625rem;
  }

  .l-container {
    padding-right: 30px;
    padding-left: 30px;
    max-width: 1084px;
  }

  .l-container.l-container--narrow {
    max-width: 879.2px;
  }

  .l-container.l-container--wide {
    max-width: 1288.8px;
  }

  .l-gallery {
    margin-top: 120px;
    margin-top: 7.5rem;
  }

  .l-service {
    padding: 140px 0 70px;
    padding: 8.75rem 0 4.375rem;
  }

  .p-header__drawer {
    height: 65px;
  }

  .c-btn {
    padding: 17px 76px;
    padding: 1.0625rem 4.75rem;
  }

  .c-btn:hover,
  .c-btn:focus-visible {
    outline: none;
    background-color: #000;
    color: #fff;
  }

  .c-btn:hover::before,
  .c-btn:focus-visible::before {
    -webkit-transform: translateX(0.5rem);
    transform: translateX(0.5rem);
    mix-blend-mode: exclusion;
    background-color: white;
  }

  .c-btn--white:hover,
  .c-btn--white:focus {
    background-color: #fff;
    color: #000;
  }

  .c-btn--white:hover::before,
  .c-btn--white:focus::before {
    mix-blend-mode: difference;
    background-color: #fff;
  }

  .c-btn--black:hover,
  .c-btn--black:focus {
    background-color: #fff;
    color: #000;
  }

  .p-article__title {
    font-size: 24px;
  }

  .p-article__body {
    padding-top: 60px;
    padding-bottom: 100px;
    font-size: 16px;
  }

  .p-article__body table th,
  .p-article__body table td {
    padding: 20px 30px;
    padding: 1.25rem 1.875rem;
  }

  .p-article__body table th {
    width: 153px;
    width: 9.5625rem;
  }

  .p-article__body .gallery-columns-4>.gallery-item {
    width: calc((100% - 40px) / 3);
  }

  .p-company__inner {
    padding-bottom: 200px;
    padding-bottom: 12.5rem;
  }

  .p-company__body {
    gap: 170px;
    gap: 10.625rem;
    grid-template-columns: 12.5rem 1fr;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 80px 80px 80px 140px;
    padding: 5rem 5rem 5rem 8.75rem;
  }

  .p-company__lead {
    font-size: 26px;
    font-size: 1.625rem;
  }

  .p-company__text {
    margin-top: 40px;
    margin-top: 2.5rem;
  }

  .p-company__btn {
    margin-top: 50px;
    margin-top: 3.125rem;
  }

  .p-company__img {
    top: -100px;
    top: -6.25rem;
    padding-top: 100px;
    padding-top: 6.25rem;
    height: calc(100vh + 6.25rem);
  }

  .p-company__img img {
    aspect-ratio: 375/200;
  }

  .p-concept__inner {
    margin-inline: auto;
    padding: 87px 0 167px;
    padding: 5.4375rem 0 10.4375rem;
    max-width: 1280px;
    /* width: 100%; */
  }

  .p-concept__heading {
    display: flex;
    justify-content: right;
    top: 87px;
    top: 5.4375rem;
    filter: drop-shadow(0px 0px 5px #fff);
  }

  .p-concept__title {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
    font-size: 40px;
    font-size: 2.5rem;
    line-height: 1.7;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }

  .p-concept__textList {
    margin-top: 100px;
    margin-top: 6.25rem;
    /* max-height: 376px;
    max-height: 23.5rem; */
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }

  .p-concept__textItem {
    /* line-height: 2.4; */
    line-height: 2.8;
    font-size: 1.2rem;
  }

  .p-concept__imgBox {
    height: 766px;
    height: 47.875rem;
  }

  .p-concept__img:nth-child(1) {
    top: 68px;
    top: 4.25rem;
    right: inherit;
    left: 0;
    width: min(36.09375vw, 462px);
    width: min(36.09375vw, 28.875rem);
  }

  .p-concept__img:nth-child(2) {
    top: 0;
    right: 43px;
    right: 2.6875rem;
    left: inherit;
    width: min(44.375vw, 568px);
    width: min(44.375vw, 35.5rem);
  }

  .p-concept__img:nth-child(3) {
    right: inherit;
    bottom: -160px;
    bottom: -10rem;
    left: 167px;
    left: 10.4375rem;
    width: min(21.25vw, 272px);
    width: min(21.25vw, 17rem);
  }

  .p-concept__img:nth-child(4) {
    right: 85px;
    right: 5.3125rem;
    left: inherit;
    width: min(15.15625vw, 194px);
    width: min(15.15625vw, 12.125rem);
  }

  .p-contact {
    padding: 140px 0;
    padding: 8.75rem 0;
  }

  .p-contact__form {
    margin-top: 80px;
    margin-top: 5rem;
  }

  .p-drawer__contact {
    padding: 0 51px;
    padding: 0 3.1875rem;
    font-size: 20px;
    font-size: 1.25rem;
  }

  .p-drawer__icon {
    padding: 22px 24px;
    padding: 1.375rem 1.5rem;
  }

  .p-drawer__content {
    padding: 0;
  }

  .p-drawer__inner {
    margin-inline: auto;
    max-width: 2000px;
    height: 100%;
  }

  .p-drawer__nav {
    margin-left: auto;
    padding: 182px 103px;
    padding: 11.375rem 6.4375rem;
    width: 70%;
  }

  .p-drawer__img {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 30%;
    height: 100%;
  }

  .p-drawer__img img {
    aspect-ratio: 384/720;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  .p-flow {
    padding: 140px 0;
    padding: 8.75rem 0;
  }

  .p-flow__lead {
    margin-top: 76px;
    margin-top: 4.75rem;
    font-size: 26px;
    font-size: 1.1rem;
  }

  .p-flow__list {
    grid-template-columns: repeat(3, 1fr);
    margin-top: 80px;
    margin-top: 5rem;
  }

  .p-flow__item:not(:last-child)::after {
    display: none;
  }

  /* .p-flow__item {

  } */

  .p-flow__item:not(:nth-child(3n + 1)) .p-flow__img::before {
    display: block;
    position: absolute;
    top: 50%;
    right: calc(100% + 1.25rem);
    left: inherit;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    background-image: url(../images/common/arrow_right.svg);
    background-position: top;
    background-repeat: no-repeat;
    background-size: contain;
    width: 18px;
    width: 1.125rem;
    height: 9px;
    height: 0.5625rem;
    content: "";
  }

  .p-flow__step {
    left: 0;
  }

  .p-flow__img {
    position: relative;
    padding: 10px 0 0 0;
    padding: 0.625rem 0 0 0;
    /* clip-path: polygon(38% 0%, 100% 0, 100% 100%, 0 100%, 0% 38%); */
  }

  .p-flow__title {
    margin-top: 15px;
    font-size: 1.2rem;
  }

  .p-flow__text {
    margin-top: 15px;
  }

  .p-footer {
    padding: 80px 0;
    padding: 5rem 0;
  }

  .p-footer__inner {
    gap: 100px;
    gap: 6.25rem;
    grid-template-columns: 2fr 4.21fr;
  }

  .p-footer__address {
    margin-top: calc(3.375rem - 0.3em);
  }

  .p-footer__telList {
    margin-top: calc(1.5rem - 0.3em);
  }

  .p-footer__telNumber {
    font-size: 16px;
    font-size: 1rem;
  }

  .p-footer__copy {
    margin-top: 46px;
    margin-top: 2.875rem;
    text-align: left;
  }

  .p-form {
    padding: 80px 85px;
    padding: 5rem 5.3125rem;
  }

  .p-form__list {
    gap: 20px;
    gap: 1.25rem;
    margin-top: 30px;
    margin-top: 1.875rem;
  }

  .p-form__item {
    grid-template-columns: 10.875rem auto;
  }

  .p-form__itemHead {
    padding-top: 5px;
    padding-top: 0.3125rem;
  }

  .p-form__itemBody {
    gap: 5px 20px;
    gap: 0.3125rem 1.25rem;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  .p-form__itemBody.p-form__itemBody--area {
    gap: 20px;
    gap: 1.25rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }

  .p-form__input.p-form__input--area {
    width: 125px;
    width: 7.8125rem;
  }

  .p-form__privacyWrap {
    margin-top: 52px;
    margin-top: 3.25rem;
  }

  .p-form__checkboxText {
    font-size: 16px;
    font-size: 1rem;
  }

  .p-form__submit {
    margin: 4rem auto 0;
    display: table;
  }

  .p-form__scrollBox {
    margin-left: auto;
    padding: 30px;
    padding: 1.875rem;
    width: 77.2833723653%;
    height: 300px;
    /* height: 18.75rem; */
  }

  .p-gallery {
    padding: 160px 0 174px;
    padding: 10rem 0 10.875rem;
  }

  .p-gallery__flow {
    font-size: 174px;
    font-size: 10.875rem;
  }

  .p-gallery__list {
    gap: 100px;
    gap: 6.25rem;
    margin-top: 80px;
    margin-top: 5rem;
  }

  .p-gallery__item:nth-child(odd) .p-galleryItem__swiperBtn--next {
    right: 128px;
    right: 8rem;
  }

  .p-gallery__item:nth-child(even) .p-galleryItem__swiperBtn--prev {
    left: 128px;
    left: 8rem;
  }

  .p-gallery__itemBtn {
    margin-top: 40px;
    margin-top: 2.5rem;
    text-align: center;
  }

  .p-gallery__decoration {
    bottom: -18px;
    bottom: -1.125rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    font-size: 160px;
    font-size: 10rem;
  }

  .p-galleryItem__contents {
    gap: 0;
    grid-template-columns: 11.25rem 1fr;
    max-width: 1600px;
  }

  .p-galleryItem__contents.p-galleryItem__contents--left {
    grid-template-columns: 1fr 11.25rem;
    margin-left: auto;
  }

  .p-galleryItem__contents.p-galleryItem__contents--left .p-galleryItem__title {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }

  .p-galleryItem__contents.p-galleryItem__contents--left .p-galleryItem__title .p-subTitle {
    margin-left: auto;
    text-align: left;
  }

  .p-header__inner {
    padding-left: 24px;
    padding-left: 1.5rem;
  }

  .p-header__logo {
    display: flex;
    align-content: center;
    justify-content: center;
    width: 306px;
    /* width: 19.125rem; */
    width: 17.125rem;
  }

  .p-member {
    background-image: url(../images/top/member_bg.png);
    background-position: top;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 140px 0 150px;
    padding: 8.75rem 0 9.375rem;
  }

  .p-member__lead {
    margin-top: 76px;
    margin-top: 4.75rem;
    font-size: 26px;
    font-size: 1.1rem;
  }

  .p-member__list {
    gap: 60px;
    gap: 3.75rem;
    margin-top: 76px;
    margin-top: 4.75rem;
  }

  .p-member__item {
    gap: 60px;
    gap: 3.75rem;
    grid-template-columns: 4fr 5.48fr;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }

  .p-member__body {
    gap: 108px;
    gap: 6.75rem;
    grid-template-columns: 3.6fr 0.82fr;
  }

  .p-member__bodyHead {
    gap: calc(2.5rem - 0.3em);
  }

  .p-member__catch {
    font-size: 22px;
    font-size: 1.375rem;
  }

  .p-member__info {
    gap: 20px;
    gap: 1.25rem;
    display: grid;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }

  .p-member__role {
    font-size: 18px;
    font-size: 1.125rem;
  }

  .p-member__name {
    font-size: 34px;
    font-size: 2.125rem;
  }

  .p-member__btn {
    margin-top: 80px;
    margin-top: 5rem;
  }

  .p-mv {
    max-height: 1000px;
    max-height: 62.5rem;
  }

  .p-mv__mainTitle {
    top: 50%;
    bottom: inherit;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 100%;
    font-size: 47px;
    font-size: 2.9375rem;
    text-align: center;
  }

  .p-mv__scroll {
    bottom: 63px;
    bottom: 3.9375rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    -webkit-animation: initial;
    animation: initial;
    padding-bottom: 22px;
    padding-bottom: 1.375rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    height: 40px;
    height: 2.5rem;
  }

  .p-mv__scroll::after {
    display: none;
  }

  .p-mv__scroll span {
    display: block;
  }

  .p-mv__scroll::before {
    position: absolute;
    top: 20px;
    top: 1.25rem;
    right: 0;
    left: 0;
    -webkit-animation: scrollarrow 2s infinite;
    animation: scrollArrow 2s infinite;
    margin: auto;
    border-bottom: 1px solid #fff;
    border-left: 1px solid #fff;
    width: 16px;
    width: 1rem;
    height: 16px;
    height: 1rem;
    content: "";
  }

  .p-navBlock {
    gap: 60px;
    gap: 3.75rem;
  }

  .p-navBlock.p-navBlock--drawer .p-navBlock__list {
    gap: 60px;
    gap: 3.75rem;
  }

  .p-navBlock.p-navBlock--drawer .p-navBlock__title {
    padding-top: calc(1.875rem - 0.3em);
  }

  .p-navBlock.p-navBlock--drawer .p-navBlock__titleEn {
    font-size: 19px;
    font-size: 1.1875rem;
  }

  .p-navBlock.p-navBlock--drawer .p-navBlock__titleJa {
    font-size: 22px;
    font-size: 1.375rem;
  }

  .p-navBlock.p-navBlock--drawer .p-navBlock__subItemLink {
    font-size: 16px;
    font-size: 1rem;
  }

  .p-navBlock__list {
    grid-template-columns: repeat(3, 1fr);
  }

  .p-navBlock__titleEn {
    font-size: 12px;
    font-size: 0.75rem;
  }

  .p-navBlock__titleJa {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
    font-size: 14px;
    font-size: 0.875rem;
  }

  .p-navBlock__link:hover .p-navBlock__titleJa {
    opacity: 0.6;
  }

  .p-navBlock__subItemLink:hover {
    opacity: 0.6;
  }

  .p-recruit {
    background-size: 100% 65.8333333333%;
    padding: 151px 0 181px;
    padding: 9.4375rem 0 11.3125rem;
  }

  .p-recruit__bg {
    height: 66.0535117057%;
  }

  .p-recruit__content {
    margin: 5rem calc(50% - 50vw) 0;
  }

  .p-recruit__body {
    gap: 0;
    margin-inline: auto;
    max-width: 1280px;
  }

  .p-recruit__img {
    margin: 0;
    margin-left: auto;
    width: 960px;
    width: 60rem;
  }

  .p-recruit__message {
    gap: 40px;
    gap: 2.5rem;
    margin-top: -296px;
    margin-top: -18.5rem;
    background-color: rgba(255, 255, 255, 0.9);
    padding: 60px 60px 60px 130px;
    padding: 3.75rem 3.75rem 3.75rem 8.125rem;
    width: 590px;
    width: 36.875rem;
  }

  .p-recruit__lead {
    border-bottom: 1px solid #999385;
    padding-bottom: calc(1.875rem - 0.3em);
    font-size: 26px;
    font-size: 1.625rem;
  }

  .p-sectionTitle {
    padding-bottom: calc(1.875rem - 0.3em);
    font-size: 40px;
    font-size: 2.5rem;
  }

  .p-sectionTitle::before {
    width: 60px;
    width: 3.75rem;
  }

  .p-sectionTitle-en {
    font-size: 26px;
    font-size: 1.625rem;
  }

  .p-service__decoration {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0.3;
    color: #f1efeb;
    font-size: 160px;
    font-size: 10rem;
    line-height: 1;
    -webkit-writing-mode: vertical-lr;
    -ms-writing-mode: tb-lr;
    writing-mode: vertical-lr;
    text-orientation: sideways;
  }

  .p-service__list {
    gap: 160px;
    gap: 10rem;
    margin-top: 71px;
    margin-top: 4.4375rem;
    max-width: 1600px;
  }

  .p-service__item {
    position: relative;
    margin-right: calc(50% - 50vw);
  }

  .p-service__item:nth-child(2) {
    margin-right: 0;
    margin-left: calc(50% - 50vw);
  }

  .p-service__item:nth-child(2) .p-service__itemTitle {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
    margin-left: auto;
    text-align: left;
  }

  .p-service__item:nth-child(2) .p-service__itemBox {
    margin-left: auto;
    padding: 60px 0 60px 60px;
    padding: 3.75rem 0 3.75rem 3.75rem;
  }

  .p-service__item:nth-child(2) .p-service__itemContents {
    grid-template-columns: 1fr 11.25rem;
    margin-left: auto;
  }

  .p-service__item:nth-child(2) .p-service__itemImg:nth-of-type(2) {
    right: inherit;
    left: 90px;
    left: 5.625rem;
  }

  .p-service__item:nth-child(2) .p-service__itemImgBox {
    margin-right: 0;
  }

  .p-service__itemContents {
    gap: 0;
    display: grid;
    grid-template-columns: 11.25rem 1fr;
    max-width: 1600px;
  }

  .p-service__itemTitle {
    margin-top: 24px;
    margin-top: 1.5rem;
  }

  /* .p-service__itemTitle .p-subTitle {
    letter-spacing: 0.3em;
  } */

  .p-service__itemImgBox {
    margin-top: 0;
    padding-bottom: 214px;
    padding-bottom: 13.375rem;
  }

  .p-service__itemImg:first-of-type {
    margin: 0;
  }

  .p-service__itemImg:nth-of-type(2) {
    right: 90px;
    right: 5.625rem;
    width: 21.875%;
    min-width: 280px;
    min-width: 17.5rem;
  }

  .p-service__itemBox {
    position: relative;
    z-index: 1;
    margin-top: max(-362px, -28.28125vw);
    /* margin-top: max(-22.625rem, -28.28125vw); */
    margin-top: max(-17.625rem, -28.28125vw);
    background-color: rgba(255, 255, 255, 0.9);
    padding: 60px 60px 60px 0;
    padding: 3.75rem 3.75rem 3.75rem 0;
    width: 460px;
    width: 28.75rem;
    min-height: 362px;
    min-height: 22.625rem;
  }

  .p-service__itemText {
    margin-top: 0;
  }

  .p-subTitle {
    font-size: 30px;
    font-size: 1.875rem;
    letter-spacing: 0.5em;
    line-height: 1.3333333333;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }

  .p-subTitle span {
    text-combine-upright: all;
  }
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .u-onlyTab {
    display: block;
  }
}

@media (min-width: 1024px) {
  html {
    font-size: 16px;
  }
}

@media screen and (min-width: 1024px) {
  .post-page-numbers+.post-page-numbers {
    margin-left: 20px;
  }

  .u-onlyPc {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .u-onlySp {
    display: block;
  }
}

@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}

.p-service__sub__title {
  font-size: 30px;
  font-size: 1.875rem;
  letter-spacing: 0.3em;
  line-height: 1.3333333333;
  writing-mode: vertical-rl;
}

.p-service__sub__title span {
  font-size: 1.2rem;
  letter-spacing: 0.2em;
}


@media (max-width: 810px) {
  .p-service__sub__title {
    font-size: 1.8rem;
  }

  .p-service__sub__title span {
    font-size: 1rem;
  }
}


@media (max-width: 650px) {
  .p-service__sub__title {
    font-size: 1.7rem;
    letter-spacing: 0.2em;
    writing-mode: horizontal-tb;
  }

  .p-service__sub__title span {
    font-size: 1rem;
    letter-spacing: 0.1em;
  }
}