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

* {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

b,
strong {
  font-weight: bold;
}

i {
  font-style: normal;
}

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

table {
  border-color: currentcolor;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.7;
  margin: 0;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  cursor: pointer;
}

legend {
  padding: 0;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

summary {
  display: list-item;
}

*:focus {
  outline: none;
}

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

figure {
  margin-inline: auto;
  text-align: center;
}

/* libre-baskerville-regular - latin */
@font-face {
  font-display: swap;
  font-family: "Libre Baskerville";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/libre-baskerville-v24-latin-regular.woff2") format("woff2");
}
/* libre-baskerville-500 - latin */
@font-face {
  font-display: swap;
  font-family: "Libre Baskerville";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/libre-baskerville-v24-latin-500.woff2") format("woff2");
}
/* libre-baskerville-600 - latin */
@font-face {
  font-display: swap;
  font-family: "Libre Baskerville";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/libre-baskerville-v24-latin-600.woff2") format("woff2");
}
/* libre-baskerville-700 - latin */
@font-face {
  font-display: swap;
  font-family: "Libre Baskerville";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/libre-baskerville-v24-latin-700.woff2") format("woff2");
}
@keyframes circle-arrow-move {
  0% {
    background-position: 50% 50%;
    animation-timing-function: ease-in;
  }
  49.9% {
    background-position: 200% 50%;
  }
  50% {
    background-position: -100% 50%;
    animation-timing-function: ease-out;
  }
  100% {
    background-position: 50% 50%;
  }
}
html {
  scrollbar-gutter: stable;
}

body {
  overflow-x: hidden;
  position: relative;
  min-width: 360px;
  padding: 4.75rem 0 0;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.8;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
  color: #2e3a42;
  line-break: strict;
}
@media screen and (min-width: 1025px) {
  body {
    padding-top: 7.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}
a {
  color: #2e3a42;
  text-decoration: none;
}
@media (hover: hover) {
  a:hover {
    color: #3b558d;
    text-decoration: underline;
  }
}

a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.6875rem;
  height: 0.6875rem;
  margin-left: 0.5rem;
  vertical-align: -1px;
  background: url("../img/common/icn_blank.svg") no-repeat center/contain;
}

:focus-visible {
  outline: 2px solid #3b558d;
  outline-offset: 0.125rem;
}

.hdr-menu:focus-visible,
.gnav :focus-visible {
  outline-color: #a89b6e;
}

@media screen and (min-width: 1025px) {
  .gnav__item > button:focus-visible,
  .gnav__item > a:focus-visible {
    outline-color: #3b558d;
  }
  .gnav__item--contact > a:focus-visible {
    outline-color: #a89b6e;
  }
}
.btn::after {
  content: "";
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #172a3f url("../img/common/icn_arrow01_gold.svg") no-repeat center/10px auto;
  transition: 0.2s;
}
@media (hover: hover) {
  .btn:hover::after {
    animation: circle-arrow-move 0.3s;
  }
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem 1.25rem 1rem 1.5rem;
  background: #243b55;
  color: #fff;
  border-radius: 4px;
  transition: 0.2s;
}
@media (hover: hover) {
  .btn:hover {
    color: #f5f8fb;
    background: #172a3f;
    text-decoration: none;
  }
  .btn:hover::after {
    background-color: rgb(9.3604651163, 17.0930232558, 25.6395348837);
  }
}
.btn.col02::after {
  content: "";
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #f5f7f9 url("../img/common/icn_arrow01_navy.svg") no-repeat center/10px auto;
  transition: 0.2s;
}
@media (hover: hover) {
  .btn.col02:hover::after {
    animation: circle-arrow-move 0.3s;
  }
}
.btn.col02 {
  padding: 0.375rem 0.5rem;
  color: #2e3a42;
  background: none;
  border-radius: 0;
  border-bottom: 1px solid #243b55;
}
.btn.col03::after {
  content: "";
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid #a89b6e;
  background: url("../img/common/icn_arrow01_gold.svg") no-repeat center/10px auto;
  transition: 0.2s;
}
@media (hover: hover) {
  .btn.col03:hover::after {
    animation: circle-arrow-move 0.3s;
  }
}
.btn.col03 {
  padding: 0.375rem 0.5rem;
  color: #2e3a42;
  background: none;
  border-radius: 0;
  border-bottom: 1px solid #a89b6e;
}
.btn.icn_l {
  flex-direction: row-reverse;
  padding-inline: 1.25rem 1.5rem;
}
.btn.icn_l::after {
  transform: rotate(180deg);
}
.btn.icn_l.col02, .btn.icn_l.col03 {
  padding-inline: 0.5rem;
}

.ullist01, .ullist_check02, .ullist_check01, .ullist03, .ullist02 {
  list-style-type: none;
  padding-left: 0.5rem;
}
.ullist01 li, .ullist_check02 li, .ullist_check01 li, .ullist03 li, .ullist02 li {
  position: relative;
  padding: 0 0 0 1rem;
  line-height: 1.5;
}
.ullist01 li::before, .ullist_check02 li::before, .ullist_check01 li::before, .ullist03 li::before, .ullist02 li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0.3125em;
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 50%;
  background: #243b55;
}
.ullist01 li + li, .ullist_check02 li + li, .ullist_check01 li + li, .ullist03 li + li, .ullist02 li + li {
  margin-top: 0.5em;
}

.ullist02 li::before {
  background: #a89b6e;
}

.ullist03 li {
  padding-left: 1.25em;
}
.ullist03 li::before {
  top: 0.775em;
  width: 0.5rem;
  height: 1px;
  background: #a89b6e;
}

.ullist_check01 li {
  padding-left: 1.375em;
}
.ullist_check01 li::before {
  top: 0.375em;
  width: 0.75rem;
  height: 0.75rem;
  background: url(../img/common/icn_check_navy.svg) no-repeat;
  background-size: cover;
}

.ullist_check02 li {
  padding-left: 1.25em;
}
.ullist_check02 li::before {
  top: 0.375em;
  width: 0.75rem;
  height: 0.75rem;
  background: url(../img/common/icn_check_gold.svg) no-repeat;
  background-size: cover;
}

.ollist01 {
  padding-left: 2em;
}
.ollist01 li + li {
  margin-top: 0.5rem;
}

.hdr {
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 1000;
  display: grid;
  grid-template-columns: 1fr auto;
  border-bottom: 1px solid #e2e6ea;
  background: #fff;
}
@media screen and (min-width: 1025px) {
  .hdr {
    --row-h: 5.25rem;
    translate: 0 var(--hdr-shift, 0px);
    grid-template-columns: auto 1fr;
  }
}
.hdr-clinic {
  grid-row: 1;
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  height: 1.25rem;
  margin: 0;
  padding: 0 0.25rem 0 0;
  border-bottom: 1px solid #e2e6ea;
  list-style: none;
  font-family: "Libre Baskerville", sans-serif;
  font-size: clamp(0.625rem, 0.5rem + 0.556vw, 1rem);
  line-height: 1;
  color: #a89b6e;
}
@media screen and (min-width: 1025px) {
  .hdr-clinic {
    gap: 1rem;
    height: 2.1875rem;
    padding: 0 1.5rem 0 0;
  }
}
.hdr-logo {
  grid-row: 2;
  grid-column: 1;
  align-self: center;
  margin: 0;
  padding-left: 1rem;
}
@media screen and (min-width: 1025px) {
  .hdr-logo {
    padding-left: 1.5rem;
  }
}
.hdr-logo a {
  display: block;
}
.hdr-logo img {
  display: block;
  width: clamp(10rem, 8rem + 8.885vw, 13.688rem);
  height: auto;
}
@media screen and (min-width: 1025px) {
  .hdr-logo img {
    width: auto;
    height: clamp(2.92rem, 0.262rem + 4.154vw, 4rem);
    transition: height 0.2s;
  }
}
.hdr-menu {
  grid-row: 2;
  grid-column: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.375rem;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: -1px;
  padding: 1.25rem 0 0;
  border: none;
  border-left: 1px solid #e2e6ea;
  background: #243b55;
  color: #e2e6ea;
  font-family: "Libre Baskerville", sans-serif;
  font-size: 0.625rem;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
@media screen and (min-width: 1025px) {
  .hdr-menu {
    display: none;
  }
}
.hdr-menu__icon {
  position: relative;
  display: block;
  width: 2rem;
  height: 0.5625rem;
}
.hdr-menu__icon span {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform 0.2s;
}
.hdr-menu__icon span:nth-child(1) {
  top: 0;
}
.hdr-menu__icon span:nth-child(2) {
  bottom: 0;
}
.hdr-menu__txt {
  display: block;
}
.hdr-menu[aria-expanded=true] .hdr-menu__icon span:nth-child(1) {
  transform: translateY(4px) rotate(16deg);
}
.hdr-menu[aria-expanded=true] .hdr-menu__icon span:nth-child(2) {
  transform: translateY(-4px) rotate(-16deg);
}

.gnav {
  position: fixed;
  inset: 4.75rem 0 0;
  z-index: 9;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #476486 #243b55;
  background: #243b55;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.2s, visibility 0.2s;
}
@media screen and (min-width: 1025px) {
  .gnav {
    position: static;
    grid-row: 2;
    grid-column: 2;
    overflow: visible;
    background: none;
    visibility: visible;
    opacity: 1;
    transition: none;
  }
}
.hdr-menu[aria-expanded=true] + .gnav {
  visibility: visible;
  opacity: 1;
}
.gnav__list {
  margin: 0;
  padding: 1.5rem;
  list-style: none;
}
@media screen and (min-width: 1025px) {
  .gnav__list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    padding: 0 1.5rem 0 0;
  }
}
.gnav__item {
  max-width: 600px;
  margin-inline: auto 0;
}
@media screen and (min-width: 1025px) {
  .gnav__item {
    margin: 0;
  }
}
@layer low-layer {
  .gnav__item + .gnav__item {
    margin-top: 2.5rem;
  }
  @media screen and (min-width: 1025px) {
    .gnav__item + .gnav__item {
      margin-top: 0;
    }
  }
}
.gnav__item > a, .gnav__item > button {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0 0 0 1rem;
  border: none;
  border-radius: 0;
  background: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-size: 1.125rem;
  font-weight: 500;
  text-align: left;
  text-decoration: none;
  color: #a89b6e;
  cursor: pointer;
}
@media screen and (min-width: 1025px) {
  .gnav__item > a, .gnav__item > button {
    width: auto;
    padding: 0;
    padding-block: calc((var(--row-h) - 1.8rem) / 2);
    font-size: 1rem;
    white-space: nowrap;
    color: #2e3a42;
    transition: padding-block 0.2s, color 0.2s;
  }
}
@media screen and (min-width: 1025px) and (hover: hover) {
  .gnav__item > a:hover, .gnav__item > button:hover {
    color: #3b558d;
  }
  .gnav__item > a:hover::before, .gnav__item > button:hover::before {
    scale: 1 1;
  }
}
.gnav__item > a:disabled, .gnav__item > button:disabled {
  opacity: 1;
  -webkit-text-fill-color: currentColor;
  cursor: default;
}
.gnav__item > a::before, .gnav__item > button::before {
  content: "";
  position: absolute;
  inset-block: 0;
  left: 0;
  width: 0.125rem;
  background: #a89b6e;
}
@media screen and (min-width: 1025px) {
  .gnav__item > a::before, .gnav__item > button::before {
    inset: auto 0 0;
    width: auto;
    height: 3px;
    scale: 0 1;
    background: #ccd5df;
    transition: scale 0.2s, background-color 0.2s;
  }
}
.gnav__item > button {
  padding-inline: clamp(0.75rem, -0.485rem + 1.928vw, 1.25rem);
}
@media screen and (max-width: 1024px) {
  .gnav__item > button {
    font-weight: bold;
  }
}
@media screen and (max-width: 1024px) {
  .gnav__item.gnav__item--doctor > a {
    font-weight: bold;
  }
}
.gnav__item > a {
  padding-inline: clamp(0.75rem, -0.485rem + 1.928vw, 1.25rem);
}
.gnav__item > a:not([href]) {
  cursor: default;
}
@media screen and (min-width: 1025px) {
  .gnav__item.is-open > button {
    color: #3b558d;
  }
  .gnav__item.is-open > button::before {
    scale: 1 1;
    background: #3b558d;
  }
}
@media screen and (min-width: 1025px) {
  .gnav__item--doctor .gnav__mgmenu {
    display: none;
  }
}
.gnav__item--sub {
  padding-inline: 1rem;
}
.gnav__item--sub + .gnav__item--sub {
  margin-top: 0;
}
@media screen and (min-width: 1025px) {
  .gnav__item--sub {
    display: none;
  }
}
.gnav__item--sub a {
  position: relative;
  display: block;
  padding: 0.475rem 2rem 0.475rem 1.75rem;
  border-bottom: 1px solid #476486;
  font-size: 1rem;
  text-decoration: none;
  color: #fff;
}
.gnav__item--sub a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 1rem;
  width: 0.25rem;
  height: 0.25rem;
  translate: 0 -50%;
  border-radius: 50%;
  background: #a89b6e;
}
.gnav__item--sub a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 0.625rem;
  height: 0.625rem;
  translate: 0 -50%;
  background: url("../img/common/icn_arrow01_gold.svg") no-repeat center/contain;
}
.gnav__item--sub a {
  color: #ccd5df;
  font-weight: normal;
}
.gnav__item--privacy {
  margin-top: 0;
  padding-inline: 1rem;
}
@media screen and (min-width: 1025px) {
  .gnav__item--privacy {
    display: none;
  }
}
.gnav__item--privacy a {
  position: relative;
  display: block;
  padding: 0.475rem 2rem 0.475rem 1.75rem;
  border-bottom: 1px solid #476486;
  font-size: 1rem;
  text-decoration: none;
  color: #fff;
}
.gnav__item--privacy a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 1rem;
  width: 0.25rem;
  height: 0.25rem;
  translate: 0 -50%;
  border-radius: 50%;
  background: #a89b6e;
}
.gnav__item--privacy a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 0.625rem;
  height: 0.625rem;
  translate: 0 -50%;
  background: url("../img/common/icn_arrow01_gold.svg") no-repeat center/contain;
}
.gnav__item--privacy a {
  color: #ccd5df;
  font-weight: normal;
}
.gnav__item--contact {
  max-width: 100vw;
  margin: 2.5rem -1.5rem -1.5rem;
  padding: 2.5rem 2rem;
  background: #2b2b2b url(../img/common/bg_noise.webp) repeat;
  background-blend-mode: darken;
}
@media screen and (min-width: 1025px) {
  .gnav__item--contact {
    margin: 0 0 0 1.5rem;
    padding: 0;
    background: none;
  }
}
.gnav__item--contact a::after {
  content: "";
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid #a89b6e;
  background: url("../img/common/icn_arrow01_gold.svg") no-repeat center/10px auto;
  transition: 0.2s;
}
@media (hover: hover) {
  .gnav__item--contact a:hover::after {
    animation: circle-arrow-move 0.3s;
  }
}
.gnav__item--contact a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 480px;
  margin: auto;
  padding-inline: 1.5rem;
  padding-block: 1.1125rem;
  font-weight: normal;
  border: 2px solid #a89b6e;
  background-image: linear-gradient(to right, #111 0%, #111 100%);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  background-position: left;
  transition: 0.2s;
}
@media (hover: hover) {
  .gnav__item--contact a:hover {
    background-size: 100% 100%;
  }
}
@media screen and (min-width: 1025px) {
  .gnav__item--contact a {
    width: 10.625rem;
    padding-inline: 1.25rem;
    padding-block: 1.225rem;
    border: none;
    background: #243b55;
    color: #f5f8fb;
    transition: background-color 0.2s;
    border-radius: 4px;
  }
}
@media screen and (min-width: 1025px) and (hover: hover) {
  .gnav__item--contact a:hover {
    background: #172a3f;
    color: #f5f8fb;
  }
  .gnav__item--contact a:hover::after {
    background-color: rgb(9.3604651163, 17.0930232558, 25.6395348837);
  }
}
.gnav__item--contact a::before {
  content: none;
}
@media screen and (min-width: 1025px) {
  .gnav__item--contact a::after {
    width: 1.75rem;
    height: 1.75rem;
    border-color: transparent;
    background-color: #172a3f;
    background-size: 0.625rem auto;
    transition: 0.2s;
  }
}
@media screen and (min-width: 1025px) {
  .gnav__mgmenu {
    position: absolute;
    inset-inline: 0;
    top: calc(100% + 1px);
    display: grid;
    grid-template-rows: 0fr;
    min-height: 200px;
    visibility: hidden;
    transition: grid-template-rows 0.3s ease, visibility 0.3s ease;
  }
}
@media screen and (min-width: 1025px) {
  .gnav__mginner {
    display: flex;
    overflow: hidden;
    min-height: 0;
  }
}
@media screen and (min-width: 1025px) {
  .gnav__item.is-open .gnav__mgmenu {
    grid-template-rows: 1fr;
    visibility: visible;
  }
}
.gnav.is-instant .gnav__mgmenu {
  transition: none;
}
.gnav__ttl {
  display: none;
}
@media screen and (min-width: 1025px) {
  .gnav__ttl {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: none;
    width: 30%;
    padding: 1.5rem 2.5rem;
    background: #f5f7f9;
  }
}
.gnav__ttl--cn {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1;
  color: #a89b6e;
}
.gnav__ttl--en {
  margin: 0.625rem 0 0;
  font-family: "Libre Baskerville", sans-serif;
  font-size: 1.75rem;
  line-height: 1.2;
  color: #243b55;
}
.gnav__sblist {
  margin: 0 0 0 1rem;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 1025px) {
  .gnav__sblist {
    display: grid;
    flex: 1 1 auto;
    align-content: center;
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    margin: 0;
    padding: 2rem 1.5rem 2.5rem;
    background: #243b55;
  }
}
@media screen and (min-width: 1025px) {
  .gnav__sblist--clm02 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1025px) {
  .gnav__sblist--clm03 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1200px) {
  .gnav__sblist--clm03 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.gnav__sblist a {
  position: relative;
  display: block;
  padding: 0.475rem 2rem 0.475rem 1.75rem;
  border-bottom: 1px solid #476486;
  font-size: 1rem;
  text-decoration: none;
  color: #fff;
}
.gnav__sblist a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 1rem;
  width: 0.25rem;
  height: 0.25rem;
  translate: 0 -50%;
  border-radius: 50%;
  background: #a89b6e;
}
.gnav__sblist a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 0.625rem;
  height: 0.625rem;
  translate: 0 -50%;
  background: url("../img/common/icn_arrow01_gold.svg") no-repeat center/contain;
}
@media screen and (min-width: 1025px) {
  .gnav__sblist a:hover {
    color: #f5f8fb;
  }
}

@media screen and (min-width: 1025px) {
  body::after {
    --overlay-opacity: 0.8;
    content: "";
    position: fixed;
    inset: 0;
    z-index: 8;
    background: #243b55;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
  .is-mega-open body::after {
    opacity: var(--overlay-opacity);
    visibility: visible;
  }
}
@media screen and (min-width: 1025px) {
  .is-scrolled .hdr {
    --row-h: 3.75rem;
  }
  .is-scrolled .hdr-logo img {
    height: 2.5rem;
  }
  .is-scrolled .gnav__item--contact > a {
    padding-block: 0.475rem;
  }
}
.is-resizing .gnav,
.is-resizing .gnav__mgmenu,
.is-resizing .hdr-logo img,
.is-resizing .gnav__item > button,
.is-resizing .gnav__item > a {
  transition: none;
}

.is-resizing .gnav__item > button::before,
.is-resizing .gnav__item > a::before {
  transition: none;
}

.is-resizing body::after {
  transition: none;
}

.contact {
  --col-right: min(45%, 440px);
  --col-gap: min(5.45%, 40px);
  --pd-x: max(5rem, calc((100% - 1200px) / 2));
  position: relative;
  padding: 5rem 2rem;
  background: #2b2b2b url(../img/common/bg_noise.webp) repeat;
  background-blend-mode: darken;
  color: #a89b6e;
}
@media screen and (min-width: 1025px) {
  .contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--col-right);
    -moz-column-gap: var(--col-gap);
         column-gap: var(--col-gap);
    align-items: center;
    justify-content: center;
    padding: clamp(5rem, 2.289rem + 12.048vw, 10rem) var(--pd-x);
  }
}
.contact::before {
  content: "";
  position: absolute;
  inset-block: 0;
  left: clamp(0.75rem, 0.167rem + 2.593vw, 2.5rem);
  width: 0.25rem;
  background: #a89b6e;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.6s ease-out;
}
.contact.is-inview::before {
  transform: scaleY(1);
}
.contact__ttl {
  container-type: inline-size;
  margin: 0;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .contact__ttl {
    grid-row: 1/3;
    grid-column: 1;
    text-align: left;
  }
}
.contact__ttl h2 {
  margin: 0;
  font-family: "Libre Baskerville", sans-serif;
  font-size: 3.25rem;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.03em;
}
@media screen and (min-width: 1025px) {
  .contact__ttl h2 {
    font-size: clamp(3.25rem, 0.599rem + 14.332cqw, 6rem);
  }
}
.contact__ttl p {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  line-height: 1;
}
@media screen and (min-width: 1025px) {
  .contact__ttl p {
    margin-left: 0.625em;
  }
}
.contact__btn {
  max-width: 480px;
  margin: 2.5rem auto 0;
}
@media screen and (min-width: 1025px) {
  .contact__btn {
    width: 100%;
    grid-column: 2;
    grid-row: 1/3;
    margin-top: 0;
  }
}
.contact__btn a::after {
  content: "";
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid #a89b6e;
  background: url("../img/common/icn_arrow01_gold.svg") no-repeat center/10px auto;
  transition: 0.2s;
}
@media (hover: hover) {
  .contact__btn a:hover::after {
    animation: circle-arrow-move 0.3s;
  }
}
.contact__btn a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 2rem;
  border: 4px solid #a89b6e;
  font-size: 1.5rem;
  text-decoration: none;
  color: #a89b6e;
  background-image: linear-gradient(to right, #111 0%, #111 100%);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  background-position: left;
  transition: 0.2s;
}
@media (hover: hover) {
  .contact__btn a:hover {
    background-size: 100% 100%;
  }
}

.ftr {
  padding: clamp(2.5rem, -0.299rem + 11.94vw, 5rem) 0 0;
}
@media screen and (min-width: 1025px) {
  .ftr {
    display: grid;
    grid-template-columns: auto minmax(0, 680px);
    grid-template-rows: auto 1fr auto auto;
    justify-content: space-between;
    -moz-column-gap: clamp(2.5rem, -3.675rem + 9.639vw, 5rem);
         column-gap: clamp(2.5rem, -3.675rem + 9.639vw, 5rem);
    padding: clamp(2.5rem, -0.299rem + 11.94vw, 5rem) 1.5rem 0;
  }
}
.ftr-logo {
  width: 17.5rem;
  margin: 0 auto 2.5rem;
}
@media screen and (min-width: 1025px) {
  .ftr-logo {
    grid-row: 1;
    grid-column: 1;
    width: clamp(17.5rem, -9.36rem + 41.928vw, 28.375rem);
    margin: 0;
  }
}
.ftr-logo a {
  display: block;
}
.ftr-logo img {
  display: block;
  width: 100%;
  height: auto;
}
.ftr-link {
  padding: 0 1.5rem;
}
@media screen and (min-width: 1025px) {
  .ftr-link {
    padding: 0;
  }
}
.ftr-link h2 {
  margin: 0 0 0.875rem;
  padding: 0 0.25rem 0.75rem;
  border-bottom: 1px solid #e2e6ea;
  font-family: "Libre Baskerville", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1;
  color: #7d8894;
}
.ftr-nav {
  margin: 0;
  padding: 0;
  list-style-type: none;
  font-size: 0.875rem;
}
@media screen and (min-width: 1025px) {
  .ftr-nav {
    padding-inline: 1.5rem;
    font-size: 1rem;
  }
}
.ftr-nav > li + li {
  margin-top: 0.5em;
}
.ftr-nav__item {
  position: relative;
  padding: 0.25rem 0.25rem 0.25rem 0.875rem;
  line-height: 1.5;
}
.ftr-nav__item::before {
  content: "";
  position: absolute;
  top: 1em;
  left: 0.25em;
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 50%;
  background: #243b55;
}
.ftr-nav__sblist {
  margin: 0.5em 0 0;
  padding: 0;
  list-style-type: none;
}
.ftr-nav__sblist li {
  position: relative;
  padding-left: 0.875rem;
  font-size: 0.875rem;
  line-height: 1.5;
}
.ftr-nav__sblist li a {
  display: block;
  padding: 0.25rem 0.25rem 0.25rem 0;
  color: #5d6773;
}
@media (hover: hover) {
  .ftr-nav__sblist li a:hover {
    color: inherit;
    text-decoration: underline;
  }
}
.ftr-nav__sblist li::before {
  content: "";
  position: absolute;
  top: 1.125em;
  left: 0;
  width: 0.5rem;
  height: 1px;
  background: #476486;
}
@media screen and (min-width: 480px) {
  .ftr .ftr-link__pagelink {
    display: grid;
    grid-template-rows: auto auto;
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 1rem;
         column-gap: 1rem;
  }
}
@media screen and (min-width: 1025px) {
  .ftr .ftr-link__pagelink {
    grid-row: 1/3;
    grid-column: 2;
  }
}
.ftr .ftr-link__pagelink h2 {
  grid-row: 1/2;
  grid-column: 1/3;
}
@media screen and (min-width: 480px) {
  .ftr .ftr-link__pagelink--left {
    grid-row: 2/3;
    grid-column: 1/2;
  }
}
@media screen and (min-width: 480px) {
  .ftr .ftr-link__pagelink--right {
    grid-row: 2/3;
    grid-column: 2/3;
  }
}
.ftr .ftr-link__grouplink {
  margin-top: 2.5rem;
}
@media screen and (min-width: 1025px) {
  .ftr .ftr-link__grouplink {
    grid-row: 3/4;
    grid-column: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    margin-top: 3rem;
  }
}
@media screen and (min-width: 1025px) {
  .ftr .ftr-link__grouplink h2 {
    grid-column: 1/-1;
  }
}
.ftr .ftr-link__grouplink .ftr-nav__group + .ftr-nav__group {
  margin-top: 1rem;
}
@media screen and (min-width: 1025px) {
  .ftr .ftr-link__grouplink .ftr-nav__group + .ftr-nav__group {
    margin-top: 0;
  }
}
.ftr .ftr-link__grouplink .ftr-nav__item::before {
  background: #a89b6e;
}
.ftr .ftr-wechat {
  padding: 1.5rem 1.5rem 0;
}
@media screen and (min-width: 1025px) {
  .ftr .ftr-wechat {
    grid-row: 3/4;
    margin-top: 3rem;
    padding-block: 0;
  }
}
.ftr .wechat__contents {
  max-width: calc(400px + 1.5rem);
  margin: auto;
  padding: 3rem 1.5rem;
}
@media screen and (min-width: 801px) {
  .ftr .wechat__contents {
    display: grid;
    grid-template-columns: 1fr calc(480px + 1.5rem);
    align-items: center;
    gap: 2.5rem;
  }
}
.ftr .wechat__ttl {
  border-bottom: 1px solid #e2e6ea;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #7d8894;
}
@media screen and (min-width: 1025px) {
  .ftr .wechat__ttl {
    margin-top: 0;
  }
}
.ftr .wechat__qr {
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  justify-content: center;
  max-width: 1200px;
  margin: auto;
  padding: 0;
}
@media screen and (min-width: 801px) {
  .ftr .wechat__qr {
    grid-template-columns: repeat(2, 240px);
  }
}
@media screen and (min-width: 1025px) {
  .ftr .wechat__qr {
    grid-template-columns: repeat(2, 200px);
  }
}
.ftr .wechat__qr img {
  width: 100%;
  border: 1px solid #e2e6ea;
}
.ftr-deco {
  container-type: inline-size;
  --deco-fz: calc(100cqw / 8.593);
  --clinic-ratio: 0.444;
  overflow: hidden;
  margin-top: 2.5rem;
  padding-inline: 1.5rem;
  text-align: center;
}
@media screen and (min-width: 681px) {
  .ftr-deco {
    --deco-fz: max(2.25rem, 10cqw);
    --clinic-ratio: 0.281;
    text-align: right;
  }
}
@media screen and (min-width: 1025px) {
  .ftr-deco {
    grid-row: 4/5;
    grid-column: 1/-1;
    margin-top: 5rem;
  }
}
.ftr-deco__main {
  margin: 0;
  font-family: "Libre Baskerville", sans-serif;
  font-size: var(--deco-fz);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  color: #243b55;
  letter-spacing: -0.05em;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 2s cubic-bezier(0.65, 0, 0.35, 1) 0.2s;
}
.ftr-deco.is-inview .ftr-deco__main {
  clip-path: inset(0 0 0 0);
}
.ftr-clinic {
  display: flex;
  justify-content: center;
  gap: 0.875em;
  margin: 0 0 0.5rem;
  padding: 0;
  list-style: none;
  font-family: "Libre Baskerville", sans-serif;
  font-size: calc(var(--deco-fz) * var(--clinic-ratio));
  line-height: 1;
  color: #a89b6e;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 2s cubic-bezier(0.65, 0, 0.35, 1);
}
.ftr-deco.is-inview .ftr-clinic {
  clip-path: inset(0 0 0 0);
}
@media screen and (min-width: 681px) {
  .ftr-clinic {
    justify-content: flex-end;
  }
}
.ftr-btm {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 1.5rem;
  padding: 1rem 1.5rem;
  font-size: 0.75rem;
  border-top: 1px solid #e2e6ea;
}
@media screen and (min-width: 1025px) {
  .ftr-btm {
    grid-row: 5/6;
    grid-column: 1/-1;
  }
}
.ftr-btm p {
  margin: 0;
  line-height: 1;
}

[hidden] {
  display: none !important;
}

.cookie-info {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 99999;
  display: grid;
  gap: 1rem;
  width: 100%;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 -2px 12px rgba(36, 59, 85, 0.15);
  color: #243b55;
  font-size: 0.875rem;
  line-height: 1.5;
}
@media screen and (min-width: 801px) {
  .cookie-info {
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    align-items: center;
  }
}
@media screen and (min-width: 1025px) {
  .cookie-info {
    right: 1rem;
    bottom: 1rem;
    max-width: 480px;
    border-radius: 0.5rem;
    box-shadow: 0 0 12px rgba(36, 59, 85, 0.3);
  }
}
.cookie-info a {
  color: #243b55;
  text-decoration: underline;
}
.cookie-info__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.75rem;
  height: 0.75rem;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}
.cookie-info__close svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #243b55;
  stroke-width: 3;
  stroke-linecap: round;
  pointer-events: none;
  transition: 0.2s;
}
@media (hover: hover) {
  .cookie-info__close:hover svg {
    stroke: #3b558d;
  }
}
.cookie-info__txt > :first-child {
  margin-top: 0;
}
.cookie-info__txt > :last-child {
  margin-bottom: 0;
}
.cookie-info__txt {
  padding-right: 1rem;
}
.cookie-info__btns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
  width: 100%;
}

.cookie-btn {
  padding: 8px 16px;
  border-radius: 6px;
  color: #243b55;
  background: transparent;
  cursor: pointer;
  border: 1px solid #243b55;
}
.cookie-btn--agree {
  color: #f5f8fb;
  background: #243b55;
}

.dpib {
  display: inline-block;
}

.ma {
  margin-inline: auto;
}

@media screen and (min-width: 1025px) {
  .db_pc {
    display: block;
  }
}

.db_tb {
  display: none;
}
@media screen and (min-width: 681px) {
  .db_tb {
    display: block;
  }
}

.db_sp {
  display: block;
}
@media screen and (min-width: 681px) {
  .db_sp {
    display: none;
  }
}

.sup {
  position: relative;
  display: block;
  padding-left: 1.625em;
  font-size: 80%;
  color: #5d6773;
}
.sup::before {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  content: "注：";
  height: 100%;
  padding-right: 0.5em;
}

.w_bold {
  font-weight: bold;
}

.w_normal {
  font-weight: normal;
}

.c_main {
  color: #243b55;
}

.c_accent {
  color: #5e5432;
}

.c_white {
  color: #f5f8fb;
}

.c_active {
  color: #3b558d;
}

.c_navy {
  color: #30487c;
}

.lhttl {
  line-height: 1.5;
}

.lhlarge {
  line-height: 2;
}

.fz01 {
  font-size: 1rem;
}

.fz02 {
  font-size: 1.125rem;
}

.fz03 {
  font-size: 1.25rem;
}

.fz04 {
  font-size: 1.5rem;
}

.fz05 {
  font-size: 1.75rem;
}

.fz06 {
  font-size: 2rem;
}

.fz07 {
  font-size: 0.875rem;
}

.fz08 {
  font-size: 2.5rem;
}

.fz09 {
  font-size: 0.875rem;
}

.mt0 {
  margin-top: 0 !important;
}

.mt_s {
  margin-top: 1.5rem !important;
}

.mt_m {
  margin-top: 3rem !important;
}

.mt_l {
  margin-top: 5rem !important;
}

.width10 {
  width: 10% !important;
}

.width20 {
  width: 20% !important;
}

.width30 {
  width: 30% !important;
}

.width40 {
  width: 40% !important;
}

.width50 {
  width: 50% !important;
}

.width60 {
  width: 60% !important;
}

.width70 {
  width: 70% !important;
}

.width80 {
  width: 80% !important;
}

.width90 {
  width: 90% !important;
}

.width100 {
  width: 100% !important;
}