@charset "UTF-8";
/* リキッドレイアウト対応 */
body {
  font-family: "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", 游明朝, "Yu Mincho", YuMincho, "Noto Serif JP", HG明朝E, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  color: #000;
  overflow-x: hidden;
}

.u-desktop {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-desktop {
    display: block;
  }
}

@media screen and (min-width: 768px) {
  .u-mobile {
    display: none;
  }
}

html {
  font-size: 16px;
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}
@media screen and (min-width: 768px) {
  html {
    font-size: 0.9950248756vw;
  }
}
@media (min-width: 1608px) {
  html {
    font-size: 16px;
  }
}

/* pcの電話番号発信対応 */
@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/* ホバー */
a {
  text-decoration: none;
  color: inherit;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  a:hover {
    opacity: 0.8;
  }
}

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

/* Remove default padding */
ul,
ol {
  padding: 0;
}

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

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

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

/* Remove list styles on ul, ol elements with a class attribute */
ul,
ol {
  list-style: none;
}

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

/* Make images easier to work with */
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: 0.001dpcm) {
  img {
    image-rendering: -webkit-optimize-contrast;
  }
}
img {
  max-width: 100%;
  display: block;
  width: 100%;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="linear" slope="1.05" /><feFuncG type="linear" slope="1.05" /><feFuncB type="linear" slope="1.05" /></feComponentTransfer></filter></svg>#filter');
  -webkit-filter: brightness(1.05);
          filter: brightness(1.05);
}

/* Natural flow and rhythm in articles by default */
article > * + * {
  margin-top: 1em;
}

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

/* Blur images when they have no alt attribute */
img:not([alt]) {
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="10" /></filter></svg>#filter');
  -webkit-filter: blur(10px);
          filter: blur(10px);
}

/* フォームリセット */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

textarea {
  resize: vertical;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

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

body.active {
  height: 100%;
  overflow: hidden;
}

.drawer {
  cursor: pointer;
}

.drawer__icon {
  display: block;
  position: fixed;
  top: 24px;
  top: 1.5rem;
  right: 30px;
  right: 1.875rem;
  width: 25px;
  width: 1.5625rem;
  height: 2px;
  height: 0.125rem;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  z-index: 1000;
}
@media screen and (min-width: 768px) {
  .drawer__icon {
    display: none;
  }
}

.drawer__icon.is-open {
  z-index: 900;
}
.drawer__icon.is-open .drawer__icon-bar1 {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 21px;
  top: 1.3125rem;
  left: 27%;
}
.drawer__icon.is-open .drawer__icon-bar2 {
  display: none;
}
.drawer__icon.is-open .drawer__icon-bar3 {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  top: 21px;
  top: 1.3125rem;
  width: 20px;
  left: 11px;
  left: 0.6875rem;
}

.drawer__icon-bars {
  position: relative;
  width: 25px;
  width: 1.5625rem;
  height: 14px;
  height: 0.875rem;
  background-color: #f5f6f6;
  padding: 22px;
  border-radius: 50%;
}

.drawer__icon-bar1,
.drawer__icon-bar2,
.drawer__icon-bar3 {
  position: absolute;
  top: 0;
  left: 13px;
  height: 2px;
  height: 0.125rem;
  background: #000;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  background: #000;
  border-radius: 50%;
}

.drawer__icon-bar1 {
  top: 17px;
  border-radius: 0.9375rem;
  width: 20px;
  left: 52%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.drawer__icon-bar2 {
  top: 22px;
  border-radius: 0.9375rem;
  width: 17px;
}

.drawer__icon-bar3 {
  top: 27px;
  border-radius: 0.9375rem;
  width: 13px;
}

.drawer__logo {
  position: absolute;
  top: 31px;
  top: 1.9375rem;
  left: 25px;
  left: 1.5625rem;
  width: 53%;
}

.drawer__calendar {
  position: absolute;
  width: 43px;
  width: 2.6875rem;
  top: 26px;
  top: 1.625rem;
  right: 63px;
  right: 3.9375rem;
}

.drawer__content {
  overflow: scroll;
  position: fixed;
  top: 0;
  right: 0;
  background: #000;
  height: 100%;
  width: 300px;
  width: 18.75rem;
  z-index: 800;
  -webkit-transform: translateX(105%);
          transform: translateX(105%);
  width: 100%;
  text-align: center;
  -webkit-transition: -webkit-transform 0.5s ease 0s;
  transition: -webkit-transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;
  padding-top: 101px;
  padding-bottom: 100px;
}

.drawer__content.is-open {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  display: block;
}

.drawer__content-items {
  color: #fff;
  line-height: 1.57;
  position: relative;
  list-style: none;
  padding-left: 40px;
  padding-left: 2.5rem;
  padding-right: 40px;
  padding-right: 2.5rem;
}

.drawer__content-item {
  position: relative;
}

.drawer__content-item a {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.drawer__content-item {
  font-size: 16px;
  font-size: 1rem;
  font-family: "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", 游明朝, "Yu Mincho", YuMincho, "Noto Serif JP", HG明朝E, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-weight: 600;
  letter-spacing: 1.6px;
  letter-spacing: 0.1rem;
}

.drawer__content-item a {
  padding: 25px 0;
  padding: 1.5625rem 0;
  padding-right: 20px;
  padding-right: 1.25rem;
  border-bottom: 0.5px solid #fff;
  position: relative;
}

.drawer__content-item a::before {
  content: "";
  width: 8px;
  height: 8px;
  border-top: solid 1px #ad9f7f;
  border-right: solid 1px #ad9f7f;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}

.drawer__en.text-top-page {
  width: 22%;
}

.drawer__en.text-course {
  width: 18%;
}

.drawer__en.text-flow {
  width: 13%;
}

.drawer__en.text-feature {
  width: 20%;
}

.drawer__en.text-reason {
  width: 18%;
}

.drawer__en.text-access {
  width: 17%;
}

.drawer__en.text-voice {
  width: 27%;
}

.drawer__en.text-topics {
  width: 17%;
}

.drawer__en.text-qa {
  width: 10%;
}

.drawer__en.text-contact {
  width: 22%;
}

/* お問い合わせボタン用 */
.drawer__content-item--cta {
  width: 218px;
  width: 13.625rem;
  margin-inline: auto;
}

.drawer__content-tel--cta {
  margin-top: 35px;
  margin-top: 2.1875rem;
}

.drawer__content-tel--cta p {
  display: inline-block;
  width: 218px;
  width: 13.625rem;
  background-color: #42342c;
  color: #fff;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 700;
  padding: 13px 0;
  padding: 0.8125rem 0;
  margin-bottom: 8px;
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  border-bottom: none;
  text-align: center;
  margin-inline: auto;
}

.drawer__content-tel--cta a {
  display: block;
  font-size: 28px;
  font-size: 1.75rem;
  padding: 0;
  margin-top: 6px;
  margin-top: 0.375rem;
  position: relative;
}

.drawer__content-tel--cta a .drawer__content-item.drawer__content-tel--cta a::before {
  content: none;
}

.drawer__content-tel--cta a span {
  display: block;
  font-size: 16px;
  font-size: 1rem;
  margin-top: 8px;
  margin-top: 0.5rem;
  padding-bottom: 20px;
  padding-bottom: 1.25rem;
}

.drawer__content-item--cta a {
  background: #42342c;
  color: #fff;
  border-radius: 0.5rem;
  font-weight: 700;
  padding: 13px 0;
  padding: 0.8125rem 0;
  margin-top: 32px;
  margin-top: 2rem;
  margin-bottom: 8px;
  margin-bottom: 0.5rem;
  -webkit-transition: background 0.3s, color 0.3s;
  transition: background 0.3s, color 0.3s;
  border-bottom: none;
  display: inline-block;
  width: inherit;
}

.drawer__content-item--cta.drawer__content-item--cta-white {
  position: relative;
  width: 278px;
  width: 17.375rem;
}

.drawer__content-item--cta.drawer__content-item--cta-white a {
  background-color: #fff;
  color: #000;
  position: relative;
  margin-top: 18px;
  margin-top: 1.125rem;
}

.drawer__content-item--cta.drawer__content-item--cta-white a::after {
  content: "";
  width: 10px;
  height: 10px;
  border-top: solid 2px #000;
  border-right: solid 2px #000;
  position: absolute;
  right: 35px;
  right: 2.1875rem;
  top: 50%;
  -webkit-transform: rotate(45deg) translateY(-50%);
          transform: rotate(45deg) translateY(-50%);
}

.drawer__content-item--cta.drawer__content-item a::before {
  content: none;
}

.footer {
  background: #000;
  color: #fff;
  overflow-x: clip;
}

.footer__img {
  width: 150%;
  padding-top: 6px;
  padding-top: 0.375rem;
}
@media screen and (min-width: 768px) {
  .footer__img {
    width: 100%;
    padding-top: 0.625rem;
  }
}

/* 上段3カラム */
.footer__inner.inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 28px;
  gap: 1.75rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  padding-left: 40px;
  padding-left: 2.5rem;
  padding-right: 40px;
  padding-right: 2.5rem;
  padding-top: 37px;
  padding-top: 2.3125rem;
}
@media screen and (min-width: 768px) {
  .footer__inner.inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    max-width: 1224px;
    padding-top: 4.5625rem;
    padding-bottom: 1.75rem;
    padding-left: 1.5625rem;
    padding-right: 1.5625rem;
  }
}

.footer__brand {
  width: 89%;
}
@media screen and (min-width: 768px) {
  .footer__brand {
    width: 59%;
  }
}

.footer__logo {
  display: block;
  width: 100%;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .footer__logo {
    width: 69%;
    margin-inline: initial;
  }
}

.footer__logo img {
  display: block;
  height: auto;
  max-width: 100%;
}

.footer__address {
  font-style: normal;
  margin-top: 12px;
  margin-top: 0.75rem;
}

.footer__message {
  margin-top: 30px;
  margin-top: 1.875rem;
  font-size: 19px;
  font-size: 1.1875rem;
  text-align: center;
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .footer__message {
    font-size: 0.8125rem;
    text-align: left;
    text-align: initial;
    margin-top: 0.375rem;
  }
}
@media screen and (min-width: 768px) {
  .footer__message {
    font-size: 1.25rem;
    margin-top: 1.875rem;
  }
}

.footer__message span {
  display: block;
  font-size: 17px;
  font-size: 1.0625rem;
  margin-top: 4px;
  margin-top: 0.25rem;
}
@media screen and (min-width: 768px) {
  .footer__message span {
    margin-top: 0;
  }
}

.footer__btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 80%;
  margin-inline: auto;
  margin-top: 26px;
  margin-top: 1.625rem;
  padding: 12px 18px 12px 51px;
  padding: 0.75rem 1.125rem 0.75rem 3.1875rem;
  border-radius: 1.875rem;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.02em;
  border: 1px solid #fff;
  position: relative;
  font-family: hiragino kaku gothic pro;
}
@media screen and (min-width: 768px) {
  .footer__btn {
    padding: 1rem 2.75rem 1rem 2.5rem;
    margin-top: 2.125rem;
    width: auto;
  }
}

.footer__btn::before {
  content: "";
  position: absolute;
  left: 28px;
  left: 1.75rem;
  top: 56%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-image: url(../images/common/icon_map.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 30px;
  height: 1.875rem;
  width: 15px;
  width: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .footer__btn::before {
    content: none;
  }
}

@media screen and (min-width: 768px) {
  .footer__btn.u-mobile {
    display: none;
  }
}

.footer__btn.u-desktop {
  display: none;
}
@media screen and (min-width: 768px) {
  .footer__btn.u-desktop {
    display: inline-block;
  }
}

.footer__btnArrow {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  position: relative;
  display: inline-block;
  width: 16px;
  width: 1rem;
  height: 16px;
  height: 1rem;
}

.footer__btnArrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  border-top: 2px solid #fff;
  border-top: 0.125rem solid #fff;
  border-right: 2px solid #fff;
  border-right: 0.125rem solid #fff;
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}

.footer__right {
  width: 100%;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .footer__right {
    text-align: left;
    text-align: initial;
  }
}

/* 中右：ナビ */
.footer__list {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media screen and (min-width: 768px) {
  .footer__list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 3.4375rem;
    row-gap: 2.6875rem;
  }
}

.footer__item {
  padding-top: 24px;
  padding-top: 1.5rem;
  padding-bottom: 24px;
  padding-bottom: 1.5rem;
  padding-right: 16px;
  padding-right: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, .2);
  border-bottom: 0.0625rem solid rgba(255, 255, 255, .2);
  position: relative;
}
@media screen and (min-width: 768px) {
  .footer__item {
    width: 25%;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    padding-right: 0;
  }
}

.footer__item::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  border-top: 2px solid #ad9f7f;
  border-top: 0.125rem solid #ad9f7f;
  border-right: 2px solid #ad9f7f;
  border-right: 0.125rem solid #ad9f7f;
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}
@media screen and (min-width: 768px) {
  .footer__item::after {
    top: 1.25rem;
  }
}

.footer__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .footer__link {
    display: inherit;
  }
}

.footer__jp {
  display: block;
  font-size: 18px;
  font-size: 1.125rem;
  letter-spacing: 0.04em;
  position: relative;
  padding-right: 20px;
  padding-right: 1.25rem;
}
@media screen and (min-width: 768px) {
  .footer__jp {
    font-size: 1.1875rem;
  }
}

.footer__en {
  display: block;
  width: 18%;
  margin-top: 6px;
  margin-top: 0.375rem;
}
@media screen and (min-width: 768px) {
  .footer__en {
    width: 35%;
  }
}

.footer__en.text-top-page {
  width: 23%;
}
@media screen and (min-width: 768px) {
  .footer__en.text-top-page {
    width: 35%;
  }
}

.footer__en.text-feature {
  width: 21%;
}
@media screen and (min-width: 768px) {
  .footer__en.text-feature {
    width: 35%;
  }
}

.footer__en.text-voice {
  width: 28%;
}
@media screen and (min-width: 768px) {
  .footer__en.text-voice {
    width: 42%;
  }
}

@media screen and (min-width: 768px) {
  .footer__en.text-course {
    width: 29%;
  }
}

@media screen and (min-width: 768px) {
  .footer__en.text-reason {
    width: 28%;
  }
}

.footer__en.text-topics {
  width: 18%;
}
@media screen and (min-width: 768px) {
  .footer__en.text-topics {
    width: 28%;
  }
}

.footer__en.text-flow {
  width: 13%;
}
@media screen and (min-width: 768px) {
  .footer__en.text-flow {
    width: 20%;
  }
}

@media screen and (min-width: 768px) {
  .footer__en.text-access {
    width: 27%;
  }
}

.footer__en.text-qa {
  width: 11%;
}
@media screen and (min-width: 768px) {
  .footer__en.text-qa {
    width: 18%;
  }
}

/* パートナー（ギター教室） */
.footer__partner {
  margin-top: 32px;
  margin-top: 2rem;
}
@media screen and (min-width: 768px) {
  .footer__partner {
    width: 49%;
    margin-top: 3.75rem;
  }
}

.footer__partnerLink img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
}

/* 下段 */
.footer__bottom.inner {
  padding-top: 12px;
  padding-top: 0.75rem;
  padding-right: 25px;
  padding-right: 1.5625rem;
  padding-left: 48px;
  padding-left: 3rem;
}
@media screen and (min-width: 768px) {
  .footer__bottom.inner {
    padding-right: 0;
    padding-left: 1.5rem;
    max-width: 1224px;
  }
}

.footer__copy {
  display: block;
  font-size: 15px;
  font-size: 0.9375rem;
  border-top: 1px solid rgba(255, 255, 255, .06);
  border-top: 0.0625rem solid rgba(255, 255, 255, .06);
  padding-top: 30px;
  padding-top: 1.875rem;
  padding-bottom: 25px;
  padding-bottom: 1.5625rem;
  letter-spacing: 0.08em;
  line-height: 1.8;
  position: relative;
  font-family: hiragino kaku gothic pro;
}
@media screen and (min-width: 768px) {
  .footer__copy::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3125rem;
    background-color: #fff;
    height: 1px;
    width: 9%;
  }
}

.header {
  top: 0;
  left: 0;
  right: 0;
  position: absolute;
  width: 100%;
  max-width: 100%;
  z-index: 900;
  height: 83px;
  height: 5.1875rem;
}
@media screen and (min-width: 768px) {
  .header {
    height: 8.9375rem;
  }
}

.active__header {
  background: #000;
  -webkit-transition: background 0.7s ease;
  transition: background 0.7s ease;
}

.header.sub-header {
  background: #fff;
}
@media screen and (min-width: 768px) {
  .header.sub-header {
    height: 7.9375rem;
  }
}

.header--sticky {
  background: #000;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  height: 83px;
  height: 5.1875rem;
  -webkit-transition: background 0.7s ease, -webkit-transform 0.3s ease;
  transition: background 0.7s ease, -webkit-transform 0.3s ease;
  transition: transform 0.3s ease, background 0.7s ease;
  transition: transform 0.3s ease, background 0.7s ease, -webkit-transform 0.3s ease;
  color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}
@media screen and (min-width: 768px) {
  .header--sticky {
    height: 5.375rem;
  }
}
.header--sticky.header--visible {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.header--sticky.header--hidden {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}

@media screen and (min-width: 768px) {
  .header--sticky .header__inner {
    padding-right: 3.125rem;
  }
}

.header__nav-item.header--sticky-nav-item a {
  position: relative;
  letter-spacing: 0.07em;
  padding-left: 26px;
  padding-left: 1.625rem;
  padding-right: 26px;
  padding-right: 1.625rem;
}

.header__nav-item.header--sticky-nav-item a:hover {
  color: #604c3f;
}

.header--sticky-nav-item a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  opacity: 0.7;
  width: 1px;
  height: 33%;
  background-color: #fff;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.header--sticky-nav-item:last-child a::after {
  content: none;
}

.header--sticky-nav-item:nth-last-child(2) a::after {
  content: none;
}

.header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-left: 24px;
  padding-left: 1.5rem;
  height: inherit;
}
@media screen and (min-width: 768px) {
  .header__inner {
    padding-left: 4.25rem;
  }
}

.header__logo {
  width: 198px;
  width: 12.375rem;
  height: inherit;
  padding-top: 10px;
  padding-top: 0.625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .header__logo {
    width: 18.125rem;
  }
}

.header__nav-list {
  display: none;
  height: inherit;
}
@media screen and (min-width: 768px) {
  .header__nav-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-left: auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}

.header__nav {
  height: inherit;
  margin-left: auto;
}

.header__nav-item {
  height: inherit;
}

.header__nav-item a {
  position: relative;
  padding: 0 16px;
  padding: 0 1rem;
  height: inherit;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}

.header__nav-item.header__nav-item--trial {
  height: auto;
}

.header__nav-item--trial span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .header__nav-item--trial span {
    width: 1.4375rem;
  }
}

.header__nav-item--trial a {
  background: #000;
  border: 1px solid #000;
  color: #c7ba9a;
  padding: 10px 18px 10px 24px;
  padding: 0.625rem 1.125rem 0.625rem 1.5rem;
  border-radius: 0.5625rem;
  letter-spacing: 0.03em;
  gap: 23px;
  gap: 1.4375rem;
}
@media screen and (min-width: 768px) {
  .header__nav-item--trial a {
    font-size: 1.125rem;
  }
}

.header__nav-item--trial a:hover {
  background-color: #fff;
  border: 1px solid #000;
}

.header__nav-link--tel {
  height: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .header__nav-link--tel {
    width: 42%;
  }
}

.header__nav-link--tel a {
  height: inherit;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: 23px;
  font-size: 1.4375rem;
  color: #604c3f;
  padding-right: 0;
}
@media screen and (min-width: 768px) {
  .header__nav-link--tel a {
    width: 82%;
  }
}

.header__nav-link--tel span {
  font-size: 15px;
  font-size: 0.9375rem;
  letter-spacing: 0.06em;
  line-height: 1;
  color: #000;
  font-family: hiragino kaku gothic pro;
}

.header__nav-item--white.header__nav-item {
  height: auto;
  margin-left: 10px;
  margin-left: 0.625rem;
}

.header__nav-item.header__nav-item--white a {
  background-color: #fff;
  color: #604c3f;
  padding: 10px 18px 10px 19px;
  padding: 0.625rem 1.125rem 0.625rem 1.1875rem;
  border-radius: 0.5625rem;
  letter-spacing: 0.03em;
  border: 1px solid #fff;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 20px;
  gap: 1.25rem;
}
@media screen and (min-width: 768px) {
  .header__nav-item.header__nav-item--white a {
    font-size: 1.125rem;
  }
}
.header__nav-item.header__nav-item--white a:hover {
  background-color: #604c3f;
  color: #fff;
  border: 1px solid #604c3f;
}
.header__nav-item.header__nav-item--white a:hover svg .cls-1,
.header__nav-item.header__nav-item--white a:hover svg .cls-2 {
  stroke: #fff;
}
.header__nav-item.header__nav-item--white a span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 20px;
  width: 1.25rem;
  height: 20px;
  height: 1.25rem;
}
@media screen and (min-width: 768px) {
  .header__nav-item.header__nav-item--white a span {
    width: 1.4375rem;
    height: 1.4375rem;
  }
}

.header__calendar {
  position: absolute;
  top: 50px;
  top: 3.125rem;
  right: 67px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 45px;
  height: 45px;
}

.inner {
  width: 100%;
  padding-right: 20px;
  padding-left: 20px;
  margin-right: auto;
  margin-left: auto;
  max-width: 600px;
}
@media screen and (min-width: 768px) {
  .inner {
    max-width: 1658px;
    padding-right: 25px;
    padding-left: 25px;
  }
}

.layout-container {
  margin-top: 131px;
  margin-top: 8.1875rem;
}
@media screen and (min-width: 768px) {
  .layout-container {
    margin-top: 11.8125rem;
  }
}

.loading {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  width: 100%;
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #fff;
  -webkit-transition: opacity 0.8s ease-out, -webkit-transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, -webkit-transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out, -webkit-transform 0.8s ease-out;
}

.loading.is-hide {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  opacity: 0;
  pointer-events: none;
}

.loading__img {
  width: 300px;
}

.loading__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.mv {
  position: relative;
  width: 100%;
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #fff;
  background-image: url(./../images/mv.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.mv::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .2);
}

.mv h1,
.mv p {
  position: relative;
  z-index: 1;
}

.scroll-indicator {
  display: none;
}
@media screen and (min-width: 768px) {
  .scroll-indicator {
    position: absolute;
    left: 63px;
    z-index: 1000;
    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-align: center;
        -ms-flex-align: center;
            align-items: center;
    opacity: 0;
    -webkit-animation: fadeInScrollIndicator 2s ease-in-out 3s forwards;
            animation: fadeInScrollIndicator 2s ease-in-out 3s forwards;
  }
}
@media screen and (min-width: 1920px) {
  .scroll-indicator {
    left: -68px;
    margin-top: -61px;
  }
}
.scroll-indicator__text {
  margin-top: 16px;
  line-height: 1;
  width: 32%;
}
.scroll-indicator__line {
  width: 1px;
  height: 20px;
  margin-top: 12px;
  background-color: #000;
  position: relative;
  -webkit-animation: scrollLineAnimation 2s ease-in-out infinite;
          animation: scrollLineAnimation 2s ease-in-out infinite;
}
.scroll-indicator__line::after {
  content: "";
  position: absolute;
  top: 13px;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  -webkit-animation: scrollLineMove 2s ease-in-out infinite;
          animation: scrollLineMove 2s ease-in-out infinite;
}
.scroll-indicator.scrolled {
  opacity: 0;
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}

@-webkit-keyframes fadeInScrollIndicator {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeInScrollIndicator {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes scrollLineAnimation {
  0%, 100% {
    opacity: 0.3;
  }
  50% {
    opacity: 1;
  }
}
@keyframes scrollLineAnimation {
  0%, 100% {
    opacity: 0.3;
  }
  50% {
    opacity: 1;
  }
}
@-webkit-keyframes scrollLineMove {
  0% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: translateY(10%);
            transform: translateY(10%);
    opacity: 0;
  }
}
@keyframes scrollLineMove {
  0% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: translateY(10%);
            transform: translateY(10%);
    opacity: 0;
  }
}
@media (max-width: 768px) {
  .scroll-indicator {
    left: 15px;
  }
  .scroll-indicator__text {
    font-size: 10px;
  }
  .scroll-indicator__line {
    height: 15px;
  }
}
.test {
  font-size: 136px;
  font-size: 8.5rem;
  font-family: "Noto Serif", serif;
  text-transform: uppercase;
  color: #ad9f7f;
  letter-spacing: 0.3em;
}

.sec-title {
  gap: 12px;
  gap: 0.75rem;
  text-align: center;
}

.sec-title__en {
  font-family: "Times New Roman", "Minion Variable Concept", serif;
  font-size: 52px;
  font-size: 3.25rem;
  letter-spacing: 0.08em;
  line-height: 1;
  font-size: clamp(50px, 41.747px + 2.2006472492vw, 84px);
  font-size: clamp(3.125rem, 2.609223301rem + 2.2006472492vw, 5.25rem);
  text-transform: uppercase;
  margin-inline: auto;
  width: 78%;
}
@media screen and (min-width: 768px) {
  .sec-title__en {
    width: 30%;
  }
}

.sec-title__en img {
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 768px) {
  .sec-title__en img {
    height: 100%;
  }
}

.sec-title__message {
  font-weight: 700;
  line-height: 1.6;
  position: relative;
  display: inline-block;
  font-size: clamp(18px, 17.514px + 0.1294498382vw, 20px);
  font-size: clamp(1.125rem, 1.0946601942rem + 0.1294498382vw, 1.25rem);
  letter-spacing: 0.03em;
}
.sec-title__message.sec-title__message--black {
  color: #fff;
}

.sec-title__message::before {
  content: "";
  position: absolute;
  left: -75px;
  left: -4.6875rem;
  top: 49%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-image: url(../images/common/icon_title-left.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 17px;
  height: 1.0625rem;
  width: 61px;
  width: 3.8125rem;
}
@media screen and (min-width: 768px) {
  .sec-title__message::before {
    top: 53%;
    height: 1.625rem;
    width: 6.125rem;
    left: -6.875rem;
  }
}

.sec-title__message::after {
  content: "";
  position: absolute;
  right: -75px;
  right: -4.6875rem;
  top: 49%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-image: url(../images/common/icon_title-right.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 17px;
  height: 1.0625rem;
  width: 61px;
  width: 3.8125rem;
}
@media screen and (min-width: 768px) {
  .sec-title__message::after {
    top: 53%;
    height: 1.625rem;
    width: 6.125rem;
    right: -6.875rem;
  }
}

.sec-title__message.sec-title__message--black::before {
  background-image: url(../images/common/icon_title-left-bk.png);
}

.sec-title__message.sec-title__message--black::after {
  background-image: url(../images/common/icon_title-right-bk.png);
}

.contact-complete__inner {
  margin-left: auto;
  margin-right: auto;
  padding-top: 60px;
  padding-top: 3.75rem;
  padding-bottom: 60px;
  padding-bottom: 3.75rem;
}

.contact-complete__content {
  border-radius: 1rem;
  padding: 40px 24px;
  padding: 2.5rem 1.5rem;
  text-align: center;
}

.contact-complete__message {
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 2;
  margin-bottom: 48px;
  margin-bottom: 3rem;
  font-size: clamp(16px, 14.058px + 0.5177993528vw, 24px);
  font-size: clamp(1rem, 0.8786407767rem + 0.5177993528vw, 1.5rem);
}

.contact-complete__button-wrap {
  text-align: center;
}

.contact-complete__button {
  display: inline-block;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 700;
  color: #c7ba9a;
  background: #000;
  border-radius: 1rem;
  padding: 16px 48px;
  padding: 1rem 3rem;
  letter-spacing: 0.1em;
  line-height: 1.4;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
  text-decoration: none;
}

body.page-id-15 {
  background-color: #f7f5f2;
}

.contact-page__inner {
  padding-bottom: 80px;
  padding-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .contact-page__inner {
    padding-bottom: 10.25rem;
  }
}

.contact-page-en.sec-title__en {
  width: 92%;
}
@media screen and (min-width: 768px) {
  .contact-page-en.sec-title__en {
    width: 31%;
  }
}

.contact-page__message {
  text-align: center;
  line-height: 2;
  margin-top: 47px;
  margin-top: 2.9375rem;
  font-family: hiragino kaku gothic pro;
  letter-spacing: 0.06em;
}
@media screen and (min-width: 768px) {
  .contact-page__message {
    margin-top: 3.3125rem;
  }
}

.contact__col.contact-page__col {
  margin-top: 69px;
  margin-top: 4.3125rem;
}

.contact__col.contact-page__col .contact__col--phone::after {
  content: none;
}

.contact__col.contact-page__col .contact__label {
  display: inline-block;
  width: auto;
  padding: 12px 26px;
  padding: 0.75rem 1.625rem;
}

.contact__col.contact-page__col .contact__phoneWrap {
  margin-top: 20px;
  margin-top: 1.25rem;
}

@media screen and (min-width: 768px) {
  .contact__col.contact-page__col .contact__label .contact__tel {
    font-size: 1.75rem;
  }
}

.contact__message {
  color: #3e3a39;
}

.form-wrap {
  margin-top: 72px;
  margin-top: 4.5rem;
}

.p-contact__inner {
  width: 100%;
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 25px;
  padding-left: 25px;
  padding: 0 25px 100px;
}
@media screen and (min-width: 768px) {
  .p-contact__inner {
    max-width: 550px;
    padding-left: 15px;
    padding-right: 15px;
  }
}

.p-form__list {
  border: 1px solid #ccc;
  max-width: 800px;
  margin-inline: auto;
}

.p-form__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #f2f2f2;
  border-bottom: 1px solid #ccc;
}
@media screen and (min-width: 768px) {
  .p-form__item {
    margin-right: auto;
    margin-left: auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}

.p-form__item:last-child {
  border-bottom: none;
}

.p-form__title {
  font-size: 16px;
  font-size: 1rem;
  width: 100%;
  padding: 8px 20px;
  padding: 0.5rem 1.25rem;
  border-bottom: 1px solid #ccc;
  font-family: Hiragino Maru Gothic Pro;
}
@media screen and (min-width: 768px) {
  .p-form__title {
    font-size: 16px;
    padding: 0 0.625rem 0 1.125rem;
    width: 28%;
    border-bottom: none;
  }
}

.p-form__title span {
  display: inline-block;
  padding: 0 5px;
  color: #932429;
  font-size: 18px;
  font-size: 1.125rem;
}

.p-form__title--type02 {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .p-form__title--type02 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.p-form__title--type03 {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-form__title--aiStart {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.p-form__input {
  background-color: #fff;
  padding: 20px;
  padding: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-form__input {
    border-left: 1px solid #ccc;
    width: 72%;
    padding: 0.8125rem 2.25rem 0.8125rem 2rem;
  }
}

.p-formInput input::-webkit-input-placeholder,
.p-formTextarea textarea::-webkit-input-placeholder {
  color: lightgray;
  font-size: 16px;
}

.p-formInput input::-moz-placeholder,
.p-formTextarea textarea::-moz-placeholder {
  color: lightgray;
  font-size: 16px;
}

.p-formInput input::-ms-input-placeholder,
.p-formTextarea textarea::-ms-input-placeholder {
  color: lightgray;
  font-size: 16px;
}

.p-formInput input::placeholder,
.p-formTextarea textarea::placeholder {
  color: lightgray;
  font-size: 16px;
}

.p-formInput input {
  width: 100%;
  height: 45px;
  height: 2.8125rem;
  padding-left: 20px;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-formInput input {
    width: 72%;
    height: 38px;
    margin-left: 0;
    padding-left: 15px;
  }
}

.p-formInput input:focus,
.p-formTextarea textarea:focus {
  outline: 2px solid #b5b5b5;
}

.p-formInput--sm input {
  width: 350px;
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .p-formInput--sm input {
    width: 72%;
  }
}

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

.p-formInput__post input {
  width: 320px;
  margin-right: auto;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .p-formInput__post input {
    width: 100%;
  }
}

.p-formInput__address {
  margin-top: 10px;
}

.p-formInput__address input {
  width: 70%;
}
@media screen and (min-width: 768px) {
  .p-formInput__address input {
    width: 100%;
  }
}

.p-formInput--tel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-formInput--tel > * {
  min-width: 0;
}

.p-formInput--tel input {
  width: 150px;
  max-width: 100%;
}

.p-formSelect select {
  width: 250px;
  max-width: 100%;
  height: 60px;
  padding-left: 20px;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  color: lightgray;
  font-size: 16px;
  background: url(../images/common/pulldown.svg) right 10px center/10px no-repeat;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
@media screen and (min-width: 768px) {
  .p-formSelect select {
    width: 100%;
    height: 50px;
  }
}

.p-formSelect select:focus {
  outline: 2px solid #b5b5b5;
}

.p-formSelect--selected select {
  color: #333;
}

.p-formDate__flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 35px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .p-formDate__flex {
    gap: 20px;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.p-formDate__flex + .p-formDate__flex {
  margin-top: 20px;
}

.p-formDate__label {
  font-size: 16px;
}

@media screen and (min-width: 768px) {
  .p-form__dataBlock {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}

.p-form__dataBlockFlex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-form__dataBlockFlex + .p-form__dataBlockFlex {
  margin-top: 20px;
}

.p-form__dataBlockLabel {
  width: 80px;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-form__dataBlockLabel {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .p-form__dataBlockDate {
    width: 100%;
  }
}

.p-formCalendar {
  position: relative;
}

.p-formCalendar input {
  width: 250px;
  height: 60px;
  padding-left: 20px;
  padding-right: 5px;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  color: lightgray;
  font-size: 16px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  position: relative;
  background: url(../images/common/calendar.svg) right 8px center/15px no-repeat;
}
@media screen and (min-width: 768px) {
  .p-formCalendar input {
    width: 100%;
    height: 50px;
  }
}

.p-formCalendar input::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  color: transparent;
  background: transparent;
  z-index: 1;
}

@-moz-document url-prefix() {
  .p-formCalendar input {
    background: none;
  }
  .p-formCalendar::after {
    position: absolute;
    display: block;
    content: "";
    width: 16px;
    height: 16px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M13.5 2H13V1c0-.6-.4-1-1-1s-1 .4-1 1v1H5V1c0-.6-.4-1-1-1S3 .4 3 1v1h-.5C1.1 2 0 3.1 0 4.5v9C0 14.9 1.1 16 2.5 16h11c1.4 0 2.5-1.1 2.5-2.5v-9C16 3.1 14.9 2 13.5 2zm0 12.5h-11c-.6 0-1-.4-1-1V6h13v7.5c0 .6-.4 1-1 1z"></path></svg>') no-repeat center center/contain;
    top: 50%;
    right: 10px;
    transform: translateY(-55%);
    pointer-events: none;
  }
}
.p-formCalendar input::-webkit-date-and-time-value {
  text-align: left;
}

@media screen and (min-width: 768px) {
  .Android .p-formCalendar input {
    padding-left: 15px;
  }
}

.p-formCalendar input:focus {
  outline: 2px solid #b5b5b5;
}

@media screen and (min-width: 768px) {
  .p-form__dataBlockSelect {
    width: 100%;
  }
}

.p-form__dataBlockDate input:not(.p-formDate__default) {
  color: #333;
}

.p-formNumber__txt {
  font-size: 16px;
}

.p-formNumber__flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-top: 20px;
  gap: 30px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .p-formNumber__flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.p-formNumber__block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-formNumber__blockLabel01 {
  margin-right: 30px;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-formNumber__blockLabel01 {
    width: 55px;
  }
}

.p-formNumber__blockLabel01 {
  font-size: 16px;
}

.p-formNumber__blockInput {
  width: 150px;
  margin-right: 10px;
}
@media screen and (min-width: 768px) {
  .p-formNumber__blockInput {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 20px;
  }
}

.p-formCheckbox input {
  display: none;
}

.p-formCheckbox .wpcf7-checkbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 20px;
}

.p-formCheckbox .wpcf7-list-item {
  margin-left: 0;
}

.p-formCheckbox--vertical .wpcf7-checkbox {
  display: block;
}

.p-formCheckbox--vertical .wpcf7-list-item {
  display: block;
  margin: 0;
}

.p-formCheckbox--vertical .wpcf7-list-item + .wpcf7-list-item {
  margin-top: 6px;
}

.p-formCheckbox input + span {
  position: relative;
  display: inline-block;
  width: auto;
  padding: 0 0 0 32px;
  padding: 0 0 0 2rem;
  font-size: 14px;
  cursor: pointer;
}

.p-formCheckbox input + span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  width: 20px;
  height: 20px;
  border: 1px solid #b5b5b5;
  background-color: #fff;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media screen and (min-width: 768px) {
  .p-formCheckbox input + span::before {
    width: 13px;
    height: 13px;
  }
}

.p-formCheckbox input + span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 6px;
  display: block;
  width: 8px;
  height: 13px;
  margin-top: -8px;
  border-right: 3px solid #c7ba9a;
  border-bottom: 3px solid #c7ba9a;
  opacity: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.p-formCheckbox input:checked + span::after {
  opacity: 1;
}

.p-formRadio .wpcf7-radio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 20px;
}

.p-formRadio--vertical .wpcf7-radio {
  display: block;
}

.p-formRadio .wpcf7-list-item {
  margin: 0;
}

.p-formRadio--vertical .wpcf7-list-item {
  display: block;
  margin: 0;
}

.p-formRadio--vertical .wpcf7-list-item + .wpcf7-list-item {
  margin-top: 20px;
}

.p-formRadio input + span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 16px;
  cursor: pointer;
}

.p-formRadio input[type=radio] {
  display: none;
}

.p-formRadio input + span::before {
  content: "";
  width: 20px;
  height: 20px;
  margin-top: auto;
  margin-right: 0.5em;
  margin-bottom: auto;
  border: 1px solid #b5b5b5;
  border-radius: 100%;
  background: #fff;
  -webkit-transition: background-color 0.5s;
  transition: background-color 0.5s;
}

.p-formRadio input:checked + span::before {
  background-color: blue;
  -webkit-box-shadow: inset 0 0 0 3px #fff;
          box-shadow: inset 0 0 0 3px #fff;
}

.p-formFile .wpcf7-form-control-wrap {
  display: block;
}

.p-formFile .wpcf7-form-control-wrap + .wpcf7-form-control-wrap {
  margin-top: 20px;
}

.p-formFile input {
  max-width: 100%;
  font-size: 16px;
  line-height: 1;
}

.p-formTextarea textarea {
  width: 100%;
  min-height: 250px;
  padding-top: 10px;
  padding-left: 20px;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-formTextarea textarea {
    width: 100%;
    min-height: 250px;
    margin-left: 0;
    padding-left: 15px;
  }
}

.p-form__privacy {
  margin-top: 30px;
  text-align: center;
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  .p-form__privacy {
    text-align: left;
  }
}

.p-form__privacy a {
  line-height: 1;
  text-decoration: underline;
}

.p-form__acceptance {
  margin-top: 30px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-form__acceptance {
    text-align: left;
  }
}

.p-form__submit {
  margin-top: 50px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-form__submit {
    margin-top: 2.75rem;
  }
}

.p-formBtn input {
  width: 300px;
  width: 18.75rem;
  padding: 20px 0;
  border: none;
  color: #c7ba9a;
  font-size: 18px;
  text-align: center;
  border-radius: 10px;
  background-color: #000;
  cursor: pointer;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
}
@media screen and (min-width: 768px) {
  .p-formBtn input {
    width: 20.5rem;
  }
}
.p-formBtn input:disabled {
  color: #fff;
  background-color: #eee;
  border-color: #eee;
}
@media screen and (min-width: 768px) {
  .p-formBtn input:disabled:hover {
    cursor: not-allowed;
  }
}
@media screen and (min-width: 768px) {
  .p-formBtn input:hover {
    opacity: 0.7;
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
  }
}

.wpcf7 form.sent .wpcf7-response-output {
  padding: 15px 10px;
  border-color: #2c94de;
  font-size: 24px;
}
@media screen and (min-width: 768px) {
  .wpcf7 form.sent .wpcf7-response-output {
    font-size: 16px;
  }
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  padding: 15px 10px;
  border-color: red;
  font-size: 18px;
}
@media screen and (min-width: 768px) {
  .wpcf7 form.invalid .wpcf7-response-output,
  .wpcf7 form.unaccepted .wpcf7-response-output,
  .wpcf7 form.payment-required .wpcf7-response-output {
    font-size: 16px;
  }
}

.wpcf7-spinner {
  display: none;
}

.wpcf7-not-valid-tip {
  display: block;
  color: red;
  font-size: 16px;
  font-weight: normal;
}

.wpcf7-form.hide_error_message .wpcf7-not-valid-tip {
  display: none;
}

.p-formValidation .wpcf7-not-valid-tip {
  display: none;
}

.p-formValidation__error {
  display: none;
  margin-top: 10px;
  color: red;
  font-size: 16px;
  font-weight: normal;
}

.wpcf7-form:not(.hide_error_message) .p-formValidation:has(.wpcf7-not-valid-tip) .p-formValidation__error {
  display: block;
}

.p-form__input-wrap-txt {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .p-form__input-wrap-txt {
    font-size: 15px;
  }
}

.p-form__input-wrap-address {
  margin-top: 26px;
  margin-top: 1.625rem;
}

.p-formRow {
  border: 1px solid #ccc;
  font-size: 12px;
  font-size: 0.75rem;
  border-bottom: none;
}
@media screen and (min-width: 768px) {
  .p-formRow {
    padding-left: 1.25rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.p-formRow.noflexbox {
  display: block;
  border-bottom: 1px solid #ccc;
}
@media screen and (min-width: 768px) {
  .p-formRow.noflexbox {
    padding-top: 0.625rem;
  }
}

.p-formRow.noflexbox label {
  font-weight: 600;
  display: block;
  border-bottom: 1px solid #ccc;
  padding: 5px 20px;
  padding: 0.3125rem 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-formRow.noflexbox label {
    font-size: 14px;
    padding: 0;
    border-bottom: none;
  }
}

.p-formRow.noflexbox .p-formRow__field {
  border-left: none;
}

.p-formRow__label {
  font-weight: 600;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: block;
  padding: 5px 20px;
  padding: 0.3125rem 1.25rem;
  border-bottom: 1px solid #ccc;
  font-family: Hiragino Maru Gothic Pro;
}
@media screen and (min-width: 768px) {
  .p-formRow__label {
    width: 22%;
    padding-left: 0;
    font-size: 14px;
    border-bottom: none;
  }
}

.p-formRow__field {
  padding: 7px 20px;
  padding: 0.4375rem 1.25rem;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
@media screen and (min-width: 768px) {
  .p-formRow__field {
    border-left: 1px solid #ccc;
  }
}

.single-post {
  background-color: #f7f5f2;
}

.wp-singular .contact {
  background-color: #fff;
}

.sub-topics-detail__inner.inner {
  padding-left: 10px;
  padding-left: 0.625rem;
  padding-right: 10px;
  padding-right: 0.625rem;
  padding-bottom: 37px;
  padding-bottom: 2.3125rem;
}
@media screen and (min-width: 768px) {
  .sub-topics-detail__inner.inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    padding-bottom: 5.75rem;
  }
}

.sub-topics-detail .sub-topics__huge {
  max-width: 884px;
}
@media screen and (min-width: 768px) {
  .sub-topics-detail .sub-topics__huge {
    width: 78%;
  }
}

@media screen and (min-width: 768px) {
  .sub-topics-detail .sub-topics__wrap {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.sub-topics-detail .sub-topics__main {
  width: 100%;
  background-color: #fff;
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .1);
          box-shadow: 0 0 3px rgba(0, 0, 0, .1);
  border-radius: 13px;
  padding: 22px 28px;
  padding: 1.375rem 1.75rem;
}
@media screen and (min-width: 768px) {
  .sub-topics-detail .sub-topics__main {
    padding: 3.125rem 2.5rem;
  }
}

.sub-topics__mainTitle {
  letter-spacing: 0.07em;
  font-size: clamp(24px, 22.058px + 0.5177993528vw, 32px);
  font-size: clamp(1.5rem, 1.3786407767rem + 0.5177993528vw, 2rem);
}
@media screen and (min-width: 768px) {
  .sub-topics__mainTitle {
    letter-spacing: 0.04em;
  }
}

.sub-topics__detail-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 10px;
  margin-top: 0.625rem;
  padding-bottom: 14px;
  padding-bottom: 0.875rem;
  border-bottom: 1px solid #f5f5f5;
  margin-bottom: 30px;
  margin-bottom: 1.875rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__detail-meta {
    margin-top: 1.0625rem;
    padding-bottom: 0.6875rem;
  }
}

.sub-topics__detail-date {
  color: #ad9f7f;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .sub-topics__detail-date {
    letter-spacing: 0.08em;
    font-size: 1rem;
  }
}

.sub-topics__detail-category {
  color: #ad9f7f;
  background-color: #f7f5f2;
  padding: 4px 10px;
  padding: 0.25rem 0.625rem;
  font-family: hiragino kaku gothic pro;
  font-size: 12px;
  font-size: 0.75rem;
  border-radius: 15px;
}
@media screen and (min-width: 768px) {
  .sub-topics__detail-category {
    padding: 0.1875rem 0.625rem;
    font-size: 0.8125rem;
  }
}

.sub-topics__main-content {
  border-bottom: 1px solid #d8d9d9;
}

.sub-topics__main-content p {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 33px;
  margin-bottom: 2.0625rem;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .sub-topics__main-content p {
    margin-bottom: 3.125rem;
    line-height: 1.9;
  }
}

.sub-topics__main-content h2 {
  line-height: 1.7;
  background-color: #000;
  color: #fff;
  position: relative;
  font-size: clamp(19px, 16.183px + 0.7511737089vw, 27px);
  font-size: clamp(1.1875rem, 1.011443662rem + 0.7511737089vw, 1.6875rem);
  padding: 8px 14px;
  padding: 0.5rem 0.875rem;
  letter-spacing: 0.03em;
  margin-bottom: 20px;
  margin-bottom: 1.25rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__main-content h2 {
    padding: 0.5rem 1.5rem;
    margin-bottom: 1.8125rem;
    letter-spacing: 0.02em;
  }
}

.sub-topics__main-content h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 2px;
}
@media screen and (min-width: 768px) {
  .sub-topics__main-content h2::before {
    width: 1px;
  }
}

.sub-topics__main-content h3 {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 600;
  position: relative;
  letter-spacing: 0.07em;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
  padding-bottom: 7px;
  padding-bottom: 0.4375rem;
  border-bottom: 2px solid #ededed;
}
@media screen and (min-width: 768px) {
  .sub-topics__main-content h3 {
    padding-left: 1em;
    font-size: 1.625rem;
  }
}

.sub-topics__main-content h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  height: 3px;
  width: 10px;
  width: 0.625rem;
}

.sub-topics__main-content h4 {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.sub-topics__main-content img {
  margin-bottom: 40px;
  margin-bottom: 2.5rem;
  max-height: 678px;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 768px) {
  .sub-topics__main-content img {
    margin-bottom: 1.125rem;
  }
}

.sub-topics__main-content a {
  text-decoration: underline;
  display: inline-block;
  font-size: 16px;
  font-size: 1rem;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.sub-topics__main-content p a {
  margin-bottom: 0;
}

.sub-topics__main-content ul {
  margin-bottom: 27px;
  margin-bottom: 1.6875rem;
}

.sub-topics__main-content ul li {
  font-size: 16px;
  font-size: 1rem;
}

.sub-topics__main-content ul li:not(:first-child) {
  margin-top: 5px;
  margin-top: 0.3125rem;
}

.sub-topics__main-content ol {
  list-style-type: decimal;
  margin-bottom: 27px;
  margin-bottom: 1.6875rem;
  padding-left: 20px;
  padding-left: 1.25rem;
}

.sub-topics__main-content ol li {
  font-size: 16px;
  font-size: 1rem;
}

.sub-topics__main-content ol li:not(:first-child) {
  margin-top: 5px;
  margin-top: 0.3125rem;
}

.single-blog__table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
  margin: 32px 0;
  margin: 2rem 0;
}
@media screen and (min-width: 768px) {
  .single-blog__table {
    width: 80%;
  }
}

.sub-topics__main-content table {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .sub-topics__main-content table {
    width: 80%;
  }
}

.sub-topics__main-content th,
.sub-topics__main-content td {
  border: 1px solid #dde2eb;
  padding: 12px;
  text-align: center;
}

.sub-topics__main-content thead th {
  background-color: #e7eaf0;
  font-weight: bold;
  font-size: 15.2px;
  font-size: 0.95rem;
}

.single-blog__table th,
.single-blog__table td {
  border: 1px solid #ddd;
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  .single-blog__table th,
  .single-blog__table td {
    padding: 1.0625rem 0.75em;
  }
}

.single-blog__table th {
  background-color: #e5eaf1;
}

.single-blog__table td {
  background-color: #fff;
}

.sub-topics__related {
  text-align: center;
  margin-top: 30px;
  margin-top: 1.875rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__related {
    margin-top: 0;
  }
}

.sub-topics__relatedTitle {
  display: inline-block;
  border-bottom: 2px solid #ad9f7f;
  padding-bottom: 14px;
  padding-bottom: 0.875rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__relatedTitle {
    padding-bottom: 0.625rem;
    margin-top: 2.5rem;
  }
}

.sub-topics__no-related {
  margin-top: 20px;
  margin-top: 1.25rem;
}

.sub-topics__related-itemTitle {
  font-size: 16px;
  font-size: 1rem;
  letter-spacing: 0.08em;
  padding-left: 20px;
  padding-left: 1.25rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* align-items: center; */
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (min-width: 768px) {
  .sub-topics__related-itemTitle {
    font-size: 1.125rem;
    padding-left: 0;
    display: inline;
    display: initial;
  }
}

.sub-topics__relatedList {
  text-align: left;
  text-align: initial;
  margin-top: 19px;
  margin-top: 1.1875rem;
}

.sub-topics__relatedItem a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  background-color: #f7f5f2;
  padding-right: 26px;
  padding-right: 1.625rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__relatedItem a {
    gap: 3%;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-right: 2.375rem;
  }
}

.sub-topics__relatedItem:not(:first-child) {
  margin-top: 20px;
  margin-top: 1.25rem;
}

.sub-topics__relatedThumb {
  width: 25%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .sub-topics__relatedThumb {
    width: 14%;
  }
}

.sub-topics__relatedThumb img {
  max-height: 70px;
  max-height: 4.375rem;
  -o-object-fit: cover;
     object-fit: cover;
}

.sub-topics__relatedItem span {
  width: 3%;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-left: auto;
}
.sub-topics__relatedItem span svg {
  overflow: visible;
  width: 13px;
  width: 0.8125rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__relatedItem span svg {
    width: 1.0625rem;
  }
}

.postnav {
  padding-top: 71px;
  padding-top: 4.4375rem;
  padding-bottom: 8px;
  padding-bottom: 0.5rem;
}

.postnav__list {
  list-style: none;
  margin: 0;
  padding-left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 20px;
  gap: 1.25rem;
}

.postnav__item svg {
  overflow: visible;
}

/* ボタン共通 */
.postnav__link,
.postnav__item a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 10px;
  gap: 0.625rem;
  width: 100%;
  min-height: 44px;
  min-height: 2.75rem;
  padding: 18px 16px;
  padding: 1.125rem 1rem;
  border-radius: 0.625rem;
  background: #000; /* 黒ボタン */
  color: #fff;
  text-decoration: none;
  -webkit-box-shadow: 0 0.375rem 0.875rem rgba(0, 0, 0, .18);
          box-shadow: 0 0.375rem 0.875rem rgba(0, 0, 0, .18);
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.08s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.08s ease;
  transition: transform 0.08s ease, opacity 0.2s ease;
  transition: transform 0.08s ease, opacity 0.2s ease, -webkit-transform 0.08s ease;
  font-family: hiragino kaku gothic pro;
  font-weight: 300;
}

.postnav__link:focus-visible,
.postnav__item a:focus-visible {
  outline: 2px solid #b7ab8a;
  outline: 0.125rem solid #b7ab8a;
  outline-offset: 2px;
  outline-offset: 0.125rem;
}

.postnav__link:hover,
.postnav__item a:hover {
  opacity: 0.9;
  -webkit-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
}

.postnav__item--next,
.postnav__item--prev {
  width: 25%;
}

.postnav__item--back {
  width: 38%;
}

.postnav__label {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.postnav__icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 22px;
  width: 1.375rem;
  height: 22px;
  height: 1.375rem;
  color: #b7ab8a; /* 矢印・縁の色 */
}

/* 配置（左は矢印→ラベル、右はラベル→矢印） */
.postnav__item--prev a,
.postnav__item--next a {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.postnav__item--prev .postnav__icon {
  -webkit-box-ordinal-group: 1;
      -ms-flex-order: 0;
          order: 0;
}

.postnav__item--next .postnav__icon {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

/* 中央ボタンはアイコンなし・同サイズで */
.postnav__item--back a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.sns-share {
  margin-top: 34px;
  margin-top: 2.125rem;
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .1);
          box-shadow: 0 0 3px rgba(0, 0, 0, .1);
  border-radius: 13px;
}

.sns-share__inner {
  background-color: #fff;
  padding: 24px 17px;
  padding: 1.5rem 1.0625rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
  gap: 0.625rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-radius: 10px;
}
@media screen and (min-width: 768px) {
  .sns-share__inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    padding: 1.25rem;
  }
}

.sns-share__title {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 16px;
  font-size: 1rem;
  font-family: hiragino kaku gothic pro;
  font-weight: 300;
}
@media screen and (min-width: 768px) {
  .sns-share__title {
    font-size: 1.0625rem;
  }
}

.sns-share__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
  gap: 0.5rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (min-width: 768px) {
  .sns-share__list {
    -webkit-box-pack: unset;
        -ms-flex-pack: unset;
            justify-content: unset;
  }
}

.sns-share__item {
  width: 30%;
}
@media screen and (min-width: 768px) {
  .sns-share__item {
    width: 18%;
  }
}

.postnav {
  padding-top: 71px;
  padding-top: 4.4375rem;
  padding-bottom: 8px;
  padding-bottom: 0.5rem;
}

.postnav__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  gap: 1rem;
  margin-top: 12px;
  margin-top: 0.75rem;
}

.postnav__row:first-child {
  margin-top: 0;
}

/* 共通ボタン */
.postnav__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  gap: 0.625rem;
  width: 100%;
  min-height: 54px;
  min-height: 3.375rem;
  padding-top: 12px;
  padding-top: 0.75rem;
  padding-right: 16px;
  padding-right: 1rem;
  padding-bottom: 12px;
  padding-bottom: 0.75rem;
  padding-left: 16px;
  padding-left: 1rem;
  border-radius: 0.625rem;
  background: #000;
  color: #fff;
  text-decoration: none;
  -webkit-box-shadow: 0 0.5rem 1.125rem rgba(0, 0, 0, .18);
          box-shadow: 0 0.5rem 1.125rem rgba(0, 0, 0, .18);
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.08s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.08s ease;
  transition: transform 0.08s ease, opacity 0.2s ease;
  transition: transform 0.08s ease, opacity 0.2s ease, -webkit-transform 0.08s ease;
}

.postnav__btn:hover {
  opacity: 0.9;
  -webkit-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
}

.postnav__btn:focus-visible {
  outline: 2px solid #b7ab8a;
  outline: 0.125rem solid #b7ab8a;
  outline-offset: 3px;
  outline-offset: 0.1875rem;
}

/* 空のボタン（プレースホルダー） */
.postnav__btn--empty {
  visibility: hidden;
  pointer-events: none;
}

.postnav__label {
  font-size: 16px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.postnav__icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  color: #fff;
}

/* 下のワイドボタン */
.postnav__btn--back {
  grid-column: 1/-1;
}

.js-fadeIn {
  opacity: 0;
  -webkit-transform: translateY(35px);
          transform: translateY(35px);
  -webkit-transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
  transition: opacity 1s ease-out, -webkit-transform 1s ease-out;
  transition: opacity 1s ease-out, transform 1s ease-out;
  transition: opacity 1s ease-out, transform 1s ease-out, -webkit-transform 1s ease-out;
}
.js-fadeIn.is-active {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

body.home {
  background-color: #f7f5f2;
}

.fv {
  overflow-x: clip;
  padding-top: 88px;
  padding-top: 5.5rem;
  background-color: #fff;
}
@media screen and (min-width: 768px) {
  .fv {
    padding-top: 11rem;
  }
}

.fv__inner {
  position: relative;
}

.fv__inner .slider-wrapper {
  border-radius: 6px;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .fv__slider {
    width: 227%;
  }
}

.fv__content {
  position: relative;
  z-index: 0;
}
@media screen and (min-width: 768px) {
  .fv__content {
    margin-top: 3.8125rem;
  }
}

.fv__message {
  font-size: clamp(23px, 21.058px + 0.5177993528vw, 31px);
  font-size: clamp(1.4375rem, 1.3161407767rem + 0.5177993528vw, 1.9375rem);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .fv__message {
    display: inline-block;
    position: relative;
  }
}

@-webkit-keyframes slide {
  0% {
    opacity: 0;
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
            clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  }
  100% {
    opacity: 1;
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
            clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}

@keyframes slide {
  0% {
    opacity: 0;
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
            clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  }
  100% {
    opacity: 1;
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
            clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}
.fv__message::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  background-image: url(../images/common/icon_fv-title01.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 17px;
  height: 1.0625rem;
  width: 61px;
  width: 3.8125rem;
}
@media screen and (min-width: 768px) {
  .fv__message::before {
    left: -3.25rem;
    top: -6.75rem;
    height: 7.125rem;
    width: 14.25rem;
  }
}

.fv__message::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  background-image: url(../images/common/icon_fv-title02.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 17px;
  height: 1.0625rem;
  width: 61px;
  width: 3.8125rem;
}
@media screen and (min-width: 768px) {
  .fv__message::after {
    right: 0.3125rem;
    top: -2.375rem;
    height: 2.1875rem;
    width: 3.6875rem;
  }
}

.fv__title {
  font-size: clamp(80px, 65.436px + 3.8834951456vw, 140px);
  font-size: clamp(5rem, 4.0898058252rem + 3.8834951456vw, 8.75rem);
  color: #ad9f7f;
  -webkit-animation: upPC 1s ease-in-out 1.5s both;
          animation: upPC 1s ease-in-out 1.5s both;
  position: relative;
  z-index: 1;
}

@-webkit-keyframes upPC {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes upPC {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.fv__img {
  position: absolute;
  z-index: 0;
  left: -5%;
  width: 113%;
  top: 7%;
}
@media screen and (min-width: 768px) {
  .fv__img {
    z-index: 0;
    width: 72%;
    top: -265%;
    left: 49%;
    -webkit-transform: translateX(-13%);
            transform: translateX(-13%);
  }
}

.fv__img-text {
  position: absolute;
  bottom: 74px;
  bottom: 4.625rem;
  bottom: clamp(74px, 42.431px + 8.4183673469vw, 107px);
  bottom: clamp(4.625rem, 2.6519451531rem + 8.4183673469vw, 6.6875rem);
  left: 24px;
  left: 1.5rem;
  width: 83%;
  -webkit-animation: upSP 1s ease-in-out 1.5s both;
          animation: upSP 1s ease-in-out 1.5s both;
}
@media screen and (min-width: 768px) {
  .fv__img-text {
    display: none;
  }
}

@-webkit-keyframes upSP {
  0% {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes upSP {
  0% {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.fv__piano {
  background-color: #000;
  position: absolute;
  bottom: -2px;
  bottom: -0.125rem;
  width: 120%;
}

.fv__banner {
  margin-inline: auto;
  margin-top: 400px;
  margin-top: 25rem;
  margin-top: clamp(375px, 29.655px + 92.0918367347vw, 736px);
  margin-top: clamp(23.4375rem, 1.8534757653rem + 92.0918367347vw, 46rem);
  opacity: 0;
}
@media screen and (min-width: 768px) {
  .fv__banner {
    margin-top: 11.5rem;
    width: 75%;
  }
}

.feature {
  padding-top: 49px;
  padding-top: 3.0625rem;
  overflow-x: clip;
  background-color: #fff;
}
@media screen and (min-width: 768px) {
  .feature {
    padding-top: 6.4375rem;
  }
}

.feature__inner {
  position: relative;
}

.feature__title-en {
  margin-inline: auto;
  width: 90%;
}
@media screen and (min-width: 768px) {
  .feature__title-en {
    width: 30%;
  }
}

.feature__piano {
  position: absolute;
  width: 30%;
  top: 111px;
  top: 6.9375rem;
  right: 0;
  z-index: 10;
  border-radius: 8px 0 0 8px;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .feature__piano {
    width: 15%;
    right: -0.875rem;
    top: 2.5rem;
  }
}
@media screen and (min-width: 1440px) {
  .feature__piano {
    top: clamp(0.25rem, -9.5rem + 10.8333333333vw, 3.5rem);
  }
}

.feature__items {
  margin-top: 66px;
  margin-top: 4.125rem;
}
@media screen and (min-width: 768px) {
  .feature__items {
    margin-top: 3.5rem;
  }
}

.feature__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 22px;
  gap: 1.375rem;
}
@media screen and (min-width: 768px) {
  .feature__item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    gap: 6.375rem;
  }
}

@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(odd) {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}

.feature__item:not(:first-child) {
  margin-top: 37px;
  margin-top: 2.3125rem;
}
@media screen and (min-width: 768px) {
  .feature__item:not(:first-child) {
    margin-top: 3rem;
  }
}

.feature__content.is-active {
  -webkit-animation: slideIn 1s ease-out forwards;
          animation: slideIn 1s ease-out forwards;
}

@-webkit-keyframes slideIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(var(--x));
            transform: translateX(var(--x));
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

@keyframes slideIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(var(--x));
            transform: translateX(var(--x));
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
.feature__item:nth-of-type(even) .feature__content {
  --x: -100px;
}

.feature__item:nth-of-type(odd) .feature__content {
  --x: 100px;
}

.feature__item:nth-of-type(even)::after {
  content: "";
  position: absolute;
  left: -20px;
  top: 39px;
  top: 2.4375rem;
  background-color: rgba(173, 159, 127, .1);
  width: 112%;
  height: 104%;
  z-index: 0;
}
@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(even)::after {
    left: -9.875rem;
    width: 58%;
    top: -3.8125rem;
    height: 39.75rem;
    z-index: 0;
  }
}

.feature__image {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .feature__image {
    width: 70%;
  }
}

.feature__item:nth-of-type(even) .feature__image {
  margin-right: calc(50% - 106vw);
}
@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(even) .feature__image {
    margin-right: calc(50% - 50vw);
  }
}
@media screen and (min-width: 1921px) {
  .feature__item:nth-of-type(even) .feature__image {
    margin-right: 0;
  }
}

.feature__item:nth-of-type(odd) .feature__image {
  margin-left: calc(50% - 97vw);
}
@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(odd) .feature__image {
    margin-left: calc(50% - 50vw);
  }
}
@media screen and (min-width: 1921px) {
  .feature__item:nth-of-type(odd) .feature__image {
    margin-left: 0;
  }
}

.feature__image .feature__image-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.5rem;
  aspect-ratio: 531/221;
  -o-object-fit: cover;
     object-fit: cover;
}
.feature__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-top: 0;
  opacity: 0;
  --x: 800px;
  width: 91%;
  margin-inline: auto;
  padding-left: 7px;
  padding-left: 0.4375rem;
}
@media screen and (min-width: 768px) {
  .feature__content {
    padding-left: 0;
    margin-top: 4.375rem;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 50%;
            flex: 1 1 50%;
    width: 100%;
    margin-inline: 0;
  }
}
@media screen and (min-width: 1440px) {
  .feature__content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 32%;
            flex: 1 1 32%;
  }
}

@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(even) .feature__content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 40%;
            flex: 1 1 40%;
  }
}
@media screen and (min-width: 1440px) {
  .feature__item:nth-of-type(even) .feature__content {
    width: 27%;
  }
}

.feature__item:nth-of-type(odd) .feature__number {
  right: -16px;
  right: -1rem;
  top: -42px;
  top: -2.625rem;
  width: 18%;
  left: auto;
}
@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(odd) .feature__number {
    right: -6.5625rem;
    top: -1.4375rem;
    width: 9%;
  }
}
@media screen and (min-width: 1024px) {
  .feature__item:nth-of-type(odd) .feature__number {
    right: -6.25rem;
  }
}
@media screen and (min-width: 1440px) {
  .feature__item:nth-of-type(odd) .feature__number {
    right: -8.4375rem;
  }
}

.feature__item:first-child .feature__number {
  top: -39px;
  top: -2.4375rem;
  left: 38%;
  width: 19%;
}
@media screen and (min-width: 768px) {
  .feature__item:first-child .feature__number {
    right: -11.5rem;
    left: auto;
    width: 12%;
  }
}

.feature__number {
  position: absolute;
  top: -42px;
  top: -2.625rem;
  left: 0;
  right: 0;
  width: 31%;
}
@media screen and (min-width: 768px) {
  .feature__number {
    width: 6%;
    top: -1.4375rem;
    left: 63%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

.feature__item:nth-of-type(even) .feature__number {
  right: 41%;
  top: 196px;
  top: 12.25rem;
  width: 14%;
  left: auto;
}
@media screen and (min-width: 768px) {
  .feature__item:nth-of-type(even) .feature__number {
    left: -1.8125rem;
    width: 9%;
    top: -1.25rem;
  }
}

.feature__content-title {
  font-size: 27px;
  font-size: 1.6875rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .feature__content-title {
    font-size: 2.1875rem;
    letter-spacing: 0.1em;
  }
}

.feature__message {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.9;
  margin-top: 0px;
  margin-top: 0rem;
}

.feature__text {
  line-height: 1.9;
  margin-top: 10px;
  margin-top: 0.625rem;
  letter-spacing: 0.15em;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .feature__text {
    width: 90%;
    font-size: 1rem;
    margin-top: 1.4375rem;
  }
}

.feature__slider-wrapper {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 2.5rem calc(50% - 50vw);
}
@media screen and (min-width: 768px) {
  .feature__slider-wrapper {
    margin-top: 5.375rem;
  }
}

.feature__slider-wrapper.slider-wrapper {
  margin-top: 38px;
  margin-top: 2.375rem;
}
@media screen and (min-width: 768px) {
  .feature__slider-wrapper.slider-wrapper {
    margin-top: 5.4375rem;
  }
}

.feature__slider-wrapper .slider {
  gap: 0;
}

.feature__slider-wrapper .slide {
  width: 69vw;
}
@media screen and (min-width: 768px) {
  .feature__slider-wrapper .slide {
    width: 27.3vw;
  }
}

.slider-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  margin: 0 calc(50% - 50vw);
}
@media screen and (min-width: 768px) {
  .slider-wrapper {
    gap: 1.25rem;
  }
}

/* スライド3枚のグループ */
.slider {
  -webkit-animation: scroll-left 40s infinite linear 0.5s both;
          animation: scroll-left 40s infinite linear 0.5s both;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /* スライド3枚を横並び */
  gap: 27px;
  gap: 1.6875rem;
}
@media screen and (min-width: 768px) {
  .slider {
    gap: 1.25rem;
  }
}

/* スライド */
.slide {
  width: 85vw; /* 3はスライドの枚数 */
}
@media screen and (min-width: 768px) {
  .slide {
    width: 28vw; /* 3はスライドの枚数 */
  }
}

/* スライドの画像 */
.slide img {
  display: block;
  width: 100%;
}

/* CSSアニメーション */
@-webkit-keyframes scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@keyframes scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
.feature__img-piano {
  margin: -1px calc(50% - 139vw) -1px;
  background-color: #000;
}
@media screen and (min-width: 768px) {
  .feature__img-piano {
    margin: -1px calc(45% - 50vw) 0;
  }
}

.course {
  background: url(../images/common/bg_course-sp.png) no-repeat bottom 1.375rem right 4%/336%, -webkit-gradient(linear, left bottom, left top, from(#fff), color-stop(3%, #fff), color-stop(3%, #000), to(#000));
  background: url(../images/common/bg_course-sp.png) no-repeat bottom 1.375rem right 4%/336%, linear-gradient(0deg, #fff 0%, #fff 3%, #000 3%, #000 100%);
  position: relative;
}
@media screen and (min-width: 768px) {
  .course {
    background: url(../images/common/bg_course.png) no-repeat bottom 10% center/contain, -webkit-gradient(linear, left bottom, left top, from(#fff), color-stop(11%, #fff), color-stop(11%, #000), to(#000));
    background: url(../images/common/bg_course.png) no-repeat bottom 10% center/contain, linear-gradient(0deg, #fff 0%, #fff 11%, #000 11%, #000 100%);
  }
}

.course__inner {
  padding-top: 63px;
  padding-top: 3.9375rem;
}
@media screen and (min-width: 768px) {
  .course__inner {
    padding-bottom: 3.375rem;
    padding-top: 5.1875rem;
  }
}

.course__title-en.sec-title__en {
  width: 80%;
}
@media screen and (min-width: 768px) {
  .course__title-en.sec-title__en {
    width: 25%;
  }
}

.course__list {
  background: transparent;
  margin-top: 31px;
  margin-top: 1.9375rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .course__list {
    width: 75rem;
    margin-inline: auto;
    margin-top: 2.25rem;
  }
}

.course__list.bg-beige.first-list {
  margin-top: 42px;
  margin-top: 2.625rem;
}
@media screen and (min-width: 768px) {
  .course__list.bg-beige.first-list {
    margin-top: 3.5rem;
  }
}

.course__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding-block: 19px;
  padding-block: 1.1875rem;
  padding-inline: 19px;
  padding-inline: 1.1875rem;
  padding-right: 2px;
  padding-right: 0.125rem;
  background-color: #fff;
  row-gap: 4px;
  row-gap: 0.25rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  letter-spacing: 0.2em;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .course__item {
    padding-block: 0;
    padding-inline: 3.25rem;
    row-gap: 0;
    -webkit-box-pack: initial;
        -ms-flex-pack: initial;
            justify-content: initial;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    height: 4.4375rem;
  }
}

.course__item:nth-of-type(even) {
  background-color: #f7f5f1;
}

.course__list.bg-beige::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background: #f7f5f2;
  height: 103%;
  width: 102%;
  z-index: 0;
}
@media screen and (min-width: 768px) {
  .course__list.bg-beige::after {
    height: 106%;
    width: 101%;
  }
}

.course__list.bg-gray::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background: rgba(247, 245, 242, .71);
  height: 103%;
  width: 102%;
  z-index: 0;
}
@media screen and (min-width: 768px) {
  .course__list.bg-gray::after {
    height: 106%;
    width: 101%;
  }
}

.course__item:not(:last-child) {
  border-bottom: 1px dotted #ad9f7f;
}
@media screen and (min-width: 768px) {
  .course__item:not(:last-child) {
    border-bottom: 2px dotted #ad9f7f;
  }
}

.course__item--alt {
  background: #f7f5f1;
}

.course__name {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 700;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 100%;
          flex: 1 1 100%;
  height: inherit;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #42342c;
}
@media screen and (min-width: 768px) {
  .course__name {
    width: 55%;
    -webkit-box-flex: 0;
        -ms-flex: 0 1 55%;
            flex: 0 1 55%;
    font-size: 1.25rem;
  }
}

.course__detail {
  font-size: 15px;
  font-size: 0.9375rem;
  opacity: 0.8;
  justify-self: start;
  font-family: "hiragino kaku gothic pro";
  letter-spacing: 0.1em;
  height: inherit;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .course__detail {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 23%;
            flex: 0 1 23%;
    border-right: 1px dotted #c7ba9a;
    font-size: 1rem;
    letter-spacing: 0.01em;
  }
}

.course__price {
  justify-self: end;
  white-space: nowrap;
  font-weight: 700;
  height: inherit;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #42342c;
}
@media screen and (min-width: 768px) {
  .course__price {
    margin-left: auto;
  }
}

.course__amount {
  font-size: 18px;
  font-size: 1.125rem;
  letter-spacing: 1px;
  letter-spacing: 0.0625rem;
}
@media screen and (min-width: 768px) {
  .course__amount {
    font-size: 1.4375rem;
  }
}

.course__yen {
  font-size: 16px;
  font-size: 1rem;
  margin-left: 4px;
  margin-left: 0.25rem;
}

.course__tax {
  font-size: 13px;
  font-size: 0.8125rem;
  letter-spacing: -0.03em;
}
@media screen and (min-width: 768px) {
  .course__tax {
    letter-spacing: 0.06em;
  }
}

.course__notes {
  padding: 14px 21px;
  padding: 0.875rem 1.3125rem;
  margin-top: 24px;
  margin-top: 1.5rem;
  background-color: #fff;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .course__notes {
    width: 75rem;
    margin-inline: auto;
    padding-block: 1.375rem;
    padding-inline: 3.5625rem;
    margin-top: 2.1875rem;
  }
}
.course__notes::before {
  content: "";
  position: absolute;
  top: -19px;
  top: -1.1875rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-left: 1.25rem solid transparent;
  border-right: 20px solid transparent;
  border-right: 1.25rem solid transparent;
  border-bottom: 20px solid #fff;
  border-bottom: 1.25rem solid #fff;
  z-index: 1;
}

.course__notes::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background: rgba(247, 245, 242, .71);
  height: 104%;
  width: 102%;
  z-index: -1;
}
@media screen and (min-width: 768px) {
  .course__notes::after {
    height: 106%;
    width: 101%;
  }
}

.course__notes .course__message {
  font-weight: 400;
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 1.8;
  font-family: "hiragino kaku gothic pro";
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .course__notes .course__message {
    font-size: 1rem;
  }
}

.topics {
  padding-top: 59px;
  padding-top: 3.6875rem;
  background-color: #fff;
}
@media screen and (min-width: 768px) {
  .topics {
    padding-top: 1.0625rem;
  }
}

.topics__inner {
  margin-right: calc(50% - 50vw);
  padding-bottom: 55px;
  padding-bottom: 3.4375rem;
}
@media screen and (min-width: 768px) {
  .topics__inner {
    padding-bottom: 5.375rem;
    max-width: 1920px;
    margin-inline: auto;
  }
}

.topics__title-en.sec-title__en {
  width: 68%;
}
@media screen and (min-width: 768px) {
  .topics__title-en.sec-title__en {
    width: 20%;
  }
}

.posts__slider-wrapper {
  position: relative;
  margin-top: 24px;
  margin-top: 1.5rem;
  margin-left: 22px;
  margin-left: 1.375rem;
}
@media screen and (min-width: 768px) {
  .posts__slider-wrapper {
    margin-top: 2.875rem;
    margin-left: auto;
    width: 86%;
  }
}

.posts__link:hover .posts__thumb img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.posts__thumb {
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 375/237;
}
@media screen and (min-width: 768px) {
  .posts__thumb {
    aspect-ratio: 375/241;
  }
}

.posts__thumb img {
  aspect-ratio: 375/211;
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.posts__slider {
  position: relative;
  z-index: 0;
}

.posts__title {
  margin-top: 10px;
  margin-top: 0.625rem;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.03em;
  line-height: 1.7;
  color: #42342c;
}
@media screen and (min-width: 768px) {
  .posts__title {
    letter-spacing: 0.12em;
    margin-top: 0.875rem;
  }
}

.posts__meta {
  margin-top: 7px;
  margin-top: 0.4375rem;
  padding-left: 2px;
  padding-left: 0.125rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .posts__meta {
    margin-top: 0.8125rem;
  }
}

.posts__category {
  color: #ad9f7f;
  background-color: #f7f5f2;
  padding: 4px 10px;
  padding: 0.25rem 0.625rem;
  font-family: hiragino kaku gothic pro;
  font-size: 13px;
  font-size: 0.8125rem;
  border-radius: 15px;
}
@media screen and (min-width: 768px) {
  .posts__category {
    padding: 0.1875rem 0.625rem;
  }
}

.posts__date {
  color: #ad9f7f;
  margin-left: 17px;
  margin-left: 1.0625rem;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .posts__date {
    letter-spacing: 0.08em;
  }
}

.posts__button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 32px;
  margin-top: 2rem;
}
@media screen and (min-width: 768px) {
  .posts__button {
    margin-top: 3.125rem;
  }
}

/* 前への矢印カスタマイズ */
.posts__slider-prev::after {
  background-image: url(../images/common/arrow-pre.png);
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  top: 43%;
  left: 0;
  -webkit-transform: translateY(-117%);
          transform: translateY(-117%);
  height: 60px;
  height: 3.75rem;
  width: 60px;
  width: 3.75rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .posts__slider-prev::after {
    height: 5rem;
    width: 5rem;
    -webkit-transform: translateY(-103%);
            transform: translateY(-103%);
    top: 40%;
  }
}

/* 次への矢印カスタマイズ */
.posts__slider-prev {
  left: 0;
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .posts__slider-prev {
    left: -2.0625rem;
  }
}
.posts__slider-prev.swiper-button-disabled {
  cursor: default;
  opacity: 0.5;
}

.posts__slider-next {
  right: 0;
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .posts__slider-next {
    right: 1.25rem;
  }
}
.posts__slider-next.swiper-button-disabled {
  cursor: default;
  opacity: 0.5;
}

.posts__button-link {
  background-color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 15px 17px 15px 27px;
  padding: 0.9375rem 1.0625rem 0.9375rem 1.6875rem;
  width: 227px;
  width: 14.1875rem;
  border-radius: 2.1875rem;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="9" /><feOffset dx="1" dy="1" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.1)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
  -webkit-filter: drop-shadow(0 0 9px rgba(0, 0, 0, .1));
          filter: drop-shadow(0 0 9px rgba(0, 0, 0, .1));
  font-weight: 600;
  font-size: 17px;
  font-size: 1.0625rem;
  color: #42342c;
}
@media screen and (min-width: 768px) {
  .posts__button-link {
    padding: 1.1875rem 1.6875rem 1.375rem 2.1875rem;
    width: 18.75rem;
    font-size: 1rem;
  }
}

.posts__button-link span {
  width: 14%;
}
@media screen and (min-width: 768px) {
  .posts__button-link span {
    width: 15%;
  }
}

.reason {
  background-image: url(../images/common/bg_reason-sp.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: relative;
  z-index: -10;
}
@media screen and (min-width: 768px) {
  .reason {
    background-image: url(../images/common/bg_reason.jpg);
    background-size: cover;
  }
}

.reason::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  background-color: rgba(96, 76, 63, .67);
  height: 100%;
  width: 100%;
  z-index: -1;
}

.reason__inner {
  padding-top: 54px;
  padding-top: 3.375rem;
  padding-bottom: 45px;
  padding-bottom: 2.8125rem;
}
@media screen and (min-width: 768px) {
  .reason__inner {
    padding-top: 7.5rem;
    padding-bottom: 7.5rem;
  }
}

.reason__head {
  color: #fff;
  text-align: center;
}

.reason__catch {
  display: inline-block;
  position: relative;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.03em;
}
@media screen and (min-width: 768px) {
  .reason__catch {
    font-size: 1.1875rem;
  }
}

.reason__catch::before,
.reason__catch::after {
  content: "";
  position: absolute;
  top: 79%;
  width: 1px;
  height: 19px;
  height: 1.1875rem;
  background: repeating-linear-gradient(to bottom, #fff 2px, #fff 3px, transparent 0, transparent 5px);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transform: translateY(-50%) rotate(-30deg);
          transform: translateY(-50%) rotate(-30deg);
}
@media screen and (min-width: 768px) {
  .reason__catch::before,
  .reason__catch::after {
    height: 1.625rem;
    background: repeating-linear-gradient(to bottom, #fff 0, #fff 3px, transparent 0, transparent 6px);
  }
}

.reason__catch::before {
  left: -8px;
  left: -0.5rem;
  -webkit-transform: translateY(-50%) rotate(-30deg);
          transform: translateY(-50%) rotate(-30deg);
}
@media screen and (min-width: 768px) {
  .reason__catch::before {
    left: -0.6875rem;
  }
}

.reason__catch::after {
  right: -4px;
  right: -0.25rem;
  -webkit-transform: translateY(-50%) rotate(26deg);
          transform: translateY(-50%) rotate(26deg);
}
@media screen and (min-width: 768px) {
  .reason__catch::after {
    right: -0.4375rem;
  }
}

.reason__title {
  font-size: 21px;
  font-size: 1.3125rem;
  margin-top: 15px;
  margin-top: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .reason__title {
    font-size: 2.6875rem;
    margin-top: 0.625rem;
  }
}

.reason__title span {
  display: block;
  font-size: 32px;
  font-size: 2rem;
}
@media screen and (min-width: 768px) {
  .reason__title span {
    display: inline;
    font-size: 2.6875rem;
  }
}

.reason__catch-en {
  margin-top: 8px;
  margin-top: 0.5rem;
  font-size: 12px;
  font-size: 0.75rem;
  letter-spacing: 0.19em;
}
@media screen and (min-width: 768px) {
  .reason__catch-en {
    letter-spacing: 0.2em;
    font-size: 1rem;
    margin-top: 0;
  }
}

.reason__lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  row-gap: 28px;
  row-gap: 1.75rem;
  margin-top: 28px;
  margin-top: 1.75rem;
}
@media screen and (min-width: 768px) {
  .reason__lists {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 3%;
    row-gap: 2rem;
    margin-top: 2.375rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    max-width: 1440px;
    margin-inline: auto;
  }
}

.reason__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #fff;
  padding: 5px 5px 20px 5px;
  padding: 0.3125rem 0.3125rem 1.25rem 0.3125rem;
}
@media screen and (min-width: 768px) {
  .reason__list {
    width: 40%;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 1.25rem;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0.3125rem 1.0625rem 0.3125rem 0.3125rem;
  }
}

.reason__list-img {
  position: relative;
}
@media screen and (min-width: 768px) {
  .reason__list-img {
    width: 69%;
    aspect-ratio: 1/1;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.reason__list-img::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  background-color: rgba(96, 76, 63, .61);
  height: 100%;
  width: 100%;
  z-index: 10;
}

.reason__list-img img {
  height: 100%;
}
@media screen and (min-width: 768px) {
  .reason__list-img img {
    aspect-ratio: 1/1;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.reason__list-img-content {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 10;
  text-align: center;
}
.reason__list-img-content .reason__list-number {
  font-size: clamp(37px, 33.844px + 0.8414239482vw, 50px);
  font-size: clamp(2.3125rem, 2.1152912621rem + 0.8414239482vw, 3.125rem);
  line-height: 1;
  color: transparent;
  -webkit-text-fill-color: transparent;
  /* アウトライン */
  -webkit-text-stroke: 1px #fff;
}

.reason__list-img-content span {
  color: #fff;
  display: block;
  font-size: 13px;
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .reason__list-img-content span {
    font-size: 1.0625rem;
  }
}

.reason__list-content {
  padding: 0 16px;
  padding: 0 1rem;
}
@media screen and (min-width: 768px) {
  .reason__list-content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 131%;
            flex: 1 1 131%;
    padding: 0;
  }
}

.reason__list-title {
  font-size: clamp(23px, 22.757px + 0.0647249191vw, 24px);
  font-size: clamp(1.4375rem, 1.4223300971rem + 0.0647249191vw, 1.5rem);
  letter-spacing: 0.06em;
  margin-top: 21px;
  margin-top: 1.3125rem;
}
@media screen and (min-width: 768px) {
  .reason__list-title {
    letter-spacing: 0.1em;
    margin-top: 0;
  }
}

.reason__list-text {
  margin-top: 9px;
  margin-top: 0.5625rem;
  line-height: 1.85;
  letter-spacing: 0.13em;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .reason__list-text {
    letter-spacing: 0.01em;
    font-size: 1.0625rem;
    margin-top: 1.1875rem;
  }
}

.voice {
  padding-top: 50px;
  padding-top: 3.125rem;
  background-color: #f7f5f2;
  overflow-x: clip;
}
@media screen and (min-width: 768px) {
  .voice {
    padding-top: 6.8125rem;
  }
}

@media screen and (min-width: 768px) {
  .voice__inner {
    max-width: 1920px;
    margin-inline: auto;
  }
}

.voice__title-en.sec-title__en {
  width: 56%;
}
@media screen and (min-width: 768px) {
  .voice__title-en.sec-title__en {
    width: 17%;
  }
}

@media screen and (min-width: 768px) {
  .voice__title-en.sec-title__en img {
    height: 100%;
  }
}

.voice__wrapper {
  position: relative;
  width: 75%;
}
@media screen and (min-width: 768px) {
  .voice__wrapper {
    width: 100%;
  }
}

.voice__card {
  width: 281px;
  width: 17.5625rem;
}
@media screen and (min-width: 768px) {
  .voice__card {
    width: 23.5625rem;
  }
}

.voice__item {
  background-color: #fff;
  padding: 28px 25px 20px 31px;
  padding: 1.75rem 1.5625rem 1.25rem 1.9375rem;
  border-radius: 0.5rem;
  -webkit-box-shadow: 0 0 0.1875rem rgba(0, 0, 0, .1);
          box-shadow: 0 0 0.1875rem rgba(0, 0, 0, .1);
  position: relative;
  width: 100%;
  min-height: 271px;
  min-height: 16.9375rem;
}
@media screen and (min-width: 768px) {
  .voice__item {
    min-height: 18.75rem;
    padding: 2.75rem 2.3125rem 1.5rem;
    border-radius: 0.75rem;
    -webkit-box-shadow: 0 0 0.1875rem rgba(0, 0, 0, .1);
            box-shadow: 0 0 0.1875rem rgba(0, 0, 0, .1);
  }
}

.voice__item::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -67px;
  bottom: -4.1875rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background-image: url(../images/common/voice_layer.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 42%;
  width: 106%;
  z-index: -1;
}
@media screen and (min-width: 768px) {
  .voice__item::after {
    bottom: -3.9375rem;
    height: 43%;
  }
}

.voice__detail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-bottom: 2px solid rgba(218, 219, 219, .2);
  padding-bottom: 10px;
  padding-bottom: 0.625rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .voice__detail {
    padding-bottom: 0.875rem;
  }
}

.voice__detail-name {
  font-size: 16px;
  font-size: 1rem;
  font-weight: 600;
  color: #42342c;
  margin-right: 10px;
  margin-right: 0.625rem;
  position: relative;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .voice__detail-name {
    font-size: 1.25rem;
    letter-spacing: 0.03em;
  }
}

.voice__detail-name::before {
  content: "";
  position: absolute;
  left: -4px;
  left: -0.25rem;
  top: -12px;
  top: -0.75rem;
  background-image: url(../images/common/voice_icon.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 8px;
  height: 0.5rem;
  width: 20px;
  width: 1.25rem;
}
@media screen and (min-width: 768px) {
  .voice__detail-name::before {
    width: 1.5625rem;
    left: 0;
    top: -1.125rem;
  }
}

.voice__detail-age {
  font-size: 14px;
  font-size: 0.875rem;
  color: #42342c;
  font-family: hiragino kaku gothic pro;
  letter-spacing: 0.15em;
}
@media screen and (min-width: 768px) {
  .voice__detail-age {
    font-size: 1rem;
    letter-spacing: 0.1em;
  }
}

.voice__text {
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 1.7;
  margin-top: 13px;
  margin-top: 0.8125rem;
  letter-spacing: 0.09em;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .voice__text {
    font-size: 1rem;
    line-height: 2.05;
    margin-top: 1.375rem;
  }
}

.voice__piano {
  margin-top: 34px;
  margin-top: 2.125rem;
  background-color: #000;
  width: 250%;
}
@media screen and (min-width: 768px) {
  .voice__piano {
    margin-top: 3rem;
    width: 100%;
  }
}

@media screen and (min-width: 768px) {
  .voice__piano img {
    height: 4.5625rem;
  }
}

.voice__swiper {
  padding-bottom: 15px;
  padding-bottom: 0.9375rem;
  margin-top: 30px;
  margin-top: 1.875rem;
}
@media screen and (min-width: 768px) {
  .voice__swiper {
    padding-bottom: 3.125rem;
    margin-top: 2.5rem;
  }
}

.voice__slider-buttons {
  position: absolute;
  bottom: -31px;
  bottom: -1.9375rem;
  z-index: 1;
  width: 93%;
  height: 90%;
  left: 51%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  top: 0;
}
@media screen and (min-width: 768px) {
  .voice__slider-buttons {
    width: 56.25rem;
  }
}
@media screen and (min-width: 1024px) {
  .voice__slider-buttons {
    left: 50%;
  }
}
@media screen and (min-width: 1440px) {
  .voice__slider-buttons {
    width: 79.1875rem;
    left: 51%;
  }
}

/* voiceスライダーのナビゲーションボタン */
.voice__slider-prev {
  left: 0;
  width: 50px;
  width: 3.125rem;
  height: 50px;
  height: 3.125rem;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
  z-index: 10;
}
@media screen and (min-width: 768px) {
  .voice__slider-prev {
    width: 5rem;
    height: 5rem;
  }
}
.voice__slider-prev.swiper-button-disabled {
  cursor: default;
  opacity: 0.5;
}

.voice__slider-next {
  right: 9px;
  right: 0.5625rem;
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
  z-index: 10;
}
.voice__slider-next.swiper-button-disabled {
  cursor: default;
  opacity: 0.5;
}

/* voiceスライダーの矢印アイコン */
.voice__slider-prev::after {
  background-image: url(../images/common/arrow-prev-brown.png);
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  height: 60px;
  height: 3.75rem;
  width: 60px;
  width: 3.75rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .voice__slider-prev::after {
    height: 5rem;
    width: 5rem;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}

.voice__slider-next::after {
  background-image: url(../images/common/arrow-next-brown.png);
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: 0;
  height: 60px;
  height: 3.75rem;
  width: 60px;
  width: 3.75rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .voice__slider-next::after {
    height: 5rem;
    width: 5rem;
    -webkit-transform: translateY(-30%);
            transform: translateY(-30%);
  }
}

.flow {
  padding-top: 61px;
  padding-top: 3.8125rem;
  background-color: #000;
}
@media screen and (min-width: 768px) {
  .flow {
    padding-top: 5.125rem;
  }
}

.flow__title.sec-title__en {
  width: 56%;
}
@media screen and (min-width: 768px) {
  .flow__title.sec-title__en {
    width: 18%;
  }
}

.steps {
  background-color: #000;
  padding-top: 48px;
  padding-top: 3rem;
  padding-bottom: 64px;
  padding-bottom: 4rem;
  color: #ffffff;
}

.steps__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  gap: 0.875rem;
  row-gap: 6px;
  row-gap: 0.375rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  margin-top: 23px;
  margin-top: 1.4375rem;
}
@media screen and (min-width: 768px) {
  .steps__list {
    max-width: 1200px;
    margin-inline: auto;
    gap: 1.5rem;
    row-gap: 0;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 2.75rem;
  }
}

.steps__item {
  position: relative;
  border: 1px solid #ad9f7f;
  border-right: none;
  border-top: none;
  border-left: none;
  opacity: 0;
}

.steps__item.is-active {
  -webkit-animation: fadeIn 0.8s ease-out forwards;
          animation: fadeIn 0.8s ease-out forwards;
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.steps__item:nth-of-type(2) {
  margin-top: 24px;
  margin-top: 1.5rem;
}
@media screen and (min-width: 768px) {
  .steps__item:nth-of-type(2) {
    margin-top: 1.625rem;
  }
}

@media screen and (min-width: 768px) {
  .steps__item:nth-of-type(3) {
    margin-top: 3.25rem;
  }
}

.steps__item:nth-of-type(4) {
  margin-top: 25px;
  margin-top: 1.5625rem;
}
@media screen and (min-width: 768px) {
  .steps__item:nth-of-type(4) {
    margin-top: -1.375rem;
  }
}

.steps__item:nth-of-type(5) {
  margin-top: -6px;
  margin-top: -0.375rem;
}
@media screen and (min-width: 768px) {
  .steps__item:nth-of-type(5) {
    margin-top: 0;
  }
}

.steps__item:nth-of-type(6) {
  margin-top: 17px;
  margin-top: 1.0625rem;
}
@media screen and (min-width: 768px) {
  .steps__item:nth-of-type(6) {
    margin-top: 1.625rem;
  }
}

.steps__num {
  color: #ad9f7f;
  border: 1px solid #ad9f7f;
  border-bottom: none;
  display: inline-block;
  padding-right: 20px;
  padding-right: 1.25rem;
  line-height: 1;
  width: 62%;
  padding-left: 5px;
  padding-left: 0.3125rem;
  padding-top: 4px;
  padding-top: 0.25rem;
}
@media screen and (min-width: 768px) {
  .steps__num {
    width: 29%;
    font-size: 1.0625rem;
    padding: 0.375rem 5.625rem 0 0.1875rem;
    line-height: 0.8;
  }
}

.steps__figure {
  border-right: 1px solid #ad9f7f;
  border-left: 1px solid #ad9f7f;
}

.steps__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
}

.steps__body {
  padding: 19px 9px 20px 16px;
  padding: 1.1875rem 0.5625rem 1.25rem 1rem;
  border-right: 1px solid #ad9f7f;
  border-left: 1px solid #ad9f7f;
  min-height: 271px;
}
@media screen and (min-width: 768px) {
  .steps__body {
    padding: 1.375rem 2.25rem 1.875rem;
    min-height: 93px;
  }
}
@media screen and (min-width: 1024px) {
  .steps__body {
    min-height: 120px;
  }
}
@media screen and (min-width: 1440px) {
  .steps__body {
    min-height: 0;
    min-height: initial;
  }
}

.steps__title {
  font-size: 16px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.15em;
  color: #ad9f7f;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .steps__title {
    font-size: 1.4375rem;
    letter-spacing: 0.02em;
  }
}

.steps__title.nowrap {
  letter-spacing: 0.05em;
}

.steps__message {
  margin-top: 8px;
  margin-top: 0.5rem;
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: #fff;
  letter-spacing: 0.1em;
  font-family: hiragino kaku gothic pro;
}
@media screen and (min-width: 768px) {
  .steps__message {
    line-height: 1.9;
    font-size: 1rem;
  }
}

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

.step__slider.slider-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  margin: 1.1875rem calc(50% - 50vw) 0;
}
@media screen and (min-width: 768px) {
  .step__slider.slider-wrapper {
    gap: 1.25rem;
    margin: 4.375rem calc(50% - 50vw) 0;
  }
}

/* スライド3枚のグループ */
.step__slider.slider-wrapper .slider {
  -webkit-animation: scroll-left 70s infinite linear 0.5s both;
          animation: scroll-left 70s infinite linear 0.5s both;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /* スライド3枚を横並び */
  gap: 27px;
  gap: 1.6875rem;
}
@media screen and (min-width: 768px) {
  .step__slider.slider-wrapper .slider {
    gap: 5rem;
    -webkit-animation: scroll-left 70s infinite linear 0.5s both;
            animation: scroll-left 70s infinite linear 0.5s both;
  }
}

/* スライド */
.step__slider .slide {
  width: 500vw; /* 3はスライドの枚数 */
}
@media screen and (min-width: 768px) {
  .step__slider .slide {
    width: 148vw; /* 3はスライドの枚数 */
  }
}

/* スライドの画像 */
.slide img {
  display: block;
  width: 100%;
}

/* CSSアニメーション */
@keyframes scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
.order-banner {
  padding-top: 30px;
  padding-top: 1.875rem;
  margin-inline: auto;
  background-color: #f7f5f2;
}
@media screen and (min-width: 768px) {
  .order-banner {
    padding-top: 5.125rem;
    padding-bottom: 4.8125rem;
    width: 65%;
  }
}

@media screen and (min-width: 768px) {
  .order-banner__img {
    width: 105%;
  }
}

.greeting {
  position: relative;
  overflow-x: clip;
  padding-top: 35px;
  padding-top: 2.1875rem;
}
@media screen and (min-width: 768px) {
  .greeting {
    background-color: #fff;
    padding-top: 0;
  }
}

.greeting__inner.inner {
  padding: 0;
  max-width: none;
}
@media screen and (min-width: 768px) {
  .greeting__inner.inner {
    padding-bottom: 4rem;
    max-width: 1214px;
  }
}

.greeting__content {
  background-color: #c8d3e2;
  z-index: 1;
  position: relative;
  padding: 0 16px 76px 34px;
  padding: 0 1rem 4.75rem 2.125rem;
}
@media screen and (min-width: 768px) {
  .greeting__content {
    padding: 0;
    position: absolute;
    width: 58%;
    background-color: transparent;
    background-color: initial;
    padding-left: 1.6875rem;
  }
}
.greeting__content-img {
  margin: 0px calc(50% - 121vw);
  -webkit-transform: translateX(-143px);
          transform: translateX(-143px);
}

.greeting__eyebrow {
  display: inline-block;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.12em;
  color: #fff;
  padding-bottom: 11px;
  padding-bottom: 0.6875rem;
  margin-left: 4px;
  margin-left: 0.25rem;
  margin-top: 13px;
  margin-top: 0.8125rem;
  position: relative;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="0" /><feOffset dx="1" dy="1" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.2)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
  -webkit-filter: drop-shadow(0 0 3px rgba(0, 0, 0, .2));
          filter: drop-shadow(0 0 3px rgba(0, 0, 0, .2));
  -webkit-filter: drop-shadow(0 0 0.1875rem rgba(0, 0, 0, .2));
          filter: drop-shadow(0 0 0.1875rem rgba(0, 0, 0, .2));
}
@media screen and (min-width: 768px) {
  .greeting__eyebrow {
    border-bottom: 2px solid #fff;
    border-bottom: none;
    margin-top: 0;
    margin-left: 2.3125rem;
  }
}
@media screen and (min-width: 1440px) {
  .greeting__eyebrow {
    margin-top: 0.6875rem;
  }
}

.greeting__eyebrow::after {
  content: "";
  position: absolute;
  right: -7px;
  right: -0.4375rem;
  top: 4px;
  top: 0.25rem;
  background-color: #fff;
  height: 44%;
  width: 1px;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="0" /><feOffset dx="1" dy="1" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.2)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
  -webkit-filter: drop-shadow(0 0 3px rgba(0, 0, 0, .2));
          filter: drop-shadow(0 0 3px rgba(0, 0, 0, .2));
  -webkit-filter: drop-shadow(0 0 0.1875rem rgba(0, 0, 0, .2));
          filter: drop-shadow(0 0 0.1875rem rgba(0, 0, 0, .2));
}
@media screen and (min-width: 768px) {
  .greeting__eyebrow::after {
    bottom: -0.25rem;
    top: auto;
    background-image: url(../images/common/icon_white-line.png);
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: 2px;
    left: 0;
    -webkit-filter: none;
            filter: none;
  }
}

.greeting__head {
  position: absolute;
  -webkit-writing-mode: vertical-lr;
      -ms-writing-mode: tb-lr;
          writing-mode: vertical-lr;
  top: 21px;
  top: 1.3125rem;
  left: 33px;
  left: 2.0625rem;
}
@media screen and (min-width: 768px) {
  .greeting__head {
    top: -1.5625rem;
    -webkit-writing-mode: initial;
        -ms-writing-mode: initial;
            writing-mode: initial;
    left: 0;
  }
}

.greeting__title {
  font-size: clamp(29px, 19.533px + 2.5242718447vw, 68px);
  font-size: clamp(1.8125rem, 1.2208737864rem + 2.5242718447vw, 4.25rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.1;
  margin-top: 0px;
  margin-top: 0rem;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 0 0 7px rgba(0, 0, 0, .3);
  text-shadow: 0 0 0.4375rem rgba(0, 0, 0, .3);
  width: 48px;
  width: 3rem;
}
@media screen and (min-width: 768px) {
  .greeting__title {
    letter-spacing: 0.36em;
    width: 36.9375rem;
  }
}

@media screen and (min-width: 768px) {
  .greeting__title img {
    height: 5rem;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.greeting__lead {
  line-height: 1.5;
  margin-top: -40px;
  margin-top: -2.5rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  font-size: clamp(27px, 24.815px + 0.5825242718vw, 36px);
  font-size: clamp(1.6875rem, 1.5509708738rem + 0.5825242718vw, 2.25rem);
  position: relative;
  opacity: 0;
  margin-left: 9px;
  margin-left: 0.5625rem;
}
@media screen and (min-width: 768px) {
  .greeting__lead {
    letter-spacing: 0.08em;
    line-height: 1.6;
    margin-left: 0.625rem;
    margin-top: 6.625rem;
  }
}
@media screen and (min-width: 1440px) {
  .greeting__lead {
    margin-top: 7rem;
  }
}
@media screen and (min-width: 1920px) {
  .greeting__lead {
    margin-top: 8.4375rem;
  }
}

.greeting__lead.is-active {
  -webkit-animation: blur 0.8s ease-out forwards;
          animation: blur 0.8s ease-out forwards;
}
.greeting__message {
  font-family: hiragino kaku gothic pro;
  letter-spacing: 0.14em;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.87;
  margin-top: 14px;
  margin-top: 0.875rem;
  width: 95%;
  margin-inline: auto;
  color: #3e3a39;
  opacity: 0;
}
@media screen and (min-width: 768px) {
  .greeting__message {
    letter-spacing: 0.05em;
    line-height: 2.05;
    width: 105%;
    margin-top: 0.9375rem;
    width: 100%;
    margin-left: 0.6875rem;
  }
}
@media screen and (min-width: 1440px) {
  .greeting__message {
    margin-top: 1.0625rem;
  }
}
@media screen and (min-width: 1920px) {
  .greeting__message {
    width: 61%;
  }
}

.greeting__message.is-active {
  -webkit-animation: blur 0.8s ease-out forwards;
          animation: blur 0.8s ease-out forwards;
}

@-webkit-keyframes blur {
  0% {
    opacity: 0;
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="5" /></filter></svg>#filter');
    -webkit-filter: blur(5px);
            filter: blur(5px);
  }
  100% {
    opacity: 1;
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="0" /></filter></svg>#filter');
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}

@keyframes blur {
  0% {
    opacity: 0;
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="5" /></filter></svg>#filter');
    -webkit-filter: blur(5px);
            filter: blur(5px);
  }
  100% {
    opacity: 1;
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="0" /></filter></svg>#filter');
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
.greeting__signature {
  margin-top: 18px;
  margin-top: 1.125rem;
  margin-left: 10px;
  margin-left: 0.625rem;
  font-size: 16px;
  font-size: 1rem;
  letter-spacing: 0.06em;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .greeting__signature {
    margin-top: 0.9375rem;
    margin-left: 1rem;
  }
}
@media screen and (min-width: 1920px) {
  .greeting__signature {
    margin-top: 2.0625rem;
  }
}

.greeting__signature span {
  font-size: 21px;
  font-size: 1.3125rem;
}
@media screen and (min-width: 768px) {
  .greeting__signature span {
    font-size: 1.375rem;
  }
}

/* 右写真 */
.greeting__figure {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.greeting__photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  /* 左へ溶けるマスク */
  -webkit-mask-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0)), color-stop(18%, #000), to(#000));
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 18%, #000 100%);
  mask-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0)), color-stop(18%, #000), to(#000));
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 18%, #000 100%);
  border-radius: 0.5rem;
  -webkit-box-shadow: 0 0.625rem 1.5rem rgba(0, 0, 0, .18);
          box-shadow: 0 0.625rem 1.5rem rgba(0, 0, 0, .18);
}

@media screen and (min-width: 768px) {
  .greeting__bg {
    margin: 0 calc(50% - 50vw);
    max-height: 666px;
  }
}

.greeting__bg picture {
  height: inherit;
}

.greeting__bg img {
  -o-object-fit: cover;
     object-fit: cover;
  height: inherit;
  max-height: 666px;
}

.greeting__wrapper {
  display: grid;
  gap: 40px;
  gap: 2.5rem;
  grid-template-columns: repeat(1, 1fr);
  width: 100%;
  margin-inline: auto;
  position: relative;
  z-index: 1;
  background-color: #f7f5f2;
  background: -webkit-gradient(linear, left top, left bottom, from(#f7f5f2), color-stop(98%, #f7f5f2), color-stop(98%, #fff), to(#fff));
  background: linear-gradient(180deg, #f7f5f2 0%, #f7f5f2 98%, #fff 98%, #fff 100%);
}
@media screen and (min-width: 768px) {
  .greeting__wrapper {
    grid-template-columns: repeat(2, 1fr);
    margin-top: -1.5rem;
    width: 85%;
    position: static;
    position: initial;
    background: none;
  }
}
@media screen and (min-width: 1440px) {
  .greeting__wrapper {
    width: 100%;
  }
}

.greeting__profile,
.greeting__career {
  background: #fff;
  border-radius: 0.375rem;
  -webkit-box-shadow: 0 0 0.1875rem rgba(16, 27, 40, .08);
          box-shadow: 0 0 0.1875rem rgba(16, 27, 40, .08);
  padding: 16px 20px 40px 20px;
  padding: 1rem 1.25rem 2.5rem 1.25rem;
  position: relative;
  width: 90%;
  margin-inline: auto;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="0" /><feOffset dx="1" dy="1" result="offsetblur" /><feFlood flood-color="rgba(16,27,40,0.08)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
  -webkit-filter: drop-shadow(0 0 3px rgba(16, 27, 40, .08));
          filter: drop-shadow(0 0 3px rgba(16, 27, 40, .08));
  -webkit-filter: drop-shadow(0 0 0.1875rem rgba(16, 27, 40, .08));
          filter: drop-shadow(0 0 0.1875rem rgba(16, 27, 40, .08));
}
@media screen and (min-width: 768px) {
  .greeting__profile,
  .greeting__career {
    width: 100%;
    padding: 2.1875rem 1.5rem 2.5rem 1.5rem;
    border-radius: 0.5rem;
  }
}

/* ヘッダー */
.greeting__header {
  padding-bottom: 14px;
  padding-bottom: 0.875rem;
  text-align: center;
  position: relative;
}
@media screen and (min-width: 768px) {
  .greeting__header {
    width: 91%;
    margin-inline: auto;
    padding-bottom: 1.5rem;
  }
}
.greeting__header::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background: #604c3f;
  height: 1px;
  width: 100%;
  opacity: 0.21;
}

.greeting__sub-title {
  font-size: 23px;
  font-size: 1.4375rem;
  letter-spacing: 0.08em;
  color: #604c3f;
  margin-top: 6px;
  margin-top: 0.375rem;
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .greeting__sub-title {
    font-size: 1.5625rem;
  }
}

.greeting__sub-title.letter-spacing {
  letter-spacing: 0.4em;
}

.greeting__sub-title-en {
  color: #ad9f7f;
  font-weight: 600;
  font-size: 11px;
  font-size: 0.6875rem;
  letter-spacing: 0.28em;
  margin-top: 2px;
  margin-top: 0.125rem;
}
@media screen and (min-width: 768px) {
  .greeting__sub-title-en {
    margin-top: 0.5625rem;
    font-size: 0.9375rem;
  }
}

.greeting__profile {
  margin-top: -30px;
  margin-top: -1.875rem;
}
@media screen and (min-width: 768px) {
  .greeting__profile {
    margin-top: 0;
  }
}

/* プロフィール本文 */
.greeting__profile-detail {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.88;
  font-family: hiragino kaku gothic pro;
  margin-top: 14px;
  margin-top: 0.875rem;
  letter-spacing: 0.08em;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .greeting__profile-detail {
    line-height: 2;
    font-size: 0.875rem;
    margin-top: 1.25rem;
    width: 92%;
    margin-inline: auto;
    font-size: 0.9375rem;
    line-height: 2.2;
    letter-spacing: 0.14em;
  }
}

/* 経歴：タイムライン */
.greeting__list {
  padding-left: 0;
  display: grid;
}
@media screen and (min-width: 768px) {
  .greeting__list {
    width: 90%;
    margin-inline: auto;
  }
}

.greeting__item {
  display: grid;
  gap: 12px;
  gap: 0.75rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  padding-top: 18px;
  padding-top: 1.125rem;
  padding-bottom: 18px;
  padding-bottom: 1.125rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
}
@media screen and (min-width: 768px) {
  .greeting__item {
    grid-template-columns: auto 1fr;
    gap: 1.5625rem;
    padding-top: 0.9375rem;
    padding-bottom: 0.9375rem;
  }
}

.greeting__item::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background: #604c3f;
  height: 1px;
  width: 100%;
  opacity: 0.21;
}

.greeting__year {
  display: inline-block;
  min-width: 84px;
  min-width: 5.25rem;
  text-align: center;
  font-size: 16px;
  font-size: 1rem;
  letter-spacing: 0.06em;
  color: #604c3f;
  border-radius: 0.625rem;
  padding: 6px 24px;
  padding: 0.375rem 1.5rem;
  background-color: #f7f5f2;
  width: 39%;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .greeting__year {
    width: 100%;
  }
}

.greeting__text {
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 1.83;
  font-family: hiragino kaku gothic pro;
  text-align: center;
  letter-spacing: 0.08em;
}
@media screen and (min-width: 768px) {
  .greeting__text {
    color: #3e3a39;
    letter-spacing: 0.05em;
    text-align: left;
    text-align: initial;
    line-height: 1.6;
    font-size: 1rem;
  }
}

.access {
  padding-top: 48px;
  padding-top: 3rem;
  padding-bottom: 50px;
  padding-bottom: 3.125rem;
  background-color: #fff;
}
@media screen and (min-width: 768px) {
  .access {
    padding-top: 2.4375rem;
    padding-bottom: 6.125rem;
  }
}

.access__title.sec-title__en {
  width: 76%;
}
@media screen and (min-width: 768px) {
  .access__title.sec-title__en {
    width: 33%;
  }
}

.access__map {
  margin-top: 20px;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .access__map {
    margin-top: 3.125rem;
  }
}

.access__map__access {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 62%;
}
@media screen and (min-width: 768px) {
  .access__map__access {
    padding-top: 24.5%;
  }
}

.access__map__access iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.access__map-attention.inner {
  max-width: 1240px;
  font-size: 16px;
  font-size: 1rem;
  width: 94%;
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin-top: 14px;
  margin-top: 0.875rem;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .access__map-attention.inner {
    font-size: 1.0625rem;
    width: 100%;
    margin-top: 1rem;
  }
}

@media screen and (min-width: 768px) {
  .access__inner.inner {
    max-width: 1240px;
  }
}

.access__wrapper {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media screen and (min-width: 768px) {
  .access__wrapper {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 6%;
    margin-top: 3.125rem;
  }
}

.access__content {
  margin-top: 24px;
  margin-top: 1.5rem;
  position: relative;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .access__content {
    width: 48%;
    margin-top: 0;
  }
}

@media screen and (min-width: 768px) {
  .access__content img {
    aspect-ratio: 580/384;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.access__slider {
  position: relative;
}

.access__slider-buttons {
  position: absolute;
  bottom: -31px;
  bottom: -1.9375rem;
  z-index: 1;
  width: 96%;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .access__slider-buttons {
    width: 7.375rem;
    bottom: -1.75rem;
    left: 41%;
  }
}
@media screen and (min-width: 1440px) {
  .access__slider-buttons {
    left: 44%;
  }
}

/* accessスライダーの前への矢印 */
.access__slider-prev::after {
  background-image: url(../images/common/arrow-prev-brown.png);
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-111%);
          transform: translateY(-111%);
  height: 60px;
  height: 3.75rem;
  width: 60px;
  width: 3.75rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .access__slider-prev::after {
    height: 4.1875rem;
    width: 4.1875rem;
    -webkit-transform: translateY(-103%);
            transform: translateY(-103%);
  }
}

.access__slider-next::after {
  background-image: url(../images/common/arrow-next-brown.png);
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-103%);
          transform: translateY(-103%);
  height: 60px;
  height: 3.75rem;
  width: 60px;
  width: 3.75rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .access__slider-next::after {
    height: 4.1875rem;
    width: 4.1875rem;
  }
}

/* 次への矢印カスタマイズ */
.access__slider-prev {
  -webkit-transform: translateX(-5%);
          transform: translateX(-5%);
}
.access__slider-prev.swiper-button-disabled {
  cursor: default;
  opacity: 0.5;
}

.access__slider-next {
  -webkit-transform: translateX(6%) translateY(103%);
          transform: translateX(6%) translateY(103%);
}
@media screen and (min-width: 768px) {
  .access__slider-next {
    -webkit-transform: translateX(10%) translateY(103%);
            transform: translateX(10%) translateY(103%);
  }
}
.access__slider-next.swiper-button-disabled {
  cursor: default;
  opacity: 0.5;
}

.access__slider-prev.swiper-button-disabled::after {
  background-image: url(../images/common/arrow-pre.png);
  background-repeat: no-repeat;
  background-size: contain;
}

.access__slider-next.swiper-button-disabled::after {
  background-image: url(../images/common/arrow-next.png);
  background-repeat: no-repeat;
  background-size: contain;
}

.access__slider .swiper-wrapper {
  z-index: 0;
}

.access__logo {
  width: 68%;
  margin-inline: auto;
  margin-top: 22px;
  margin-top: 1.375rem;
  padding-right: 5px;
  padding-right: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .access__logo {
    width: 52%;
    margin-inline: initial;
    margin-top: 0;
    padding-right: 0;
  }
}

.access__address {
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.02em;
  margin-top: 14px;
  margin-top: 0.875rem;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
  line-height: 1.67;
  width: 92%;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .access__address {
    width: 100%;
    margin-inline: initial;
    margin-top: 1.3125rem;
    letter-spacing: 0.03em;
  }
}

.access__address span {
  font-size: 14px;
  font-size: 0.875rem;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .access__address span {
    font-size: 0.9375rem;
  }
}

.access__contact {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .access__contact {
    text-align: left;
    text-align: initial;
  }
}

.access__contact-label {
  display: inline-block;
  padding: 9px 26px;
  padding: 0.5625rem 1.625rem;
  font-size: 17px;
  font-size: 1.0625rem;
  background-color: #f5f6f6;
  color: #3e3a39;
  margin-top: 18px;
  margin-top: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  border-radius: 3px;
}
@media screen and (min-width: 768px) {
  .access__contact-label {
    font-size: 1rem;
    letter-spacing: 0.06em;
    padding: 0.3125rem 0.75rem;
    margin-top: 1.5rem;
  }
}

.access__wrap {
  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;
  gap: 25px;
  gap: 1.5625rem;
  margin-top: 20px;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .access__wrap {
    -webkit-box-pack: initial;
        -ms-flex-pack: initial;
            justify-content: initial;
    margin-top: 0.9375rem;
  }
}

.access__contact-tel {
  color: #604c3f;
  font-size: 29px;
  font-size: 1.8125rem;
  padding-left: 20px;
  padding-left: 1.25rem;
  font-weight: 600;
  position: relative;
  gap: 18px;
  gap: 1.125rem;
}
@media screen and (min-width: 768px) {
  .access__contact-tel {
    -webkit-box-pack: initial;
        -ms-flex-pack: initial;
            justify-content: initial;
    padding-left: 1.625rem;
    gap: 1.875rem;
  }
}

.access__contact-tel::before {
  content: "";
  position: absolute;
  left: -7px;
  left: -0.4375rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-image: url(../images/common/icon_tel.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 20px;
  height: 1.25rem;
  width: 20px;
  width: 1.25rem;
}
@media screen and (min-width: 768px) {
  .access__contact-tel::before {
    left: 0;
  }
}

.access__contact-mail {
  width: 25px;
  width: 1.5625rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .access__contact-mail {
    width: 5%;
  }
}

.access__contact-mail::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background: #f7f5f2;
  height: 47px;
  height: 2.9375rem;
  width: 47px;
  width: 2.9375rem;
  border-radius: 50%;
  z-index: -1;
}

.access__contact-tel span img {
  position: relative;
  z-index: 2;
}

.access__contact-tel-text {
  margin-top: 10px;
  margin-top: 0.625rem;
  font-size: 15px;
  font-size: 0.9375rem;
  letter-spacing: 0.04em;
  display: block;
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .access__contact-tel-text {
    font-size: 1rem;
    margin-top: 0.4375rem;
  }
}

.access__list {
  margin-top: 13px;
  margin-top: 0.8125rem;
  width: 90%;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .access__list {
    margin-top: 1.1875rem;
    width: 100%;
    margin-inline: initial;
  }
}

.access__row {
  border-bottom: 1px solid rgba(6, 8, 8, .4);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 16px;
  font-size: 1rem;
  padding: 13px 20px;
  padding: 0.8125rem 1.25rem;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .access__row {
    padding: 0.9375rem 1.25rem;
  }
}

.access__row:first-child {
  border-top: 1px solid rgba(6, 8, 8, .4);
}

.access__term {
  width: 41%;
  position: relative;
  letter-spacing: 0.03em;
}
@media screen and (min-width: 768px) {
  .access__term {
    width: 19%;
  }
}

.access__term.holiday {
  letter-spacing: 0.6em;
}

.access__term::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: #060808;
  height: 120%;
  width: 1px;
  opacity: 0.4;
}

.access__desc {
  padding-left: 33px;
  padding-left: 2.0625rem;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.06em;
  font-family: hiragino kaku gothic pro;
}
@media screen and (min-width: 768px) {
  .access__desc {
    font-size: 1rem;
  }
}

.access__info {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 34px;
  gap: 2.125rem;
  background: #f5f6f6; /* 薄いグレー背景 */
  border-radius: 0.75rem;
  padding: 20px 12px 20px;
  padding: 1.25rem 0.75rem 1.25rem;
  margin-top: 24px;
  margin-top: 1.5rem;
  width: 92%;
  margin-inline: auto;
  color: #3e3a39;
}
@media screen and (min-width: 768px) {
  .access__info {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    padding: 0.5rem 3.125rem;
    gap: 1rem;
    margin-inline: initial;
    width: 100%;
    margin-top: 3.25rem;
  }
}

.access__info-label {
  -ms-flex-item-align: center;
      align-self: center;
  font-size: 17px;
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding-right: 16px;
  padding-right: 1rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .access__info-label {
    width: 25%;
    letter-spacing: 0.05em;
    font-size: 1rem;
  }
}

.access__info-label::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -17px;
  bottom: -1.0625rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background: #fff;
  height: 1px;
  width: 108%;
}
@media screen and (min-width: 768px) {
  .access__info-label::before {
    right: 0;
    left: auto;
    height: 200%;
    width: 2px;
    top: 50%;
    bottom: auto;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}

.access__info-desc {
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 1.9;
}
@media screen and (min-width: 768px) {
  .access__info-desc {
    padding-left: 1.375rem; /* 仕切り線からの余白 */
  }
}

.access__info-desc p {
  font-family: hiragino kaku gothic pro;
  color: #3e3a39;
}

.access__info-desc p .space {
  letter-spacing: 0.18em;
}

.faq {
  background-color: #f7f5f2;
}

.faq__inner {
  padding-bottom: 53px;
  padding-bottom: 3.3125rem;
  padding-top: 61px;
  padding-top: 3.8125rem;
}
@media screen and (min-width: 768px) {
  .faq__inner {
    max-width: 1240px;
    padding-top: 5.6875rem;
    padding-bottom: 5.3125rem;
  }
}

.faq__title-en.sec-title__en {
  width: 41%;
}
@media screen and (min-width: 768px) {
  .faq__title-en.sec-title__en {
    width: 18%;
  }
}

.faq__list {
  margin-top: 26px;
  margin-top: 1.625rem;
}
@media screen and (min-width: 768px) {
  .faq__list {
    margin-top: 2.5rem;
  }
}

.faq-list__item {
  background-color: #fff;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="5" /><feOffset dx="1" dy="1" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.1)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
  -webkit-filter: drop-shadow(0 0 5px rgba(0, 0, 0, .1));
          filter: drop-shadow(0 0 5px rgba(0, 0, 0, .1));
  font-weight: 600;
  border-radius: 8px;
}

.faq-list__item + .faq-list__item {
  margin-top: 20px;
  margin-top: 1.25rem;
}
@media screen and (min-width: 768px) {
  .faq-list__item + .faq-list__item {
    margin-top: 2.0625rem;
  }
}

.faq-list__item-question {
  padding: 15px 34px 15px 39px;
  padding: 0.9375rem 2.125rem 0.9375rem 2.4375rem;
  position: relative;
  font-size: 16px;
  font-size: 1rem;
  cursor: pointer;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .faq-list__item-question {
    padding: 1.25rem 3.75rem 1.25rem 4.125rem;
    font-size: 1.125rem;
  }
}

.faq-list__item-question::before {
  content: "";
  position: absolute;
  top: 44%;
  right: 16px;
  right: 1rem;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  border-top: 2px solid #a38a77;
  border-top: 0.125rem solid #a38a77;
  border-right: 2px solid #a38a77;
  border-right: 0.125rem solid #a38a77;
  -webkit-transform: translateY(-50%) rotate(135deg);
          transform: translateY(-50%) rotate(135deg);
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .faq-list__item-question::before {
    width: 0.8125rem;
    height: 0.8125rem;
    right: 1.875rem;
    border-top: 0.1875rem solid #a38a77;
    border-right: 0.1875rem solid #a38a77;
    top: 50%;
  }
}

.faq-list__item-question.is-open::before {
  -webkit-transform: translateY(-50%) rotate(315deg);
          transform: translateY(-50%) rotate(315deg);
}

.faq-list__item-question span {
  margin-right: 3px;
  margin-right: 0.1875rem;
  display: inline-block;
  top: 52%;
  width: 13px;
  width: 0.8125rem;
  position: absolute;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  left: 16px;
  left: 1rem;
}
@media screen and (min-width: 768px) {
  .faq-list__item-question span {
    margin-right: 0.75rem;
    width: 1rem;
    left: 1.875rem;
    top: 54%;
  }
}

.faq-list__item-answer {
  padding: 15px 30px 15px 38px;
  padding: 0.9375rem 1.875rem 0.9375rem 2.375rem;
  display: none;
  font-size: 15px;
  font-size: 0.9375rem;
  text-indent: -20px;
  text-indent: -1.25rem;
  text-indent: -11px;
  text-indent: -0.6875rem;
}
@media screen and (min-width: 768px) {
  .faq-list__item-answer {
    padding: 1.25rem 2.5rem 0.9375rem 4rem;
    font-size: 1.125rem;
    text-indent: -1rem;
  }
}

.faq-list__item-answer span {
  margin-right: 10px;
  margin-right: 0.625rem;
  display: inline-block;
  color: #604c3f;
}
@media screen and (min-width: 768px) {
  .faq-list__item-answer span {
    margin-right: 0.875rem;
  }
}

.contact {
  padding-top: 63px;
  padding-top: 3.9375rem;
  padding-bottom: 54px;
  padding-bottom: 3.375rem;
}
@media screen and (min-width: 768px) {
  .contact {
    padding-top: 5.9375rem;
    padding-bottom: 6.25rem;
  }
}

.contact__catch-wrapper {
  text-align: center;
}

.contact__catch {
  display: inline-block;
  position: relative;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.05em;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .contact__catch {
    font-size: 1.1875rem;
    letter-spacing: 0.03em;
  }
}

.contact__catch::before,
.contact__catch::after {
  content: "";
  position: absolute;
  top: 79%;
  width: 1px;
  height: 19px;
  height: 1.1875rem;
  background: repeating-linear-gradient(to bottom, #000 2px, #000 3px, transparent 0, transparent 5px);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transform: translateY(-50%) rotate(-30deg);
          transform: translateY(-50%) rotate(-30deg);
}
@media screen and (min-width: 768px) {
  .contact__catch::before,
  .contact__catch::after {
    height: 1.625rem;
    background: repeating-linear-gradient(to bottom, #000 0, #000 3px, transparent 0, transparent 6px);
  }
}

.contact__catch::before {
  left: -8px;
  left: -0.5rem;
  -webkit-transform: translateY(-50%) rotate(-30deg);
          transform: translateY(-50%) rotate(-30deg);
}
@media screen and (min-width: 768px) {
  .contact__catch::before {
    left: -0.6875rem;
  }
}

.contact__catch::after {
  right: -4px;
  right: -0.25rem;
  -webkit-transform: translateY(-50%) rotate(26deg);
          transform: translateY(-50%) rotate(26deg);
}
@media screen and (min-width: 768px) {
  .contact__catch::after {
    right: -0.9375rem;
  }
}

.contact__title {
  margin-top: 13px;
  margin-top: 0.8125rem;
}

.contact-title__en.sec-title__en {
  width: 88%;
}
@media screen and (min-width: 768px) {
  .contact-title__en.sec-title__en {
    width: 26%;
  }
}

.contact__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-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .contact__inner {
    gap: 1.5rem;
    margin-top: 3rem;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 8%;
  }
}

.contact .sec-title__message::before {
  left: -67px;
  left: -4.1875rem;
}
@media screen and (min-width: 768px) {
  .contact .sec-title__message::before {
    left: -6.875rem;
  }
}

.contact .sec-title__message::after {
  right: -67px;
  right: -4.1875rem;
}
@media screen and (min-width: 768px) {
  .contact .sec-title__message::after {
    right: -6.875rem;
  }
}

.kugiri {
  width: 2px;
  height: 132px;
  height: 8.25rem;
  background-color: #f7f5f2;
}

.contact__col {
  text-align: center;
}

.contact__label {
  display: inline-block;
  font-size: 17px;
  font-size: 1.0625rem;
  padding: 10px 35px;
  padding: 0.625rem 2.1875rem;
  letter-spacing: 0.06em;
  background: #f7f5f2;
  border-radius: 0.75rem;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .contact__label {
    display: block;
    font-size: 1.125rem;
    margin-inline: auto;
    width: 78%;
    padding: 0.625rem 0;
  }
}

.contact__phoneWrap {
  display: block;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  gap: 0.625rem;
  margin-top: 14px;
  margin-top: 0.875rem;
  color: #604c3f;
}
@media screen and (min-width: 768px) {
  .contact__phoneWrap {
    margin-top: 1.125rem;
  }
}

.contact__icon {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1;
}

.contact__tel {
  font-size: 27px;
  font-size: 1.6875rem;
  margin-left: 32px;
  margin-left: 2rem;
  letter-spacing: 0.08em;
  font-weight: 600;
  display: inline-block;
  position: relative;
}
@media screen and (min-width: 768px) {
  .contact__tel {
    margin-left: 1.7em;
  }
}

.contact__tel::before {
  content: "";
  position: absolute;
  left: -31px;
  left: -1.9375rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-image: url(../images/common/icon_tel.png);
  background-repeat: no-repeat;
  background-size: contain;
  height: 20px;
  height: 1.25rem;
  width: 20px;
  width: 1.25rem;
}

.contact__message {
  margin-top: 6px;
  margin-top: 0.375rem;
  padding-left: 1em;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.01em;
  font-family: hiragino kaku gothic pro;
}
@media screen and (min-width: 768px) {
  .contact__message {
    margin-top: 0.5rem;
  }
}

.contact__col--phone {
  position: relative;
  padding-bottom: 25px;
  padding-bottom: 1.5625rem;
  margin-top: 29px;
  margin-top: 1.8125rem;
}
@media screen and (min-width: 768px) {
  .contact__col--phone {
    padding-bottom: 0;
    margin-top: 0;
  }
}

.contact__col--phone::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background-color: #f7f5f2;
  height: 1px;
  width: 107%;
}
@media screen and (min-width: 768px) {
  .contact__col--phone::after {
    content: none;
  }
}

.contact__col--form {
  margin-top: 28px;
  margin-top: 1.75rem;
}
@media screen and (min-width: 768px) {
  .contact__col--form {
    margin-top: 0;
  }
}

/* ボタン */
.contact__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  gap: 0.625rem;
  padding: 15px 54px 15px 28px;
  padding: 0.9375rem 3.375rem 0.9375rem 1.75rem;
  background-color: #000;
  color: #fff;
  border-radius: 0.5rem;
  font-size: 19px;
  font-size: 1.1875rem;
  letter-spacing: 0.04em;
  margin-top: 21px;
  margin-top: 1.3125rem;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  border: 1px solid #000;
  position: relative;
}
.contact__btn:hover {
  background-color: #fff;
  color: #000;
}
.contact__btn:hover .contact__btnIcon svg {
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="1 0" /><feFuncG type="table" tableValues="1 0" /><feFuncB type="table" tableValues="1 0" /></feComponentTransfer></filter></svg>#filter');
  -webkit-filter: invert(1);
          filter: invert(1);
}
.contact__btn:hover .contact__btnArrow::before {
  border-top-color: #000;
  border-right-color: #000;
}
@media screen and (min-width: 768px) {
  .contact__btn {
    margin-top: 1.875rem;
    padding: 0.9375rem 2.125rem;
    width: 18.4375rem;
  }
}

.contact__btnIcon {
  width: 27px;
  width: 1.6875rem;
  height: 27px;
  height: 1.6875rem;
}
.contact__btnIcon svg {
  -webkit-transition: -webkit-filter 0.5s ease;
  transition: -webkit-filter 0.5s ease;
  transition: filter 0.5s ease;
  transition: filter 0.5s ease, -webkit-filter 0.5s ease;
}

.contact__btnText {
  line-height: 1;
}

.contact__btnArrow {
  font-size: 40px;
  font-size: 2.5rem;
  line-height: 1;
  position: relative;
  display: inline-block;
  width: 20px;
  width: 1.25rem;
  height: 20px;
  height: 1.25rem;
  position: absolute;
  right: 20px;
  right: 1.25rem;
}

.contact__btnArrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 6%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 12px;
  width: 0.75rem;
  height: 12px;
  height: 0.75rem;
  border-top: 2px solid #fff;
  border-top: 0.125rem solid #fff;
  border-right: 2px solid #fff;
  border-right: 0.125rem solid #fff;
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}

body.blog {
  background-color: #f7f5f2;
}

body.category {
  background-color: #f7f5f2;
}

.blog .contact {
  background-color: #fff;
}

.category .contact {
  background-color: #fff;
}

.sub-topics__inner.inner {
  padding-left: 15px;
  padding-right: 15px;
  padding-bottom: 35px;
  padding-bottom: 2.1875rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__inner.inner {
    max-width: 1592px;
    padding-bottom: 8rem;
  }
}

@media screen and (min-width: 768px) {
  .sub-topics .topics__title-en.sec-title__en {
    width: 25%;
  }
}

.sub-topics__wrap {
  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-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
@media screen and (min-width: 768px) {
  .sub-topics__wrap {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 3%;
    margin-top: 4rem;
  }
}

.sub-topics__main {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .sub-topics__main {
    width: 78%;
  }
}

.sub-topics__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 32px;
  row-gap: 2rem;
  margin-top: 25px;
  margin-top: 1.5625rem;
  width: 90%;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .sub-topics__list {
    width: 100%;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 3%;
    row-gap: 3.75rem;
    margin-top: 0;
  }
}

@media screen and (min-width: 768px) {
  .sub-topics__item {
    width: 31.3%;
  }
}

.sub-topics__item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
}

.sub-topics__link:hover .sub-topics__thumb img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.sub-topics__thumb {
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 310/199;
}
@media screen and (min-width: 768px) {
  .sub-topics__thumb {
    aspect-ratio: 329/218;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.sub-topics__thumb img {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.sub-topics__title {
  margin-top: 10px;
  margin-top: 0.625rem;
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.03em;
  line-height: 1.7;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (min-width: 768px) {
  .sub-topics__title {
    letter-spacing: 0.12em;
    margin-top: 0.875rem;
  }
}

.sub-topics__title .topics__title-en.sec-title__en {
  width: 75%;
}
@media screen and (min-width: 768px) {
  .sub-topics__title .topics__title-en.sec-title__en {
    width: 25%;
  }
}

.sub-topics__meta {
  margin-top: 7px;
  margin-top: 0.4375rem;
  padding-left: 2px;
  padding-left: 0.125rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .sub-topics__meta {
    margin-top: auto;
  }
}

.sub-topics__category {
  color: #ad9f7f;
  background-color: #fff;
  padding: 4px 10px;
  padding: 0.25rem 0.625rem;
  font-family: hiragino kaku gothic pro;
  font-size: 13px;
  font-size: 0.8125rem;
  border-radius: 15px;
}
@media screen and (min-width: 768px) {
  .sub-topics__category {
    padding: 0.1875rem 0.625rem;
  }
}

.sub-topics__date {
  color: #ad9f7f;
  margin-left: 17px;
  margin-left: 1.0625rem;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .sub-topics__date {
    letter-spacing: 0.08em;
  }
}

.sub-topics__noPosts {
  text-align: center;
  width: 100%;
}

/* sidebar */
.sub-topics__sidebar {
  display: grid;
  gap: 16px;
  gap: 1rem;
  width: 100%;
  margin-top: 45px;
  margin-top: 2.8125rem;
}
@media screen and (min-width: 768px) {
  .sub-topics__sidebar {
    width: 19%;
    margin-top: 0;
  }
}

.sub-topics__widget {
  color: #fff;
  border-radius: 0.5rem;
  padding: 12px;
  padding: 0.75rem;
}

.sub-topics__widget.category-widget {
  margin-top: 26px;
  margin-top: 1.625rem;
}

.sub-topics__widgetTitle {
  font-size: 17px;
  font-size: 1.0625rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-align: center;
  background: #000;
  border-radius: 0.5rem;
  position: relative;
  color: #ad9f7f;
}
.sub-topics__widgetTitle::after {
  content: "";
  position: absolute;
  bottom: -8px;
  bottom: -0.5rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-left: 0.5rem solid transparent;
  border-right: 8px solid transparent;
  border-right: 0.5rem solid transparent;
  border-top: 8px solid #000;
  border-top: 0.5rem solid #000;
}

.sub-topics__widgetTitle a {
  display: inline-block;
  padding: 20px 0;
  padding: 1.25rem 0;
  width: 100%;
}

.sub-topics__widgetTitle::before {
  content: "";
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  border-top: solid 2px #ad9f7f;
  border-right: solid 2px #ad9f7f;
  position: absolute;
  right: 21px;
  right: 1.3125rem;
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}

.sub-topics__widgetTitle.category-title::after {
  content: none;
}

.sub-topics__widgetTitle.category-title {
  position: relative;
  padding: 20px 0;
  padding: 1.25rem 0;
}

.sub-topics__widgetTitle.category-title span {
  position: absolute;
  right: 21px;
  right: 1.3125rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 30px;
  width: 1.875rem;
  height: 30px;
  height: 1.875rem;
  display: block;
  background-color: #fff;
  border-radius: 50%;
}

.sub-topics__widgetTitle.category-title span::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background-color: #ad9f7f;
  height: 1px;
  width: 60%;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.sub-topics__widgetTitle.category-title span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background-color: #ad9f7f;
  width: 1px;
  height: 60%;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.sub-topics__widgetTitle.category-title span.is-open::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

.recent-posts .sub-topics__widgettitle {
  font-size: 18px;
  font-size: 1.125rem;
}

.sub-topics__widgetTitle.sub-topics__widgetTitle--white {
  background-color: #fff;
  color: #000;
  padding: 20px 0;
  padding: 1.25rem 0;
}

.sub-topics__widgetTitle.sub-topics__widgetTitle--white::before {
  content: none;
}

.sub-topics__widgetTitle.sub-topics__widgetTitle--white::after {
  border-top: 8px solid #fff;
  border-top: 0.5rem solid #fff;
}

.sub-topics__widgetList {
  list-style: none;
  margin-top: 20px;
  margin-top: 1.25rem;
  background: #fff;
  border-radius: 0.5rem;
  padding: 10px 9px;
  padding: 0.625rem 0.5625rem;
}

.category-widget .sub-topics__widgetList {
  margin-top: 0;
}

.sub-topics__widgetItem {
  border-bottom: 1px solid #eee;
  border-bottom: 0.0625rem solid #eee;
}

.sub-topics__widgetItem:last-child {
  border-bottom: 0;
}

.sub-topics__widgetLink {
  display: block;
  padding: 22px 19px 18px;
  padding: 1.375rem 1.1875rem 1.125rem;
  text-decoration: none;
  color: #000;
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: 600;
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}

.sub-topics__widgetLink:hover {
  background: #f6f6f6;
}

.sub-topics__widgetLink-date {
  color: #ad9f7f;
  margin-top: 7px;
  display: block;
}

/* hover */
.sub-topics__item:hover .sub-topics__title {
  color: #ad9f7f;
}

/* TOPボタン */
.top-button {
  display: none;
}
@media screen and (min-width: 768px) {
  .top-button {
    position: fixed;
    bottom: 3.625rem;
    right: 5.9375rem;
    width: 3.75rem;
    height: 3.75rem;
    background-color: #000;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    z-index: 1000;
    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-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
            box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
  }
}
.top-button.is-visible {
  opacity: 1;
  visibility: visible;
}
.top-button:hover {
  background-color: #1a1a1a;
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
  -webkit-box-shadow: 0 6px 16px rgba(0, 0, 0, .2);
          box-shadow: 0 6px 16px rgba(0, 0, 0, .2);
}
.top-button::before {
  content: "";
  position: absolute;
  top: 27%;
  left: 56%;
  width: 12px;
  width: 0.75rem;
  height: 12px;
  height: 0.75rem;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -webkit-transform: rotate(-45deg) translate(-50%, -50%);
          transform: rotate(-45deg) translate(-50%, -50%);
}

.top-button__text {
  color: #fff;
  font-size: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  margin-top: 17px;
  margin-top: 1.0625rem;
  letter-spacing: 0.1em;
}

.sub-topics__pagination {
  margin-top: 91px;
  margin-top: 5.6875rem;
}

/* ページネーション */
.pagination {
  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;
  gap: 6px;
  gap: 0.375rem;
}
@media screen and (min-width: 768px) {
  .pagination {
    gap: 0.25rem;
  }
}

.pagination a {
  padding: 6px 15px;
  padding: 0.375rem 0.9375rem;
  text-decoration: none;
  color: #42342c;
  font-size: 17px;
  font-size: 1.0625rem;
  background-color: #ffffff; /* 追加 */
  border: 0.3px solid #717071; /* 追加 */
  -webkit-box-shadow: 0 0 1.7px rgba(35, 24, 21, .2);
          box-shadow: 0 0 1.7px rgba(35, 24, 21, .2);
  border-radius: 2px;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

.js-category-toggle {
  cursor: pointer;
  position: relative;
}
.js-category-toggle::after {
  content: "";
  position: absolute;
  right: 20px;
  right: 1.25rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  border-top: solid 2px #000;
  border-right: solid 2px #000;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.js-category-toggle.is-open::after {
  -webkit-transform: translateY(-50%) rotate(135deg);
          transform: translateY(-50%) rotate(135deg);
}

.category-widget .sub-topics__widgetList {
  display: none;
}
/*# sourceMappingURL=styles.css.map */
