@charset "UTF-8";
* {
  box-sizing: border-box;
}

@font-face {
  font-family: "Ryo Gothic PlusN";
  font-weight: 100;
  src: url("../../../assets/fonts/RyoGothicPlusN-L.ttf");
}
@font-face {
  font-family: "Ryo Gothic PlusN";
  font-weight: 400;
  src: url("../../../assets/fonts/RyoGothicPlusN-R.ttf");
}
@font-face {
  font-family: "Ryo Gothic PlusN";
  font-weight: 500;
  src: url("../../../assets/fonts/RyoGothicPlusN-M.ttf");
}
@font-face {
  font-family: "Ryo Gothic PlusN";
  font-weight: 700;
  src: url("../../../assets/fonts/RyoGothicPlusN-B.ttf");
}
@font-face {
  font-family: "Shippori Mincho";
  font-weight: 500;
  src: url("../../../assets/fonts/ShipporiMincho-Medium.ttf");
}
@font-face {
  font-family: "Shippori Mincho";
  font-weight: 600;
  src: url("../../../assets/fonts/ShipporiMincho-SemiBold.ttf");
}
@font-face {
  font-family: "Shippori Mincho";
  font-weight: 800;
  src: url("../../../assets/fonts/ShipporiMincho-ExtraBold.ttf");
}
@font-face {
  font-family: "PoynterText-RomanOne";
  font-weight: 400;
  src: url("../../../assets/fonts/PoynterText-RomanOne-Regular.ttf");
}
@font-face {
  font-family: "Shree Devanagari";
  font-weight: 700;
  src: url("../../../assets/fonts/ShreeDevanagari-Bold.ttf");
}
@font-face {
  font-family: "AGaramondPro-Italic";
  font-weight: 400;
  src: url("../../../assets/fonts/AGaramondPro-Italic.ttf");
}
@font-face {
  font-family: "ToppanBunkyuStdN-ExtraBold";
  font-weight: 800;
  src: url("../../../assets/fonts/ToppanBunkyuMidashiGothicStdN-ExtraBold.otf");
}
@keyframes scrollDown {
  0% {
    top: 0;
  }
  80%,
  100% {
    top: 100%;
  }
}
@media only screen and (max-width: 767.9px) {
  html.is-drawerOpen {
    overflow: hidden;
  }
}

body {
  background-color: #f4f6f7;
  color: #34343b;
  font-family: "Ryo Gothic PlusN", sans-serif;
  font-size: 16px;
  font-weight: 400;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: hidden;
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  body {
    font-size: 1.25vw;
  }
}
@media only screen and (max-width: 767.9px) {
  body {
    font-size: 4.071vw;
  }
}

a {
  display: inline-block;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

button {
  border: none;
  background-color: transparent;
  outline: none;
  cursor: pointer;
}

a:hover,
button:hover {
  transition: all 0.5s;
  -webkit-transition: all 0.5s;
}

picture {
  display: block;
}

img {
  vertical-align: bottom;
  max-width: 100%;
}

.u-visiblePC {
  display: block !important;
}
@media only screen and (max-width: 767.9px) {
  .u-visiblePC {
    display: none !important;
  }
}

.u-visibleSP {
  display: none !important;
}
@media only screen and (max-width: 767.9px) {
  .u-visibleSP {
    display: block !important;
  }
}

.u-iblock {
  display: inline-block;
}

@keyframes splide-loading {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(1turn);
  }
}
.splide__track--draggable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.splide__track--fade > .splide__list > .splide__slide {
  margin: 0 !important;
  opacity: 0;
  z-index: 0;
}

.splide__track--fade > .splide__list > .splide__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.splide--rtl {
  direction: rtl;
}

.splide__track--ttb > .splide__list {
  display: block;
}

.splide__container {
  box-sizing: border-box;
  position: relative;
}

.splide__list {
  backface-visibility: hidden;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

.splide.is-initialized:not(.is-active) .splide__list {
  display: block;
}

.splide__pagination {
  -ms-flex-align: center;
  align-items: center;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: center;
  justify-content: center;
  margin: 0;
  pointer-events: none;
}

.splide__pagination li {
  display: inline-block;
  line-height: 1;
  list-style-type: none;
  margin: 0;
  pointer-events: auto;
}

.splide:not(.is-overflow) .splide__pagination {
  display: none;
}

.splide__progress__bar {
  width: 0;
}

.splide {
  position: relative;
  visibility: hidden;
}

.splide.is-initialized,
.splide.is-rendered {
  visibility: visible;
}

.splide__slide {
  backface-visibility: hidden;
  box-sizing: border-box;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  list-style-type: none !important;
  margin: 0;
  position: relative;
}

.splide__slide img {
  vertical-align: bottom;
}

.splide__spinner {
  animation: splide-loading 1s linear infinite;
  border: 2px solid #999;
  border-left-color: transparent;
  border-radius: 50%;
  bottom: 0;
  contain: strict;
  display: inline-block;
  height: 20px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
}

.splide__sr {
  clip: rect(0 0 0 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.splide__toggle.is-active .splide__toggle__play,
.splide__toggle__pause {
  display: none;
}

.splide__toggle.is-active .splide__toggle__pause {
  display: inline;
}

.splide__track {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.l-wrapper {
  width: 100%;
  overflow: clip;
}

.l-header {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  justify-content: space-between;
  align-items: center;
  z-index: 999;
  width: 100%;
  background-color: #f4f6f7;
  transition: background-color 0.3s;
}
.l-header.is-transparent {
  background-color: transparent;
}
.l-header__left {
  padding-left: 2.6875em;
}
@media only screen and (max-width: 767.9px) {
  .l-header__left {
    padding-left: 1em;
  }
}
.l-header__logo {
  width: 11.5625em;
}
@media only screen and (max-width: 767.9px) {
  .l-header__logo {
    width: 9.9380987472em;
  }
}
.l-header__logoLink {
  display: block;
}
@media (hover: hover) and (pointer: fine) {
  .l-header__logoLink:hover {
    opacity: 0.6;
  }
}
.l-header__right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
@media only screen and (max-width: 767.9px) {
  .l-header__nav {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    display: block;
    padding: 9.5006140997em 0;
    background: rgba(13, 13, 15, 0.95);
    text-align: center;
    transition: all 0.5s ease;
    overflow-y: auto;
    transform: translateX(100vw);
  }
  html.is-drawerOpen .l-header__nav {
    transform: translateX(0);
  }
}
.l-header__navList {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 2.1875em;
}
@media only screen and (max-width: 767.9px) {
  .l-header__navList {
    gap: 3.0002456399em;
    justify-content: flex-start;
    align-items: stretch;
    flex-direction: column;
  }
}
.l-header__navLink {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  line-height: 1;
  color: #383838;
  font-size: 0.75em;
  font-weight: 700;
  text-align: center;
}
.l-header__navLink::after {
  position: absolute;
  bottom: -1.6666666667em;
  left: 0;
  width: 100%;
  height: 0.25em;
  background-color: #7cbe41;
  content: "";
  -webkit-transform: scale(0, 1);
  transform: scale(0, 1);
  -webkit-transform-origin: center top;
  transform-origin: center top;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
@media only screen and (max-width: 767.9px) {
  .l-header__navLink {
    font-size: 1.25006141em;
    color: #d5d5d5;
  }
  .l-header__navLink::after {
    display: none;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-header__navLink:hover::after {
    transform: scale(1, 1);
    -webkit-transform: scale(1, 1);
  }
}
.l-header__lang {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-left: 1.25em;
  margin-left: 1.875em;
  border-left: solid 1px #afafb7;
  line-height: 1;
}
@media only screen and (max-width: 767.9px) {
  .l-header__lang {
    position: relative;
    z-index: 101;
    padding-left: 0;
    margin-left: 0;
    border-left: none;
  }
}
.l-header__langLink {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #383838;
  gap: 0.3125em;
}
@media only screen and (max-width: 767.9px) {
  .l-header__langLink {
    gap: 0.375em;
  }
  html.is-drawerOpen .l-header__langLink {
    color: #fff;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-header__langLink:hover {
    color: #7cbe41;
  }
}
.l-header__langIcon {
  font-size: 0.78125em;
  width: 1em;
  height: 1em;
  fill: currentcolor;
}
@media only screen and (max-width: 767.9px) {
  .l-header__langIcon {
    font-size: 1em;
  }
}
.l-header__langLabel {
  font-size: 0.75em;
  font-weight: 500;
  line-height: 1;
}
@media only screen and (max-width: 767.9px) {
  .l-header__langLabel {
    font-size: 1em;
  }
}
.l-header__cv {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-left: 2.5em;
}
@media only screen and (max-width: 767.9px) {
  .l-header__cv {
    position: fixed;
    left: 0;
    bottom: 0;
    margin-left: 0;
  }
}
.l-header__cvLink {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-size: 0.9375em;
  font-weight: 700;
  letter-spacing: 0.125em;
  background: #0d0d0f;
  color: #fff;
  height: 5em;
  width: 10em;
}
.l-header__cvLink.--line {
  background: #7cbe41;
}
@media only screen and (max-width: 767.9px) {
  .l-header__cvLink {
    flex-direction: row;
    width: 11.4285714286em;
    height: 2.8571428571em;
    font-size: 0.875em;
    gap: 1em;
  }
  .l-header__cvLink > span {
    padding-top: 0.05em;
  }
  .l-header__cvLink::before {
    content: "";
    aspect-ratio: 43/32;
    width: 1.1428571429em;
    background: currentcolor;
    clip-path: url("#clip_mail_02");
    will-change: transform;
    transform: translateZ(0);
  }
  .l-header__cvLink.--line {
    gap: 0.5em;
  }
  .l-header__cvLink.--line::before {
    aspect-ratio: 34/32;
    width: 1.1428571429em;
    clip-path: url("#clip_line_02");
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-header__cvLink:hover {
    opacity: 0.6;
  }
}
.l-header__toggle {
  display: block;
  position: relative;
  padding: 1.6875460575em 1.0626381724em;
  background-color: rgba(13, 13, 15, 0.87);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  font-size: 100%;
  margin-left: 1.125em;
}
.l-header__toggleIcon {
  position: relative;
  display: block;
  width: 2.25006141em;
  height: 1em;
}
.l-header__toggleLine {
  position: absolute;
  top: 0;
  width: 100%;
  height: 0.072709408em;
  background-color: #ffffff;
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  left: 0;
}
.l-header__toggleLine::before,
.l-header__toggleLine::after {
  position: absolute;
  right: 0;
  height: 0.072709408em;
  background-color: #ffffff;
  content: "";
  -webkit-transition: inherit;
  transition: inherit;
}
.l-header__toggleLine::before {
  top: 0.5001228199em;
  width: 100%;
}
.l-header__toggleLine::after {
  top: 1em;
  width: 50%;
}
html.is-drawerOpen .l-header__toggle {
  background: #7cbe41;
}
html.is-drawerOpen .l-header__toggleLine {
  background: transparent;
}
html.is-drawerOpen .l-header__toggleLine::before {
  transform: rotate(45deg);
  background: #d5d5d5;
}
html.is-drawerOpen .l-header__toggleLine::after {
  top: 0.5001228199em;
  background: #d5d5d5;
  width: 100%;
  transform: rotate(-45deg);
}

.l-footer {
  padding: 4.5em 0 2em;
  background: #fff;
}
@media only screen and (max-width: 767.9px) {
  .l-footer {
    background: #f4f6f7;
    padding: 2.1875em 0 2.5em;
  }
}
.l-footer__inner {
  margin: 0 5.75em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__inner {
    margin: 0;
  }
}
.l-footer__upper {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-bottom: 6.375em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__upper {
    display: block;
    padding-bottom: 2.1875em;
  }
}
.l-footer__upper::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: url("../img/common/img_bdr.png") no-repeat center/contain;
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .l-footer__upper::after {
    height: 0.0319331859em;
  }
}
@media only screen and (max-width: 767.9px) {
  .l-footer__upper::after {
    height: 0.072709408em;
    background: url("../img/common/img_bdr_sp.png") no-repeat center/contain;
  }
}
.l-footer__left {
  width: 28.125em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__left {
    width: 100%;
  }
}
.l-footer__right {
  width: 11.5625em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__right {
    width: 100%;
    margin-top: 1.75em;
  }
}
.l-footer__navList {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2.5em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__navList {
    align-items: flex-start;
    flex-direction: column;
    gap: 1.75em;
  }
}
.l-footer__navLink {
  line-height: 1;
  color: #383838;
  font-size: 0.75em;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.5em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__navLink {
    font-size: 0.875em;
    letter-spacing: 0.05em;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__navLink:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.9px) {
  .l-footer__logo {
    width: 11.5632522722em;
  }
}
.l-footer__logoLink {
  display: block;
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__logoLink:hover {
    opacity: 0.6;
  }
}
.l-footer__logoImg {
  display: block;
  width: 100%;
  height: auto;
}
.l-footer__sns {
  display: flex;
  justify-content: center;
  gap: 1.25em;
  margin-top: 0.75em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__sns {
    margin-top: 1.25em;
    gap: 0.9375em;
    justify-content: flex-start;
  }
}
.l-footer__snsLink {
  display: block;
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__snsLink:hover {
    opacity: 0.65;
  }
}
.l-footer__snsIcon {
  display: block;
  width: auto;
  height: 2em;
}
.l-footer__lower {
  padding-top: 1.875em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__lower {
    padding-top: 2.375092115em;
    padding-bottom: 1.5625em;
  }
}
.l-footer__copy {
  color: #383838;
  font-size: 0.75em;
  font-weight: 300;
  text-align: center;
  letter-spacing: 0.2em;
}
@media only screen and (max-width: 767.9px) {
  .l-footer__copy {
    font-size: 0.6251535249em;
  }
}

.c-accordion__content {
  display: none;
}

.c-btnPrimary {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: border 0.5s, background-color 0.5s, color 0.5s;
  width: 18.125em;
  height: 5em;
  color: inherit;
}
.c-btnPrimary.--line {
  border: solid 1px currentcolor;
}
.c-btnPrimary.--transparent {
  background: transparent;
}
.c-btnPrimary.--black {
  background: #34343b;
  color: #fff;
}
.c-btnPrimary__label {
  font-size: 0.875em;
  text-align: center;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.1428571429em;
  flex: 1;
}
.c-btnPrimary__icon {
  position: absolute;
  top: 50%;
  left: 1.875em;
  width: 0.8125em;
  height: 0.8125em;
  fill: currentcolor;
  transform: translateY(-50%);
}
.c-btnPrimary__icon.--mail {
  width: 1.390625em;
  height: 1.390625em;
}
.c-btnPrimary__icon.--line {
  width: 2.125em;
  height: 2em;
}
.c-btnPrimary::after {
  position: absolute;
  content: "";
  top: 50%;
  right: 1.875em;
  width: 0.875em;
  height: 0.875em;
  background: currentcolor;
  clip-path: url("#clip_arrow_01");
  transform: translate3d(0, -50%, 0);
  will-change: transform;
  transition: right 0.5s;
}
@media (hover: hover) and (pointer: fine) {
  .c-btnPrimary:hover {
    background: #7cbe41 !important;
  }
  .c-btnPrimary:hover::after {
    right: 1.25em;
  }
  .c-btnPrimary.--line:hover {
    border-color: #7cbe41;
  }
}

.c-inner {
  width: 95%;
  margin: 0 auto;
  max-width: 1168px;
}
.c-inner.--sm {
  max-width: 965px;
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .c-inner {
    max-width: 91.25vw;
  }
}
@media only screen and (max-width: 767.9px) {
  .c-inner {
    width: 100%;
    padding: 0 4.071vw;
    max-width: 100%;
  }
}

.c-ttlPrimary {
  display: flex;
  align-items: center;
  flex-direction: column;
}
.c-ttlPrimary__main {
  font-family: "Shippori Mincho", serif;
  font-size: 2.5em;
  font-weight: 600;
  letter-spacing: 0.06em;
}
@media only screen and (max-width: 767.9px) {
  .c-ttlPrimary__main {
    font-size: 1.75em;
  }
}
.c-ttlPrimary__sub {
  display: block;
  line-height: 1.2;
  color: #7cbe41;
  font-family: "PoynterText-RomanOne", serif;
  font-size: 0.875em;
  margin-top: 1.5em;
  font-weight: 400;
  letter-spacing: 0.315em;
}
@media only screen and (max-width: 767.9px) {
  .c-ttlPrimary__sub {
    margin-top: 1.2857142857em;
    font-size: 0.875em;
    letter-spacing: 0.3em;
  }
}

.c-ttlSecondary {
  display: flex;
  gap: 1.875em;
  flex-direction: column;
}
@media only screen and (max-width: 767.9px) {
  .c-ttlSecondary {
    gap: 1.5625em;
  }
}
.c-ttlSecondary.--gap0 {
  gap: 0;
}
.c-ttlSecondary__sub {
  position: relative;
  padding-left: 4.5em;
  color: #7cbe41;
  font-family: "Shippori Mincho", serif;
  font-size: 1.125em;
  font-weight: 600;
  letter-spacing: 0.3em;
}
.c-ttlSecondary__sub::before,
.c-ttlSecondary__sub::after {
  position: absolute;
  top: 50%;
  left: 0;
  content: "";
  transform: translateY(-50%);
}
.c-ttlSecondary__sub::before {
  background-color: #34343b;
  width: 0.7222222222em;
  height: 0.1111111111em;
  z-index: 1;
}
.c-ttlSecondary__sub::after {
  background-color: #afafb7;
  width: 3em;
  height: 0.0555555556em;
}
.c-ttlSecondary__main {
  line-height: 1.62;
  font-family: "Shippori Mincho", serif;
  font-size: 1.75em;
  font-weight: 700;
  letter-spacing: 0.0875em;
}
.c-ttlSecondary__main.--w500 {
  font-weight: 500;
}
@media only screen and (max-width: 767.9px) {
  .c-ttlSecondary__main {
    line-height: 1.65;
    font-size: 1.625em;
  }
}

@media screen {
  .c-animeBlur {
    will-change: filter, transform;
    transform: scale(1.1);
    filter: blur(50px);
    opacity: 0;
    transition-property: opacity, filter, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-in-out;
  }
  .c-animeBlur.is-anime {
    opacity: 1;
    transform: scale(1);
    filter: blur(0px);
  }
}

@media screen {
  .c-animeFadeUp {
    will-change: transform;
    transform: translate3d(0, 50px, 0);
    opacity: 0;
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
  }
  .c-animeFadeUp.is-anime {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.p-kv {
  --position: 100%;
  --size: 300%;
  position: relative;
}
.p-kv__inner {
  position: relative;
  background: url("../img/kv/bg_main.png") no-repeat left top/auto 100%;
  height: 100vh;
  z-index: 2;
}
@media (max-aspect-ratio: 1366/768) {
  .p-kv__inner {
    aspect-ratio: 1366/768;
    height: auto;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-kv__inner {
    display: flex;
    flex-direction: column;
    aspect-ratio: unset;
    background-image: url("../img/kv/bg_main_sp.png");
    background-size: 100% auto;
    height: 100vh;
    padding-top: 4.375092115em;
    mask-image: linear-gradient(
      to right bottom,
      black,
      black,
      transparent,
      transparent
    );
    mask-size: var(--size) var(--size);
    mask-position: var(--position) var(--position);
  }
}
.p-kv__text {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: column;
  height: 100%;
  z-index: 2;
  padding-left: 6.25em;
  padding-bottom: min(7.32vw, 13vh);
  font-size: min(1.15vw, 2vh);
  pointer-events: none;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__text {
    font-size: 2vh;
    flex: 1;
    padding-left: 4.071vw;
    padding-bottom: 1.875em;
  }
}
.p-kv__title {
  display: flex;
  flex-direction: column;
  gap: 2.75em;
  mask-image: linear-gradient(to right, black, black, transparent, transparent);
  mask-size: 300%;
  mask-position: 100%;
  transition: mask-position 0.6s ease-out 0.2s;
}
.p-kv.is-view .p-kv__title {
  mask-position: 0%;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__title {
    gap: 0.625em;
    mask-image: unset;
  }
}
.p-kv__heading {
  display: flex;
  flex-direction: column;
  font-size: 3.75em;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  line-height: 1.3;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__heading {
    font-size: 2.125em;
  }
}
.p-kv__heading > span:last-child {
  color: #7cbe41;
}
.p-kv__sup {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.125em;
  line-height: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__sup {
    font-size: 1em;
  }
}
.p-kv__award {
  color: #c4a31c;
  margin-top: 3.125em;
  transition: opacity 0.6s ease-out 0.2s;
  opacity: 0;
}
.p-kv.is-view .p-kv__award {
  opacity: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__award {
    opacity: 1;
    margin-top: 2.8125em;
  }
}
.p-kv__awardTitle {
  display: flex;
  align-items: center;
  flex-direction: column;
  font-family: "Shippori Mincho", serif;
  font-weight: 800;
  line-height: 1;
}
.p-kv__awardIcon {
  display: block;
  font-size: 1.625em;
  height: 1em;
  aspect-ratio: 54/32;
  margin-bottom: 0.3846153846em;
  fill: currentcolor;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardIcon {
    font-size: 1.25em;
    margin-bottom: 0.4em;
  }
}
.p-kv__awardDate {
  font-size: 0.6875em;
  letter-spacing: 0.2em;
  margin-bottom: 0.4545454545em;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardDate {
    font-size: 0.625em;
    margin-bottom: 0.6em;
  }
}
.p-kv__awardHeading {
  letter-spacing: 0.4em;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardHeading {
    font-size: 0.875em;
  }
}
.p-kv__awardValue {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.3125em;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardValue {
    gap: 0;
  }
}
.p-kv__awardDeco {
  font-size: 4.375em;
  height: 1em;
  aspect-ratio: 17/32;
  fill: currentcolor;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardDeco {
    font-size: 4em;
  }
}
.p-kv__awardDeco:first-child {
  transform: rotateY(180deg);
}
.p-kv__awardNum {
  display: flex;
  align-items: baseline;
}
.p-kv__awardNum strong {
  font-size: 4.75em;
  font-family: "Baskerville", serif;
  font-weight: 400;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardNum strong {
    font-size: 3.625em;
  }
}
.p-kv__awardNum span {
  font-family: "Shippori Mincho", serif;
  font-size: 1.875em;
  font-weight: 600;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__awardNum span {
    font-size: 1.5em;
  }
}
.p-kv__img {
  position: absolute;
  right: 0;
  width: 60%;
  top: 0;
  bottom: 0;
  z-index: 1;
  mask-image: linear-gradient(
    to right bottom,
    black,
    black,
    transparent,
    transparent
  );
  mask-size: var(--size) var(--size);
  mask-position: var(--position) var(--position);
}
@media only screen and (max-width: 767.9px) {
  .p-kv__img {
    position: relative;
    width: 100%;
    height: 45.5vh;
    top: initial;
    bottom: initial;
    mask-image: unset;
  }
}
.p-kv__slider {
  position: absolute;
  left: 20%;
  right: 20%;
  top: calc(4.6875em + 6.5%);
  bottom: 8.5%;
  z-index: 2;
  overflow: hidden;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__slider {
    left: 5.625em;
    right: 5.625em;
    bottom: initial;
    top: 10%;
    height: 72%;
  }
}
.p-kv__sliderTrack,
.p-kv__sliderList,
.p-kv__sliderItem,
.p-kv__sliderImg {
  height: 100%;
}
.p-kv__sliderImg {
  display: block;
}
.p-kv__sliderImg > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-kv__background {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
}
.p-kv__background::before,
.p-kv__background::after {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
}
.p-kv__background::before {
  color: #fff;
  backdrop-filter: blur(0.9375em) brightness(115%);
  z-index: 3;
}
.p-kv__background::after {
  background: #a3a3a3;
  opacity: 0.2;
  z-index: 2;
}
.p-kv__backgroundTrack,
.p-kv__backgroundList,
.p-kv__backgroundItem,
.p-kv__backgroundImg {
  height: 100%;
}
.p-kv__backgroundTrack {
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.p-kv__backgroundImg {
  display: block;
}
.p-kv__backgroundImg > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-kv__backgroundPagination {
  position: absolute;
  right: 3.125em;
  top: 4.6875em;
  bottom: 0;
  z-index: 4;
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 0.875em;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__backgroundPagination {
    display: none;
  }
}
.p-kv__backgroundPagination .splide__pagination__page {
  display: block;
  padding: 0;
  width: 0.625em;
  height: 0.625em;
  border-radius: 50%;
  background: #fff;
}
.p-kv__backgroundPagination .splide__pagination__page.is-active {
  background: #34343b;
}
.p-kv__deco {
  position: absolute;
  right: 3.125em;
  bottom: -1.25em;
  z-index: 3;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 1.09375em;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__deco {
    right: 1.5625em;
    bottom: -1.25em;
    gap: 1.09375em;
  }
}
.p-kv__deco span {
  font-size: 0.625em;
  line-height: 0.875;
  font-weight: 700;
  letter-spacing: 0.4em;
  writing-mode: vertical-lr;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__deco span {
    font-size: 0.625em;
  }
}
.p-kv__deco i {
  position: relative;
  width: 0.4375em;
  height: 4.6875em;
}
@media only screen and (max-width: 767.9px) {
  .p-kv__deco i {
    height: 3.75em;
  }
}
.p-kv__deco i::before,
.p-kv__deco i::after {
  position: absolute;
  content: "";
  top: 0;
  left: 50%;
  background: currentcolor;
  transform: translateX(-50%);
}
.p-kv__deco i::before {
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  animation: scrollDown 1.6s infinite linear;
}
.p-kv__deco i::after {
  width: 0.0625em;
  height: 100%;
}

.p-about {
  --textColor: #34343b;
  position: relative;
  color: var(--textColor, #34343b);
  padding-top: 6.875em;
  z-index: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-about {
    padding-top: 5em;
    padding-bottom: 2.8125em;
  }
}
.p-about__background {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  background: url("../img/about/bg_main.jpg") no-repeat center center/cover;
  opacity: var(--bgOpacity, 0);
  z-index: -1;
}
@media only screen and (max-width: 767.9px) {
  .p-about__background {
    background: ur("../img/about/bg_main_sp.jpg");
  }
}
.p-about__background::before,
.p-about__background::after {
  position: absolute;
  content: "";
  background: rgba(25, 25, 25, 0.7);
}
.p-about__background::before {
  width: 31.5%;
  height: 16.5625em;
  left: 0;
  bottom: 14.375em;
}
@media only screen and (max-width: 767.9px) {
  .p-about__background::before {
    width: 95vw;
    height: 8.4375em;
    bottom: 0;
  }
}
.p-about__background::after {
  width: 53.7%;
  height: 15.625em;
  right: 0;
  bottom: 3.125em;
}
@media only screen and (max-width: 767.9px) {
  .p-about__background::after {
    display: none;
  }
}
.p-about__inner {
  position: relative;
  padding-bottom: 20.625em;
  max-width: 1366px;
  margin: 0 auto;
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .p-about__inner {
    max-width: 100%;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-about__inner {
    padding: 0 4.071vw;
  }
}
.p-about__text {
  position: relative;
  display: flex;
  align-items: center;
  gap: 3.4375em;
  flex-direction: column;
  z-index: 2;
}
@media only screen and (max-width: 767.9px) {
  .p-about__text {
    gap: 4.0625em;
    margin-bottom: 3.125em;
  }
}
.p-about__heading {
  font-family: "Shippori Mincho", serif;
  font-size: 2.25em;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.6;
  text-align: center;
}
@media only screen and (max-width: 767.9px) {
  .p-about__heading {
    font-size: 1.625em;
    letter-spacing: 0.05em;
    line-height: 1.2;
    font-weight: 500;
  }
}
.p-about__desc {
  line-height: 2.5;
  text-align: center;
  letter-spacing: 0.06em;
}
@media only screen and (max-width: 767.9px) {
  .p-about__desc {
    line-height: 2;
  }
}
.p-about__images {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-about__images {
    position: static;
  }
}
.p-about__img {
  position: absolute;
  display: block;
  transform: translateY(calc(-30% * var(--progress)));
}
@media only screen and (max-width: 767.9px) {
  .p-about__img {
    position: relative;
    transform: unset;
  }
}
.p-about__img:nth-child(1) {
  left: 0;
  top: 3.4375em;
  width: 15.375em;
}
@media only screen and (max-width: 767.9px) {
  .p-about__img:nth-child(1) {
    left: -4.071vw;
    top: 0;
    width: 62.5vw;
  }
}
.p-about__img:nth-child(2) {
  left: 6.25em;
  bottom: 3.75em;
  width: 24.5625em;
}
@media only screen and (max-width: 767.9px) {
  .p-about__img:nth-child(2) {
    display: none;
  }
}
.p-about__img:nth-child(3) {
  top: 0;
  right: 0;
  width: 15.75em;
  transform: translateY(calc(20% * var(--progress)));
}
@media only screen and (max-width: 767.9px) {
  .p-about__img:nth-child(3) {
    display: none;
  }
}

.p-business {
  position: relative;
  padding-bottom: 3.75em;
  overflow: hidden;
}
@media only screen and (max-width: 767.9px) {
  .p-business {
    padding: 1.25em 0 3.75em;
  }
}
.p-business__background {
  position: absolute;
  left: 0;
  top: 6.25em;
  bottom: 0;
  width: 37.5%;
  z-index: -1;
  overflow: hidden;
}
@media only screen and (max-width: 767.9px) {
  .p-business__background {
    width: 50%;
    top: 3.75em;
  }
}
.p-business__background img {
  position: absolute;
  left: 0;
  top: var(--bgPosition, 0%);
  object-fit: cover;
  min-width: 100%;
  min-height: 125%;
}
.p-business__inner {
  padding-top: 6.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__inner {
    padding-top: 3.75em;
  }
}
.p-business__title {
  position: relative;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 2.8125em;
  margin-bottom: 2.5em;
  z-index: 2;
}
@media only screen and (max-width: 767.9px) {
  .p-business__title {
    gap: 3.125em;
    margin-bottom: 0;
  }
}
.p-business__lead {
  text-align: center;
  line-height: 2;
  letter-spacing: 0.0625em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__lead {
    text-align: left;
  }
}
.p-business__content {
  position: relative;
  margin: 0 5.75em;
  padding: 4.375em 0 3.75em;
  z-index: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-business__content {
    margin: -2.5em 0 0;
    padding: 5em 0 2.5em;
  }
}
.p-business__content::before {
  position: absolute;
  content: "";
  left: 9.375em;
  top: 0;
  bottom: 0;
  width: 100vw;
  background: #edf0f2;
  z-index: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-business__content::before {
    left: 4.6875em;
  }
}
.p-business__slider {
  position: relative;
  z-index: 2;
}
.p-business__sliderTrack {
  overflow: visible;
}
.p-business__sliderControl {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 2.8125em;
  gap: 1.875em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__sliderControl {
    justify-content: flex-start;
    margin-top: 2.5em;
  }
}
.p-business__sliderArrows {
  display: contents;
}
.p-business__sliderArrow.splide__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 3.75em;
  height: 3.75em;
  background: currentcolor;
}
.p-business__sliderArrow.splide__arrow--prev {
  order: 1;
  transform: rotate(-90deg);
}
.p-business__sliderArrow.splide__arrow--next {
  order: 3;
  transform: rotate(90deg);
}
.p-business__sliderArrow.splide__arrow:disabled {
  opacity: 0.6;
}
.p-business__sliderIcon {
  display: block;
  font-size: 0.875em;
  width: 1em;
  height: 1em;
  fill: #fff;
}
.p-business__sliderPagination.splide__pagination {
  display: flex;
  justify-content: center;
  gap: 1.5625em;
  order: 2;
}
.p-business__sliderPagination.splide__pagination > li {
  display: block;
}
.p-business__sliderPagination.splide__pagination
  > li
  .splide__pagination__page {
  display: block;
  font-size: 0.625em;
  width: 1em;
  height: 1em;
  background: #c9d6db;
  border-radius: 50%;
  padding: 0;
}
.p-business__sliderPagination.splide__pagination
  > li
  .splide__pagination__page.is-active {
  background: #7cbe41;
}
.p-business__slide {
  display: flex;
  width: 86.5%;
  background: #fff;
  margin-right: 1.875em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__slide {
    flex-direction: column;
    width: 80vw;
  }
}
.p-business__slideImg {
  position: relative;
  width: 46.5%;
}
@media only screen and (max-width: 767.9px) {
  .p-business__slideImg {
    width: 100%;
  }
}
.p-business__slideThumb {
  position: absolute;
  width: 33%;
  right: -10.25%;
  bottom: 6.5%;
}
@media only screen and (max-width: 767.9px) {
  .p-business__slideThumb {
    display: none;
  }
}
.p-business__slideText {
  flex: 1;
  padding: 7.1875em 2.8125em 1.875em 5.625em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__slideText {
    padding: 2.1875em 1.25em;
  }
}
.p-business__slideHeading {
  margin-bottom: 3.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__slideHeading {
    margin-bottom: 1.5625em;
  }
}
.p-business__slideHeading .c-ttlSecondary__sub {
  font-size: 0.875em;
}
.p-business__slideHeading .c-ttlSecondary__main {
  font-size: 1.375em;
}
.p-business__slideDesc {
  font-size: 0.875em;
  line-height: 2;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 767.9px) {
  .p-business__slideDesc {
    line-height: 1.85;
    letter-spacing: 0;
  }
}

.p-concern {
  padding: 7.8125em 0 4.0625em;
  overflow: hidden;
}
@media only screen and (max-width: 767.9px) {
  .p-concern {
    padding: 5em 0 3.75em;
  }
}
.p-concern__title {
  position: relative;
  display: flex;
  gap: 0.625em;
  align-items: center;
  flex-direction: column;
  text-align: center;
  z-index: 2;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__title .c-ttlPrimary__main {
    line-height: 1.5;
  }
}
.p-concern__sup {
  font-size: 1.75em;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__sup {
    font-size: 1.125em;
    letter-spacing: 0;
  }
}
.p-concern__content {
  position: relative;
  padding: 7.1875em 5.75em 5em;
  margin-top: -3.4375em;
  background: url("../img/concern/bg_main.jpg") no-repeat center center/cover;
  z-index: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__content {
    margin: -5em -4.701vw 0;
    padding: 8.125em 4.071vw 5em;
    background-image: url("../img/concern/bg_main_sp.jpg");
  }
}
.p-concern__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: center;
  gap: 1.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__list {
    display: flex;
    align-items: stretch;
    gap: 0.75em;
    flex-direction: column;
  }
}
.p-concern__listItem {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.25em;
  background: #343636;
  padding: 0.9375em 1.25em;
  color: #fff;
  height: 5.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__listItem {
    gap: 0.75em;
  }
}
.p-concern__listIcon {
  display: block;
  font-size: 1.75em;
  width: 1em;
  height: 1em;
  fill: #7cbe41;
}
.p-concern__listText {
  font-size: 1.125em;
  letter-spacing: 0.02em;
  line-height: 1.65;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__listText {
    font-size: 0.875em;
    line-height: 1.75;
  }
}
.p-concern__deco {
  position: absolute;
  display: flex;
  align-items: center;
  flex-direction: column;
  left: 50%;
  bottom: -4.0625em;
  width: 0.4375em;
  height: 6.5625em;
  transform: translate3d(-50%, 0, 0);
}
@media only screen and (max-width: 767.9px) {
  .p-concern__deco {
    height: 5em;
    bottom: -3.125em;
  }
}
.p-concern__deco::before {
  display: block;
  content: "";
  width: 0.0625em;
  height: 100%;
  background: currentcolor;
}
.p-concern__deco::after {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: currentcolor;
  animation: scrollDown 1.6s infinite linear;
}
.p-concern__footer {
  margin-top: 6.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__footer {
    margin-top: 4.6875em;
  }
}
.p-concern__lead {
  display: flex;
  align-items: center;
  flex-direction: column;
  font-family: "Shippori Mincho", serif;
  font-size: 2em;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: center;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__lead {
    font-size: 1.5em;
  }
}
.p-concern__leadSub picture {
  display: inline-block;
  vertical-align: baseline;
  margin-bottom: -0.1875em;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__leadSub picture {
    vertical-align: top;
    margin: 0 -0.06em;
  }
}
.p-concern__leadSub picture img {
  display: block;
  width: auto;
  height: 1.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-concern__leadSub picture img {
    height: 1.0833333333em;
  }
}
.p-concern__leadMain {
  position: relative;
}
.p-concern__leadMain span {
  padding: 0 0.5em;
  background: linear-gradient(
    to top,
    #a3de6e 0.5em,
    transparent 0.5em,
    transparent 100%
  );
}

.p-strength {
  padding-bottom: 6.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength {
    padding-bottom: 7.5em;
  }
}
.p-strength::before,
.p-strength::after {
  position: absolute;
  content: "";
  width: 85%;
  background: #e2e8eb;
  z-index: -1;
}
@media only screen and (max-width: 767.9px) {
  .p-strength::before,
  .p-strength::after {
    width: 90%;
  }
}
.p-strength::before {
  left: 0;
  height: 12.5em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength::before {
    height: 7.8125em;
  }
}
.p-strength::after {
  right: 0;
  height: 6.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength::after {
    height: 3.75em;
  }
}
.p-strength__title {
  padding-top: 3.75em;
  height: 12.5em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength__title {
    padding-top: 1.875em;
    height: 7.8125em;
  }
}
.p-strength__content {
  margin: 0 auto;
  background: #fff;
}
.p-strength__section {
  display: flex;
  width: 100%;
}
.p-strength__section:nth-child(even) {
  flex-direction: row-reverse;
}
@media only screen and (max-width: 767.9px) {
  .p-strength__section {
    display: block;
  }
}
.p-strength__sectionText {
  display: flex;
  align-items: center;
  width: 50%;
  padding: 3.4375em 0 2.5625em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength__sectionText {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
    padding: 2.5em 1em 2.1875em;
  }
}
.p-strength__sectionTextWrap {
  width: 489px;
  margin: 0 auto;
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .p-strength__sectionTextWrap {
    width: 38.203vw;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-strength__sectionTextWrap {
    width: 100%;
  }
}
.p-strength__sectionHeading {
  margin-bottom: 1.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength__sectionHeading {
    margin-bottom: 2.5em;
  }
}
.p-strength__sectionDesc {
  line-height: 2.12;
  letter-spacing: 0.0625em;
}
@media only screen and (max-width: 767.9px) {
  .p-strength__sectionDesc {
    line-height: 2;
    letter-spacing: 0.06em;
  }
}
.p-strength__sectionImg {
  width: 50%;
}
@media only screen and (max-width: 767.9px) {
  .p-strength__sectionImg {
    width: 100%;
    height: 100vw;
  }
}
.p-strength__sectionImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-listing {
  --textColor: #34343b;
  position: relative;
  padding: 6.25em 0;
  color: var(--textColor, #34343b);
  overflow: hidden;
}
@media only screen and (max-width: 767.9px) {
  .p-listing {
    padding: 3.75em 0;
  }
}
.p-listing::before {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  top: 0;
  right: 0;
  background: url("../img/listing/bg_main.jpg") no-repeat center center/cover;
  opacity: var(--bgOpacity, 0);
  z-index: -1;
}
@media only screen and (max-width: 767.9px) {
  .p-listing::before::before {
    background-image: url("../img/listing/bg_main_sp.jpg");
  }
}
.p-listing__title {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin-bottom: 4.375em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__title {
    margin-bottom: 3.125em;
  }
}
.p-listing__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.875em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__list {
    display: flex;
    flex-direction: column;
    gap: 2.8125em;
  }
}
.p-listing__listImg {
  display: block;
  margin-bottom: 1.5625em;
}
.p-listing__listHeading {
  font-family: "Shippori Mincho", serif;
  font-size: 1.375em;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  margin-bottom: 0.5em;
}
.p-listing__listDesc {
  font-size: 0.875em;
  line-height: 1.85;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__listDesc {
    text-align: center;
  }
}
.p-listing__gallery {
  display: flex;
  gap: 1.875em;
  flex-direction: column;
  margin: 6.5625em calc(50% - 50vw);
}
@media only screen and (max-width: 767.9px) {
  .p-listing__gallery {
    margin: 4.0625em calc(50% - 50vw);
    gap: 1.25em;
  }
}
.p-listing__sliderItem {
  margin-right: 1.875em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__sliderItem {
    margin-right: 1.25em;
  }
}
.p-listing__sliderImg img {
  width: auto;
  height: 21.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__sliderImg img {
    height: 12.5em;
  }
}
.p-listing__info {
  display: flex;
  justify-content: space-between;
  gap: 4.6875em;
  margin: 0 5.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__info {
    margin: 0;
    flex-direction: column;
    gap: 0;
  }
}
.p-listing__infoText {
  flex: 1;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__infoText {
    display: contents;
  }
}
.p-listing__infoHeading {
  font-family: "Shippori Mincho", serif;
  font-size: 1.75em;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.04em;
  margin-bottom: 1em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__infoHeading {
    font-size: 1.5em;
    order: 1;
  }
}
.p-listing__infoDesc {
  line-height: 1.875;
  letter-spacing: 0.0625em;
  margin-bottom: 3.125em;
  margin-right: 0.9375em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__infoDesc {
    order: 2;
    margin-bottom: 2.5em;
    margin-right: 0;
  }
}
.p-listing__infoButton {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin-right: 0.9375em;
  gap: 0.9375em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__infoButton {
    order: 4;
    margin-right: 0;
  }
}
.p-listing__infoButton .c-btnPrimary {
  width: 100%;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__infoButton .c-btnPrimary {
    width: 18.75em;
  }
}
.p-listing__infoCaption {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 0.875em;
  line-height: 1;
  letter-spacing: 0.08em;
  gap: 1.3125em;
}
.p-listing__infoCaption::before,
.p-listing__infoCaption::after {
  content: "";
  width: 0.0714285714em;
  height: 1.2857142857em;
  background: currentcolor;
}
.p-listing__infoCaption::before {
  transform: rotate(-45deg);
}
.p-listing__infoCaption::after {
  transform: rotate(45deg);
}
.p-listing__infoEmbed {
  width: 29.6875em;
}
@media only screen and (max-width: 767.9px) {
  .p-listing__infoEmbed {
    order: 3;
    width: 100%;
    height: 18.125em;
    margin-bottom: 3.75em;
  }
}
.p-listing__infoEmbed .fb-page {
  display: block;
  width: 100% !important;
  height: 100% !important;
}
.p-listing__infoEmbed .fb-page > span {
  display: block;
  width: 100% !important;
  height: 100% !important;
}
.p-listing__infoEmbed .fb-page > span > iframe {
  width: 100% !important;
  height: 100% !important;
}

.p-flow {
  position: relative;
  padding: 6.25em 0 5em;
  overflow: hidden;
}
@media only screen and (max-width: 767.9px) {
  .p-flow {
    padding: 5em 0 3.75em;
  }
}
.p-flow__inner {
  margin: 0 5.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__inner {
    margin: 0;
  }
}
.p-flow__title {
  display: flex;
  justify-content: center;
  margin-bottom: 4.375em;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__title {
    margin-bottom: 3.125em;
  }
}
.p-flow__content {
  position: relative;
  padding-bottom: 3.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__content {
    display: flex;
    gap: 3.125em;
    flex-direction: column;
    padding-bottom: 3.75em;
  }
}
.p-flow__content::before {
  position: absolute;
  content: "";
  left: 38%;
  top: 5em;
  bottom: 0;
  width: 100vw;
  background: #e2e8eb;
  z-index: -1;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__content::before {
    left: 20vw;
    top: 13.4375em;
  }
}
.p-flow__section {
  position: relative;
  display: grid;
  grid-template-columns: 5em 0.8125em 1fr;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__section {
    display: block;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-flow__section {
    will-change: transform;
    transform: translate3d(0, 50px, 0);
    opacity: 0;
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
  }
  .p-flow__section.is-anime {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
.p-flow__section:nth-child(n + 2) {
  padding-top: 1.6875em;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__section:nth-child(n + 2) {
    display: block;
    padding-top: 0;
  }
}
.p-flow__sectionStep {
  display: flex;
  justify-content: center;
  flex-direction: column;
  font-family: "AGaramondPro-Italic";
  font-size: 3.75em;
  line-height: 0.75;
}
.p-flow__sectionStep > span {
  display: block;
  transform: translateY(-50%);
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionStep {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate3d(-50%, -50%, 0);
    z-index: 2;
    font-size: 3.75em;
  }
  .p-flow__sectionStep > span {
    transform: unset;
  }
}
.p-flow__sectionLine {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 0.375em;
  margin: -1.6875em 0;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionLine {
    display: none;
  }
}
.p-flow__sectionLine::before,
.p-flow__sectionLine::after {
  display: block;
  content: "";
  flex: 1;
  width: 0.0625em;
  background: currentcolor;
}
.p-flow__section:first-child .p-flow__sectionLine::before {
  visibility: hidden;
}
.p-flow__section:last-child .p-flow__sectionLine::after {
  visibility: hidden;
}
.p-flow__sectionDeco {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: currentcolor;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionDeco {
    display: none;
  }
}
.p-flow__sectionContent {
  position: relative;
  background: #fff;
  margin-left: 3.4375em;
  padding: 3.75em 12.5em 2.8125em 2.1875em;
  box-shadow: 0.75em 0.75em 1.875em rgba(150, 160, 165, 0.2);
  z-index: 1;
}
@media only screen and (min-width: 768px) {
  .p-flow__sectionContent {
    will-change: opacity, transform;
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: ease-out;
    opacity: 0;
    transform: translate3d(50px, 0, 0);
  }
  .p-flow__section.is-anime .p-flow__sectionContent {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionContent {
    margin-left: 0;
    min-height: 21.875em;
    padding: 2.1875em 1.25em 7.5em;
  }
  .p-flow__section:last-child .p-flow__sectionContent {
    padding-bottom: 11.25em;
  }
}
.p-flow__sectionText {
  position: relative;
  z-index: 2;
}
.p-flow__sectionHeading {
  font-family: "Shippori Mincho", serif;
  font-size: 1.375em;
  font-weight: 600;
  margin-bottom: 1.7272727273em;
  letter-spacing: 0.0454545455em;
  line-height: 1.55;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionHeading {
    margin-bottom: 1.0909090909em;
  }
}
.p-flow__sectionDesc {
  line-height: 2.1;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionDesc {
    line-height: 2;
    letter-spacing: 0.06em;
  }
}
.p-flow__sectionList {
  line-height: 2.1;
  counter-reset: num 0;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionList {
    line-height: 2;
    letter-spacing: 0.06em;
  }
}
.p-flow__sectionList > li {
  position: relative;
  counter-increment: num 1;
  padding-left: 1.5em;
}
.p-flow__sectionList > li::before {
  position: absolute;
  left: 0;
  top: 0;
  content: counter(num) ".";
}
.p-flow__sectionList > li .p-flow__sectionList {
  padding-left: 0.5em;
}
.p-flow__sectionList.--dots {
  padding-left: 1em;
}
.p-flow__sectionList.--dots > li {
  counter-increment: none;
}
.p-flow__sectionList.--dots > li::before {
  content: "・";
}
.p-flow__sectionImg {
  position: absolute;
  right: 0;
  top: 0;
  width: 18.75em;
  height: 100%;
  z-index: 1;
  display: block;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionImg {
    position: absolute;
    top: initial;
    bottom: 0;
    width: 100%;
    height: auto;
  }
}
.p-flow__sectionImg::before {
  position: absolute;
  content: "";
  left: -1px;
  bottom: 0;
  top: 0;
  right: 0;
  background: linear-gradient(
    to right,
    white 0%,
    white 10%,
    rgba(255, 255, 255, 0) 100%
  );
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionImg::before {
    left: 0;
    top: -1px;
    background: linear-gradient(
      to bottom,
      white 0,
      white 10%,
      rgba(255, 255, 255, 0) 150%
    );
  }
}
.p-flow__sectionImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media only screen and (max-width: 767.9px) {
  .p-flow__sectionImg img {
    height: auto;
  }
}

.p-faq {
  position: relative;
  padding: 5.625em 0 6.25em;
}
.p-faq::before {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  width: 92.5%;
  height: 100%;
  background: url("../img/faq/bg_main.jpg") no-repeat center center/cover;
  z-index: -1;
}
@media only screen and (max-width: 767.9px) {
  .p-faq {
    padding: 3.75em 0;
    background: url("../img/faq/bg_main_sp.jpg") no-repeat center center/cover;
  }
  .p-faq::before {
    display: none;
  }
}
.p-faq__inner {
  margin: 0 5.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__inner {
    margin: 0;
  }
}
.p-faq__title {
  display: flex;
  justify-content: center;
  margin-bottom: 4.375em;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__title {
    margin-bottom: 3.125em;
  }
}
.p-faq__title .c-ttlPrimary__main {
  color: #fff;
}
.p-faq__content {
  display: flex;
  gap: 0.875em;
  flex-direction: column;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__content {
    gap: 0.75em;
  }
}
.p-faq__block {
  background: #fff;
}
.p-faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.875em 1.25em;
  gap: 1.25em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__question {
    padding: 1.25em 0.8125em;
    gap: 0.5em;
  }
}
.p-faq__icon {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.125em;
  width: 2em;
  height: 2em;
  border-radius: 50%;
  font-family: "PoynterText-RomanOne", serif;
  color: #fff;
  background: #262627;
}
.p-faq__icon.--green {
  background: #7cbe41;
}
.p-faq__heading {
  font-size: 1.125em;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  line-height: 1.7;
  flex: 1;
  letter-spacing: 0.06em;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__heading {
    font-size: 0.875em;
    letter-spacing: 0;
  }
}
.p-faq__toggle {
  position: relative;
  font-size: 1.1875em;
  width: 1em;
  height: 1em;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__toggle {
    font-size: 1.125em;
  }
}
.p-faq__toggle::before,
.p-faq__toggle::after {
  position: absolute;
  content: "";
  left: 50%;
  top: 50%;
  background: currentcolor;
  transform: translate3d(-50%, -50%, 0);
}
.p-faq__toggle::before {
  width: 100%;
  height: 0.0625em;
}
.p-faq__toggle::after {
  width: 0.0625em;
  height: 100%;
  transition: height 300ms;
}
.p-faq__question.is-open .p-faq__toggle::after {
  height: 0;
}
.p-faq__answer {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 1.875em 1.25em;
  gap: 1.25em;
  border-top: solid 0.0625em #afafb7;
  line-height: 2.1;
}
@media only screen and (max-width: 767.9px) {
  .p-faq__answer {
    font-size: 0.875em;
    gap: 0.5714285714em;
    padding: 1.4285714286em 2.1428571429em 1.4285714286em 0.9285714286em;
    line-height: 1.5;
    letter-spacing: 0.06em;
  }
}
.p-faq__desc {
  flex: 1;
}

.p-company {
  padding: 5em 0;
}
@media only screen and (max-width: 767.9px) {
  .p-company {
    padding: 3.75em 0;
  }
}
.p-company__inner {
  margin: 0 5.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-company__inner {
    margin: 0;
  }
}
.p-company__title {
  display: flex;
  justify-content: center;
  margin-bottom: 4.375em;
}
@media only screen and (max-width: 767.9px) {
  .p-company__title {
    margin-bottom: 3.125em;
  }
}
.p-company__tableRow {
  display: grid;
  grid-template-columns: 11.875em 1fr;
  padding: 1.5625em 0 1.5625em 1.875em;
  line-height: 1.75;
}
.p-company__tableRow:nth-child(odd) {
  background: #e2e8eb;
}
@media only screen and (max-width: 767.9px) {
  .p-company__tableRow {
    display: block;
    padding: 1.25em;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-company__tableHeading {
    font-weight: 700;
    margin-bottom: 0.625em;
  }
}
.p-company__tableTrigger {
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.25em;
  font-size: 1em;
  color: #7cbe41;
  font-weight: 500;
  letter-spacing: 0.0375em;
  padding: 0;
}
.p-company__tableTrigger svg {
  display: block;
  font-size: 0.875em;
  width: 1em;
  height: 1em;
  fill: currentcolor;
  transform: rotateX(180deg);
}
.p-company__tableTrigger.is-open svg {
  transform: rotateX(0);
}
.p-company__detail {
  margin-top: 1em;
}
@media only screen and (max-width: 767.9px) {
  .p-company__detail {
    margin-top: 1.0626381724em;
    border: solid #e2e8eb;
    border-width: 0 0.072709408em;
  }
}
.p-company__detailRow {
  display: grid;
  grid-template-columns: minmax(11em, 1fr) 1fr;
  font-size: 0.875em;
  letter-spacing: 0.0571428571em;
  padding: 0.9285714286em 0.9285714286em 0.8928571429em 1.0714285714em;
  line-height: 1.75;
}
.p-company__detailRow:nth-child(odd) {
  background: #e2e8eb;
}
@media only screen and (max-width: 767.9px) {
  .p-company__detailRow {
    display: block;
    font-size: 0.875em;
    padding: 1.3571428571em 1.5em;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-company__detailHeading {
    font-weight: 700;
    margin-bottom: 0.7142857143em;
  }
}
.p-company__history {
  padding-right: 3.75em;
}
.p-company__historyRow {
  display: grid;
  grid-template-columns: 9em 1fr;
  padding: 24 0;
  border-bottom: solid 0.0625em #fff;
  padding: 1.5em 0;
}
.p-company__historyRow:first-child {
  padding-top: 0;
}
@media only screen and (max-width: 767.9px) {
  .p-company__historyRow {
    display: block;
    padding: 0.9376074675em 0;
  }
  .p-company__historyRow:last-child {
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-company__history__Heading {
  line-height: 1;
}
.p-company__history__Data {
  font-size: 0.875em;
  line-height: 2;
  letter-spacing: 0.0714285714em;
}

.p-cv {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (max-width: 767.9px) {
  .p-cv {
    display: block;
  }
}
.p-cv__block {
  display: flex;
  align-items: center;
  gap: 2.375em;
  flex-direction: column;
  padding: 4.375em 0 4.6875em;
  background: #292b2d;
  color: #fff;
}
.p-cv__block.--light {
  background: #303336;
}
@media only screen and (max-width: 767.9px) {
  .p-cv__block {
    padding: 4.375em 0 5em;
  }
}
.p-cv__title {
  display: flex;
  align-items: center;
  flex-direction: column;
}
@media only screen and (max-width: 767.9px) {
  .p-cv__title .c-ttlPrimary__main {
    font-size: 2em;
  }
}

.p-contact {
  position: relative;
  padding: 4.375em 0 5.9375em;
}
@media only screen and (max-width: 767.9px) {
  .p-contact {
    padding: 3.125em 0 0;
  }
}
.p-contact input:-webkit-autofill,
.p-contact input:-webkit-autofill:hover,
.p-contact input:-webkit-autofill:focus,
.p-contact input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 40px #f4f6f7 inset !important;
}
.p-contact input::placeholder,
.p-contact select::placeholder,
.p-contact textarea::placeholder {
  color: rgba(52, 52, 59, 0.5);
}
.p-contact::before {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  bottom: 0;
  height: 25em;
  background: #e2e8eb;
  z-index: -1;
}
@media only screen and (max-width: 767.9px) {
  .p-contact::before {
    display: none;
  }
}
.p-contact__inner {
  margin: 0 5.75em;
  padding: 5em;
  background: #fff;
}
@media only screen and (max-width: 767.9px) {
  .p-contact__inner {
    margin: 0 -4.071vw;
    padding: 3.75em 4.071vw;
  }
}
.p-contact__formRow + .p-contact__formRow {
  margin-top: 2.5em;
}
@media only screen and (max-width: 767.9px) {
  .p-contact__formRow + .p-contact__formRow {
    margin-top: 2.1875em;
  }
}
.p-contact__formLabel {
  line-height: 1;
  margin-bottom: 1em;
}
.p-contact__formLabel.--required::before {
  content: "＊";
  color: #7cbe41;
  font-family: "ToppanBunkyuStdN-ExtraBold";
  font-weight: 800;
}
.p-contact__formFields {
  display: grid;
  grid-template-columns: 1fr;
}
.p-contact__formFields.--col2 {
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (max-width: 767.9px) {
  .p-contact__formFields.--col2 {
    grid-template-columns: 1fr;
  }
}
.p-contact__formFields.--col3 {
  grid-template-columns: repeat(3, 1fr);
}
.p-contact__formFields .wpcf7-not-valid-tip {
  margin-top: 0.625em;
}
.p-contact__formInput,
.p-contact__formSelect,
.p-contact__formTextarea {
  display: block;
  color: #34343b;
  font-family: "Ryo Gothic PlusN", sans-serif;
  font-size: 16px;
  letter-spacing: 1px;
  appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
}
.p-contact__formInput,
.p-contact__formSelect,
.p-contact__formTextarea {
  display: block;
  width: 100%;
  outline: none;
  background: transparent;
  border: solid 0.0625em #262627;
  padding: 1.0625em 1.25em;
}
.wpcf7-form-control-wrap:nth-last-child(n + 2) .p-contact__formInput,
.wpcf7-form-control-wrap:nth-last-child(n + 2) .p-contact__formSelect,
.wpcf7-form-control-wrap:nth-last-child(n + 2) .p-contact__formTextarea {
  border-right: none;
}
@media only screen and (max-width: 767.9px) {
  .p-contact__formFields.--col2
    .wpcf7-form-control-wrap:nth-last-child(n + 2)
    .p-contact__formInput,
  .p-contact__formFields.--col2
    .wpcf7-form-control-wrap:nth-last-child(n + 2)
    .p-contact__formSelect,
  .p-contact__formFields.--col2
    .wpcf7-form-control-wrap:nth-last-child(n + 2)
    .p-contact__formTextarea {
    border-right: solid 0.0625em #262627;
    border-bottom: none;
  }
}
.p-contact__formSelect {
  line-height: 2;
  background: url("../img/common/ico_down_arr.png") no-repeat center right
    1.25em/0.9375em;
}
.p-contact__formRadio,
.p-contact__formCheckbox {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8125em 2.875em;
}
@media only screen and (max-width: 767.9px) {
  .p-contact__formRadio,
  .p-contact__formCheckbox {
    display: grid;
    grid-template-columns: 7.1875em 1fr;
    gap: 0.8125em 0;
  }
}
.p-contact__formRadio .wpcf7-list-item,
.p-contact__formCheckbox .wpcf7-list-item {
  display: block;
  margin: 0;
  line-height: 1.5em;
}
.p-contact__formRadio .wpcf7-list-item label,
.p-contact__formCheckbox .wpcf7-list-item label {
  display: block;
  cursor: pointer;
}
.p-contact__formRadio .wpcf7-list-item input[type="radio"],
.p-contact__formRadio .wpcf7-list-item input[type="checkbox"],
.p-contact__formCheckbox .wpcf7-list-item input[type="radio"],
.p-contact__formCheckbox .wpcf7-list-item input[type="checkbox"] {
  display: none;
  visibility: hidden;
}
.p-contact__formRadio
  .wpcf7-list-item
  input[type="radio"]:checked
  + .wpcf7-list-item-label::after,
.p-contact__formRadio
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + .wpcf7-list-item-label::after,
.p-contact__formCheckbox
  .wpcf7-list-item
  input[type="radio"]:checked
  + .wpcf7-list-item-label::after,
.p-contact__formCheckbox
  .wpcf7-list-item
  input[type="checkbox"]:checked
  + .wpcf7-list-item-label::after {
  visibility: visible;
}
.p-contact__formRadio .wpcf7-list-item-label,
.p-contact__formCheckbox .wpcf7-list-item-label {
  position: relative;
  display: block;
  padding-left: 2.25em;
}
.p-contact__formRadio .wpcf7-list-item-label::before,
.p-contact__formRadio .wpcf7-list-item-label::after,
.p-contact__formCheckbox .wpcf7-list-item-label::before,
.p-contact__formCheckbox .wpcf7-list-item-label::after {
  position: absolute;
  left: 0;
}
.p-contact__formRadio .wpcf7-list-item-label::before,
.p-contact__formCheckbox .wpcf7-list-item-label::before {
  width: 1.5em;
  height: 1.5em;
  border: solid 0.0625em currentcolor;
  box-sizing: border-box;
}
.p-contact__formRadio .wpcf7-list-item-label::after,
.p-contact__formCheckbox .wpcf7-list-item-label::after {
  visibility: hidden;
}
.p-contact__formRadio .wpcf7-list-item-label::before,
.p-contact__formRadio .wpcf7-list-item-label::after {
  border-radius: 50%;
}
.p-contact__formRadio .wpcf7-list-item-label::after {
  width: 1.5em;
  height: 1.5em;
  background: #7cbe41;
  transform: scale(0.5);
}
.p-contact__formCheckbox .wpcf7-list-item-label::after {
  top: 0.125em;
  left: 0.40625em;
  width: 0.375em;
  height: 0.75em;
  border: solid #7cbe41;
  border-width: 0 0.25em 0.25em 0;
  transform: rotate(45deg);
}
.p-contact__formTextarea {
  display: block;
  width: 100%;
  height: 13.75em;
  resize: none;
}
.p-contact__formConsent {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 3.125em;
}
.p-contact__formConsent > label {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  gap: 0.625em;
  padding-bottom: 1.3125em;
}
.p-contact__formConsent > label .wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  bottom: -1.5625em;
  white-space: nowrap;
}
.p-contact__formConsent .p-contact__formCheckbox {
  display: block;
}
.p-contact__formConsent .p-contact__formCheckbox .wpcf7-list-item-label {
  font-size: 0;
  line-height: 0;
}
.p-contact__formConsent
  .p-contact__formCheckbox
  .wpcf7-list-item-label::before {
  position: relative;
  display: block;
}
.p-contact__formConsent .p-contact__formCheckbox .wpcf7-list-item-label::before,
.p-contact__formConsent .p-contact__formCheckbox .wpcf7-list-item-label::after {
  font-size: 16px;
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .p-contact__formConsent
    .p-contact__formCheckbox
    .wpcf7-list-item-label::before,
  .p-contact__formConsent
    .p-contact__formCheckbox
    .wpcf7-list-item-label::after {
    font-size: 1.25vw;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-contact__formConsent
    .p-contact__formCheckbox
    .wpcf7-list-item-label::before,
  .p-contact__formConsent
    .p-contact__formCheckbox
    .wpcf7-list-item-label::after {
    font-size: 4.071vw;
  }
}
.p-contact__formLink a {
  color: #7cbe41;
}
.p-contact__formSubmit {
  display: flex;
  justify-content: center;
  margin-top: 2.5em;
}
.p-contact__formButton {
  position: relative;
  height: 4.6875em;
  width: 18.75em;
  background-color: #34343b;
  border: solid 0.0625em #34343b;
  color: #fff;
  transition-property: color, background-color, border-color;
  transition-duration: 0.5s;
}
.p-contact__formButton .wpcf7-spinner {
  display: none;
}
.p-contact__formButton input[type="submit"] {
  position: absolute;
  cursor: pointer;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Ryo Gothic PlusN", sans-serif;
  color: inherit;
  border-radius: none;
  appearance: none;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.1428571429em;
  border: none;
  background: transparent;
  outline: none;
}
.p-contact__formButton::before,
.p-contact__formButton::after {
  position: absolute;
  content: "";
  top: 50%;
  background: currentcolor;
  transform: translateY(-50%) translateZ(0);
  will-change: transform;
  z-index: 2;
}
.p-contact__formButton::before {
  left: 1.875em;
  width: 0.8125em;
  height: 0.8125em;
  clip-path: url("#clip_square_01");
}
.p-contact__formButton::after {
  right: 1.875em;
  width: 0.875em;
  height: 0.875em;
  clip-path: url("#clip_arrow_01");
  transition: right 0.5s;
}
@media (hover: hover) and (pointer: fine) {
  .p-contact__formButton:hover {
    background: #7cbe41;
    border-color: #7cbe41;
  }
}

.p-confirm {
  margin: 0 11.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-confirm {
    margin: 0;
  }
}
.p-confirm__lead {
  line-height: 2.1;
  text-align: center;
  letter-spacing: 0.0625em;
  margin-bottom: 3.125em;
}
@media only screen and (max-width: 767.9px) {
  .p-confirm__lead {
    line-height: 2;
    text-align: left;
    letter-spacing: 0.0623925325em;
  }
}
.p-confirm__formRow {
  display: grid;
  grid-template-columns: 20em 1fr;
  padding: 1.75em 0;
  border: solid #c9d6db;
  border-width: 0.125em 0 0 0;
}
.p-confirm__formRow:last-of-type {
  border-bottom-width: 0.125em;
}
@media only screen and (max-width: 767.9px) {
  .p-confirm__formRow {
    display: block;
    padding: 1.25006141em 0;
    border-color: #e2e8eb;
    border-width: 0.125030705em 0 0 0;
  }
  .p-confirm__formRow:last-of-type {
    border-bottom-width: 0.125030705em;
  }
}
@media only screen and (max-width: 767.9px) {
  .p-confirm__formLabel {
    width: 100%;
    line-height: 2.1;
    letter-spacing: 0.0623925325em;
  }
}
.p-confirm__formLabel.--required::before {
  content: "＊";
  color: #7cbe41;
  font-family: "ToppanBunkyuStdN-ExtraBold";
  font-weight: 800;
}
.p-confirm__formData {
  color: rgba(52, 52, 59, 0.8);
}
@media only screen and (max-width: 767.9px) {
  .p-confirm__formData {
    width: 94%;
    line-height: 2.03;
    padding-left: 1.1918447556em;
    letter-spacing: 0.0606730533em;
  }
}
.p-confirm__formSubmit {
  display: flex;
  justify-content: center;
  gap: 1.875em;
  margin-top: 3.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-confirm__formSubmit {
    flex-direction: column-reverse;
    gap: 1.6251535249em;
    width: 76.336vw;
    margin: 3.8752149349em auto 0;
  }
}
.p-confirm__formButton {
  position: relative;
  height: 4.6875em;
  width: 18.75em;
  background-color: #34343b;
  border: solid 0.0625em #34343b;
  color: #fff;
  transition-property: color, background-color, border-color, opacity;
  transition-duration: 0.5s;
}
.p-confirm__formButton .wpcf7-spinner {
  display: none;
}
.p-confirm__formButton input[type="submit"],
.p-confirm__formButton input[type="button"] {
  position: absolute;
  cursor: pointer;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Ryo Gothic PlusN", sans-serif;
  color: inherit;
  border-radius: none;
  appearance: none;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.1428571429em;
  border: none;
  background: transparent;
  outline: none;
}
.p-confirm__formButton::before,
.p-confirm__formButton::after {
  position: absolute;
  content: "";
  top: 50%;
  background: currentcolor;
  will-change: transform;
  transform: translateY(-50%) translateZ(0);
  z-index: 2;
}
.p-confirm__formButton::before {
  left: 1.875em;
  width: 0.8125em;
  height: 0.8125em;
  clip-path: url("#clip_square_01");
  will-change: transform;
}
.p-confirm__formButton::after {
  right: 1.875em;
  width: 0.875em;
  height: 0.875em;
  clip-path: url("#clip_arrow_01");
  transition: right 0.5s;
}
.p-confirm__formButton.--back {
  background: transparent !important;
  color: #34343b;
  border-color: currentcolor !important;
}
.p-confirm__formButton.--back::before {
  right: 1.875em;
  left: initial;
}
.p-confirm__formButton.--back::after {
  left: 1.875em;
  right: initial;
  transform: rotateY(180deg) translateY(-50%) translateZ(0);
}
@media (hover: hover) and (pointer: fine) {
  .p-confirm__formButton.--back:hover {
    opacity: 0.3;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-confirm__formButton:hover {
    background: #7cbe41;
    border-color: #7cbe41;
  }
}

.p-complete {
  margin: 0 5.75em;
}
@media only screen and (max-width: 767.9px) {
  .p-complete {
    margin: 0;
  }
}
.p-complete__lead {
  line-height: 2.1;
  text-align: center;
  letter-spacing: 0.0625em;
}
@media only screen and (max-width: 767.9px) {
  .p-complete__lead {
    line-height: 2;
    text-align: left;
    letter-spacing: 0.0623925325em;
  }
}
.p-complete__button {
  display: flex;
  justify-content: center;
  margin-top: 4.0625em;
}
@media only screen and (max-width: 767.9px) {
  .p-complete__button {
    margin-top: 3.8752149349em;
  }
}

.p-sub {
  position: relative;
  padding-top: 4.6875em;
}
@media only screen and (max-width: 767.9px) {
  .p-sub {
    padding-top: 4.375092115em;
  }
}
.p-sub__header {
  padding: 5.625em 0;
  background: url("../img/common/bg_sub.jpg") no-repeat center center/cover;
}
@media only screen and (max-width: 767.9px) {
  .p-sub__header {
    padding: 4.0776222058em 0;
    background-image: url("../img/common/bg_sub_sp.jpg");
  }
}
.p-sub__title {
  color: #fff;
  line-height: 1.43;
  color: #ffffff;
  font-family: "Shippori Mincho", serif;
  font-size: 2.5em;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 767.9px) {
  .p-sub__title {
    font-size: 1.6251535249em;
    line-height: 1.6;
    letter-spacing: 0.0235em;
  }
}
.p-sub__content {
  background: #fff;
  padding-top: 4.0625em;
  padding-bottom: 6.25em;
}
@media only screen and (max-width: 767.9px) {
  .p-sub__content {
    padding-top: 2.25006141em;
    padding-bottom: 4.9403095063em;
  }
}
