@charset "UTF-8";
/* Box sizing rules */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.01ms !important;
            animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* base */
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}
@media screen and (max-width: 768px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 2;
  color: #000000;
  background: url(../../assets/images/bg_white.jpg) center/100% auto repeat-y;
}

a {
  text-decoration: none;
}

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

ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* l-body */
.l-body.noScroll {
  overflow: hidden;
}

/* l-header */
.l-header {
  background: #C32121;
}
@media screen and (max-width: 768px) {
  .l-header {
    padding: 2rem 0 1rem;
  }
}
.l-header img {
  margin: auto;
  max-width: 92.8vw;
}

/* l-footer */
.l-footer {
  color: #fff;
  text-align: center;
  background-color: #000;
  padding: 9.4rem 0;
}
@media screen and (max-width: 768px) {
  .l-footer {
    padding: 5.4rem 0 8rem;
  }
}
.l-footer__logo {
  max-width: 13.4rem;
  margin: auto;
}
.l-footer__copy {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  line-height: 1.4166666667;
  margin-top: 3rem;
}

/* l-inner */
.l-inner {
  width: 104rem;
  max-width: 100%;
  padding: 0 2rem;
  margin: auto;
}
.l-inner--about {
  width: 132rem;
}

/* c-site */
.c-site {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
}
.c-site__main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/* c-ttl*/
/* c-btn */
/* c-ttlBox */
.c-ttlBox {
  text-align: center;
}
.c-ttlBox--white {
  color: #fff;
}
.c-ttlBox--vertical {
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
          writing-mode: vertical-rl;
}
.c-ttlBox--vertical .c-ttlBox__ja {
  text-align: left;
}
@media screen and (max-width: 768px) {
  .c-ttlBox--result .c-ttlBox__en {
    line-height: 1.4;
  }
}
.c-ttlBox__en {
  font-family: "Bodoni Moda", serif;
  font-weight: 500;
  font-size: 7.2rem;
  letter-spacing: 0.12em;
  line-height: 1.25;
}
@media screen and (max-width: 768px) {
  .c-ttlBox__en {
    font-size: 5.2rem;
    line-height: 1.8;
  }
}
.c-ttlBox__ja {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2.4rem;
  letter-spacing: 0.05em;
  line-height: 1.1666666667;
  margin-top: 1rem;
}
@media screen and (max-width: 768px) {
  .c-ttlBox__ja {
    font-size: 2rem;
    letter-spacing: 0.15em;
    margin-top: 0;
    line-height: 1;
    margin-top: -1.5rem;
  }
}

/* c-card */
.c-card__num {
  width: 4.6rem;
  font-family: "Bodoni Moda", serif;
  font-size: 2.4rem;
  line-height: 2.8rem;
  color: #fff;
  text-align: center;
  padding: 0.6rem;
  background-color: #000;
  border-radius: 5px;
  margin: auto;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
}
@media screen and (max-width: 768px) {
  .c-card__num {
    width: 3.2rem;
    font-size: 1.6rem;
    line-height: 1.8rem;
    padding: 0.7rem;
  }
}
.c-card__img img {
  width: 100%;
}
.c-card__desc {
  border-radius: 10px;
  overflow: hidden;
  -webkit-transform: translateY(-2.2rem);
          transform: translateY(-2.2rem);
}
.c-card__ttl {
  min-height: 9rem;
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2rem;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #fff;
  background-color: #000;
  text-align: center;
  padding: 1.5rem 1rem;
}
@media screen and (max-width: 768px) {
  .c-card__ttl {
    min-height: 6.3rem;
    font-size: 1.6rem;
    line-height: 1.25;
    padding: 10px;
  }
}
@media screen and (max-width: 768px) {
  .c-card__ttl--sm {
    font-size: 1.3rem;
  }
}
.c-card__txt {
  min-height: 9.4rem;
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #fff;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2;
  padding: 1.5rem 2rem;
}
@media screen and (max-width: 768px) {
  .c-card__txt {
    min-height: 9.8rem;
    font-size: 1.4rem;
    line-height: 1.7142857143;
    padding: 1.5rem;
  }
}

/* c-voice */
.c-voice {
  background-color: #FAF6E7;
  border-radius: 10px;
  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
          box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  padding: 5rem 7.0588235294%;
}
@media screen and (max-width: 768px) {
  .c-voice {
    padding: 3rem 2.4rem 3rem 2rem;
  }
}
.c-voice__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 768px) {
  .c-voice__header {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.c-voice__q {
  font-family: "Bodoni Moda", serif;
  font-size: 5.6rem;
  line-height: 1;
  position: relative;
}
@media screen and (max-width: 768px) {
  .c-voice__q {
    font-size: 2.9rem;
  }
}
.c-voice__q::before {
  content: "";
  display: inline-block;
  width: 5rem;
  height: 0.4rem;
  border-radius: 20px;
  background-color: #C32121;
  position: absolute;
  bottom: -2rem;
  left: 0;
}
@media screen and (max-width: 768px) {
  .c-voice__q::before {
    width: 2.8rem;
  }
}
.c-voice__ttl {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.5384615385;
  letter-spacing: 0.08em;
  padding-left: 4rem;
  padding-top: 2.4rem;
}
@media screen and (max-width: 768px) {
  .c-voice__ttl {
    font-size: 2rem;
    line-height: 1.6;
    padding-left: 2.4rem;
    padding-top: 0;
  }
}
.c-voice__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-top: 4.6rem;
}
@media screen and (max-width: 768px) {
  .c-voice__body {
    margin-top: 0.6rem;
  }
}
.c-voice__imgArea {
  width: 16.7rem;
  padding-top: 2rem;
}
@media screen and (max-width: 768px) {
  .c-voice__imgArea {
    width: 6.574rem;
    padding-top: 1.2rem;
  }
}
.c-voice__txtArea {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-left: 5.2%;
}
.c-voice__txtArea p {
  font-size: 1.8rem;
  line-height: 2.8888888889;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 768px) {
  .c-voice__txtArea p {
    font-size: 1.4rem;
    line-height: 2.5714285714;
  }
}
.c-voice__txtArea p span {
  background-color: #FAF6E7; /* 背景色 */
  background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #FAF6E7 50%, #FAF6E7 100%), linear-gradient(180deg, #C32121 2px, transparent 2px); /* 点線2の色と太さ */
  background-size: 12px 100%, 100% 2.5em; /* 点線2のサイズ */
  background-position: 0 0, 0 calc(100% - 2px);
  line-height: 2.8888888889; /* 文字の高さ */
  padding-bottom: 1.4rem;
}
@media screen and (max-width: 768px) {
  .c-voice__txtArea p span {
    background: url(../../assets/images/line_dash.svg) bottom 0.4rem left/44.55rem auto repeat-x;
    line-height: 1.2;
    padding-bottom: 1.2rem;
  }
}

/* c-merit */
.c-merit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 768px) {
  .c-merit {
    display: block;
  }
}
.c-merit--reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
@media screen and (max-width: 768px) {
  .c-merit--reverse {
    display: block;
  }
}
.c-merit--reverse .c-merit__desc {
  padding-left: 5%;
  padding-right: 0;
}
@media screen and (max-width: 768px) {
  .c-merit--reverse .c-merit__desc {
    padding-left: 0;
  }
}
.c-merit__imgArea {
  width: 47rem;
  max-width: 50%;
}
@media screen and (max-width: 768px) {
  .c-merit__imgArea {
    width: 100%;
    max-width: 100%;
    margin-top: 2.4rem;
  }
}
.c-merit__desc {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-top: 2.8rem;
  padding-right: 5%;
}
@media screen and (max-width: 768px) {
  .c-merit__desc {
    padding-top: 0;
    padding-right: 0;
  }
}
.c-merit__ttl {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 4.4rem;
  letter-spacing: 0.05em;
  line-height: 1.6;
  border-bottom: 2px solid #C32121;
}
@media screen and (max-width: 768px) {
  .c-merit__ttl {
    font-size: 2.4rem;
    border-bottom: none;
    position: relative;
    padding-bottom: 2rem;
  }
  .c-merit__ttl::before {
    content: "";
    display: inline-block;
    width: 6rem;
    height: 0.4rem;
    background-color: #C32121;
    position: absolute;
    bottom: 0;
    left: 0;
  }
}
.c-merit__txt {
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 2;
  margin-top: 3.2rem;
}
@media screen and (max-width: 768px) {
  .c-merit__txt {
    font-size: 1.4rem;
    margin-top: 2.6rem;
  }
}

/* c-price */
.c-price {
  position: relative;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  padding-top: 2rem;
}
@media screen and (max-width: 768px) {
  .c-price {
    padding-top: 1.8rem;
  }
}
.c-price__ttl {
  font-size: 2.4rem;
  letter-spacing: 0.15em;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  color: #fff;
  background-color: #000;
  border-radius: 5px;
  padding: 1.6rem 0.2rem;
  position: absolute;
  top: 0;
  right: 2rem;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .c-price__ttl {
    font-size: 1.6rem;
  }
}
.c-price__imgArea {
  width: 100%;
  padding-top: 68.085106383%;
  border-radius: 10px 10px 0 0;
  position: relative;
  overflow: hidden;
}
.c-price__imgArea img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.c-price__price {
  font-size: 4.2rem;
  line-height: 1.5365853659;
  letter-spacing: 0.08em;
  color: #fff;
  background-color: #C32121;
  text-align: center;
  border-radius: 0 0 10px 10px;
}
@media screen and (max-width: 768px) {
  .c-price__price {
    font-size: 2.8rem;
  }
}
.c-price__price span {
  font-size: 8.2rem;
}
@media screen and (max-width: 768px) {
  .c-price__price span {
    font-size: 5.6rem;
  }
}

/* c-top */
.c-top {
  position: fixed;
  right: 5.2rem;
  bottom: 5.2rem;
  z-index: 9;
}
@media screen and (max-width: 768px) {
  .c-top {
    width: 4rem;
    height: 4rem;
    right: 2rem;
    bottom: 1rem;
  }
}

/* c-form */
.c-form table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 2.2rem;
}
@media screen and (max-width: 768px) {
  .c-form table {
    display: block;
  }
}
.c-form table th {
  text-align: left;
  width: calc(100% - 66rem);
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.625;
  letter-spacing: 0.08rem;
  vertical-align: top;
  padding-top: 3.2rem;
}
@media screen and (max-width: 768px) {
  .c-form table th {
    display: block;
    width: 100%;
    padding-top: 0;
  }
}
.c-form table td {
  padding: 1.2rem 0;
}
@media screen and (max-width: 768px) {
  .c-form table td {
    display: block;
    width: 100%;
    padding: 1rem 0;
  }
}
.c-form input[type=text], .c-form textarea {
  width: 100%;
  background-color: #F5F5F5;
  border-radius: 10px;
  border: transparent;
  padding: 1.4rem;
}
.c-form textarea {
  height: 17.8rem;
}
.c-form__note {
  color: #909090;
  font-size: 1rem;
  letter-spacing: 0.06em;
  line-height: 1.8;
  margin-top: 1.4rem;
}
@media screen and (max-width: 768px) {
  .c-form__note {
    margin-top: 0.4rem;
  }
}
.c-form__required {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 2.1666666667;
  letter-spacing: 0.2em;
  color: #fff;
  background-color: #C32121;
  padding: 0.2rem 0.7rem;
  margin-left: 1rem;
}
.c-form__messageTtl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.c-form__btnArea {
  max-width: 28.5rem;
  margin: 3rem auto 0;
}
@media screen and (max-width: 768px) {
  .c-form__btnArea {
    margin-top: 1rem;
  }
}
.c-form__btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  outline: none;
  border: none;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 1.6rem;
  letter-spacing: 0.2em;
  line-height: 2.6875;
  padding: 1rem;
  border-radius: 70px;
  color: #fff;
  background: #C32121 url(../../assets/images/i_btn_arrow.svg) center right 2rem/0.761rem auto no-repeat;
}
.c-form__btn:hover {
  opacity: 0.8;
}

/* c-fixedCta */
.c-fixedCta {
  width: 14rem;
  height: 14rem;
  text-align: center;
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 99;
}
@media screen and (max-width: 768px) {
  .c-fixedCta {
    height: auto;
    width: 100%;
    right: 0;
    bottom: 0;
  }
}
.c-fixedCta__link {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  color: #fff;
  line-height: 1.4;
  background-color: #ff7f02;
  border-radius: 50%;
  border: 2px solid #fff;
}
@media screen and (max-width: 768px) {
  .c-fixedCta__link {
    border-radius: 0;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 1rem;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-fixedCta__link:hover {
    opacity: 0.8;
  }
  .c-fixedCta__link:hover .c-fixedCta__iconArrow {
    -webkit-transform: translateY(0.8rem);
            transform: translateY(0.8rem);
  }
}
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .c-fixedCta__link:hover {
    opacity: 0.8;
  }
  .c-fixedCta__link:hover .c-fixedCta__iconArrow {
    -webkit-transform: translateY(0.8rem);
            transform: translateY(0.8rem);
  }
}
.c-fixedCta__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 768px) {
  .c-fixedCta__inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.c-fixedCta__iconMail {
  font-size: 3rem;
}
@media screen and (max-width: 768px) {
  .c-fixedCta__iconMail {
    font-size: 2.4rem;
    margin-right: 0.6rem;
  }
}
.c-fixedCta__text {
  margin-top: 0.6rem;
}
@media screen and (max-width: 768px) {
  .c-fixedCta__text {
    margin-top: 0;
  }
}
.c-fixedCta__text span {
  color: #feeba1;
}
.c-fixedCta__iconArrow {
  margin-top: 0.6rem;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 768px) {
  .c-fixedCta__iconArrow {
    margin-top: 0;
    margin-left: 2rem;
  }
}

/* js-scrollAnime */
.js-scrollAnime--fadeIn {
  opacity: 0;
  -webkit-transition: all 0.8s ease;
  transition: all 0.8s ease;
}
.js-scrollAnime--fadeIn.start {
  opacity: 1;
}
.js-scrollAnime--fadeUp {
  opacity: 0;
  -webkit-transition: all 0.8s ease;
  transition: all 0.8s ease;
  -webkit-transform: translateY(50px);
          transform: translateY(50px);
}
.js-scrollAnime--fadeUp.start {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.js-scrollAnime--delay2 {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.js-scrollAnime--delay8 {
  -webkit-transition-delay: 0.8s;
          transition-delay: 0.8s;
}

/* p-mv */
.p-mv {
  min-height: 73.2rem;
  background: url(../../assets/images/mv_img.png) bottom center/cover no-repeat;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-mv {
    background-image: url(../../assets/images/mv_img_sp.png);
    min-height: 46.8rem;
  }
}
.p-mv__copy {
  width: 100%;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 5rem;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  padding: 3rem 1rem 6rem;
  background-color: rgba(0, 0, 0, 0.65);
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .p-mv__copy {
    font-size: 3rem;
    padding: 2rem 0;
  }
}

/* p-about */
.p-about {
  padding: 9rem 0;
}
@media screen and (max-width: 768px) {
  .p-about {
    padding: 5rem 0;
  }
}
.p-about__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
@media screen and (max-width: 768px) {
  .p-about__inner {
    display: block;
  }
}
.p-about__lead {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2.4rem;
  letter-spacing: 0.05em;
  line-height: 1.5833333333;
}
.p-about__ttl {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  color: #C32121;
  letter-spacing: 0.05em;
  font-size: 4.4rem;
  line-height: 1.4318181818;
  padding-bottom: 1.5rem;
  position: relative;
  margin-top: 4rem;
}
@media screen and (max-width: 768px) {
  .p-about__ttl {
    font-size: 3.6rem;
    line-height: 1.5555555556;
    padding-bottom: 2.5rem;
    margin-top: 1.6rem;
  }
}
.p-about__ttl::before {
  content: "";
  display: inline-block;
  width: 6rem;
  height: 4px;
  background-color: #C32121;
  position: absolute;
  left: 0;
  bottom: 0;
}
.p-about__imgArea {
  width: 70.2rem;
  max-width: 54.84375%;
}
@media screen and (max-width: 1200px) {
  .p-about__imgArea {
    max-width: 40%;
  }
}
@media screen and (max-width: 768px) {
  .p-about__imgArea {
    width: 100%;
    max-width: 100%;
    margin-top: 2.6rem;
  }
}
.p-about__desc {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-left: 7.8125%;
  padding-top: 1.5rem;
}
@media screen and (max-width: 1200px) {
  .p-about__desc {
    padding-left: 5%;
  }
}
@media screen and (max-width: 768px) {
  .p-about__desc {
    padding-top: 0;
    padding-left: 0;
  }
}
.p-about__txt {
  margin-top: 5rem;
  letter-spacing: 0.08em;
  line-height: 2.625;
}
@media screen and (max-width: 768px) {
  .p-about__txt {
    line-height: 2;
    margin-top: 3.2rem;
  }
}

/* p-menu */
.p-menu {
  color: #fff;
  background: url(../../assets/images/bg_red.jpg) center/cover no-repeat;
  padding: 9rem 0;
}
@media screen and (max-width: 768px) {
  .p-menu {
    padding: 4.4rem 0;
  }
}
.p-menu__lead {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 3rem;
  letter-spacing: 0.05em;
  line-height: 1.4333333333;
  text-align: center;
  margin-top: 3.2rem;
}
@media screen and (max-width: 768px) {
  .p-menu__lead {
    font-size: 2.2rem;
    line-height: 2.25;
    margin-top: 2rem;
  }
}
.p-menu__list {
  margin-top: 7.2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .p-menu__list {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 3.4rem;
  }
}
.p-menu__item {
  width: 29.3rem;
  max-width: 32.6666666667%;
  padding-top: 1.5rem;
  margin-bottom: 2.8rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-menu__item {
    width: 46.8656716418%;
    max-width: 46.8656716418%;
    padding-top: 2rem;
    margin-bottom: 2rem;
  }
}
.p-menu__item:not(:nth-child(3n)) {
  margin-right: calc((100% - 87.9rem) / 2);
}
@media screen and (max-width: 900px) {
  .p-menu__item:not(:nth-child(3n)) {
    margin-right: 1%;
  }
}
@media screen and (max-width: 768px) {
  .p-menu__item:not(:nth-child(3n)) {
    margin-right: 0;
  }
}
.p-menu__name {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2.4rem;
  letter-spacing: 0.05em;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
          writing-mode: vertical-rl;
  background-color: #000;
  border-radius: 5px;
  padding: 1.6rem 0.2rem;
  position: absolute;
  top: 0;
  right: 3rem;
}
@media screen and (max-width: 768px) {
  .p-menu__name {
    font-size: 1.8rem;
    padding: 0.5rem 0;
    right: 1rem;
  }
}
.p-menu__name span {
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  .p-menu__name span {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 768px) {
  .p-menu__name span.xs {
    font-size: 1rem;
  }
}
.p-menu__img {
  width: 100%;
}
.p-menu__img img {
  width: 100%;
}
.p-menu__box {
  color: #000000;
  background: url(../../assets/images/menu_box_bg.png) center/cover no-repeat;
  padding: 3.2rem 0 3rem 6rem;
  border-radius: 10px;
  overflow: hidden;
  margin-top: 3.2rem;
}
@media screen and (max-width: 768px) {
  .p-menu__box {
    padding: 2.2rem 3rem 1rem;
    margin-top: 2.2rem;
    background: url(../../assets/images/menu_box_bg_sp.png) center/cover no-repeat;
  }
}
.p-menu__boxList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .p-menu__boxList {
    display: block;
  }
}
.p-menu__boxItem {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 1.6rem;
  letter-spacing: 0.05em;
  margin-right: 5.7rem;
}
@media screen and (max-width: 768px) {
  .p-menu__boxItem {
    margin-right: 0;
  }
}
.p-menu__boxItem p {
  margin-bottom: 0.8rem;
}
@media screen and (max-width: 768px) {
  .p-menu__boxItem p {
    margin-bottom: 1.4rem;
  }
}
.p-menu__boxItem p::before {
  content: "";
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background-color: #C32121;
  margin-right: 1rem;
  -webkit-transform: translateY(-0.3rem);
          transform: translateY(-0.3rem);
}
.p-menu__boxItem .txt02 {
  display: inline-block;
  min-width: 8.4rem;
}
.p-menu__boxItem .txt07 {
  display: inline-block;
  min-width: 8.4rem;
}
.p-menu__boxItem .sm {
  font-size: 1.4rem;
}

/* p-recommend */
.p-recommend {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  position: relative;
  overflow: hidden;
  background-color: #C32121;
}
.p-recommend__ttl {
  font-size: 5rem;
  letter-spacing: 0.05em;
  color: #fff;
  background-color: #000;
  text-align: center;
  padding: 3.8rem 1rem;
}
@media screen and (max-width: 768px) {
  .p-recommend__ttl {
    font-size: 3rem;
    line-height: 1.34375;
    padding: 2rem 0;
  }
}
.p-recommend__img {
  width: 58.4rem;
  position: absolute;
  top: 10.6rem;
  right: -7.6rem;
  z-index: 2;
}
@media screen and (max-width: 1370px) {
  .p-recommend__img {
    right: -30vw;
  }
}
@media screen and (max-width: 768px) {
  .p-recommend__img {
    display: none;
  }
}
.p-recommend__body {
  padding: 12rem 0 19rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-recommend__body {
    padding: 4rem 0 33rem;
  }
}
.p-recommend__bg {
  width: 144rem;
  height: 106.919rem;
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, -4px);
          transform: translate(-50%, -4px);
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .p-recommend__bg {
    width: 37.5rem;
    height: initial;
    -webkit-transform: translate(-50%, -1rem);
            transform: translate(-50%, -1rem);
  }
}
.p-recommend__bg img {
  vertical-align: bottom;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .p-recommend__bg img {
    width: 100%;
  }
}
.p-recommend__item {
  font-size: 4.3rem;
  letter-spacing: 0.05em;
  line-height: 1.3488372093;
  padding-left: 7.2rem;
  position: relative;
  z-index: 3;
}
@media screen and (max-width: 1370px) {
  .p-recommend__item {
    font-size: 3vw;
  }
}
@media screen and (max-width: 768px) {
  .p-recommend__item {
    font-size: 2.2rem;
    line-height: 1.7272727273;
    padding-left: 3.4rem;
  }
}
.p-recommend__item span {
  display: inline-block;
  position: relative;
}
.p-recommend__item span::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 1.2rem;
  background: url(../../assets/images/border_wave_red.svg) left bottom/auto 1.2rem repeat-x;
  position: absolute;
  bottom: -1.2rem;
  left: 0;
}
@media screen and (max-width: 768px) {
  .p-recommend__item span::before {
    bottom: -1rem;
  }
}
.p-recommend__item::before {
  content: "";
  display: inline-block;
  width: 6.15rem;
  height: 5.015rem;
  background: url(../../assets/images/i_check.svg) center/contain no-repeat;
  position: absolute;
  top: 0.6rem;
  left: 0;
}
@media screen and (max-width: 768px) {
  .p-recommend__item::before {
    width: 3.39rem;
    height: 3.39rem;
    top: 0;
  }
}
.p-recommend__item:not(:first-child) {
  margin-top: 6rem;
}
@media screen and (max-width: 768px) {
  .p-recommend__item:not(:first-child) {
    margin-top: 3.4rem;
  }
}
.p-recommend__imgSP {
  display: none;
}
@media screen and (max-width: 768px) {
  .p-recommend__imgSP {
    display: block;
    width: 42rem;
    position: absolute;
    bottom: 8rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    z-index: 4;
  }
}

/* p-merit */
.p-merit {
  background: url(../../assets/images/bg_red.jpg) center/cover no-repeat;
}
.p-merit__lead {
  max-width: 77.9rem;
  padding: 3.8rem 1rem;
  margin: 5rem auto 0;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  color: #C32121;
  font-size: 2.6rem;
  letter-spacing: 0.08em;
  line-height: 1.5384615385;
  text-align: center;
  background-color: #FAF6E7;
  border-radius: 10px;
  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
          box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 768px) {
  .p-merit__lead {
    font-size: 2.4rem;
    padding: 2rem 1rem;
  }
}
.p-merit__lead p span {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(70%, transparent), color-stop(70%, #FFEA83));
  background: linear-gradient(transparent 70%, #FFEA83 70%);
}
.p-merit__list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 3rem 4%;
  margin-top: 3.6rem;
}
@media screen and (max-width: 768px) {
  .p-merit__list {
    grid-template-columns: 1fr 1fr;
    gap: 0 5.9701492537%;
    margin-top: 2.4rem;
  }
}
.p-merit__message {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 5rem;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  background-color: #000;
  margin-top: 7.2rem;
  padding: 4.6rem 1rem 7.4rem;
}
@media screen and (max-width: 768px) {
  .p-merit__message {
    margin-top: 3rem;
    font-size: 3rem;
    line-height: 1.7;
    padding: 2rem 0 2.4rem;
  }
}
.p-merit__message .dots {
  position: relative;
}
.p-merit__message .dots::before {
  content: "";
  display: inline-block;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background-color: #FFD000;
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media screen and (max-width: 768px) {
  .p-merit__message .dots::before {
    width: 0.554rem;
    height: 0.554rem;
  }
}

/* p-voice */
.p-voice {
  padding: 6rem 0;
}
.p-voice__lead {
  font-weight: 500;
  text-align: center;
  margin-top: 4rem;
  letter-spacing: 0.08em;
}
.p-voice__list {
  margin-top: 5.8rem;
}
@media screen and (max-width: 768px) {
  .p-voice__list {
    margin-top: 2.8rem;
  }
}
.p-voice__item {
  max-width: 85rem;
}
.p-voice__item:nth-child(2n) {
  margin: 0 0 0 auto;
}
.p-voice__item:not(:first-child) {
  margin-top: 4rem;
}

/* p-result */
.p-result {
  padding: 16.4rem 0 0;
  background: url(../../assets/images/result_bg.jpg) center/cover no-repeat;
  overflow: hidden;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-result {
    padding-top: 8rem;
  }
}
.p-result__inner {
  position: relative;
}
.p-result__ttl {
  position: absolute;
  top: 8rem;
  left: calc(50% + 17rem);
}
@media screen and (max-width: 768px) {
  .p-result__ttl {
    left: calc(50% + 7rem);
    top: 5rem;
  }
}
.p-result__box {
  max-width: 70.2rem;
  margin: auto;
  border-radius: 40px;
  padding: 4.5rem 11%;
  background: url(../../assets/images/result_box_bg.png) right bottom/100% auto no-repeat;
}
@media screen and (max-width: 768px) {
  .p-result__box {
    padding: 4rem 2rem;
    background-image: url(../../assets/images/result_box_bg_sp.png);
    background-size: 33.55rem auto;
  }
}
.p-result__item {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 2.8333333333;
  letter-spacing: 0.05em;
  padding-left: 4rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-result__item {
    font-size: 1.8rem;
    line-height: 2;
    padding-left: 3rem;
  }
}
.p-result__item::before {
  content: "";
  display: inline-block;
  width: 3.45rem;
  height: 3.45rem;
  background: url(../../assets/images/i_check.svg) center/contain no-repeat;
  position: absolute;
  top: 2rem;
  left: 0;
}
@media screen and (max-width: 768px) {
  .p-result__item::before {
    width: 2.053rem;
    height: 2.053rem;
    top: 0.2rem;
  }
}
@media screen and (max-width: 768px) {
  .p-result__item:not(:first-child) {
    margin-top: 2rem;
  }
}
.p-result__item .year {
  display: inline-block;
  width: 11rem;
}
@media screen and (max-width: 768px) {
  .p-result__item .year {
    display: block;
  }
}
.p-result__item .underline {
  background-color: #fff; /* 背景色 */
  background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), linear-gradient(180deg, #C32121 2px, transparent 2px); /* 点線2の色と太さ */
  background-size: 12px 100%, 100% 2.5em; /* 点線2のサイズ */
  background-position: 0 0, 0 calc(100% - 2px);
  line-height: 2.8333333333;
  padding-bottom: 1.4rem;
}
@media screen and (max-width: 768px) {
  .p-result__item .underline {
    line-height: 1.2;
  }
}
.p-result__note {
  font-size: 1.4rem;
}
@media screen and (max-width: 768px) {
  .p-result__note {
    font-size: 1.2rem;
    margin-top: 2rem;
  }
}
.p-result__messageArea {
  margin-top: 6rem;
}
@media screen and (max-width: 768px) {
  .p-result__messageArea {
    margin-top: 4rem;
  }
}
.p-result__jisseki {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 5rem;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  background-color: #C32121;
  margin-top: 10.2rem;
  padding: 4.6rem 1rem 7.4rem;
}
@media screen and (max-width: 768px) {
  .p-result__jisseki {
    margin-top: 2rem;
    font-size: 3rem;
    line-height: 1.7;
    padding: 2rem 1rem 2.4rem;
  }
}

/* p-merit02 */
.p-merit02 {
  padding: 8.4rem 0 12.4rem;
}
@media screen and (max-width: 768px) {
  .p-merit02 {
    padding: 4.2rem 0 5.8rem;
  }
}
.p-merit02__list {
  margin-top: 5.6rem;
}
@media screen and (max-width: 768px) {
  .p-merit02__list {
    margin-top: 4.2rem;
  }
}
.p-merit02__item:not(:first-child) {
  margin-top: 8rem;
}
@media screen and (max-width: 768px) {
  .p-merit02__item:not(:first-child) {
    margin-top: 5rem;
  }
}

/* p-flow */
.p-flow {
  padding: 16.4rem 0;
  background: url(../../assets/images/bg_red.jpg) center/cover no-repeat;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-flow {
    padding-top: 10rem;
  }
}
.p-flow::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 50%;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: url(../../assets/images/flow_img.jpg) center/cover no-repeat;
}
@media screen and (max-width: 768px) {
  .p-flow::before {
    background-image: url(../../assets/images/flow_img_sp.jpg);
  }
}
.p-flow__ttl {
  width: 14rem;
  position: absolute;
  top: 8.3rem;
  left: calc(50% + 17rem);
  z-index: 3;
}
@media screen and (max-width: 768px) {
  .p-flow__ttl {
    width: 10rem;
    left: auto;
    top: 3.4rem;
    right: 2rem;
  }
}
.p-flow__box {
  max-width: 70.2rem;
  margin: auto;
  border-radius: 40px;
  padding: 4.5rem 6% 5rem 8%;
  background: url(../../assets/images/flow_box_bg.png) right bottom/100% auto no-repeat;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .p-flow__box {
    padding: 4rem 2rem 3rem;
    background-image: url(../../assets/images/flow_box_bg_sp.png);
    background-size: 33.55rem auto;
  }
}
.p-flow__item {
  display: inline-block;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 2.8333333333;
  letter-spacing: 0.05em;
  padding-left: 4rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-flow__item {
    font-size: 1.8rem;
    line-height: 1;
    padding-left: 3rem;
  }
}
.p-flow__item::before {
  content: "";
  display: inline-block;
  width: 3.45rem;
  height: 3.45rem;
  background: url(../../assets/images/i_check.svg) center/contain no-repeat;
  position: absolute;
  top: 2rem;
  left: 0;
}
@media screen and (max-width: 768px) {
  .p-flow__item::before {
    width: 2.053rem;
    height: 2.053rem;
    top: 0.2rem;
  }
}
@media screen and (max-width: 768px) {
  .p-flow__item:not(:first-child) {
    margin-top: 2rem;
  }
}
.p-flow__item .sm {
  font-size: 1.8rem;
}
@media screen and (max-width: 768px) {
  .p-flow__item .sm {
    font-size: 1.4rem;
  }
}
.p-flow__item.underline {
  background: url(../../assets/images/line_dash.svg) bottom left/44.55rem auto repeat-x;
}
@media screen and (max-width: 768px) {
  .p-flow__item.underline {
    line-height: 1.2;
    padding-bottom: 1.2rem;
  }
}
.p-flow__note {
  display: inline-block;
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 1.8rem;
  padding-left: 4.4rem;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .p-flow__note {
    font-size: 1.2rem;
    padding-left: 4rem;
  }
}

/* p-price */
.p-price {
  padding: 6rem 0;
}
@media screen and (max-width: 768px) {
  .p-price {
    padding: 4.2rem 0;
  }
}
.p-price__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 5rem;
}
@media screen and (max-width: 768px) {
  .p-price__list {
    display: block;
    margin-top: 3.4rem;
  }
}
.p-price__item {
  width: 47%;
}
@media screen and (max-width: 768px) {
  .p-price__item {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .p-price__item:not(:first-child) {
    margin-top: 3rem;
  }
}
.p-price__note {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-align: right;
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  .p-price__note {
    margin-top: 0.8rem;
    line-height: 1.8333333333;
  }
}

/* p-contact */
.p-contact {
  padding: 9rem 0;
  background: url(../../assets/images/bg_contact.jpg) center/cover no-repeat;
}
@media screen and (max-width: 768px) {
  .p-contact {
    padding: 4.2rem 0;
  }
}
.p-contact__header {
  color: #fff;
  text-align: center;
}
.p-contact__lead {
  font-size: 1.4rem;
  text-align: center;
  margin-top: 4rem;
}
@media screen and (max-width: 768px) {
  .p-contact__lead {
    margin-top: 3rem;
    line-height: 1.7142857143;
  }
}
.p-contact__telArea {
  max-width: 60rem;
  margin: 6rem auto 0;
  border: 1px solid #fff;
  border-radius: 10px;
  padding: 4rem 1rem;
}
@media screen and (max-width: 768px) {
  .p-contact__telArea {
    margin-top: 3rem;
    padding: 2rem 1rem;
  }
}
.p-contact__telTtl {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 2rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .p-contact__telTtl {
    font-size: 1.6rem;
  }
}
.p-contact__telNum {
  color: #fff;
  font-family: "Bodoni Moda", serif;
  font-weight: 500;
  font-size: 3.4rem;
  letter-spacing: 0.05em;
  line-height: 1.5588235294;
  margin-top: 0.8rem;
}
@media screen and (max-width: 768px) {
  .p-contact__telNum {
    font-size: 2.8rem;
  }
}
.p-contact__telNum::before {
  content: "";
  display: inline-block;
  width: 3.012rem;
  height: 3.928rem;
  background: url(../../assets/images/i_tel.svg) center/contain no-repeat;
  -webkit-transform: translate(-0.6rem, 0.8rem);
          transform: translate(-0.6rem, 0.8rem);
}
@media screen and (max-width: 768px) {
  .p-contact__telNum::before {
    width: 2.619rem;
    height: 3.415rem;
  }
}
.p-contact___opening {
  font-size: 1.4rem;
  line-height: 1.7142857143;
  letter-spacing: 0.08em;
  margin-top: 1.2rem;
}
.p-contact__box {
  background-color: #fff;
  margin-top: 6rem;
  border-radius: 10px;
  padding: 6rem;
}
@media screen and (max-width: 768px) {
  .p-contact__box {
    padding: 4rem 2rem;
    margin-top: 3rem;
  }
}
.p-contact__formTtl {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 1.1944444444;
  letter-spacing: 0.05em;
  padding-bottom: 2rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-contact__formTtl {
    font-size: 2.4rem;
    padding-bottom: 1.8rem;
  }
}
.p-contact__formTtl::before {
  content: "";
  display: inline-block;
  width: 6rem;
  height: 0.2rem;
  background-color: #C32121;
  position: absolute;
  bottom: 0;
  left: 0;
}

/* u-align */
.u-align--center {
  text-align: center !important;
}
.u-align--right {
  text-align: right !important;
}

/* u-txt */
.u-txt--accent {
  color: #C32121;
}
.u-txt--yellow {
  color: #FFD000;
}
.u-txt--borderWave {
  padding-bottom: 2rem;
  background: url(../../assets/images/border_wave.svg) left bottom/73rem auto repeat-x;
}
@media screen and (max-width: 768px) {
  .u-txt--borderWave {
    background-image: url(../../assets/images/border_wave_sp.svg);
    background-size: 30rem auto;
  }
}
.u-txt--borderWave02 {
  padding-bottom: 1.2rem;
  background: url(../../assets/images/border_wave.svg) left bottom/40rem auto repeat-x;
}
@media screen and (max-width: 768px) {
  .u-txt--borderWave02 {
    padding-bottom: 2.4rem;
    background-image: url(../../assets/images/border_wave_sp.svg);
    background-size: 30rem auto;
  }
}

/* u-display */
.u-display--pcNone {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .u-display--pcNone {
    display: block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-display--spNone {
    display: none !important;
  }
}
.u-display--inlineBlock {
  display: inline-block;
}