@charset "UTF-8";

:root {
  --color-deco: #8b6f6f;
  --color-primary: #542e2a;
  --color-dark: #111;
  --color-base: #eeebea;
  --color-base-dark: #837373;
  --color-base-dark03: #b4a9a9;
  --font-jp: "Noto Sans JP", sans-serif;
  --font-min: "Noto Serif JP", serif;
  --font-en: "Cormorant Garamond", serif;
}

/* ---------------------------------------common set */

/* -------------------------
   共通設定
------------------------- */
html {
  font-size: 1px; /* PC基準: 1rem = 1px */
  overscroll-behavior: none;
  scroll-behavior: smooth;
}

/* -------------------------
   スマホ（〜767px）
   → 420px幅を基準に拡大
------------------------- */
@media (max-width: 767px) {
  html {
    font-size: calc(100vw / 430);
  }
}

/* -------------------------
   タブレット（768〜1180px）
   → デザイン幅1140px基準で縮小
------------------------- */
@media (min-width: 768px) and (max-width: 1180px) {
  html {
    font-size: calc(100vw / 1180);
  }
}

/* CSS STYLE */
body {
  font-family: var(--font-jp);
  font-size: 16rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 2;
  color: #111;
}
@media only screen and (max-width: 959px) {
  body {
    font-size: 14rem;
  }
}
* {
  box-sizing: border-box;
}
a,
a img {
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
a[href^="tel:"] {
  text-decoration: underline;
}
@media only screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    text-decoration: none;
  }
}
a:hover img {
  opacity: 0.7;
}
img {
  width: 100%;
  height: auto;
}
iframe {
  vertical-align: bottom;
}
.cb {
  clear: both;
}
.nolink {
  pointer-events: none;
  color: #999 !important;
}
.pc {
  display: block;
}
.sp {
  display: none;
}
@media only screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
@media only screen and (min-width: 768px) {
  .phone {
    pointer-events: none;
  }
}
.anchor {
  padding-top: 80rem;
  margin-top: -80rem;
}
/* PARTS */
.inner {
  position: relative;
  width: min(calc(100% - 32rem), 1116rem);
  margin: auto;
}
.btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(100%, 390rem);
  height: 68rem;
  position: relative;
  color: #fff;
  font-size: 16erm;
}
@media only screen and (max-width: 767px) {
  .btn {
    height: 64rem;
  }
}
.btn.black {
  background: var(--color-dark);
}
.btn.black:hover {
  background: #555;
}
.btn.primary {
  background: var(--color-primary);
}
.btn.primary:hover {
  background: var(--color-deco);
}
.btn.deco {
  background: var(--color-deco);
}
.btn.deco:hover {
  background: var(--color-primary);
}
.btn.dark {
  background: #ded3d1;
  color: var(--color-dark);
}
.btn.dark:hover {
  background: var(--color-base-dark);
}
.btn.line {
  background: #06c755;
}
.btn.line:hover {
  background: #02a846;
}
.btn::after {
  content: "";
  display: block;
  width: 8rem;
  height: 8rem;
  border-top: #fff 2px solid;
  border-right: #fff 2px solid;
  position: absolute;
  top: 50%;
  right: 26rem;
  transform: rotate(45deg) translateY(-50%);
  transition: 0.3s;
}
.btn:hover::after {
  right: 21rem;
}

.btn.down::after {
  content: "";
  display: block;
  width: 10rem;
  height: 10rem;
  border-top: #fff 2px solid;
  border-right: #fff 2px solid;
  position: absolute;
  top: 50%;
  right: 26rem;
  transform: rotate(135deg) translateY(77%);
  transition: 0.3s;
}

.btn.down.is-active::after {
  content: "";
  display: block;
  width: 10rem;
  height: 10rem;
  border-top: #fff 2px solid;
  border-right: #fff 2px solid;
  position: absolute;
  top: 50%;
  right: 26rem;
  transform: rotate(-45deg) translateY(0);
  transition: 0.3s;
}

.btn.white {
  background: #fff;
  color: var(--color-primary);
}
.btn.white::after {
  border-top: var(--color-primary) 2px solid;
  border-right: var(--color-primary) 2px solid;
}
.btn.dark::after {
  border-top: var(--color-base-dark) 2px solid;
  border-right: var(--color-base-dark) 2px solid;
}
.btn.white:hover {
  background: var(--color-base-dark);
  color: #fff;
}
.btn.white:hover::after,
.btn.dark:hover::after {
  border-top: #fff 2px solid;
  border-right: #fff 2px solid;
}
.fade {
  opacity: 0;
  -webkit-transition: 0.6s linear;
  transition: 0.6s linear;
}
.fade.active {
  opacity: 1;
}
.fade-l {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(-20rem, 0);
  transform: translate(-20rem, 0);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-l.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-r {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(20rem, 0);
  transform: translate(20rem, 0);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-r.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-t {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(0, -20rem);
  transform: translate(0, -20rem);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-t.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-b {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(0, 20rem);
  transform: translate(0, 20rem);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-b.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-w {
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
  -webkit-transform: scale(1.05, 1.05);
  transform: scale(1.05, 1.05);
  opacity: 0;
}
.fade-z {
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
  -webkit-transform: scale(0.95, 0.95);
  transform: scale(0.95, 0.95);
  opacity: 0;
}
.fade-w.active,
.fade-z.active {
  -webkit-transform: scale(1, 1);
  transform: scale(1, 1);
  opacity: 1;
}

/* -------------------------------------------------------------------------- MODULE */
table.el_table {
  width: 100%;
}
table.el_table th,
table.el_table td {
  padding: 13.5rem;
  border: #b3b3b3 1rem solid;
  text-align: left;
  vertical-align: middle;
}
table.el_table th {
  font-weight: 500;
  background: var(--color-base);
}
table.el_table td {
  background: #fff;
}
.el_txt-link {
  text-decoration: underline;
  color: var(--color-deco);
}
.bl_color-bg {
  padding: 16rem 24rem;
  background: var(--color-base);
}
@media (max-width: 767px) {
  .bl_color-bg {
    padding: 8rem 12rem;
  }
}
.hp_mbss {
  margin-bottom: 8rem;
}
.hp_mbs {
  margin-bottom: 12rem;
}
.hp_mbm {
  margin-bottom: 24rem;
}
.hp_mbl {
  margin-bottom: 40rem;
}
.hp_mbll {
  margin-bottom: 80rem;
}
.hp_t-center {
  text-align: center;
}
.hp_white {
  color: #ffffff;
}
.hp_min {
  font-family: var(--font-min);
}
ul.el_list li {
  position: relative;
  padding-left: 16rem;
}
ul.el_list li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6rem;
  height: 6rem;
  display: inline-block;
  background-color: var(--color-deco);
  border-radius: 50%;
}
.flex-box-col2 {
  display: flex;
  justify-content: space-between;
}
.flex-box-col2 .col {
  width: calc(50% - 12rem);
}
@media (max-width: 767px) {
  .flex-box-col2 {
    flex-direction: column;
  }
  .flex-box-col2 .col {
    width: 100%;
  }
}
.bl_border-box {
  border-top: solid 1px var(--color-deco);
  border-bottom: solid 1px var(--color-deco);
  padding: 24rem 0;
  margin-top: -1rem;
}
.el_title__en_w {
  color: #ffffff;
  font-family: var(--font-en);
  font-size: 32rem;
  letter-spacing: 0.05em;
}
.el_title__en {
  color: var(--color-primary);
  font-family: var(--font-en);
  font-size: 28rem;
  letter-spacing: 0.05em;
}
.el_title__en_w_s {
  color: #ffffff;
  font-family: var(--font-en);
  font-size: 24rem;
  letter-spacing: 0.05em;
}
.hp_caption {
  font-size: 10rem;
}
/* -------------------------------------------------------------------------- HEADER */
header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  height: 78px;
  position: sticky;
  top: 0;
  left: 0;
  padding-left: 80rem;
  background: #fff;
  z-index: 99;
  box-shadow: 0 0 5rem 5rem rgba(0, 0, 0, 0.1);
}
@media (max-width: 1244px) {
  header {
    padding-left: 32rem;
  }
}
header .logo {
  display: block;
  width: 195rem;
  margin-right: auto;
}
.gnav {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-right: 10rem;
}
.gnav li {
  display: block;
  margin-right: 30rem;
  font-size: 15rem;
  letter-spacing: 0.01em;
}
header .btn.deco {
  width: 204rem;
  height: 100%;
  font-size: 14rem;
}
header .btn.deco::after {
  right: 13rem;
}
header .btn.deco:hover::after {
  right: 8rem;
}
.menubtn {
  display: none;
}
.spnav {
  display: none;
}
@media only screen and (max-width: 767px) {
  header {
    height: 80rem;
    padding-left: 28rem;
  }
  header .logo {
    width: 167rem;
  }
  .gnav {
    display: none;
  }
  header .btn.deco {
    display: none;
  }
  .menubtn {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: 80rem;
    height: 80rem;
    background: var(--color-deco);
    position: relative;
  }
  .menubtn span {
    display: block;
    width: 40rem;
    height: 2rem;
    background: #fff;
    margin-bottom: 12rem;
    transition: 0.3s;
  }
  .menubtn span:last-of-type {
    margin-bottom: 0;
  }
  .menubtn.active span {
    position: absolute;
    top: 50%;
    left: 25%;
    margin-bottom: 0;
  }
  .menubtn.active span:nth-of-type(1) {
    transform: rotate(45deg);
  }
  .menubtn.active span:nth-of-type(2) {
    transform: rotate(-45deg);
  }
  .menubtn.active span:nth-of-type(3) {
    opacity: 0;
  }
  .spnav {
    display: block;
    width: 100%;
    height: calc(100dvh - 80rem);
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--color-base);
    padding: 40rem 36rem 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: 0.3s;
    overflow: scroll;
  }
  .spnav .nav {
    padding-bottom: 40rem;
  }
  .spnav .nav li {
    font-size: 16rem;
    letter-spacing: 0;
    line-height: 3;
  }
  .spnav .nav li ul {
    padding-left: 1em;
  }
  .spnav .nav li ul li {
    font-size: 14rem;
  }
  .spnav .btns li {
    margin-bottom: 24rem;
  }
  .spnav .btns li:last-child {
    margin-bottom: 0;
  }
  .spnav .btns li .btn {
    display: flex;
    width: 100%;
    height: 68rem;
    font-size: 16rem;
    right: 18rem;
  }
  .spnav .btns li .btn::after {
    right: 18rem;
  }
}
/* -------------------------------------------------------------------------- FOOTER */
.pagetop {
  padding: 20rem 0;
  background: #fff;
}
.pagetop button {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-family: var(--font-en);
  font-size: 16rem;
  font-weight: 400;
  line-height: 1.3;
  margin-left: 0;
  text-align: center;
  width: 80rem;
  height: 80rem;
  border-radius: 50%;
  border: var(--color-deco) 1px solid;
  color: var(--color-deco);
  margin-left: auto;
  margin-right: 30rem;
}
.pagetop button::before {
  content: "";
  display: block;
  width: 6rem;
  height: 10rem;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background: var(--color-deco);
}
@media only screen and (max-width: 767px) {
  .pagetop {
    padding: 10rem 0;
  }
  .pagetop button {
    font-size: 14rem;
    width: 64rem;
    height: 64rem;
    line-height: 1.2;
    margin-right: 16rem;
  }
}
footer {
  background: var(--color-dark);
  color: #fff;
}
footer .inner.top {
  padding: 80rem 0;
  display: flex;
  justify-content: space-between;
  align-items: start;
}
footer .inner.top .left {
  width: calc(100% - 550rem);
}
footer h2 {
  width: 195rem;
  filter: brightness(0) invert(1);
  padding-bottom: 64rem;
}
footer .inner.top .left p.info {
  line-height: 1.2em;
  padding-bottom: 24rem;
}
footer .inner.top .right {
  width: 550rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
footer .inner.top .right ul {
  display: inline-block;
  padding-bottom: 64rem;
}
footer .inner.top .right ul li {
  font-size: 14rem;
  line-height: 2.5;
}
footer .inner.top .right ul li ul {
  display: block;
  padding-left: 1em;
}
footer .btn {
  margin-left: auto;
}
footer .inner.btm {
  padding-top: 24rem;
  padding-bottom: 50rem;
  display: flex;
  justify-content: space-between;
}
footer .inner.btm .left ul {
  display: flex;
  justify-content: flex-start;
  padding-bottom: 16rem;
}
footer .inner.btm .left ul li {
  font-size: 14rem;
}
footer .inner.btm .left ul li a {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
footer .inner.btm .left ul li a::after {
  content: "|";
  margin: 0 0.5em;
}
footer .inner.btm .left ul li:last-child a::after {
  content: none;
}
footer .inner.btm .left p {
  font-size: 12px;
  line-height: 1.2em;
}
footer .inner.btm .right ul li {
  font-size: 10rem;
  line-height: 1.4;
  text-indent: -1em;
  padding-left: 1em;
}
footer .inner.btm .right ul li::before {
  content: "※";
}
@media only screen and (max-width: 767px) {
  footer .inner.top {
    padding: 40rem 0;
    display: block;
  }
  footer .inner.top .left {
    width: 100%;
    padding-bottom: 20rem;
  }
  footer h2 {
    width: 167rem;
    padding-bottom: 32rem;
  }
  footer .inner.top .left p.info {
    padding-bottom: 12rem;
  }
  footer .inner.top .right {
    width: 100%;
    display: block;
  }
  footer .inner.top .right ul {
    display: block;
    padding-bottom: 0;
  }

  footer .btn {
    margin-top: 30rem;
  }
  footer .inner.btm {
    padding-top: 12rem;
    padding-bottom: 25rem;
    display: block;
  }
  footer .inner.btm .left {
    padding-bottom: 20rem;
  }
  footer .inner.btm .left ul {
    padding-bottom: 10rem;
    flex-wrap: wrap;
  }
  footer .inner.btm .left ul li {
    font-size: 12rem;
    margin-bottom: 5rem;
  }
  footer .inner.btm .left p {
    font-size: 11px;
  }
  footer .inner.btm .right ul li {
    font-size: 9rem;
    line-height: 1.6;
    text-indent: -0.8em;
    padding-left: 0.8em;
  }
}
/* -------------------------------------------------------------------------- TOP */
.top-mv {
  width: 100%;
  height: 660rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.top-mv .inner {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  flex-direction: column;
}

@media only screen and (max-width: 1080px) {
  .top-mv .inner {
    padding: 0 40px;
  }
}
.top-mv .txt {
  width: 580rem;
  color: #fff;
}
.top-mv h1 {
  font-family: var(--font-en);
  font-size: 31rem;
  font-weight: 500;
  line-height: 1.22;
  margin-bottom: 42rem;
}
.top-mv h1 strong {
  display: block;
  font-family: var(--font-min);
  font-weight: 500;
  letter-spacing: 0.01em;
  position: relative;
  padding-bottom: 20rem;
  margin-bottom: 30rem;
  position: relative;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.top-mv h1 strong::before,
.top-mv h1 strong::after {
  content: "";
  display: block;
  height: 1rem;
  position: absolute;
  left: 0;
  top: 100%;
}
.top-mv h1 strong::before {
  background: #fff;
  width: 100%;
}
.top-mv h1 strong::after {
  background: var(--color-primary);
  width: 142rem;
}
.top-mv .list {
  padding-top: 38rem;
}
.top-mv .list li {
  font-family: var(--font-min);
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 13rem;
}
.top-mv .list li span {
  display: inline-block;
  line-height: 40rem;
  padding: 0 16rem;
  border: rgba(255, 255, 255, 0.5) 1px solid;
  background: rgba(84, 46, 42, 0.4);
}
@media only screen and (max-width: 767px) {
  .top-mv .inner {
    padding-bottom: 60rem;
    padding-left: 0;
    padding-right: 0;
  }
  .top-mv .txt {
    width: 100%;
  }
  .top-mv h1 {
    font-size: 28rem;
    margin-bottom: 44rem;
  }
  .top-mv h1 strong {
    padding-bottom: 5rem;
    line-height: 1.5;
  }
}
.bg-slide {
  width: 100%;
  height: 100%;
  list-style: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.bg-slide li {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  overflow: hidden;
  transform: scale(1);
  transition:
    opacity 1.5s ease-in-out,
    transform 15s linear;
}
.bg-slide li.is-active {
  opacity: 1;
  transform: scale(1.1);
  transition:
    opacity 1.5s ease-in-out,
    transform 6s linear;
}
.bg-slide li img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.bg-slide li img.sp {
  display: none;
}
@media only screen and (max-width: 767px) {
  .bg-slide li img.pc {
    display: none;
  }
  .bg-slide li img.sp {
    display: block;
  }
}

.scroll-down {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 110rem;
  height: 110rem;
  border-radius: 50%;
  border: #fff 1px solid;
  font-family: var(--font-en);
  font-size: 16rem;
  font-weight: 400;
  line-height: 1.3;
  color: #fff;
  position: absolute;
  right: 52rem;
  bottom: 40rem;
  transition: 0.3s;
}
.scroll-down::after {
  content: "";
  display: block;
  width: 1rem;
  height: 63rem;
  position: absolute;
  top: 90rem;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  transition: 0.3s;
}
.scroll-down:hover {
  background: rgba(84, 46, 42, 0.4);
}
.scroll-down:hover::after {
  transform: translateX(-50%) translateY(100%);
}
@media only screen and (max-width: 767px) {
  .scroll-down {
    right: 19rem;
    width: 90rem;
    height: 90rem;
  }
}
.top-btn {
  background: var(--color-base-dark);
  padding: 40rem 0;
}
.top-btn ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 60rem;
}
.top-btn ul li {
  display: block;
  width: 289rem;
}
@media only screen and (max-width: 767px) {
  .top-btn ul {
    gap: 24rem;
  }
  .top-btn ul li {
    width: min(100%, 311rem);
  }
}
.top-about {
  padding: 80rem 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.top-about::before {
  content: "";
  display: block;
  width: 800rem;
  aspect-ratio: 1 / 1;
  background: url(../img/top/about-bg.webp) center top no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
}
.top-about .inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.top-about h2 {
  width: 100%;
  font-family: var(--font-en);
  font-size: 68rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-deco);
  margin-bottom: 60rem;
}
.top-about h2 span {
  font-family: var(--font-min);
  font-size: 22rem;
  display: block;
  font-weight: 400;
  padding-bottom: 8rem;
  letter-spacing: 0.05;
}
.top-about h3 {
  font-family: var(--font-min);
  font-size: 28rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
  padding-bottom: 50rem;
}
.top-about .eng {
  font-family: var(--font-en);
  font-size: 22rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding-top: 60rem;
  color: var(--color-deco);
}
.top-about .txt {
  width: 47%;
}
.top-about figure {
  display: block;
  width: 42.5%;
}
.top-about figure img {
  display: block;
}
@media only screen and (max-width: 767px) {
  .top-about::before {
    width: 74.6%;
    aspect-ratio: 70 / 151;
    background: url(../img/top/about-bg-sp.webp) center top no-repeat;
    background-size: cover;
    top: auto;
    bottom: 80rem;
  }
  .top-about .inner {
    display: block;
  }
  .top-about h2 {
    font-size: 40rem;
  }
  .top-about h2 span {
    font-size: 17rem;
    line-height: 1.5;
  }
  .top-about h3 {
    font-size: 20rem;
  }
  .top-about .eng {
    font-size: 18rem;
    padding-top: 40rem;
    padding-bottom: 40rem;
    margin-bottom: 0;
  }
  .top-about .txt {
    width: 100%;
    padding-bottom: 40rem;
  }
  .top-about figure {
    width: calc(100% + 32rem);
    margin-left: -16rem;
  }
}
.top-ttl {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-en);
  font-size: 60rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-base-dark);
}
.top-ttl span {
  display: block;
  font-family: var(--font-jp);
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.75;
  margin-left: 16rem;
}
@media only screen and (max-width: 767px) {
  .top-ttl {
    display: block;
    font-size: 40rem;
  }
  .top-ttl span {
    font-size: 14rem;
    margin-left: 0;
    margin-top: 4rem;
  }
}
.top-program {
  background: url(../img/top/program-bg.webp) center no-repeat;
  background-size: cover;
}
.top-program .inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.top-program .txt {
  width: 58%;
  padding-top: 73rem;
  padding-bottom: 43rem;
}
.top-program .top-ttl {
  padding-bottom: 62rem;
}
.top-program .ips-body {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  position: relative;
}
.top-program .ips-body figure {
  display: block;
  width: 181rem;
}
.top-program .list {
  width: 360rem;
  margin-left: 6rem;
}
.top-program .list li {
  position: relative;
  z-index: 1;
}
.top-program .list li::before {
  content: "";
  display: block;
  width: 119rem;
  aspect-ratio: 119 / 8;
  background: url(../img/top/line.svg) center no-repeat;
  background-size: 100% auto;
  position: absolute;
  right: 90%;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
}
.top-program .list li:nth-child(1) {
  margin-bottom: 10rem;
}
.top-program .list li:nth-child(2) {
  margin-bottom: 100rem;
}
.top-program .list li:nth-child(2)::before {
  right: 93%;
  top: 5%;
  transform: rotate(30deg);
}
.top-program .list li:nth-child(3) {
  margin-bottom: 140rem;
}
.top-program .list li:nth-child(4)::before {
  right: 86%;
}
.top-program .caption {
  position: absolute;
  font-size: 12rem;
  right: 0;
  bottom: 0;
}
.top-program .list button {
  display: block;
  width: 100%;
  line-height: 56rem;
  text-align: center;
  background: var(--color-deco);
  color: #fff;
  position: relative;
  transition: 0.3s;
  z-index: 1;
}
.top-program .list button:hover {
  background: var(--color-base-dark);
}
.top-program .list button.is-active {
  background: var(--color-primary);
}
.top-program .img {
  width: 32%;
  position: relative;
  background: #cec2c2;
}
.top-program .img li {
  display: block;
  width: 100%;
  aspect-ratio: 600 / 615;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease;
}
.top-program .img li img {
  display: block;
}
.top-program .img li.is-active {
  opacity: 1;
  visibility: visible;
}
.top-program .btnarea {
  width: 100%;
  padding: 40rem 0;
  background: var(--color-base-dark);
}
.top-program .btnarea .btn {
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .top-program {
    background: url(../img/top/program-bg-sp.webp) center no-repeat;
    background-size: cover;
  }
  .top-program .inner {
    display: block;
  }
  .top-program .txt {
    width: 100%;
    padding-top: 56rem;
    padding-bottom: 23rem;
  }
  .top-program .top-ttl {
    padding-bottom: 43rem;
  }
  .top-program .ips-body {
    justify-content: space-between;
    width: 346rem;
    margin: 0 auto;
  }
  .top-program .ips-body figure {
    width: 117rem;
  }
  .top-program .list {
    width: 218rem;
    margin-left: 0;
  }
  .top-program .list li {
    font-size: 10rem;
  }
  .top-program .list li::before {
    width: 72rem;
    right: 92%;
  }
  .top-program .list li:nth-child(2)::before {
    right: 95%;
  }
  .top-program .list li:nth-child(3) {
    margin-bottom: 70rem;
  }
  .top-program .list li:nth-child(4)::before {
    right: 88%;
  }
  .top-program .list button {
    line-height: 34rem;
  }
  .top-program .img {
    width: calc(100% + 32rem);
    height: 265rem;
    margin-left: -16rem;
  }
  .top-program .img li {
    width: auto;
    height: 100%;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  .top-program .btnarea {
    padding: 40rem 16rem;
  }
}
.top-promise {
  padding: 80rem 0;
}
.top-promise .lead {
  padding-top: 16rem;
  padding-bottom: 60rem;
  font-family: var(--font-min);
  font-size: 18rem;
  font-weight: 400;
  letter-spacing: 0.05em;
}
.top-promise .list {
  display: flex;
  justify-content: flex-start;
  gap: 60rem;
}
.top-promise .list figure {
  display: block;
  width: 35.9%;
}
.top-promise .list figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-promise .list .txt {
  width: 48.6%;
  padding: 34rem 0;
}
.top-promise .list:nth-of-type(even) {
  background: var(--color-base);
}
.top-promise .list:nth-of-type(odd) {
  flex-direction: row-reverse;
}
.top-promise .list h3 {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  flex-wrap: wrap;
}
.top-promise .list h3 {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: #000;
  padding-bottom: 16rem;
}
.top-promise .list h3 .num {
  display: block;
  width: 100%;
  font-family: var(--font-en);
  font-weight: 400;
  color: var(--color-deco);
  line-height: 1;
}
.top-promise .list h3 .sml {
  font-size: 18rem;
  line-height: 2.8;
}
.top-promise .list h3 b {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-en);
  font-weight: 400;
  color: var(--color-deco);
}
.top-promise .list h3 b::before {
  content: "";
  display: block;
  width: 100rem;
  height: 1rem;
  background: var(--color-deco);
  margin: 0 16rem;
}
@media only screen and (max-width: 767px) {
  .top-promise {
    padding: 40rem 0;
  }
  .top-promise .lead {
    padding-top: 16rem;
    padding-bottom: 30rem;
    font-size: 14rem;
  }
  .top-promise .list {
    display: block;
  }
  .top-promise .list figure {
    width: 100%;
  }
  .top-promise .list .txt {
    width: 100%;
    padding: 30rem 16rem;
  }
  .top-promise .list h3 {
    font-size: 24rem;
  }
  .top-promise .list h3 .sml {
    font-size: 14rem;
  }
  .top-promise .list h3 b {
    width: 100%;
  }
  .top-promise .list h3 b::before {
    content: "";
    display: block;
    width: 50rem;
    margin-left: 0;
  }
}
.top-method {
  padding-top: 80rem;
}
.top-method .top-ttl {
  padding-bottom: 80rem;
}
@media only screen and (max-width: 767px) {
  .top-method {
    padding-top: 40rem;
  }
  .top-method .top-ttl {
    padding-bottom: 40rem;
  }
}
.cycle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "area-a area-b"
    "area-d area-c";
  gap: 24rem;
  position: relative;
  z-index: 1;
}
.cycle::before {
  content: "";
  display: block;
  width: 433rem;
  height: 433rem;
  border: var(--color-deco) 4rem solid;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}
.cycle .box {
  padding: 40rem;
  text-align: left;
}
.cycle .box:nth-of-type(1) {
  grid-area: area-a;
}
.cycle .box:nth-of-type(2) {
  grid-area: area-b;
}
.cycle .box:nth-of-type(3) {
  grid-area: area-c;
}
.cycle .box:nth-of-type(4) {
  grid-area: area-d;
}
.cycle h4,
.cycle h3 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-min);
  font-size: 18rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 24rem;
}
.cycle h4 b,
.cycle h3 b {
  display: block;
  width: 138rem;
  font-family: var(--font-en);
  font-size: 96rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100rem;
  border-left: var(--color-deco) 1rem solid;
  border-right: var(--color-deco) 1rem solid;
  color: var(--color-deco);
  margin-right: 24rem;
  text-align: center;
}
.cycle h4 strong,
.cycle h3 strong {
  font-weight: 400;
}
.cycle h4 strong span,
.cycle h3 strong span {
  display: block;
  font-family: var(--font-en);
  font-size: 48rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  color: var(--color-deco);
}
@media only screen and (max-width: 767px) {
  .cycle {
    padding-top: 0;
    display: block;
  }
  .cycle::before {
    content: "";
    display: block;
    width: 4rem;
    height: 100%;
    border: 0;
    background: var(--color-deco);
    top: 0;
    transform: translateX(-50%);
  }
  .cycle .box {
    padding: 20rem;
    margin-bottom: 20rem;
  }
  .cycle h4,
  .cycle h3 {
    font-size: 14rem;
    margin-bottom: 18rem;
  }
  .cycle h4 b,
  .cycle h3 b {
    width: 90rem;
    font-size: 50rem;
    line-height: 70rem;
    border-left: var(--color-deco) 1rem solid;
    border-right: var(--color-deco) 1rem solid;
    color: var(--color-deco);
    margin-right: 24rem;
    text-align: center;
  }
  .cycle h4 strong span,
  .cycle h3 strong span {
    font-size: 28rem;
  }
}
.top-pdca {
  background: url(../img/top/method-bg.webp) center no-repeat;
  background-size: cover;
  padding-top: 80rem;
  padding-bottom: 96rem;
  text-align: center;
}
.top-pdca h3 {
  font-family: var(--font-min);
  font-size: 40rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 24rem;
}
.top-pdca .cycle {
  padding-top: 60rem;
}
.top-pdca .cycle .box {
  background-color: var(--color-base);
  transition: background-color 0.5s ease;
}
.top-pdca .cycle .box.is-active {
  background-color: #fff;
}
@media only screen and (max-width: 767px) {
  .top-pdca {
    padding-top: 40rem;
    padding-bottom: 48rem;
  }
  .top-pdca h3 {
    font-family: var(--font-min);
    font-size: 26rem;
    padding-bottom: 18rem;
  }
  .top-pdca .cycle {
    margin-top: 30rem;
  }
}
.top-alignment {
  padding-top: 60rem;
  text-align: center;
}
.top-alignment h2 {
  font-family: var(--font-min);
  font-size: 40rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 16rem;
}
.top-alignment h2 span {
  display: block;
  font-size: 24rem;
  line-height: 1em;
  margin-bottom: 8rem;
}
.top-alignment .list {
  margin-top: 40rem;
  padding: 60rem 0;
  background: var(--color-base-dark);
}
.top-alignment .list .inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.top-alignment .box {
  width: 31.8%;
  padding: 24rem 30rem;
  background: #fff;
  margin-bottom: 60rem;
}
.top-alignment .box figure {
  display: block;
  margin-bottom: 16rem;
}
.top-alignment .box figure img {
  display: block;
}
.top-alignment h3 {
  font-family: var(--font-min);
  font-size: 20rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 18rem;
}
.top-alignment h3 span {
  display: block;
  font-size: 18rem;
}
.top-alignment .box p {
  line-height: 1.7;
  color: var(--color-base-dark);
}
.top-alignment .btnarea {
  width: 100%;
}
.top-alignment .btnarea .btn {
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .top-alignment {
    padding-top: 40rem;
  }
  .top-alignment h2 {
    font-size: 26rem;
    padding-bottom: 12rem;
  }
  .top-alignment h2 span {
    font-size: 16rem;
    margin-bottom: 4rem;
  }
  .top-alignment .list {
    margin-top: 30rem;
    padding: 40rem 0;
  }
  .top-alignment .list .inner {
    display: block;
  }
  .top-alignment .box {
    width: 100%;
    padding: 24rem;
    margin-bottom: 30rem;
  }
  .top-alignment .box figure {
    margin-bottom: 8rem;
  }
  .top-alignment h3 {
    font-size: 16rem;
    padding-bottom: 10rem;
  }
  .top-alignment h3 span {
    font-size: 14rem;
  }
  .top-alignment .box p {
    font-size: 13rem;
  }
}
.top-cases {
  padding-top: 60rem;
  padding-bottom: 80rem;
}
.top-cases h2 {
  font-family: var(--font-min);
  font-size: 56rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: var(--color-base-dark);
  margin-bottom: 16rem;
}
.top-cases .lead {
  font-size: 18rem;
  letter-spacing: 0.05em;
  padding-bottom: 40rem;
}
.caselist {
  display: flex;
  flex-wrap: wrap;
  gap: 2% 40rem;
}
.caselist .box {
  width: 30%;
  padding-bottom: 60rem;
}
.caselist .box figure {
  display: block;
  margin-bottom: 10rem;
}
.caselist .box ul {
  display: flex;
  justify-content: flex-start;
  gap: 10rem;
  padding-bottom: 10rem;
}
.caselist .box ul li {
  display: inline-block;
  line-height: 25rem;
  padding: 0 16rem;
  background-color: var(--color-base);
  font-size: 12rem;
  font-weight: 500;
}
.caselist .box h3 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  padding-bottom: 10rem;
}
.caselist .box p {
  font-size: 12rem;
  line-height: 1.2;
}
.top-cases .btn {
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .top-cases {
    padding-top: 40rem;
    padding-bottom: 60rem;
  }
  .top-cases h2 {
    font-size: 32rem;
    margin-bottom: 8rem;
  }
  .top-cases .lead {
    font-size: 14rem;
    padding-bottom: 30rem;
  }
  .caselist {
    display: block;
    padding-bottom: 10rem;
  }
  .caselist .box {
    width: 100%;
    margin-bottom: 30rem;
  }
  .caselist .box figure {
    display: block;
    margin-bottom: 10rem;
  }
  .caselist .box ul li {
    line-height: 22rem;
    padding: 0 8rem;
    font-size: 10rem;
  }
  .caselist .box h3 {
    font-size: 14rem;
  }
}
/* -------------------------------------------------------------------------- PAGES */
.page-kv {
  width: 100%;
  height: 376rem;
  position: relative;
  z-index: 1;
}
.page-kv h1 {
  width: min(calc(100% - 32rem), 1116rem);
  height: 100%;
  margin: auto;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  font-family: var(--font-en);
  font-size: 44rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: #fff;
}
.page-kv h1 span {
  display: block;
  font-family: var(--font-jp);
  font-size: 16rem;
  font-weight: 500;
  letter-spacing: 0.2;
  line-height: 1.75;
}
.page-kv .bg {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.page-kv .bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right top;
}
.page-kv .bg img.sp {
  display: none;
}
@media only screen and (max-width: 767px) {
  .page-kv .bg img.pc {
    display: none;
  }
  .page-kv .bg img.sp {
    display: block;
  }
}
.page-kv .btns {
  width: 280rem;
  position: absolute;
  top: 50%;
  right: max(16rem, calc((100% - 1116rem) / 2));
  transform: translateY(-50%);
}
.page-kv .btns li {
  margin-bottom: 19rem;
}
.page-kv .btns li:last-child {
  margin-bottom: 0;
}
.page-kv .btns .phone {
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 68rem;
  color: var(--color-primary);
  font-size: 20rem;
  font-weight: 900;
  line-height: 1.2;
  pointer-events: none;
}
.page-kv .btns .phone span {
  display: block;
  font-size: 12rem;
  font-weight: 400;
  line-height: 2em;
}
@media only screen and (max-width: 767px) {
  /*.page-kv {
    height: 173rem;
  }*/
  .page-kv h1 {
    font-size: 32rem;
  }
  .page-kv h1 span {
    font-size: 14rem;
  }
  .page-kv .bg.access img {
    object-position: 30% top;
  }
  .page-kv .btns {
    width: 100%;
    top: 100%;
    right: 0;
    transform: translateY(0);
    display: flex;
    flex-wrap: wrap;
    border-bottom: #b3b3b3 1px solid;
  }
  .page-kv .btns li {
    margin-bottom: 0;
    width: 50%;
  }
  .page-kv .btns li:last-child {
    width: 100%;
  }
  .page-kv .btns .phone span {
    font-size: 14rem;
  }

  .page-kv .btns .phone {
    height: 64rem;
    pointer-events: auto;
    background: var(--color-base);
  }
  .page-kv .btns .phone:hover {
    background: var(--color-base-dark03);
  }
}
.page-ttl {
  background: var(--color-base);
  padding: 40rem 0;
}
.page-ttl h1 {
  width: min(calc(100% - 32rem), 1116rem);
  margin: auto;
  font-family: var(--font-min);
  font-size: 24rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
}
@media only screen and (max-width: 767px) {
  .page-ttl h1 {
    font-size: 16rem;
  }
}
.page-sub {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.2em;
  color: var(--color-deco);
}
.page-sub::before {
  content: "";
  display: block;
  width: 32rem;
  height: 4rem;
  background: var(--color-deco);
  margin-right: 16rem;
}
.page-sub.noline::before {
  content: none;
}
@media only screen and (max-width: 767px) {
  .page-sub {
    font-size: 15rem;
    margin-bottom: 14rem;
  }
  .page-sub::before {
    width: 16rem;
    height: 2rem;
    margin-right: 8rem;
  }
}
.page-lead {
  padding-top: 80rem;
  padding-bottom: 80rem;
}
@media only screen and (max-width: 767px) {
  .page-lead {
    padding-top: 50rem;
    padding-bottom: 40rem;
  }
}
.pagenav {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 40rem;
  padding-top: 60rem;
}
.pagenav li {
  display: block;
}
.pagenav li a {
  display: block;
  position: relative;
  font-weight: 500;
  line-height: 1.75;
  color: var(--color-base-dark);
  padding-right: 14rem;
  padding-bottom: 8rem;
}
.pagenav li a::before,
.pagenav li a::after {
  content: "";
  display: block;
  position: absolute;
  transition: 0.3s;
}
.pagenav li a::before {
  width: 100%;
  height: 1rem;
  background: #000;
  left: 0;
  top: 100%;
}
.pagenav li a::after {
  width: 6px;
  height: 10rem;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  background: var(--color-deco);
  right: 0;
  top: 10rem;
}
.pagenav li a:hover::before {
  opacity: 0;
  transform: translateY(3rem);
}
.pagenav li a:hover::after {
  transform: translateY(5rem);
}
.contents-ttl {
  text-align: center;
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 40rem;
}
@media only screen and (max-width: 767px) {
  .pagenav {
    gap: 20rem;
    padding-top: 30rem;
  }
  .pagenav li a {
    padding-right: 12rem;
    padding-bottom: 4rem;
  }
  .pagenav li a::after {
    width: 5px;
    height: 7rem;
  }
}
.contents-ttl::before {
  content: "";
  display: block;
  width: 120rem;
  height: 4rem;
  background: var(--color-deco);
  margin: 0 auto 27rem;
}
.contents-ttl span {
  display: block;
  font-family: var(--font-jp);
  font-size: 16rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.75;
  color: var(--color-base-dark);
}
@media only screen and (max-width: 767px) {
  .contents-ttl {
    font-size: 24rem;
    margin-bottom: 20rem;
  }
  .contents-ttl::before {
    width: 60rem;
    height: 2rem;
    margin-bottom: 14rem;
  }
  .contents-ttl span {
    font-size: 14rem;
  }
}
.bg-gr {
  background: linear-gradient(var(--color-base), #fff);
  padding: 80rem 0;
}
.cta {
  padding: 100rem 0;
  background: url(../img/common/cta-dark.webp) center no-repeat;
  background-size: cover;
  text-align: center;
  color: #fff;
}
@media only screen and (max-width: 767px) {
  .cta {
    background: url(../img/common/cta-dark_sp.webp) center no-repeat;
    background-size: cover;
  }
}
.cta.light {
  background: url(../img/common/cta-light.webp) center no-repeat;
  background-size: cover;
  color: var(--color-dark);
}
.cta.top {
  background: url(../img/common/cta-top.webp) center no-repeat;
  background-size: cover;
}
.cta h2 {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 30rem;
}
.cta ul {
  display: flex;
  justify-content: center;
  padding-top: 30rem;
}
.cta ul.two {
  gap: 60rem;
}
.cta ul.two li {
  width: 290rem;
}
.cta ul.three {
  gap: 40rem;
}
.cta ul.three li {
  width: 280rem;
}
.cta .btn {
  font-weight: 500;
}
.cta .phone {
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 68rem;
  font-size: 20rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--color-primary);
  pointer-events: none;
}
.cta .phone span {
  display: block;
  font-size: 12rem;
  font-weight: 400;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .cta {
    padding: 50rem 0;
  }
  .cta.light {
    background-position: 70% top;
  }
  .cta h2 {
    font-size: 22rem;
    line-height: 1.8em;
    padding-bottom: 15rem;
  }
  .cta ul {
    padding-top: 20rem;
  }
  .cta ul.two,
  .cta ul.three {
    display: block;
    padding: 24rem 40rem;
  }
  .cta ul.two li,
  .cta ul.three li {
    width: 100%;
    margin-bottom: 24rem;
  }
  .cta ul.two li:last-child,
  .cta ul.three li:last-child {
    margin-bottom: 0;
  }
  .cta .phone {
    height: 64rem;
    pointer-events: all;
  }
}
/* 当院について */
.about-lead {
  background: url(../img/about/lead-bg.webp) left top no-repeat;
  background-size: cover;
  padding: 80rem 0;
}
.about-lead .inner {
  padding-left: 573rem;
}
.about-lead h2 {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 50rem;
}
.about-lead p.pb {
  padding-bottom: 1em;
}
@media screen and (max-width: 768px) {
  .about-lead {
    padding: 60rem 0;
    background-position: center;
  }
  .about-lead .inner {
    padding-left: 0;
  }
  .about-lead h2 {
    font-size: 23rem;
    padding-bottom: 25rem;
  }
}
.about-mv {
  padding: 80rem 0;
}
.about-mv .inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 27rem;
}
.about-mv .box {
  background: var(--color-base);
  padding: 40rem;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 0;
}
.about-mv h2 {
  font-family: var(--font-min);
  font-size: 28rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 16rem;
}
.about-mv h2 span {
  font-family: var(--font-en);
  letter-spacing: 0;
  color: var(--color-deco);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 24rem;
  margin-bottom: 16rem;
}
.about-mv h2 span::after {
  content: "";
  display: block;
  width: 120rem;
  height: 2rem;
  background: var(--color-deco);
}
.about-mv figure {
  display: block;
  margin-top: 50rem;
}
.about-mv figure img {
  display: block;
}
@media screen and (max-width: 768px) {
  .about-mv {
    padding: 60rem 0;
  }
  .about-mv .inner {
    display: block;
  }
  .about-mv .box {
    padding: 24rem;
    display: block;
    margin-bottom: 30rem;
  }
  .about-mv .box:last-of-type {
    margin-bottom: 0;
  }
  .about-mv h2 {
    font-size: 23rem;
    padding-bottom: 12rem;
  }
  .about-mv h2 span {
    gap: 12rem;
    margin-bottom: 8rem;
  }
  .about-mv h2 span::after {
    width: 100rem;
  }
  .about-mv figure {
    margin-top: 30rem;
  }
}
.ttl-about {
  font-family: var(--font-en);
  font-size: 40rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: center;
}
.ttl-about span {
  font-family: var(--font-en);
  font-size: 32rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24rem;
  color: var(--color-primary);
  margin-bottom: 16rem;
}
.ttl-about span::before,
.ttl-about span::after {
  content: "";
  display: block;
  width: 100rem;
  height: 2rem;
  background: var(--color-deco);
}
@media screen and (max-width: 768px) {
  .ttl-about {
    font-size: 28rem;
  }
  .ttl-about span {
    font-size: 24rem;
    gap: 16rem;
    margin-bottom: 8rem;
  }
  .ttl-about span::before,
  .ttl-about span::after {
    width: 50rem;
  }
}
.about-method {
  text-align: center;
}
.about-method .ttl-about {
  padding-bottom: 24rem;
}
.about-method h3 {
  font-family: var(--font-min);
  font-size: 28rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 24rem;
}
.about-method .pb {
  padding-bottom: 1em;
}
.about-pdca {
  background: url(../img/about/pdca-bg.webp) center no-repeat;
  background-size: cover;
  padding: 80rem 0;
  margin-top: 60rem;
}
.about-pdca .box {
  background: var(--color-base);
  display: flex;
  justify-content: space-between;
  padding-right: 60rem;
  text-align: left;
  opacity: 0.5;
  transition:
    opacity 0.8s ease,
    background-color 0.8s ease;
  margin-bottom: 60rem;
}
.about-pdca .box:nth-child(2) {
  transition-delay: 0.2s;
}
.about-pdca .box:nth-child(3) {
  transition-delay: 0.4s;
}
.about-pdca .box:nth-child(4) {
  transition-delay: 0.6s;
  margin-bottom: 0;
}
.about-pdca .box.is-active {
  opacity: 1;
  background-color: #fff;
}
.about-pdca .box figure {
  display: block;
  width: 36%;
}
.about-pdca .box figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-pdca .box .txt {
  width: 55%;
  padding: 40rem 0;
}
.about-pdca h4 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-min);
  font-size: 18rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 24rem;
}
.about-pdca h4 b {
  display: block;
  width: 130rem;
  font-family: var(--font-en);
  font-size: 120rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100rem;
  border-left: var(--color-deco) 1rem solid;
  border-right: var(--color-deco) 1rem solid;
  color: var(--color-deco);
  margin-right: 24rem;
  text-align: center;
}
.about-pdca h4 strong {
  font-weight: 400;
}
.about-pdca h4 strong span {
  display: block;
  font-family: var(--font-en);
  font-size: 48rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  color: var(--color-deco);
}
@media screen and (max-width: 768px) {
  .about-method .ttl-about {
    padding-bottom: 18rem;
  }
  .about-method h3 {
    font-size: 20rem;
    padding-bottom: 18rem;
  }
  .about-method p {
    text-align: left;
  }
  .about-pdca {
    padding: 60rem 0;
    margin-top: 40rem;
  }
  .about-pdca .box {
    background: var(--color-base);
    display: block;
    padding-right: 0;
    margin-bottom: 30rem;
  }
  .about-pdca .box:nth-child(1) {
    transition-delay: 0.2s;
  }
  .about-pdca .box:nth-child(2) {
    transition-delay: 0.2s;
  }
  .about-pdca .box:nth-child(3) {
    transition-delay: 0.2s;
  }
  .about-pdca .box:nth-child(4) {
    transition-delay: 0.2s;
  }
  .about-pdca .box figure {
    width: 100%;
    aspect-ratio: 3 / 2;
  }
  .about-pdca .box .txt {
    width: 100%;
    padding: 20rem;
  }
  .about-pdca h4 {
    font-size: 14rem;
    margin-bottom: 18rem;
  }
  .about-pdca h4 b {
    width: 90rem;
    font-size: 50rem;
    line-height: 70rem;
    border-left: var(--color-deco) 1rem solid;
    border-right: var(--color-deco) 1rem solid;
    color: var(--color-deco);
    margin-right: 24rem;
    text-align: center;
  }
  .about-pdca h4 strong span {
    font-size: 28rem;
  }
}
.about-alignment {
  padding-top: 60rem;
  text-align: center;
}
.about-alignment .figure-3 {
  max-width: 800rem;
  margin: 0 auto;
}
.about-alignment .piece {
  display: flex;
  justify-content: center;
  gap: 82rem;
  margin-bottom: 24rem;
}
.about-alignment .piece li {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 186rem;
  height: 186rem;
  border-radius: 50%;
  border: var(--color-deco) 1rem solid;
  font-family: var(--font-en);
  font-size: 24rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-primary);
  position: relative;
}
.about-alignment .piece li::before,
.about-alignment .piece li::after {
  content: "";
  display: block;
  width: 75rem;
  height: 0.75rem;
  background: var(--color-deco);
  position: absolute;
  top: 50%;
  left: 100%;
}
.about-alignment .piece li::before {
  transform: rotate(45deg);
}
.about-alignment .piece li::after {
  transform: rotate(-45deg);
}
.about-alignment .piece li:last-child::before,
.about-alignment .piece li:last-child::after {
  content: none;
}
.about-alignment .piece li .logo {
  width: 50%;
  display: block;
}
.about-alignment h2 {
  font-family: var(--font-min);
  font-size: 40rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 24rem;
}
.about-alignment h3 {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 24rem;
}
@media screen and (max-width: 768px) {
  .about-alignment {
    padding-top: 30rem;
  }
  .about-alignment .piece {
    gap: 30rem;
    margin-bottom: 16rem;
  }
  .about-alignment .piece li {
    width: 90rem;
    height: 90rem;
    font-size: 20rem;
  }
  .about-alignment .piece li::before,
  .about-alignment .piece li::after {
    content: "";
    display: block;
    width: 30rem;
  }
  .about-alignment h2 {
    font-size: 26rem;
    font-weight: 400;
    padding-bottom: 18rem;
  }
  .about-alignment h3 {
    font-size: 20rem;
    padding-bottom: 18rem;
  }
  .about-alignment p {
    text-align: left;
  }
}
.piece-list {
  background: var(--color-base-dark);
  padding: 60rem 0;
  margin-top: 40rem;
}
@media screen and (max-width: 768px) {
  .piece-list {
    padding: 30rem 0;
    margin-top: 30rem;
  }
}
.piece-tab {
  display: flex;
  justify-content: space-between;
}
.piece-tab li {
  display: block;
  width: 32.3%;
}
.piece-tab li button {
  display: block;
  width: 100%;
  padding: 12rem 0;
  font-family: var(--font-en);
  font-size: 32rem;
  font-weight: 500;
  line-height: 1.2;
  background: var(--color-base);
  color: var(--color-primary);
  transition: 0.3s;
}
.piece-tab li button:hover {
  background: rgba(238, 235, 234, 0.8);
}
.piece-tab li button::after {
  content: "";
  display: block;
  width: 9rem;
  height: 12rem;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  background: var(--color-deco);
  margin: 8rem auto 0;
  transition: 0.3s;
}
.piece-tab li button:hover::after {
  transform: translateY(5rem);
}
.piece-tab li button.active {
  background: #fff;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .piece-tab li button {
    padding: 8rem 0;
    font-size: 20rem;
  }
  .piece-tab li button::after {
    width: 8rem;
    height: 10rem;
  }
}
.piece-content {
  background: #fff;
  padding: 40rem 60rem;
  text-align: left;
}
.piece-content .logo {
  width: 60%;
  max-width: 320rem;
  margin: 0 auto 32rem auto;
}
.piece-content .logo.reju {
  width: 40%;
  max-width: 160rem;
}
.piece-content .logo.rbn {
  width: 40%;
  max-width: 220rem;
}
.piece-content > div {
  display: none;
}
.piece-content-top {
  display: flex;
  justify-content: space-between;
  padding-bottom: 24rem;
}
.piece-content-top .visual-block {
  display: block;
  width: 36%;
}
.piece-content-top .visual-block img {
  display: block;
}
.piece-content-top .career {
  display: block;
}
.piece-content-top .career li {
  background: var(--color-base);
  text-align: center;
  padding: 4rem;
  margin-bottom: 16rem;
  position: relative;
}
.piece-content-top .career li:not(:last-child)::after {
  content: "↓";
  position: absolute;
  left: 50%;
  bottom: -26rem;
  transform: translateX(-50%);
  font-size: 20rem;
  color: var(--color-deco);
}
.piece-content-top .txt {
  width: 60%;
}
.piece-content-top .txt.txt_wide {
  width: 100%;
}
.piece-content-top h4 {
  font-family: var(--font-min);
  font-size: 28rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 10rem;
  margin-bottom: 32rem;
  border-bottom: var(--color-deco) 1rem solid;
}
.piece-content h5 {
  font-size: 22rem;
  font-weight: 500;
  line-height: 1.75;
  color: var(--color-deco);
  margin-bottom: 8rem;
  font-family: var(--font-min);
  padding: 16rem 0 8rem;
}

.piece-content .num {
  font-family: var(--font-en);
  font-size: 100%;
  color: var(--color-primary);
}

.piece-content .num span {
  font-size: 125%;
}
.piece-content h6.feature {
  font-family: var(--font-min);
  font-size: 20rem;
  color: var(--color-primary);
  margin-bottom: 12rem;
}

.table-about {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24rem;
}
.table-about th,
.table-about td {
  border: #b3b3b3 1rem solid;
  padding: 13.5rem;
  font-weight: 400;
}
.table-about thead th {
  text-align: center;
  background: var(--color-base);
  font-weight: 700;
}
.table-about tbody th {
  width: 320rem;
}
@media screen and (max-width: 768px) {
  .piece-content {
    padding: 30rem 20rem;
  }
  .piece-content-top {
    display: block;
    padding-bottom: 18rem;
  }
  .piece-content-top .visual-block {
    width: 100%;
  }

  .piece-content-top .txt {
    width: 100%;
    padding-bottom: 20rem;
  }
  .piece-content-top h4 {
    font-size: 20rem;
    padding-bottom: 5rem;
    margin-bottom: 18rem;
  }
  .piece-content h5 {
    font-size: 16rem;
  }
  .piece-content-top figure {
    width: 100%;
  }
  .table-about {
    margin-bottom: 18rem;
  }
  .table-about th,
  .table-about td {
    padding: 12rem;
  }
  .table-about tbody th {
    width: 90rem;
  }
}
.about-doctor {
  padding: 80rem 0;
}
.about-doctor .ttl-about {
  padding-bottom: 24rem;
}
@media screen and (max-width: 768px) {
  .about-doctor {
    padding: 60rem 0;
  }
  .about-doctor .ttl-about {
    padding-bottom: 18rem;
  }
}
.doctor {
  position: relative;
  padding-top: 50rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding-bottom: 120rem;
}
.doctor:last-of-type {
  margin-bottom: 0;
  padding-bottom: 0;
}
.doctor::before {
  content: "";
  display: block;
  width: 120rem;
  height: 4rem;
  background: var(--color-deco);
  position: absolute;
  top: 0;
  left: 0;
}
.doctor .txt {
  width: 49%;
}
.doctor .txt .prof {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.doctor .sns {
  margin-bottom: 24rem;
  display: flex;
  flex-direction: row-reverse;
  column-gap: 16rem;
}
.doctor .instagram,
.doctor .youtube,
.doctor .tiktok {
  display: block;
  width: 48rem;
  height: 48rem;
}
.doctor .photo-block {
  display: block;
  width: 40.4%;
}
.doctor .photo-block figure {
  margin-bottom: 24rem;
}
.doctor h3 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-min);
  font-size: 40rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 40rem;
}
.doctor h3 span {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 24rem;
}
.doctor h3 span::after {
  content: "";
  display: block;
  width: 1rem;
  height: 63rem;
  background: var(--color-deco);
  margin: 0 24rem;
}
.doctor h4 {
  width: 100%;
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
}
.doctor .txt {
  margin-bottom: 40rem;
}
.doctor .txt h4 {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
  padding-bottom: 16rem;
  color: var(--color-dark);
}
.doctor .pb {
  padding-bottom: 1em;
}
.doctor .table-about {
  margin-top: 27rem;
  margin-bottom: 58rem;
}
.doctor ul {
  padding-top: 8rem;
}
.doctor ul li {
  text-indent: -1em;
  margin-left: 1em;
}
.doctor ul li::before {
  content: "・";
}
@media screen and (max-width: 768px) {
  .doctor {
    padding-top: 20rem;
    display: block;
    padding-bottom: 60rem;
  }
  .doctor::before {
    width: 60rem;
  }
  .doctor .txt {
    width: 100%;
  }
  .doctor .sns {
    margin-bottom: 20rem;
    column-gap: 12rem;
  }
  .doctor .instagram,
  .doctor .youtube,
  .doctor .tiktok {
    display: block;
    width: 38rem;
    height: 38rem;
  }
  .doctor .photo-block {
    width: 100%;
  }
  .doctor h3 {
    font-size: 30rem;
    padding-bottom: 20rem;
  }
  .doctor h3 span {
    font-size: 16rem;
  }
  .doctor h3 span::after {
    height: 40rem;
    margin: 0 12rem;
  }
  .doctor h4 {
    font-size: 14rem;
  }
  .doctor .txt,
  .doctor figure {
    margin-bottom: 20rem;
  }
  .doctor .txt h4 {
    font-size: 24rem;
    padding-bottom: 8rem;
  }
  .doctor .table-about {
    margin-top: 12rem;
    margin-bottom: 30rem;
  }
}
.about-relation {
  padding: 40rem 40rem 60rem;
  background: radial-gradient(#fff, var(--color-base));
  text-align: center;
}
.about-relation h2 {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 16rem;
}
.about-relation h3 {
  font-family: var(--font-en);
  font-weight: 400;
  color: var(--color-deco);
  margin-bottom: 40rem;
}
.about-relation ul {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  gap: 60rem;
  margin-bottom: 40rem;
}
.about-relation ul li {
  width: 193rem;
  font-family: var(--font-en);
  color: var(--color-base-dark);
}
.about-relation ul li img {
  display: block;
}
.about-relation ul::before {
  content: "";
  display: block;
  width: min(100%, 734rem);
  aspect-ratio: 367 / 60;
  background: url(../img/about/line.webp) center no-repeat;
  background-size: 100% auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}
.about-relation .pb {
  padding-bottom: 1em;
}
@media screen and (max-width: 768px) {
  .about-relation {
    padding: 30rem 20rem 40rem;
  }
  .about-relation h2 {
    font-size: 24rem;
    margin-bottom: 8rem;
  }
  .about-relation h3 {
    margin-bottom: 20rem;
  }
  .about-relation ul {
    gap: 10rem;
    margin-bottom: 20rem;
  }
}
/* 初めての方へ */
.guide-lead {
  background: url(../img/guide/lead-bg.webp) left top no-repeat;
  background-size: cover;
  padding-top: 100rem;
  padding-bottom: 80rem;
}
.guide-lead .inner {
  display: flex;
  justify-content: space-between;
}
.guide-lead .inner figure {
  display: block;
  width: 40%;
}
.guide-lead .inner .txt {
  width: 48.65%;
}
.guide-lead h2 {
  font-family: var(--font-en);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 50rem;
}
.guide-lead ul {
  padding: 1em 0;
}
@media screen and (max-width: 768px) {
  .guide-lead {
    padding-top: 50rem;
    padding-bottom: 40rem;
  }
  .guide-lead .inner {
    display: block;
  }
  .guide-lead .inner figure {
    width: 100%;
    margin-bottom: 20rem;
  }
  .guide-lead .inner .txt {
    width: 100%;
  }
  .guide-lead h2 {
    font-size: 24rem;
    margin-bottom: 16rem;
  }
}
.self-pay {
  padding: 80rem 0;
  background: var(--color-base);
}
.self-pay h3 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77em;
  margin-top: 36rem;
  margin-bottom: 8rem;
  color: var(--color-deco);
}
.self-pay .btn {
  margin: 24rem auto 0;
}
@media screen and (max-width: 768px) {
  .self-pay {
    padding: 60rem 0;
  }
  .self-pay h3 {
    font-size: 14rem;
  }
}
.guide-flow {
  padding: 80rem 0;
}
.guide-flow .box {
  background: var(--color-base);
  padding: 24rem 60rem 24rem 40rem;
  margin-bottom: 24rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.guide-flow .box:first-of-type {
  margin-top: 44rem;
}
.guide-flow .box:last-of-type {
  margin-bottom: 0;
}
.guide-flow .box figure {
  display: block;
  width: 25.6%;
}
.guide-flow .box figure img {
  display: block;
}
.guide-flow .box .txt {
  width: 70.3%;
}
.guide-flow h3 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-min);
  font-size: 24rem;
  letter-spacing: 0.05em;
  margin-bottom: 16rem;
}
.guide-flow h3 span {
  display: block;
  font-family: var(--font-en);
  font-size: 24rem;
  font-weight: 500;
  letter-spacing: 0;
  color: #998775;
  margin-right: 19.5rem;
}
.guide-flow h3 b {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  font-family: var(--font-en);
  font-size: 60rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 0.8;
  color: #998775;
}
.guide-flow h3 b::after {
  content: "";
  display: block;
  width: 1rem;
  height: 60rem;
  background: var(--color-deco);
  margin: 0 32rem;
}
.guide-flow .btn {
  margin-top: 16rem;
}
@media screen and (max-width: 768px) {
  .guide-flow {
    padding: 60rem 0;
  }
  .guide-flow .box {
    padding: 24rem;
    display: block;
  }
  .guide-flow .box:first-of-type {
    margin-top: 30rem;
  }
  .guide-flow .box figure {
    width: 100%;
    margin-bottom: 16rem;
  }
  .guide-flow .box .txt {
    width: 100%;
  }
  .guide-flow h3 {
    font-size: 16rem;
    margin-bottom: 10rem;
  }
  .guide-flow h3 span {
    font-size: 16rem;
    margin-right: 10rem;
  }
  .guide-flow h3 b {
    font-size: 44rem;
    line-height: 0.9;
  }
  .guide-flow h3 b::after {
    height: 50rem;
    margin: 0 16rem;
  }
  .guide-flow .btn {
    margin-top: 16rem;
  }
}
.guide-pay {
  padding: 80rem 0;
  background: var(--color-base);
}
@media screen and (max-width: 768px) {
  .guide-pay {
    padding: 60rem 0;
  }
}
.table-pay {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24rem;
}
.table-pay th,
.table-pay td {
  border: #b3b3b3 1rem solid;
  padding: 13.5rem;
  font-weight: 400;
}
.table-pay thead th {
  text-align: center;
  background: #ded3d1;
  font-weight: 700;
}
.table-pay tbody th {
  width: 160rem;
}
.table-pay tbody th,
.table-pay tbody td {
  background: #fff;
}
@media screen and (max-width: 768px) {
  .table-pay {
    margin-bottom: 18rem;
  }
  .table-pay th,
  .table-pay td {
    padding: 12rem;
  }
  .table-pay tbody th {
    width: 100rem;
  }
}
.guide-note {
  padding: 80rem 0;
}
.guide-note h3 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
  margin-bottom: 8rem;
}
.guide-note h3:nth-of-type(n + 2) {
  margin-top: 27rem;
}
@media screen and (max-width: 768px) {
  .guide-note {
    padding: 60rem 0;
  }
  .guide-note h3 {
    font-size: 14rem;
  }
  .guide-note h3:nth-of-type(n + 2) {
    margin-top: 24rem;
  }
}
/* iPS細胞治療とは */
.ips-treatment {
  background: url(../img/ips-treatment/bg.webp) center top no-repeat;
  background-size: 100% auto;
}
.ips-h3 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
  margin-bottom: 8rem;
}
.ips-h3.in-box {
  text-align: center;
  font-family: var(--font-min);
  font-size: 24rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 24rem;
}
.ips-about {
  padding-top: 80rem;
}
.ips-h3:nth-of-type(n + 2) {
  margin-top: 36rem;
}
.ips-figure {
  display: block;
  margin-top: 60rem;
}
.ips-features_wrap {
  padding: 24rem;
  background: var(--color-base);
}
.ips-features {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.ips-features dl {
  width: 49%;
  background: #ffffff;
  padding: 28rem;
  margin-bottom: 16rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.ips-features dt {
  text-align: center;
  font-weight: 500;
  color: var(--color-deco);
}
.ips-features dt span {
  display: block;
  font-family: var(--font-en);

  font-size: 175%;
  line-height: 1.2;
}

@media screen and (max-width: 768px) {
  .ips-about {
    padding-top: 60rem;
  }
  .ips-h3 {
    font-size: 14rem;
  }
  .ips-h3.in-box {
    font-size: 14rem;
  }
  .ips-h3:nth-of-type(n + 2) {
    margin-top: 24rem;
  }
  .ips-figure {
    margin: 24rem -16rem 0 -16rem;
  }
  .ips-features {
    flex-direction: column;
  }
  .ips-features dl {
    width: 100%;
    padding: 16rem;
  }
}
.table-fixed {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.table-fixed th,
.table-fixed td {
  border: #b3b3b3 1rem solid;
  padding: 13.5rem;
  font-weight: 400;
}
.table-fixed thead th {
  text-align: center;
  background: var(--color-base);
  font-weight: 700;
}
.table-fixed td,
.table-fixed tbody th {
  background: #fff;
}
@media screen and (max-width: 768px) {
  .table-fixed th,
  .table-fixed td {
    padding: 12rem;
  }
}
.ips-feature {
  padding: 80rem 0;
}
.ips-feature.hp_no-padding {
  padding: 0;
}
.ips-feature .box {
  background: var(--color-base);
  padding: 24rem 60rem 24rem 40rem;
  margin-bottom: 24rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.ips-feature .box:first-of-type {
  margin-top: 44rem;
}
.ips-feature .box:last-of-type {
  margin-bottom: 0;
}
.ips-feature .box figure {
  display: block;
  width: 25.6%;
  margin-top: 16rem;
}
.ips-feature .box.wide-image figure {
  width: 47.5%;
}
.ips-feature .box figure.wide {
  width: 100%;
}
.ips-feature .box figure img {
  display: block;
}
.ips-feature .box .txt {
  width: 70.3%;
}
.ips-feature .box.wide-image .txt {
  width: 47.5%;
}
.ips-feature h3 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-min);
  font-size: 24rem;
  letter-spacing: 0.05em;
  margin-bottom: 16rem;
}
.ips-feature h3 span {
  display: block;
  font-family: var(--font-min);
  font-size: 24rem;
  font-weight: 400;
  letter-spacing: 0;
  color: #998775;
  margin-right: 19.5rem;
}
.ips-feature h3 b {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  font-family: var(--font-en);
  font-size: 60rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 0.8;
  color: #998775;
}
.ips-feature h3 b::after {
  content: "";
  display: block;
  width: 1rem;
  height: 60rem;
  background: var(--color-deco);
  margin: 0 32rem;
}
.ips-feature .table-fixed {
  margin: 16rem 0;
}
.ips-feature .btn {
  margin-top: 16rem;
}
.ips-feature .btn.white {
  color: var(--color-dark);
}
.ips-feature .btn.white:hover {
  color: #fff;
}
@media screen and (max-width: 768px) {
  .ips-feature .box {
    padding: 24rem;
    display: block;
  }
  .ips-feature .box:first-of-type {
    margin-top: 30rem;
  }
  .ips-feature .box figure,
  .ips-feature .box.wide-image figure {
    width: 100%;
    margin-bottom: 16rem;
  }
  .ips-feature .box .txt,
  .ips-feature .box.wide-image .txt {
    width: 100%;
  }
  .ips-feature h3 {
    font-size: 16rem;
    margin-bottom: 10rem;
  }
  .ips-feature h3 span {
    font-size: 16rem;
    margin-right: 10rem;
    width: 40rem;
  }
  .ips-feature h3 b {
    font-size: 44rem;
    line-height: 0.9;
  }
  .ips-feature h3 b::after {
    height: 50rem;
    margin: 0 16rem;
  }
  .ips-feature .btn {
    margin-top: 16rem;
  }
}
.faqarea {
  background: var(--color-base);
  padding: 80rem 0;
}
.faqarea_nobg {
  background: #ffffff;
}
.faqarea .btn {
  margin: 67rem auto 0;
}
/* 施術メニュー */
.ips-bg {
  background: linear-gradient(#dfe8ed, #f0f5f8);
  padding: 80rem 0;
}
.ips-bg .page-sub {
  margin-top: 64rem;
  margin-bottom: 28rem;
}
.ips-bg h4 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
  margin-top: 8rem;
  margin-bottom: 12rem;
}
.ips-bg h4:first-of-type {
  margin-top: 28rem;
}
.ips-bg .pb {
  padding-bottom: 28rem;
}
@media screen and (max-width: 768px) {
  .ips-bg {
    padding: 60rem 0;
  }
  .ips-bg .page-sub {
    margin-top: 32rem;
    margin-bottom: 14rem;
  }
  .ips-bg h4 {
    font-size: 14rem;
    margin-bottom: 10rem;
  }
  .ips-bg h4:first-of-type {
    margin-top: 20rem;
  }
  .ips-bg .pb {
    padding-bottom: 20rem;
  }
}
.ipsf-program .box {
  background: #fff;
  padding-right: 60rem;
  display: flex;
  justify-content: space-between;
  margin-bottom: 40rem;
}
.ipsf-program .box:first-of-type {
  margin-top: 40rem;
}
.ipsf-program .box figure {
  padding: 32rem 40rem;
  width: 36%;
}
.ipsf-program .box .txt {
  padding: 24rem 0;
  width: 64%;
}
.ipsf-program .box .btn {
  margin-top: 16rem;
}
.ipsf-program h3 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 16rem;
  font-size: 18rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--color-deco);
  margin-bottom: 16rem;
}
.ipsf-program h3::before {
  content: "";
  display: block;
  width: 32rem;
  height: 4rem;
  background: var(--color-deco);
}
.ipsf-program h4 {
  font-family: var(--font-min);
  font-size: 28rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-bottom: 16rem;
  margin-top: 16rem;
  color: #000000;
}
.ipsf-program h5 {
  color: var(--color-deco);
  font-weight: 600;
}
.ipsf-program dl {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 8rem;
  padding-bottom: 16rem;
}
.ipsf-program dl dt {
  display: block;
  width: 55rem;
  line-height: 30rem;
  background: var(--color-base);
  font-weight: 400;
  border-radius: 4rem;
  text-align: center;
}
.ipsf-program dl dd {
  line-height: 1.75;
  color: var(--color-deco);
}
.ipsf-program ul li {
  position: relative;
  padding-left: 16rem;
}
.ipsf-program ul li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6rem;
  height: 6rem;
  display: inline-block;
  background-color: var(--color-deco);
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .ipsf-program .box {
    padding: 24rem;
    display: block;
    margin-bottom: 24rem;
  }
  .ipsf-program .box:first-of-type {
    margin-top: 32rem;
  }
  .ipsf-program .box figure {
    padding: 0;
    width: 100%;
    margin-bottom: 18rem;
  }
  .ipsf-program .box .txt {
    padding: 0;
    width: 100%;
  }
  .ipsf-program h3 {
    gap: 8rem;
    font-size: 15rem;
    margin-bottom: 8rem;
  }
  .ipsf-program h3::before {
    width: 14rem;
    height: 2rem;
  }
  .ipsf-program h4 {
    font-size: 22rem;
    margin-bottom: 16rem;
  }
  .ipsf-program dl {
    display: block;
    padding-bottom: 12rem;
  }
  .ipsf-program dl dt {
    margin-bottom: 8rem;
  }
}
.menu-kv {
  position: relative;
  width: 100%;
  height: 462rem;
  z-index: 1;
  padding-top: 90rem;
}
.menu-kv h1 {
  font-size: 18rem;
  font-weight: 500;
  line-height: 1.77;
  padding-bottom: 80rem;
  color: #3e3e3e;
}
.menu-kv h1 span {
  display: block;
  font-family: var(--font-min);
  font-size: 40rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.2;
  margin-bottom: 8rem;
}
.menu-kv p {
  font-family: var(--font-min);
  font-size: 32rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-left: 160rem;
}
.menu-kv .bg {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.menu-kv .bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .menu-kv {
    height: 600rem;
    padding-top: 120rem;
  }
  .menu-kv h1 {
    font-size: 14rem;
  }
  .menu-kv h1 span {
    font-size: 26rem;
  }
  .menu-kv p {
    font-size: 23rem;
    padding-left: 0;
  }
}
.menu-for {
  background: url(../img/menu/for-bg.webp) center no-repeat;
  background-size: cover;
  padding: 80rem 0;
}
.menu-for .inner {
  width: min(calc(100% - 32rem), 796rem);
  background: #fff;
  padding: 40rem;
}
.menu-for h2 {
  margin-bottom: 24rem;
}
.menu-for ul li {
  text-indent: -1em;
  padding-left: 1em;
}
.menu-for ul li::before {
  content: "・";
}
@media screen and (max-width: 768px) {
  .menu-for {
    padding: 60rem 0;
  }
  .menu-for .inner {
    padding: 24rem;
  }
  .menu-for h2 {
    margin-bottom: 20rem;
  }
}
.menu-overview {
  padding: 80rem 0;
}
.menu-overview .inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.menu-overview h2 {
  width: 100%;
}
.menu-overview figure {
  display: block;
  width: 31.6%;
}
.menu-overview figure img {
  display: block;
}
.menu-overview .txt {
  width: 64.7%;
}
.menu-overview h3 {
  font-family: var(--font-min);
  font-size: 24rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 40rem;
}
@media screen and (max-width: 768px) {
  .menu-overview {
    padding: 60rem 0;
  }
  .menu-overview .inner {
    display: block;
  }
  .menu-overview figure {
    width: 100%;
    margin-bottom: 20rem;
  }
  .menu-overview .txt {
    width: 100%;
  }
  .menu-overview h3 {
    font-size: 16rem;
    padding-bottom: 20rem;
  }
}
.menu-pdca {
  background: url(../img/menu/pdca-bg.webp) center no-repeat;
  background-size: cover;
  padding: 80rem 0;
}
.menu-pdca .box {
  background: #fff;
  border: #fff 2rem solid;
  transition: border-color 0.5s ease;
}
.menu-pdca .box.is-active {
  border: var(--color-deco) 2rem solid;
}
@media screen and (max-width: 768px) {
  .menu-pdca {
    padding: 60rem 0;
  }
}
.menu-guide {
  padding: 80rem 0;
}
.menu-guide table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.menu-guide table th,
.menu-guide table td {
  padding: 13.5rem;
  border: #b3b3b3 1rem solid;
  text-align: left;
  vertical-align: middle;
}
.menu-guide table th {
  font-weight: 500;
  background: var(--color-base);
}
.menu-guide table td {
  background: #fff;
}
@media screen and (max-width: 768px) {
  .menu-guide {
    padding: 60rem 0;
  }
  .menu-guide table th,
  .menu-guide table td {
    padding: 12rem;
  }
}
.menu-price {
  background: url(../img/menu/price-bg.webp) center no-repeat;
  background-size: cover;
  padding: 80rem 0;
}
.menu-price table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-bottom: 64rem;
}
.menu-price table th,
.menu-price table td {
  padding: 13.5rem;
  border: #b3b3b3 1rem solid;
  text-align: left;
  vertical-align: middle;
}
.menu-price table th {
  font-weight: 500;
  background: var(--color-base);
}
.menu-price table td {
  background: #fff;
}
.menu-price .btn {
  margin: auto;
}
@media screen and (max-width: 768px) {
  .menu-price {
    padding: 60rem 0;
  }
  .menu-price table {
    margin-bottom: 32rem;
  }
  .menu-price table th,
  .menu-price table td {
    padding: 12rem;
    display: block;
    width: 100%;
  }
  .menu-price table td {
    margin-top: -1rem;
  }
}
.risk {
  padding: 80rem 0;
}
.risk .box {
  width: min(100%, 796rem);
  padding: 40rem;
  background: #f5f5f5;
  margin: auto;
}
.risk ul li {
  text-indent: -1em;
  padding-left: 1em;
}
.risk ul li::before {
  content: "・";
}
@media screen and (max-width: 768px) {
  .risk {
    padding: 60rem 0;
  }
  .risk .box {
    padding: 24rem;
    background: #f5f5f5;
    margin: auto;
  }
}
/* 料金 */
.price .page-sub {
  margin-bottom: 28rem;
}
.price h4 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
  margin-bottom: 12rem;
}
.price-txt {
  padding-bottom: 24rem;
}
.table-price {
  width: 100%;
  border-collapse: collapse;
  line-height: 1.25;
  background: #fff;
  margin-bottom: 12rem;
}
.table-price th,
.table-price td {
  padding: 13.5rem;
  border: 1px solid #b3b3b3;
  vertical-align: middle;
}
.table-price th {
  text-align: center;
}
.table-price thead th {
  background: var(--color-base);
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
}
.table-price tbody tr td:first-child,
.table-price tbody tr th {
  font-weight: 500;
}
.table-price .amount-column {
  text-align: center;
  width: 25%;
}
.table-price .price-column {
  text-align: center;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: 18px;
  width: 25%;
}
.table-price .price-column.normal {
  font-weight: 400;
  font-size: 14px;
  text-align: left;
  line-height: 1.5;
}
.table-price tbody tr:hover {
  background-color: #fafafa;
}
.table-container {
  margin-bottom: 64rem;
}
.table-container.short {
  margin-bottom: 28rem;
}
.table-container:last-of-type {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .price .page-sub {
    margin-bottom: 18rem;
  }
  .price h4 {
    font-size: 14rem;
    margin-bottom: 10rem;
  }
  .price-txt {
    padding-bottom: 18rem;
  }
  .table-price {
    width: 100%;
  }
  .table-container {
    margin-bottom: 32rem;
  }
  .table-container.short {
    margin-bottom: 14rem;
  }
  .table-price .price-column {
    width: 50%;
  }
}
/* よくある質問 */
.faq dt,
.faq dd {
  position: relative;
}
.faq.faq_bg {
  background: var(--color-base);
  padding: 16rem;
}
.faq dt span,
.faq dd span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40rem;
  height: 40rem;
  font-family: var(--font-en);
  font-size: 24rem;
  font-weight: 600;
  color: #fff;
  position: absolute;
}
.faq dt {
  font-weight: 700;
  color: var(--color-primary);
  padding: 6rem 0 6rem 60rem;
  margin-bottom: 8rem;
  background: var(--color-base);
}
.faq dt span {
  top: 50%;
  left: 4rem;
  transform: translateY(-50%);
  background: var(--color-deco);
}
.faq dd {
  background: #fff;
  padding: 25rem 30rem 25rem 90rem;
  margin-bottom: 40rem;
}
.faq dd span {
  background: var(--color-base-dark03);
  top: 21rem;
  left: 30rem;
}
.faq dd:last-of-type {
  margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
  .faq dt span,
  .faq dd span {
    width: 30rem;
    height: 30rem;
    font-size: 16rem;
  }
  .faq dt {
    padding-left: 40rem;
    margin-bottom: 8rem;
  }

  .faq dd {
    padding: 15rem 20rem 15rem 62rem;
    margin-bottom: 24rem;
  }
  .faq dd span {
    top: 15rem;
    left: 20rem;
  }
}
/* アクセス・ご予約 */
.clinic-access {
  padding-top: 80rem;
  padding-bottom: 40rem;
  display: flex;
  justify-content: space-between;
}
.clinic {
  width: 40.4%;
}
.clinic h2 {
  margin-bottom: 33rem;
}
.clinic dl {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.clinic dt,
.clinic dd {
  border-bottom: #b3b3b3 1px solid;
  padding-bottom: 16rem;
  margin-bottom: 20rem;
}
.clinic dt {
  width: 155rem;
  color: var(--color-deco);
  font-size: 18rem;
  font-weight: 700;
}
.clinic dd {
  width: calc(100% - 155rem);
}
.clinic dd ul {
  list-style: inside;
}
.clinic dd ul li {
  padding-left: 1.5em;
  text-indent: -1.5em;
}
@media only screen and (max-width: 767px) {
  .clinic-access {
    padding-top: 178rem;
    display: block;
    padding-bottom: 30rem;
  }
  .clinic {
    width: 100%;
    padding-bottom: 30rem;
  }
  .clinic h2 {
    margin-bottom: 24rem;
  }
  .clinic dl {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .clinic dt,
  .clinic dd {
    padding-bottom: 8rem;
    margin-bottom: 10rem;
  }
  .clinic dt {
    width: 100%;
    font-size: 14rem;
    border-bottom: 0;
    margin-bottom: 0;
  }
  .clinic dd {
    width: 100%;
  }
}
.accessmap {
  width: 49%;
}
.accessmap h2 {
  margin-bottom: 28rem;
}
.accessmap iframe {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  margin-bottom: 20rem;
}
.accessmap .btn {
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .accessmap {
    width: 100%;
  }
  .accessmap h2 {
    margin-bottom: 20rem;
  }
}
.hours {
  padding-bottom: 40rem;
}
.hours h2 {
  padding-bottom: 49rem;
}
.hours .box {
  background: var(--color-base);
  padding: 24rem 24rem 12rem 24rem;
}
.hours table {
  width: 100%;
  background: #fff;
  margin-bottom: 5px;
}
.hours table th,
.hours table td {
  text-align: center;
  padding: 8rem;
  color: var(--color-deco);
  vertical-align: middle;
}
.hours table th {
  font-weight: 400;
}
.hours table tr th:nth-of-type(1) {
  font-weight: 700;
  width: 270rem;
  border-right: #b3b3b3 1rem solid;
}
.hours table thead th {
  border-bottom: #b3b3b3 1rem solid;
}
.hours table span {
  display: block;
  margin: auto;
  position: relative;
}
.hours table span.ok {
  width: 16rem;
  height: 16rem;
  border-radius: 50%;
  background: var(--color-deco);
}
.hours table span.ng {
  width: 14rem;
  height: 14rem;
}
.hours table span.ng::before,
.hours table span.ng::after {
  content: "";
  display: block;
  width: 1rem;
  height: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  background: var(--color-deco);
}
.hours table span.ng::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.hours table span.ng::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.hours p {
  text-align: right;
  font-size: 12rem;
  line-height: 1.83;
  color: var(--color-deco);
}
@media only screen and (max-width: 767px) {
  .hours {
    padding-bottom: 30rem;
  }
  .hours h2 {
    padding-bottom: 20rem;
  }
  .hours .box {
    padding: 16rem;
  }
  .hours table th,
  .hours table td {
    padding: 4rem;
  }
  .hours table tr th:nth-of-type(1) {
    width: auto;
  }
  .hours table span.ok {
    width: 14rem;
    height: 14rem;
  }
  .hours table span.ng {
    width: 13rem;
    height: 13rem;
  }
  .hours p {
    font-size: 11rem;
  }
}
.reserve {
  padding-bottom: 40rem;
  text-align: center;
}
.reserve h2 {
  margin-bottom: 49rem;
}
.reserve h3 {
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
  padding-bottom: 40rem;
}
.reserve .list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40rem;
}
.reserve .box {
  display: grid;
  grid-template-rows: auto;
  gap: 10rem;
  border: #b3b3b3 1rem solid;
  padding: 40rem;
}
.reserve .box figure {
  width: 72rem;
  margin: auto;
}
.reserve .box h4 {
  font-size: 20rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--color-deco);
}
.reserve .box p {
  font-size: 14rem;
}
.reserve .box .phone {
  display: block;
  font-size: 24rem;
  font-weight: 900;
  line-height: 1.2;
  color: var(--color-primary);
  pointer-events: none;
}
.reserve .box .phone span {
  display: block;
  font-size: 12rem;
  font-weight: 400;
  line-height: 1.8;
  color: var(--color-deco);
  margin-top: 10rem;
}
@media only screen and (max-width: 767px) {
  .reserve {
    padding-bottom: 30rem;
  }
  .reserve h2 {
    margin-bottom: 20rem;
  }
  .reserve h3 {
    font-size: 14rem;
    padding-bottom: 20rem;
  }
  .reserve .list {
    grid-template-columns: 1fr;
    gap: 20rem;
  }
  .reserve .box {
    padding: 20rem;
  }
  .reserve .box figure {
    width: 50rem;
  }
  .reserve .box h4 {
    font-size: 15rem;
  }
  .reserve .box p {
    font-size: 12rem;
  }
  .reserve .box .phone {
    font-size: 22rem;
    pointer-events: all;
  }
  .reserve .box .phone span {
    font-size: 12rem;
    margin-top: 5rem;
  }
}
.on-clinic {
  padding-bottom: 40rem;
}
.on-clinic h2 {
  margin-bottom: 26rem;
}
.on-clinic ul li {
  text-indent: -1em;
  padding-left: 1em;
}
.on-clinic ul li::before {
  content: "・";
}
@media only screen and (max-width: 767px) {
  .on-clinic {
    padding-bottom: 30rem;
  }
  .on-clinic h2 {
    margin-bottom: 20rem;
  }
}
.cancel {
  padding-bottom: 80rem;
}
.cancel h2 {
  margin-bottom: 26rem;
}
@media only screen and (max-width: 767px) {
  .cancel {
    padding-bottom: 60rem;
  }
  .cancel h2 {
    margin-bottom: 20rem;
  }
}
/* 個人情報保護方針 */
.policy-lead {
  padding: 60rem 0;
}
.policy-lead.ct {
  text-align: center;
}
.policy-lead .btn {
  margin: auto;
}
.policy-lead .att {
  display: inline-block;
  padding-top: 30rem;
  text-align: left;
}
.policy-lead .att li {
  font-size: 12rem;
}
.policy-lead .att li::before {
  content: "※";
}
@media only screen and (max-width: 767px) {
  .policy-lead {
    padding: 30rem 0;
  }
  .policy-lead .att {
    padding-top: 15rem;
  }
  .policy-lead .att li {
    font-size: 10rem;
  }
}
.table-law {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 28rem;
}
.table-law.nomb {
  margin-bottom: 0;
}
.table-law caption {
  text-align: left;
  font-size: 18rem;
  font-weight: 700;
  line-height: 1.77;
  color: var(--color-deco);
  margin-bottom: 12rem;
}
.table-law th,
.table-law td {
  border: #b3b3b3 1px solid;
  line-height: 1.75;
  padding: 13.5rem;
  vertical-align: middle;
}
.table-law th {
  background: var(--color-base);
  font-weight: 700;
  width: 360rem;
}
@media only screen and (max-width: 767px) {
  .table-law {
    margin-bottom: 14rem;
  }
  .table-law caption {
    font-size: 14rem;
    margin-bottom: 8rem;
  }
  .table-law th,
  .table-law td {
    display: block;
    width: 100%;
  }
}
.policy {
  padding-bottom: 80rem;
}
.policy.pd {
  padding-top: 60rem;
}
.policy .page-sub {
  margin-bottom: 28rem;
}
.policy .page-sub:nth-of-type(n + 2) {
  margin-top: 68rem;
}
.policy .num {
  list-style: none;
}
.policy .num li {
  counter-increment: number;
  text-indent: -22rem;
  padding-left: 22rem;
}
.policy .num li::before {
  content: "(" counter(number) ") ";
}
.policy .pt {
  padding-top: 68rem;
}
@media only screen and (max-width: 767px) {
  .policy.pd {
    padding-top: 30rem;
  }
  .policy {
    padding-bottom: 40rem;
  }
  .policy .page-sub {
    margin-bottom: 14rem;
  }
  .policy .page-sub:nth-of-type(n + 2),
  .policy .pt {
    margin-top: 34rem;
  }
  .policy .num li {
    text-indent: -21rem;
    padding-left: 21rem;
  }
}
/* 症例 */
.case {
  padding-bottom: 80rem;
}
.case-lead {
  padding-top: 60rem;
  padding-bottom: 40rem;
}
.case-nav {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding-bottom: 44rem;
}
.case-nav dt,
.case-nav dd {
  border-bottom: 1px solid #b3b3b3;
  padding-bottom: 16rem;
  margin-bottom: 16rem;
}
.case-nav dt {
  width: 116rem;
  color: var(--color-deco);
}
.case-nav dd {
  width: calc(100% - 116rem);
}
.case-nav dd ul {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 16rem;
}
.case-nav dd ul li {
  display: block;
}
.case-nav dd ul li a {
  display: inline-block;
  line-height: 40rem;
  padding: 0 16rem;
  background: var(--color-base);
}
.case-nav dd ul li a:hover {
  background: var(--color-deco);
  color: #fff;
}
.case-nav dd ul li.current a {
  background: var(--color-base-dark03);
  color: #fff;
  pointer-events: none;
}
.wp-pagenavi {
  display: flex;
  justify-content: center;
  gap: 15rem;
}
.wp-pagenavi a,
.wp-pagenavi span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50rem;
  height: 50rem;
  font-size: 14rem;
}
.wp-pagenavi a {
  background: var(--color-deco);
  border: var(--color-deco) 1px solid;
  color: #fff;
}
.wp-pagenavi a:hover {
  background: #fff;
  color: var(--color-deco);
}
.wp-pagenavi span {
  background: #fff;
  border: #fff 1px solid;
}
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .nextpostslink::before {
  content: "";
  display: block;
  width: 8rem;
  height: 8rem;
}
.wp-pagenavi .previouspostslink {
  background: #fff;
}
.wp-pagenavi .previouspostslink:hover {
  background: var(--color-deco);
}
.wp-pagenavi .previouspostslink::before {
  border-top: var(--color-deco) 2rem solid;
  border-left: var(--color-deco) 2rem solid;
  transform: rotate(-45deg);
}
.wp-pagenavi .previouspostslink:hover::before {
  border-top: #fff 2rem solid;
  border-left: #fff 2rem solid;
}
.wp-pagenavi .nextpostslink::before {
  border-top: #fff 2rem solid;
  border-right: #fff 2rem solid;
  transform: rotate(45deg);
}
.wp-pagenavi .nextpostslink:hover::before {
  border-top: var(--color-deco) 2rem solid;
  border-right: var(--color-deco) 2rem solid;
}
@media only screen and (max-width: 767px) {
  .case {
    padding-bottom: 60rem;
  }
  .case-lead {
    padding-top: 30rem;
    padding-bottom: 20rem;
  }
  .case-nav {
    padding-bottom: 30rem;
  }
  .case-nav dt {
    width: 100%;
    border-bottom: 0;
    padding-bottom: 0;
  }
  .case-nav dd {
    width: 100%;
  }
  .case-nav dd ul {
    gap: 8rem;
  }
  .case-nav dd ul li {
    display: block;
  }
  .case-nav dd ul li a {
    line-height: 36rem;
    padding: 0 12rem;
  }
  .wp-pagenavi {
    gap: 10rem;
  }
  .wp-pagenavi a,
  .wp-pagenavi span {
    width: 40rem;
    height: 40rem;
    font-size: 13rem;
  }
  .wp-pagenavi .previouspostslink::before,
  .wp-pagenavi .nextpostslink::before {
    width: 7rem;
    height: 7rem;
  }
}

/* added */

.process-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10rem;
  list-style: none;
  padding: 0;
}

.process-list li {
  position: relative;
  background: var(--color-base);
  padding: 15rem 25rem 15rem 35rem;
  flex: 1;
  min-width: 200rem;
  border-radius: 4rem;
  align-items: center;
}
.step_inner {
  display: block;
}
.step_inner .step {
  text-align: center;
  font-family: var(--font-en);
  color: #998775;
  font-size: 20rem;
  line-height: 1;
  margin-bottom: 8rem;
}
.step_inner .step span {
  font-size: 30rem;
}
.step_inner .txt {
  padding-top: 8rem;
  text-align: center;
  font-size: 14rem;
}
@media only screen and (max-width: 767px) {
  .process-list {
    justify-content: center;
  }
  .process-list li {
    width: 31%;
    min-width: 31%;
    max-width: 31%;
    padding: 8rem 12rem 16rem 12rem;
  }
  .step_inner .txt {
    font-size: 12rem;
  }
}

/* banking-service */

#banking-service .sub-main-visual {
  width: 100%;
  background: url(..//img/ips-treatment/banking-main.png) center no-repeat;
  background-size: cover;
  margin-bottom: 40rem;
  position: relative;
}
#banking-service .sub-main-visual .inner {
  padding: 120rem 0;
}
#banking-service .sub-main-visual .read {
  display: block;
  font-family: var(--font-min);
  font-weight: 600;
  letter-spacing: 0.01em;

  transform: translateY(-50%);
  font-size: 24rem;
  width: min(calc(100% - 32rem), 1116rem);
}
@media only screen and (max-width: 767px) {
  #banking-service .sub-main-visual .read {
    font-size: 18rem;
  }
}

/* menu */
.evidence-box {
  background-color: var(--color-base);
  padding: 32rem;
}
.evidence-box-inner {
  display: flex;
  justify-content: space-between;
}
.evidence-box h3 {
  display: block;
  font-family: var(--font-en);
  font-size: 24rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  color: var(--color-deco);
  text-align: center;
  padding-bottom: 16rem;
}
.evidence-box .evidence-box-contents {
  width: 48.5%;
}
.evidence-box .evidence-box-contents.wide {
  width: 80%;
  margin: 0 auto;
}
.evidence-box .evidence-box-contents figure {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .evidence-box {
    padding: 16rem;
  }
  .evidence-box-inner {
    flex-direction: column;
    gap: 16rem;
  }
  .evidence-box .evidence-box-contents {
    width: 100%;
  }
  .evidence-box .evidence-box-contents.wide {
    width: 100%;
  }
  .evidence-box .evidence-box-contents figure {
    margin-bottom: 0;
  }
}

/* panel */

.btn-panel-open,
.btn-panel-close {
  cursor: pointer;
  margin: 0 auto;
}

.panel-wrap {
  padding: 40rem 0 0 0;
}

.panel {
  height: 0; /* 初期状態は高さ0 */
  overflow: hidden; /* はみ出た分を隠す */
  transition: height 0.4s ease-out; /* ここでアニメーション時間を調整 */
}

.comingsoon {
  padding: 40rem;
  font-family: var(--font-en);
  text-align: center;
  font-size: 24rem;
}

/* card */
.bl_card-wrapper {
  padding: 40rem 0 40rem;
  background: var(--color-base);
}
footer .bl_card-wrapper {
  background: none;
  max-width: 90%;
  border-top: solid 1px rgba(255, 255, 255, 0.25);
  padding-top: 24rem;
}
.bl_card-unit {
  display: flex;
  justify-content: space-between;
}
.bl_card-unit.col2_slim {
  max-width: 660rem;
  margin: 0 auto;
}
.bl_card {
  width: 47.5%;
  position: relative;
}
.bl_card-title {
  font-family: var(--font-min);
  text-align: center;
  font-size: 18rem;
}
.bl_card-url {
  font-size: 12rem;
  text-align: center;
  margin-bottom: 4rem;
}
.bl_card-url a {
  text-decoration: underline;
}
.bl_card-txt__S {
  font-size: 14rem;
  line-height: 1.5;
  margin-bottom: 6rem;
}
.bl_card-txt__SS {
  font-size: 12rem;
  line-height: 1.5;
  margin-bottom: 4rem;
}
.bl_card_insta {
  width: 38rem;
  height: 38rem;
  position: absolute;
  right: 0;
  bottom: 0;
}

@media only screen and (max-width: 767px) {
  .bl_card-wrapper {
    padding: 32rem 16rem 56px 16rem;
  }
  footer .bl_card-wrapper {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
    margin: 0;
  }
  .bl_card-title {
    font-size: 14rem;
  }
  .bl_card-txt__S {
    font-size: 12rem;
  }
  .bl_card_insta {
    bottom: -10rem;
  }
}

/* snsLinks */

.ly_snsLinks {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 60px;
}

.ly_snsLinks_link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-flow: column;
  /* 右端を画面に密着させるための設定 */
  width: 60px;
  height: 60px;
  margin-right: 0;
  border-radius: 8px 0 0 8px;
  text-align: center;

  /* 伸びる動きの設定 */
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;

  white-space: nowrap;
}

/* ホバー時に右を軸にして「左へ」伸びる */
.ly_snsLinks_link:hover {
  width: 70px; /* お好みの長さに伸ばせます */
  transform: translateX(-10px);
}

.ly_snsLinks_link.is_instagram {
  background: radial-gradient(
    circle at 30% 107%,
    #e2c259 0%,
    #fd5949 45%,
    #d6249f 60%,
    #285aeb 90%
  );
}

.ly_snsLinks_link.is_instagram img {
  width: 38px;
}

.ly_snsLinks_link.is_instagram span {
  display: block;
  font-size: 10px;
  color: white;
  line-height: 1;
}

.ly_snsLinks_link.is_line {
  background-color: #06c755;
}
.ly_snsLinks_link.is_line img {
  width: 48px;
}

.ly_snsLinks_link.is_web {
  background-color: #5caee3;
}
.ly_snsLinks_link.is_web img {
  width: 48px;
}
.ly_reservation {
  display: none;
}
/* スマホ用の微調整 */
@media (max-width: 768px) {
  .ly_snsLinks_link {
    display: none;
  }
  .ly_reservation {
    position: fixed;
    bottom: 20px;
    right: 10px;
    width: 240px;
    z-index: 100;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
  }
  .ly_reservation_link {
    display: block;
    border-radius: 100px;
  }
  .ly_reservation_link:active {
    transform: translateY(4px);
  }
  .ly_reservation_link.is_tel {
    background-color: #aaaaaa;
    width: 48px;
    height: 48px;
    padding: 7px;
  }
  .ly_reservation_link.is_web {
    background-color: #5caee3;
    color: #ffffff;
    text-align: center;
    padding: 0 16px;
    width: 150px;
    height: 48px;
    line-height: 48px;
    font-size: 14px;
    position: relative;
    padding-left: 40px;
  }
  .ly_reservation_link.is_web::before {
    content: "";
    display: block;
    position: absolute;
    width: 20px;
    height: 20px;
    background: url("/assets/img/common/icon_web-c.svg") center no-repeat;
    background-size: contain;
    position: left;
    left: 28px;
    top: 50%;
    transform: translateY(-50%);
  }
}
